From eff29f6393f083352681c52f2ddfc832051d336e Mon Sep 17 00:00:00 2001 From: zyperch Date: Tue, 2 Jun 2026 20:34:24 -0300 Subject: [PATCH] Retirado node_modules --- gitignore => .gitignore | 284 +- node_modules/.bin/browsers | 1 - node_modules/.bin/js-yaml | 1 - node_modules/.bin/puppeteer | 1 - node_modules/.bin/rimraf | 1 - node_modules/.bin/semver | 1 - node_modules/.package-lock.json | 1540 - node_modules/@babel/code-frame/LICENSE | 22 - node_modules/@babel/code-frame/README.md | 19 - node_modules/@babel/code-frame/lib/index.js | 217 - .../@babel/code-frame/lib/index.js.map | 1 - node_modules/@babel/code-frame/package.json | 32 - .../helper-validator-identifier/LICENSE | 22 - .../helper-validator-identifier/README.md | 19 - .../lib/identifier.js | 70 - .../lib/identifier.js.map | 1 - .../helper-validator-identifier/lib/index.js | 57 - .../lib/index.js.map | 1 - .../lib/keyword.js | 35 - .../lib/keyword.js.map | 1 - .../helper-validator-identifier/package.json | 31 - node_modules/@puppeteer/browsers/README.md | 171 - node_modules/@puppeteer/browsers/lib/CLI.d.ts | 29 - .../@puppeteer/browsers/lib/CLI.d.ts.map | 1 - node_modules/@puppeteer/browsers/lib/CLI.js | 416 - .../@puppeteer/browsers/lib/CLI.js.map | 1 - .../@puppeteer/browsers/lib/Cache.d.ts | 89 - .../@puppeteer/browsers/lib/Cache.d.ts.map | 1 - node_modules/@puppeteer/browsers/lib/Cache.js | 208 - .../@puppeteer/browsers/lib/Cache.js.map | 1 - .../browsers/lib/DefaultProvider.d.ts | 26 - .../browsers/lib/DefaultProvider.d.ts.map | 1 - .../browsers/lib/DefaultProvider.js | 35 - .../browsers/lib/DefaultProvider.js.map | 1 - .../browsers/lib/DefaultProvider.spec.d.ts | 7 - .../lib/DefaultProvider.spec.d.ts.map | 1 - .../browsers/lib/DefaultProvider.spec.js | 75 - .../browsers/lib/DefaultProvider.spec.js.map | 1 - .../lib/browser-data/browser-data.d.ts | 77 - .../lib/browser-data/browser-data.d.ts.map | 1 - .../browsers/lib/browser-data/browser-data.js | 235 - .../lib/browser-data/browser-data.js.map | 1 - .../browser-data/chrome-headless-shell.d.ts | 6 - .../chrome-headless-shell.d.ts.map | 1 - .../lib/browser-data/chrome-headless-shell.js | 47 - .../browser-data/chrome-headless-shell.js.map | 1 - .../browsers/lib/browser-data/chrome.d.ts | 33 - .../browsers/lib/browser-data/chrome.d.ts.map | 1 - .../browsers/lib/browser-data/chrome.js | 296 - .../browsers/lib/browser-data/chrome.js.map | 1 - .../lib/browser-data/chromedriver.d.ts | 6 - .../lib/browser-data/chromedriver.d.ts.map | 1 - .../browsers/lib/browser-data/chromedriver.js | 43 - .../lib/browser-data/chromedriver.js.map | 1 - .../browsers/lib/browser-data/chromium.d.ts | 12 - .../lib/browser-data/chromium.d.ts.map | 1 - .../browsers/lib/browser-data/chromium.js | 63 - .../browsers/lib/browser-data/chromium.js.map | 1 - .../browsers/lib/browser-data/firefox.d.ts | 22 - .../lib/browser-data/firefox.d.ts.map | 1 - .../browsers/lib/browser-data/firefox.js | 374 - .../browsers/lib/browser-data/firefox.js.map | 1 - .../browsers/lib/browser-data/types.d.ts | 66 - .../browsers/lib/browser-data/types.d.ts.map | 1 - .../browsers/lib/browser-data/types.js | 63 - .../browsers/lib/browser-data/types.js.map | 1 - .../@puppeteer/browsers/lib/debug.d.ts | 8 - .../@puppeteer/browsers/lib/debug.d.ts.map | 1 - node_modules/@puppeteer/browsers/lib/debug.js | 11 - .../@puppeteer/browsers/lib/debug.js.map | 1 - .../browsers/lib/detectPlatform.d.ts | 11 - .../browsers/lib/detectPlatform.d.ts.map | 1 - .../@puppeteer/browsers/lib/detectPlatform.js | 47 - .../browsers/lib/detectPlatform.js.map | 1 - .../@puppeteer/browsers/lib/fileUtil.d.ts | 17 - .../@puppeteer/browsers/lib/fileUtil.d.ts.map | 1 - .../@puppeteer/browsers/lib/fileUtil.js | 184 - .../@puppeteer/browsers/lib/fileUtil.js.map | 1 - .../@puppeteer/browsers/lib/httpUtil.d.ts | 16 - .../@puppeteer/browsers/lib/httpUtil.d.ts.map | 1 - .../@puppeteer/browsers/lib/httpUtil.js | 154 - .../@puppeteer/browsers/lib/httpUtil.js.map | 1 - .../@puppeteer/browsers/lib/install.d.ts | 195 - .../@puppeteer/browsers/lib/install.d.ts.map | 1 - .../@puppeteer/browsers/lib/install.js | 358 - .../@puppeteer/browsers/lib/install.js.map | 1 - .../@puppeteer/browsers/lib/launch.d.ts | 190 - .../@puppeteer/browsers/lib/launch.d.ts.map | 1 - .../@puppeteer/browsers/lib/launch.js | 426 - .../@puppeteer/browsers/lib/launch.js.map | 1 - .../@puppeteer/browsers/lib/main-cli.d.ts | 8 - .../@puppeteer/browsers/lib/main-cli.d.ts.map | 1 - .../@puppeteer/browsers/lib/main-cli.js | 9 - .../@puppeteer/browsers/lib/main-cli.js.map | 1 - .../@puppeteer/browsers/lib/main.d.ts | 18 - .../@puppeteer/browsers/lib/main.d.ts.map | 1 - node_modules/@puppeteer/browsers/lib/main.js | 15 - .../@puppeteer/browsers/lib/main.js.map | 1 - .../@puppeteer/browsers/lib/provider.d.ts | 153 - .../@puppeteer/browsers/lib/provider.d.ts.map | 1 - .../@puppeteer/browsers/lib/provider.js | 13 - .../@puppeteer/browsers/lib/provider.js.map | 1 - node_modules/@puppeteer/browsers/package.json | 105 - node_modules/@puppeteer/browsers/src/CLI.ts | 665 - node_modules/@puppeteer/browsers/src/Cache.ts | 320 - .../browsers/src/DefaultProvider.spec.ts | 91 - .../browsers/src/DefaultProvider.ts | 62 - .../browsers/src/browser-data/browser-data.ts | 302 - .../src/browser-data/chrome-headless-shell.ts | 71 - .../browsers/src/browser-data/chrome.ts | 422 - .../browsers/src/browser-data/chromedriver.ts | 58 - .../browsers/src/browser-data/chromium.ts | 95 - .../browsers/src/browser-data/firefox.ts | 469 - .../browsers/src/browser-data/types.ts | 70 - node_modules/@puppeteer/browsers/src/debug.ts | 13 - .../@puppeteer/browsers/src/detectPlatform.ts | 52 - .../@puppeteer/browsers/src/fileUtil.ts | 218 - .../@puppeteer/browsers/src/httpUtil.ts | 182 - .../@puppeteer/browsers/src/install.ts | 666 - .../@puppeteer/browsers/src/launch.ts | 653 - .../@puppeteer/browsers/src/main-cli.ts | 11 - node_modules/@puppeteer/browsers/src/main.ts | 57 - .../@puppeteer/browsers/src/provider.ts | 166 - node_modules/@types/debug/LICENSE | 21 - node_modules/@types/debug/README.md | 69 - node_modules/@types/debug/index.d.ts | 50 - node_modules/@types/debug/package.json | 58 - node_modules/@types/ms/LICENSE | 21 - node_modules/@types/ms/README.md | 82 - node_modules/@types/ms/index.d.ts | 63 - node_modules/@types/ms/package.json | 26 - node_modules/agent-base/README.md | 145 - node_modules/agent-base/dist/src/index.d.ts | 78 - node_modules/agent-base/dist/src/index.js | 203 - node_modules/agent-base/dist/src/index.js.map | 1 - .../agent-base/dist/src/promisify.d.ts | 4 - node_modules/agent-base/dist/src/promisify.js | 18 - .../agent-base/dist/src/promisify.js.map | 1 - node_modules/agent-base/package.json | 64 - node_modules/agent-base/src/index.ts | 345 - node_modules/agent-base/src/promisify.ts | 33 - node_modules/ansi-regex/index.d.ts | 37 - node_modules/ansi-regex/index.js | 10 - node_modules/ansi-regex/license | 9 - node_modules/ansi-regex/package.json | 55 - node_modules/ansi-regex/readme.md | 78 - node_modules/ansi-styles/index.d.ts | 345 - node_modules/ansi-styles/index.js | 163 - node_modules/ansi-styles/license | 9 - node_modules/ansi-styles/package.json | 56 - node_modules/ansi-styles/readme.md | 152 - node_modules/argparse/CHANGELOG.md | 216 - node_modules/argparse/LICENSE | 254 - node_modules/argparse/README.md | 84 - node_modules/argparse/argparse.js | 3707 - node_modules/argparse/lib/sub.js | 67 - node_modules/argparse/lib/textwrap.js | 440 - node_modules/argparse/package.json | 31 - node_modules/arr-union/LICENSE | 21 - node_modules/arr-union/README.md | 99 - node_modules/arr-union/index.js | 29 - node_modules/arr-union/package.json | 76 - node_modules/asynckit/LICENSE | 21 - node_modules/asynckit/README.md | 233 - node_modules/asynckit/bench.js | 76 - node_modules/asynckit/index.js | 6 - node_modules/asynckit/lib/abort.js | 29 - node_modules/asynckit/lib/async.js | 34 - node_modules/asynckit/lib/defer.js | 26 - node_modules/asynckit/lib/iterate.js | 75 - .../asynckit/lib/readable_asynckit.js | 91 - .../asynckit/lib/readable_parallel.js | 25 - node_modules/asynckit/lib/readable_serial.js | 25 - .../asynckit/lib/readable_serial_ordered.js | 29 - node_modules/asynckit/lib/state.js | 37 - node_modules/asynckit/lib/streamify.js | 141 - node_modules/asynckit/lib/terminator.js | 29 - node_modules/asynckit/package.json | 63 - node_modules/asynckit/parallel.js | 43 - node_modules/asynckit/serial.js | 17 - node_modules/asynckit/serialOrdered.js | 75 - node_modules/asynckit/stream.js | 21 - node_modules/axios/CHANGELOG.md | 1747 - node_modules/axios/LICENSE | 7 - node_modules/axios/MIGRATION_GUIDE.md | 877 - node_modules/axios/README.md | 2426 - node_modules/axios/dist/axios.js | 4892 -- node_modules/axios/dist/axios.js.map | 1 - node_modules/axios/dist/axios.min.js | 5 - node_modules/axios/dist/axios.min.js.map | 1 - node_modules/axios/dist/browser/axios.cjs | 4733 -- node_modules/axios/dist/browser/axios.cjs.map | 1 - node_modules/axios/dist/esm/axios.js | 4754 -- node_modules/axios/dist/esm/axios.js.map | 1 - node_modules/axios/dist/esm/axios.min.js | 3 - node_modules/axios/dist/esm/axios.min.js.map | 1 - node_modules/axios/dist/node/axios.cjs | 5469 -- node_modules/axios/dist/node/axios.cjs.map | 1 - node_modules/axios/index.d.cts | 715 - node_modules/axios/index.d.ts | 734 - node_modules/axios/index.js | 45 - node_modules/axios/lib/adapters/README.md | 36 - node_modules/axios/lib/adapters/adapters.js | 132 - node_modules/axios/lib/adapters/fetch.js | 473 - node_modules/axios/lib/adapters/http.js | 1312 - node_modules/axios/lib/adapters/xhr.js | 227 - node_modules/axios/lib/axios.js | 89 - node_modules/axios/lib/cancel/CancelToken.js | 135 - .../axios/lib/cancel/CanceledError.js | 22 - node_modules/axios/lib/cancel/isCancel.js | 5 - node_modules/axios/lib/core/Axios.js | 281 - node_modules/axios/lib/core/AxiosError.js | 176 - node_modules/axios/lib/core/AxiosHeaders.js | 348 - .../axios/lib/core/InterceptorManager.js | 72 - node_modules/axios/lib/core/README.md | 8 - node_modules/axios/lib/core/buildFullPath.js | 22 - .../axios/lib/core/dispatchRequest.js | 89 - node_modules/axios/lib/core/mergeConfig.js | 124 - node_modules/axios/lib/core/settle.js | 27 - node_modules/axios/lib/core/transformData.js | 28 - node_modules/axios/lib/defaults/index.js | 177 - .../axios/lib/defaults/transitional.js | 8 - node_modules/axios/lib/env/README.md | 3 - .../axios/lib/env/classes/FormData.js | 2 - node_modules/axios/lib/env/data.js | 1 - .../axios/lib/helpers/AxiosTransformStream.js | 156 - .../axios/lib/helpers/AxiosURLSearchParams.js | 61 - .../axios/lib/helpers/HttpStatusCode.js | 77 - node_modules/axios/lib/helpers/README.md | 7 - .../lib/helpers/ZlibHeaderTransformStream.js | 29 - node_modules/axios/lib/helpers/bind.js | 14 - node_modules/axios/lib/helpers/buildURL.js | 66 - node_modules/axios/lib/helpers/callbackify.js | 18 - node_modules/axios/lib/helpers/combineURLs.js | 15 - .../axios/lib/helpers/composeSignals.js | 57 - node_modules/axios/lib/helpers/cookies.js | 60 - .../axios/lib/helpers/deprecatedMethod.js | 31 - .../helpers/estimateDataURLDecodedBytes.js | 100 - .../axios/lib/helpers/formDataToJSON.js | 97 - .../axios/lib/helpers/formDataToStream.js | 119 - node_modules/axios/lib/helpers/fromDataURI.js | 66 - .../axios/lib/helpers/isAbsoluteURL.js | 19 - .../axios/lib/helpers/isAxiosError.js | 14 - .../axios/lib/helpers/isURLSameOrigin.js | 16 - node_modules/axios/lib/helpers/null.js | 2 - .../axios/lib/helpers/parseHeaders.js | 69 - .../axios/lib/helpers/parseProtocol.js | 6 - .../axios/lib/helpers/progressEventReducer.js | 54 - node_modules/axios/lib/helpers/readBlob.js | 15 - .../axios/lib/helpers/resolveConfig.js | 106 - .../axios/lib/helpers/sanitizeHeaderValue.js | 60 - .../axios/lib/helpers/shouldBypassProxy.js | 178 - node_modules/axios/lib/helpers/speedometer.js | 55 - node_modules/axios/lib/helpers/spread.js | 28 - node_modules/axios/lib/helpers/throttle.js | 44 - node_modules/axios/lib/helpers/toFormData.js | 249 - .../axios/lib/helpers/toURLEncodedForm.js | 19 - node_modules/axios/lib/helpers/trackStream.js | 89 - node_modules/axios/lib/helpers/validator.js | 112 - .../lib/platform/browser/classes/Blob.js | 3 - .../lib/platform/browser/classes/FormData.js | 3 - .../browser/classes/URLSearchParams.js | 4 - .../axios/lib/platform/browser/index.js | 13 - .../axios/lib/platform/common/utils.js | 52 - node_modules/axios/lib/platform/index.js | 7 - .../lib/platform/node/classes/FormData.js | 3 - .../platform/node/classes/URLSearchParams.js | 4 - node_modules/axios/lib/platform/node/index.js | 37 - node_modules/axios/lib/utils.js | 932 - node_modules/axios/package.json | 185 - node_modules/b4a/LICENSE | 201 - node_modules/b4a/README.md | 153 - node_modules/b4a/browser.js | 541 - node_modules/b4a/index.js | 188 - node_modules/b4a/lib/ascii.js | 31 - node_modules/b4a/lib/base64.js | 64 - node_modules/b4a/lib/hex.js | 51 - node_modules/b4a/lib/latin1.js | 31 - node_modules/b4a/lib/utf16le.js | 40 - node_modules/b4a/lib/utf8.js | 144 - node_modules/b4a/package.json | 51 - node_modules/b4a/react-native.js | 5 - .../balanced-match/.github/FUNDING.yml | 2 - node_modules/balanced-match/LICENSE.md | 21 - node_modules/balanced-match/README.md | 97 - node_modules/balanced-match/index.js | 62 - node_modules/balanced-match/package.json | 48 - node_modules/bare-events/LICENSE | 201 - node_modules/bare-events/README.md | 25 - node_modules/bare-events/global.d.ts | 15 - node_modules/bare-events/global.js | 5 - node_modules/bare-events/index.d.ts | 81 - node_modules/bare-events/index.js | 367 - node_modules/bare-events/lib/errors.js | 26 - node_modules/bare-events/package.json | 63 - node_modules/bare-events/web.d.ts | 79 - node_modules/bare-events/web.js | 353 - node_modules/bare-fs/CMakeLists.txt | 13 - node_modules/bare-fs/LICENSE | 201 - node_modules/bare-fs/README.md | 989 - node_modules/bare-fs/binding.c | 2889 - node_modules/bare-fs/binding.js | 1 - node_modules/bare-fs/index.d.ts | 1223 - node_modules/bare-fs/index.js | 2842 - node_modules/bare-fs/lib/constants.d.ts | 49 - node_modules/bare-fs/lib/constants.js | 49 - node_modules/bare-fs/lib/errors.d.ts | 11 - node_modules/bare-fs/lib/errors.js | 55 - node_modules/bare-fs/package.json | 74 - .../prebuilds/android-arm/bare-fs.bare | Bin 51520 -> 0 bytes .../prebuilds/android-arm64/bare-fs.bare | Bin 66600 -> 0 bytes .../prebuilds/android-ia32/bare-fs.bare | Bin 56492 -> 0 bytes .../prebuilds/android-x64/bare-fs.bare | Bin 61032 -> 0 bytes .../prebuilds/darwin-arm64/bare-fs.bare | Bin 94352 -> 0 bytes .../bare-fs/prebuilds/darwin-x64/bare-fs.bare | Bin 60720 -> 0 bytes .../ios-arm64-simulator/bare-fs.bare | Bin 94288 -> 0 bytes .../bare-fs/prebuilds/ios-arm64/bare-fs.bare | Bin 109864 -> 0 bytes .../prebuilds/ios-x64-simulator/bare-fs.bare | Bin 60656 -> 0 bytes .../prebuilds/linux-arm64/bare-fs.bare | Bin 58632 -> 0 bytes .../bare-fs/prebuilds/linux-x64/bare-fs.bare | Bin 58192 -> 0 bytes .../prebuilds/win32-arm64/bare-fs.bare | Bin 143360 -> 0 bytes .../bare-fs/prebuilds/win32-x64/bare-fs.bare | Bin 152576 -> 0 bytes node_modules/bare-fs/promises.d.ts | 310 - node_modules/bare-fs/promises.js | 119 - node_modules/bare-os/CMakeLists.txt | 13 - node_modules/bare-os/LICENSE | 201 - node_modules/bare-os/README.md | 252 - node_modules/bare-os/binding.c | 1538 - node_modules/bare-os/binding.js | 1 - node_modules/bare-os/index.d.ts | 150 - node_modules/bare-os/index.js | 131 - node_modules/bare-os/lib/constants.d.ts | 7 - node_modules/bare-os/lib/constants.js | 7 - node_modules/bare-os/lib/errors.d.ts | 5 - node_modules/bare-os/lib/errors.js | 22 - node_modules/bare-os/package.json | 55 - .../prebuilds/android-arm/bare-os.bare | Bin 34280 -> 0 bytes .../prebuilds/android-arm64/bare-os.bare | Bin 39616 -> 0 bytes .../prebuilds/android-ia32/bare-os.bare | Bin 34412 -> 0 bytes .../prebuilds/android-x64/bare-os.bare | Bin 38184 -> 0 bytes .../prebuilds/darwin-arm64/bare-os.bare | Bin 73280 -> 0 bytes .../bare-os/prebuilds/darwin-x64/bare-os.bare | Bin 39824 -> 0 bytes .../ios-arm64-simulator/bare-os.bare | Bin 73232 -> 0 bytes .../bare-os/prebuilds/ios-arm64/bare-os.bare | Bin 88960 -> 0 bytes .../prebuilds/ios-x64-simulator/bare-os.bare | Bin 39752 -> 0 bytes .../prebuilds/linux-arm64/bare-os.bare | Bin 36728 -> 0 bytes .../bare-os/prebuilds/linux-x64/bare-os.bare | Bin 37288 -> 0 bytes .../prebuilds/win32-arm64/bare-os.bare | Bin 159232 -> 0 bytes .../bare-os/prebuilds/win32-x64/bare-os.bare | Bin 166400 -> 0 bytes node_modules/bare-path/LICENSE | 201 - node_modules/bare-path/NOTICE | 28 - node_modules/bare-path/README.md | 19 - node_modules/bare-path/index.js | 11 - node_modules/bare-path/lib/constants.js | 11 - node_modules/bare-path/lib/posix.js | 242 - node_modules/bare-path/lib/shared.js | 67 - node_modules/bare-path/lib/win32.js | 513 - node_modules/bare-path/package.json | 36 - node_modules/bare-stream/LICENSE | 201 - node_modules/bare-stream/README.md | 15 - node_modules/bare-stream/global.d.ts | 31 - node_modules/bare-stream/global.js | 15 - node_modules/bare-stream/index.d.ts | 235 - node_modules/bare-stream/index.js | 492 - node_modules/bare-stream/package.json | 74 - node_modules/bare-stream/promises.js | 3 - node_modules/bare-stream/web.d.ts | 152 - node_modules/bare-stream/web.js | 607 - node_modules/bare-url/CMakeLists.txt | 27 - node_modules/bare-url/LICENSE | 201 - node_modules/bare-url/README.md | 172 - node_modules/bare-url/binding.c | 186 - node_modules/bare-url/binding.js | 1 - node_modules/bare-url/global.d.ts | 12 - node_modules/bare-url/global.js | 2 - node_modules/bare-url/index.d.ts | 41 - node_modules/bare-url/index.js | 407 - node_modules/bare-url/lib/errors.d.ts | 10 - node_modules/bare-url/lib/errors.js | 33 - .../bare-url/lib/url-search-params.d.ts | 23 - .../bare-url/lib/url-search-params.js | 194 - node_modules/bare-url/package.json | 54 - .../prebuilds/android-arm/bare-url.bare | Bin 69888 -> 0 bytes .../prebuilds/android-arm64/bare-url.bare | Bin 100496 -> 0 bytes .../prebuilds/android-ia32/bare-url.bare | Bin 93916 -> 0 bytes .../prebuilds/android-x64/bare-url.bare | Bin 101576 -> 0 bytes .../prebuilds/darwin-arm64/bare-url.bare | Bin 124688 -> 0 bytes .../prebuilds/darwin-x64/bare-url.bare | Bin 98992 -> 0 bytes .../ios-arm64-simulator/bare-url.bare | Bin 124688 -> 0 bytes .../prebuilds/ios-arm64/bare-url.bare | Bin 139952 -> 0 bytes .../prebuilds/ios-x64-simulator/bare-url.bare | Bin 98992 -> 0 bytes .../prebuilds/linux-arm64/bare-url.bare | Bin 94856 -> 0 bytes .../prebuilds/linux-x64/bare-url.bare | Bin 101296 -> 0 bytes .../prebuilds/win32-arm64/bare-url.bare | Bin 165376 -> 0 bytes .../prebuilds/win32-x64/bare-url.bare | Bin 174080 -> 0 bytes node_modules/brace-expansion/LICENSE | 21 - node_modules/brace-expansion/README.md | 129 - node_modules/brace-expansion/index.js | 203 - node_modules/brace-expansion/package.json | 50 - .../call-bind-apply-helpers/.eslintrc | 17 - .../.github/FUNDING.yml | 12 - node_modules/call-bind-apply-helpers/.nycrc | 9 - .../call-bind-apply-helpers/CHANGELOG.md | 30 - node_modules/call-bind-apply-helpers/LICENSE | 21 - .../call-bind-apply-helpers/README.md | 62 - .../call-bind-apply-helpers/actualApply.d.ts | 1 - .../call-bind-apply-helpers/actualApply.js | 10 - .../call-bind-apply-helpers/applyBind.d.ts | 19 - .../call-bind-apply-helpers/applyBind.js | 10 - .../functionApply.d.ts | 1 - .../call-bind-apply-helpers/functionApply.js | 4 - .../call-bind-apply-helpers/functionCall.d.ts | 1 - .../call-bind-apply-helpers/functionCall.js | 4 - .../call-bind-apply-helpers/index.d.ts | 64 - node_modules/call-bind-apply-helpers/index.js | 15 - .../call-bind-apply-helpers/package.json | 85 - .../call-bind-apply-helpers/reflectApply.d.ts | 3 - .../call-bind-apply-helpers/reflectApply.js | 4 - .../call-bind-apply-helpers/test/index.js | 63 - .../call-bind-apply-helpers/tsconfig.json | 9 - node_modules/callsites/index.d.ts | 96 - node_modules/callsites/index.js | 13 - node_modules/callsites/license | 9 - node_modules/callsites/package.json | 39 - node_modules/callsites/readme.md | 48 - node_modules/chromium-bidi/.browser | 1 - node_modules/chromium-bidi/LICENSE | 201 - node_modules/chromium-bidi/README.md | 635 - .../chromium-bidi/lib/THIRD_PARTY_NOTICES | 56 - .../lib/bidiMapper/BidiMapper.d.ts | 29 - .../lib/bidiMapper/BidiMapper.js | 25 - .../lib/bidiMapper/BidiMapper.js.map | 1 - .../lib/bidiMapper/BidiNoOpParser.d.ts | 94 - .../lib/bidiMapper/BidiNoOpParser.js | 276 - .../lib/bidiMapper/BidiNoOpParser.js.map | 1 - .../lib/bidiMapper/BidiParser.d.ts | 93 - .../lib/bidiMapper/BidiParser.js | 18 - .../lib/bidiMapper/BidiParser.js.map | 1 - .../lib/bidiMapper/BidiServer.d.ts | 42 - .../lib/bidiMapper/BidiServer.js | 165 - .../lib/bidiMapper/BidiServer.js.map | 1 - .../lib/bidiMapper/BidiTransport.d.ts | 22 - .../lib/bidiMapper/BidiTransport.js | 18 - .../lib/bidiMapper/BidiTransport.js.map | 1 - .../lib/bidiMapper/CommandProcessor.d.ts | 48 - .../lib/bidiMapper/CommandProcessor.js | 327 - .../lib/bidiMapper/CommandProcessor.js.map | 1 - .../lib/bidiMapper/MapperOptions.d.ts | 7 - .../lib/bidiMapper/MapperOptions.js | 19 - .../lib/bidiMapper/MapperOptions.js.map | 1 - .../lib/bidiMapper/OutgoingMessage.d.ts | 27 - .../lib/bidiMapper/OutgoingMessage.js | 48 - .../lib/bidiMapper/OutgoingMessage.js.map | 1 - .../modules/bluetooth/BluetoothProcessor.d.ts | 37 - .../modules/bluetooth/BluetoothProcessor.js | 407 - .../bluetooth/BluetoothProcessor.js.map | 1 - .../modules/browser/BrowserProcessor.d.ts | 37 - .../modules/browser/BrowserProcessor.js | 289 - .../modules/browser/BrowserProcessor.js.map | 1 - .../modules/browser/ContextConfig.d.ts | 51 - .../modules/browser/ContextConfig.js | 71 - .../modules/browser/ContextConfig.js.map | 1 - .../modules/browser/ContextConfigStorage.d.ts | 42 - .../modules/browser/ContextConfigStorage.js | 92 - .../browser/ContextConfigStorage.js.map | 1 - .../modules/browser/UserContextStorage.d.ts | 27 - .../modules/browser/UserContextStorage.js | 52 - .../modules/browser/UserContextStorage.js.map | 1 - .../bidiMapper/modules/cdp/CdpProcessor.d.ts | 27 - .../bidiMapper/modules/cdp/CdpProcessor.js | 56 - .../modules/cdp/CdpProcessor.js.map | 1 - .../lib/bidiMapper/modules/cdp/CdpTarget.d.ts | 57 - .../lib/bidiMapper/modules/cdp/CdpTarget.js | 693 - .../bidiMapper/modules/cdp/CdpTarget.js.map | 1 - .../modules/cdp/CdpTargetManager.d.ts | 16 - .../modules/cdp/CdpTargetManager.js | 248 - .../modules/cdp/CdpTargetManager.js.map | 1 - .../modules/context/BrowsingContextImpl.d.ts | 92 - .../modules/context/BrowsingContextImpl.js | 1447 - .../context/BrowsingContextImpl.js.map | 1 - .../context/BrowsingContextProcessor.d.ts | 22 - .../context/BrowsingContextProcessor.js | 263 - .../context/BrowsingContextProcessor.js.map | 1 - .../context/BrowsingContextStorage.d.ts | 47 - .../modules/context/BrowsingContextStorage.js | 130 - .../context/BrowsingContextStorage.js.map | 1 - .../modules/context/NavigationTracker.d.ts | 87 - .../modules/context/NavigationTracker.js | 325 - .../modules/context/NavigationTracker.js.map | 1 - .../modules/emulation/EmulationProcessor.d.ts | 38 - .../modules/emulation/EmulationProcessor.js | 397 - .../emulation/EmulationProcessor.js.map | 1 - .../modules/input/ActionDispatcher.d.ts | 27 - .../modules/input/ActionDispatcher.js | 740 - .../modules/input/ActionDispatcher.js.map | 1 - .../modules/input/ActionOption.d.ts | 22 - .../bidiMapper/modules/input/ActionOption.js | 18 - .../modules/input/ActionOption.js.map | 1 - .../modules/input/InputProcessor.d.ts | 9 - .../modules/input/InputProcessor.js | 190 - .../modules/input/InputProcessor.js.map | 1 - .../bidiMapper/modules/input/InputSource.d.ts | 78 - .../bidiMapper/modules/input/InputSource.js | 154 - .../modules/input/InputSource.js.map | 1 - .../bidiMapper/modules/input/InputState.d.ts | 29 - .../bidiMapper/modules/input/InputState.js | 89 - .../modules/input/InputState.js.map | 1 - .../modules/input/InputStateManager.d.ts | 21 - .../modules/input/InputStateManager.js | 30 - .../modules/input/InputStateManager.js.map | 1 - .../modules/input/USKeyboardLayout.d.ts | 17 - .../modules/input/USKeyboardLayout.js | 271 - .../modules/input/USKeyboardLayout.js.map | 1 - .../bidiMapper/modules/input/keyUtils.d.ts | 31 - .../lib/bidiMapper/modules/input/keyUtils.js | 492 - .../bidiMapper/modules/input/keyUtils.js.map | 1 - .../bidiMapper/modules/log/LogManager.d.ts | 9 - .../lib/bidiMapper/modules/log/LogManager.js | 183 - .../bidiMapper/modules/log/LogManager.js.map | 1 - .../lib/bidiMapper/modules/log/logHelper.d.ts | 23 - .../lib/bidiMapper/modules/log/logHelper.js | 168 - .../bidiMapper/modules/log/logHelper.js.map | 1 - .../modules/network/CollectorsStorage.d.ts | 13 - .../modules/network/CollectorsStorage.js | 149 - .../modules/network/CollectorsStorage.js.map | 1 - .../modules/network/NetworkProcessor.d.ts | 54 - .../modules/network/NetworkProcessor.js | 541 - .../modules/network/NetworkProcessor.js.map | 1 - .../modules/network/NetworkRequest.d.ts | 55 - .../modules/network/NetworkRequest.js | 890 - .../modules/network/NetworkRequest.js.map | 1 - .../modules/network/NetworkStorage.d.ts | 57 - .../modules/network/NetworkStorage.js | 349 - .../modules/network/NetworkStorage.js.map | 1 - .../modules/network/NetworkUtils.d.ts | 59 - .../modules/network/NetworkUtils.js | 303 - .../modules/network/NetworkUtils.js.map | 1 - .../permissions/PermissionsProcessor.d.ts | 23 - .../permissions/PermissionsProcessor.js | 51 - .../permissions/PermissionsProcessor.js.map | 1 - .../modules/script/ChannelProxy.d.ts | 30 - .../bidiMapper/modules/script/ChannelProxy.js | 231 - .../modules/script/ChannelProxy.js.map | 1 - .../modules/script/PreloadScript.d.ts | 43 - .../modules/script/PreloadScript.js | 129 - .../modules/script/PreloadScript.js.map | 1 - .../modules/script/PreloadScriptStorage.d.ts | 23 - .../modules/script/PreloadScriptStorage.js | 75 - .../script/PreloadScriptStorage.js.map | 1 - .../lib/bidiMapper/modules/script/Realm.d.ts | 67 - .../lib/bidiMapper/modules/script/Realm.js | 481 - .../bidiMapper/modules/script/Realm.js.map | 1 - .../modules/script/RealmStorage.d.ts | 45 - .../bidiMapper/modules/script/RealmStorage.js | 78 - .../modules/script/RealmStorage.js.map | 1 - .../modules/script/ScriptProcessor.d.ts | 33 - .../modules/script/ScriptProcessor.js | 132 - .../modules/script/ScriptProcessor.js.map | 1 - .../bidiMapper/modules/script/SharedId.d.ts | 6 - .../lib/bidiMapper/modules/script/SharedId.js | 70 - .../bidiMapper/modules/script/SharedId.js.map | 1 - .../modules/script/WindowRealm.d.ts | 43 - .../bidiMapper/modules/script/WindowRealm.js | 142 - .../modules/script/WindowRealm.js.map | 1 - .../modules/script/WorkerRealm.d.ts | 33 - .../bidiMapper/modules/script/WorkerRealm.js | 66 - .../modules/script/WorkerRealm.js.map | 1 - .../modules/session/EventManager.d.ts | 56 - .../modules/session/EventManager.js | 265 - .../modules/session/EventManager.js.map | 1 - .../modules/session/SessionProcessor.d.ts | 29 - .../modules/session/SessionProcessor.js | 127 - .../modules/session/SessionProcessor.js.map | 1 - .../modules/session/SubscriptionManager.d.ts | 64 - .../modules/session/SubscriptionManager.js | 266 - .../session/SubscriptionManager.js.map | 1 - .../bidiMapper/modules/session/events.d.ts | 26 - .../lib/bidiMapper/modules/session/events.js | 33 - .../bidiMapper/modules/session/events.js.map | 1 - .../speculation/SpeculationProcessor.d.ts | 24 - .../speculation/SpeculationProcessor.js | 58 - .../speculation/SpeculationProcessor.js.map | 1 - .../modules/storage/StorageProcessor.d.ts | 14 - .../modules/storage/StorageProcessor.js | 191 - .../modules/storage/StorageProcessor.js.map | 1 - .../webExtension/WebExtensionProcessor.d.ts | 27 - .../webExtension/WebExtensionProcessor.js | 65 - .../webExtension/WebExtensionProcessor.js.map | 1 - .../lib/bidiServer/BrowserInstance.d.ts | 23 - .../lib/bidiServer/BrowserInstance.js | 107 - .../lib/bidiServer/BrowserInstance.js.map | 1 - .../lib/bidiServer/MapperCdpConnection.d.ts | 25 - .../lib/bidiServer/MapperCdpConnection.js | 138 - .../lib/bidiServer/MapperCdpConnection.js.map | 1 - .../lib/bidiServer/PipeTransport.d.ts | 8 - .../lib/bidiServer/PipeTransport.js | 77 - .../lib/bidiServer/PipeTransport.js.map | 1 - .../lib/bidiServer/SimpleTransport.d.ts | 13 - .../lib/bidiServer/SimpleTransport.js | 35 - .../lib/bidiServer/SimpleTransport.js.map | 1 - .../lib/bidiServer/WebSocketServer.d.ts | 6 - .../lib/bidiServer/WebSocketServer.js | 374 - .../lib/bidiServer/WebSocketServer.js.map | 1 - .../chromium-bidi/lib/bidiServer/index.d.ts | 23 - .../chromium-bidi/lib/bidiServer/index.js | 49 - .../chromium-bidi/lib/bidiServer/index.js.map | 1 - .../chromium-bidi/lib/bidiServer/reader.d.ts | 17 - .../chromium-bidi/lib/bidiServer/reader.js | 22 - .../lib/bidiServer/reader.js.map | 1 - .../chromium-bidi/lib/bidiTab/BidiParser.d.ts | 94 - .../chromium-bidi/lib/bidiTab/BidiParser.js | 263 - .../lib/bidiTab/BidiParser.js.map | 1 - .../chromium-bidi/lib/bidiTab/Transport.d.ts | 37 - .../chromium-bidi/lib/bidiTab/Transport.js | 145 - .../lib/bidiTab/Transport.js.map | 1 - .../chromium-bidi/lib/bidiTab/bidiTab.d.ts | 32 - .../chromium-bidi/lib/bidiTab/bidiTab.js | 56 - .../chromium-bidi/lib/bidiTab/bidiTab.js.map | 1 - .../lib/bidiTab/mapperTabPage.d.ts | 19 - .../lib/bidiTab/mapperTabPage.js | 59 - .../lib/bidiTab/mapperTabPage.js.map | 1 - .../chromium-bidi/lib/cdp/CdpClient.d.ts | 54 - .../chromium-bidi/lib/cdp/CdpClient.js | 40 - .../chromium-bidi/lib/cdp/CdpClient.js.map | 1 - .../chromium-bidi/lib/cdp/CdpConnection.d.ts | 45 - .../chromium-bidi/lib/cdp/CdpConnection.js | 130 - .../lib/cdp/CdpConnection.js.map | 1 - node_modules/chromium-bidi/lib/cdp/cdp.d.ts | 19 - node_modules/chromium-bidi/lib/cdp/cdp.js | 20 - node_modules/chromium-bidi/lib/cdp/cdp.js.map | 1 - .../chromium-bidi/lib/cdp/cdpMessage.d.ts | 30 - .../chromium-bidi/lib/cdp/cdpMessage.js | 2 - .../chromium-bidi/lib/cdp/cdpMessage.js.map | 1 - .../chromium-bidi/lib/iife/mapperTab.js | 19967 ----- .../chromium-bidi/lib/iife/mapperTab.js.map | 1 - node_modules/chromium-bidi/lib/index.d.ts | 18 - node_modules/chromium-bidi/lib/index.js | 19 - node_modules/chromium-bidi/lib/index.js.map | 1 - .../generated/webdriver-bidi-bluetooth.d.ts | 2216 - .../generated/webdriver-bidi-bluetooth.js | 348 - .../generated/webdriver-bidi-bluetooth.js.map | 1 - .../webdriver-bidi-nav-speculation.d.ts | 102 - .../webdriver-bidi-nav-speculation.js | 43 - .../webdriver-bidi-nav-speculation.js.map | 1 - .../generated/webdriver-bidi-permissions.d.ts | 175 - .../generated/webdriver-bidi-permissions.js | 50 - .../webdriver-bidi-permissions.js.map | 1 - .../webdriver-bidi-ua-client-hints.d.ts | 427 - .../webdriver-bidi-ua-client-hints.js | 65 - .../webdriver-bidi-ua-client-hints.js.map | 1 - .../generated/webdriver-bidi.d.ts | 65923 ---------------- .../generated/webdriver-bidi.js | 2993 - .../generated/webdriver-bidi.js.map | 1 - .../lib/protocol-parser/protocol-parser.d.ts | 177 - .../lib/protocol-parser/protocol-parser.js | 465 - .../protocol-parser/protocol-parser.js.map | 1 - .../lib/protocol/ErrorResponse.d.ts | 112 - .../lib/protocol/ErrorResponse.js | 166 - .../lib/protocol/ErrorResponse.js.map | 1 - .../chromium-bidi/lib/protocol/cdp.d.ts | 77 - .../chromium-bidi/lib/protocol/cdp.js | 2 - .../chromium-bidi/lib/protocol/cdp.js.map | 1 - .../lib/protocol/chromium-bidi.d.ts | 112 - .../lib/protocol/chromium-bidi.js | 124 - .../lib/protocol/chromium-bidi.js.map | 1 - .../generated/webdriver-bidi-bluetooth.d.ts | 309 - .../generated/webdriver-bidi-bluetooth.js | 18 - .../generated/webdriver-bidi-bluetooth.js.map | 1 - .../webdriver-bidi-nav-speculation.d.ts | 43 - .../webdriver-bidi-nav-speculation.js | 18 - .../webdriver-bidi-nav-speculation.js.map | 1 - .../generated/webdriver-bidi-permissions.d.ts | 49 - .../generated/webdriver-bidi-permissions.js | 18 - .../webdriver-bidi-permissions.js.map | 1 - .../webdriver-bidi-ua-client-hints.d.ts | 55 - .../webdriver-bidi-ua-client-hints.js | 18 - .../webdriver-bidi-ua-client-hints.js.map | 1 - .../protocol/generated/webdriver-bidi.d.ts | 2767 - .../lib/protocol/generated/webdriver-bidi.js | 18 - .../protocol/generated/webdriver-bidi.js.map | 1 - .../chromium-bidi/lib/protocol/protocol.d.ts | 24 - .../chromium-bidi/lib/protocol/protocol.js | 26 - .../lib/protocol/protocol.js.map | 1 - .../chromium-bidi/lib/utils/Buffer.d.ts | 27 - .../chromium-bidi/lib/utils/Buffer.js | 43 - .../chromium-bidi/lib/utils/Buffer.js.map | 1 - .../chromium-bidi/lib/utils/DefaultMap.d.ts | 26 - .../chromium-bidi/lib/utils/DefaultMap.js | 36 - .../chromium-bidi/lib/utils/DefaultMap.js.map | 1 - .../chromium-bidi/lib/utils/Deferred.d.ts | 28 - .../chromium-bidi/lib/utils/Deferred.js | 67 - .../chromium-bidi/lib/utils/Deferred.js.map | 1 - .../chromium-bidi/lib/utils/EventEmitter.d.ts | 58 - .../chromium-bidi/lib/utils/EventEmitter.js | 67 - .../lib/utils/EventEmitter.js.map | 1 - .../chromium-bidi/lib/utils/IdWrapper.d.ts | 24 - .../chromium-bidi/lib/utils/IdWrapper.js | 30 - .../chromium-bidi/lib/utils/IdWrapper.js.map | 1 - .../chromium-bidi/lib/utils/Mutex.d.ts | 29 - node_modules/chromium-bidi/lib/utils/Mutex.js | 64 - .../chromium-bidi/lib/utils/Mutex.js.map | 1 - .../lib/utils/ProcessingQueue.d.ts | 24 - .../lib/utils/ProcessingQueue.js | 63 - .../lib/utils/ProcessingQueue.js.map | 1 - .../chromium-bidi/lib/utils/assert.d.ts | 17 - .../chromium-bidi/lib/utils/assert.js | 22 - .../chromium-bidi/lib/utils/assert.js.map | 1 - .../chromium-bidi/lib/utils/base64.d.ts | 24 - .../chromium-bidi/lib/utils/base64.js | 32 - .../chromium-bidi/lib/utils/base64.js.map | 1 - .../lib/utils/cdpErrorConstants.d.ts | 22 - .../lib/utils/cdpErrorConstants.js | 18 - .../lib/utils/cdpErrorConstants.js.map | 1 - .../lib/utils/graphemeTools.d.ts | 9 - .../chromium-bidi/lib/utils/graphemeTools.js | 34 - .../lib/utils/graphemeTools.js.map | 1 - node_modules/chromium-bidi/lib/utils/log.d.ts | 26 - node_modules/chromium-bidi/lib/utils/log.js | 28 - .../chromium-bidi/lib/utils/log.js.map | 1 - .../chromium-bidi/lib/utils/result.d.ts | 23 - .../chromium-bidi/lib/utils/result.js | 18 - .../chromium-bidi/lib/utils/result.js.map | 1 - .../chromium-bidi/lib/utils/time.d.ts | 17 - node_modules/chromium-bidi/lib/utils/time.js | 24 - .../chromium-bidi/lib/utils/time.js.map | 1 - .../chromium-bidi/lib/utils/transport.d.ts | 25 - .../chromium-bidi/lib/utils/transport.js | 18 - .../chromium-bidi/lib/utils/transport.js.map | 1 - .../lib/utils/unitConversions.d.ts | 18 - .../lib/utils/unitConversions.js | 21 - .../lib/utils/unitConversions.js.map | 1 - .../chromium-bidi/lib/utils/urlHelpers.d.ts | 8 - .../chromium-bidi/lib/utils/urlHelpers.js | 49 - .../chromium-bidi/lib/utils/urlHelpers.js.map | 1 - .../chromium-bidi/lib/utils/uuid.d.ts | 25 - node_modules/chromium-bidi/lib/utils/uuid.js | 61 - .../chromium-bidi/lib/utils/uuid.js.map | 1 - node_modules/chromium-bidi/package.json | 219 - node_modules/cliui/CHANGELOG.md | 139 - node_modules/cliui/LICENSE.txt | 14 - node_modules/cliui/README.md | 141 - node_modules/cliui/build/index.cjs | 302 - node_modules/cliui/build/index.d.cts | 43 - node_modules/cliui/build/lib/index.js | 287 - node_modules/cliui/build/lib/string-utils.js | 27 - node_modules/cliui/index.mjs | 13 - node_modules/cliui/package.json | 83 - node_modules/clone-deep/LICENSE | 21 - node_modules/clone-deep/README.md | 72 - node_modules/clone-deep/index.js | 51 - node_modules/clone-deep/package.json | 67 - node_modules/clone-deep/utils.js | 21 - node_modules/color-convert/CHANGELOG.md | 54 - node_modules/color-convert/LICENSE | 21 - node_modules/color-convert/README.md | 68 - node_modules/color-convert/conversions.js | 839 - node_modules/color-convert/index.js | 81 - node_modules/color-convert/package.json | 48 - node_modules/color-convert/route.js | 97 - node_modules/color-name/LICENSE | 8 - node_modules/color-name/README.md | 11 - node_modules/color-name/index.js | 152 - node_modules/color-name/package.json | 28 - node_modules/combined-stream/License | 19 - node_modules/combined-stream/Readme.md | 138 - .../combined-stream/lib/combined_stream.js | 208 - node_modules/combined-stream/package.json | 25 - node_modules/combined-stream/yarn.lock | 17 - node_modules/concat-map/.travis.yml | 4 - node_modules/concat-map/LICENSE | 18 - node_modules/concat-map/README.markdown | 62 - node_modules/concat-map/example/map.js | 6 - node_modules/concat-map/index.js | 13 - node_modules/concat-map/package.json | 43 - node_modules/concat-map/test/map.js | 39 - node_modules/cosmiconfig/LICENSE | 22 - node_modules/cosmiconfig/README.md | 782 - node_modules/cosmiconfig/dist/Explorer.d.ts | 2 - node_modules/cosmiconfig/dist/Explorer.js | 170 - .../cosmiconfig/dist/ExplorerBase.d.ts | 2 - node_modules/cosmiconfig/dist/ExplorerBase.js | 126 - .../cosmiconfig/dist/ExplorerSync.d.ts | 2 - node_modules/cosmiconfig/dist/ExplorerSync.js | 184 - .../cosmiconfig/dist/cacheWrapper.d.ts | 5 - node_modules/cosmiconfig/dist/cacheWrapper.js | 32 - .../cosmiconfig/dist/canUseDynamicImport.d.ts | 3 - .../cosmiconfig/dist/canUseDynamicImport.js | 23 - node_modules/cosmiconfig/dist/defaults.d.ts | 25 - node_modules/cosmiconfig/dist/defaults.js | 105 - .../cosmiconfig/dist/getDirectory.d.ts | 4 - node_modules/cosmiconfig/dist/getDirectory.js | 38 - .../cosmiconfig/dist/getPropertyByPath.d.ts | 5 - .../cosmiconfig/dist/getPropertyByPath.js | 28 - node_modules/cosmiconfig/dist/index.d.ts | 6 - node_modules/cosmiconfig/dist/index.js | 148 - node_modules/cosmiconfig/dist/loaders.d.ts | 8 - node_modules/cosmiconfig/dist/loaders.js | 150 - node_modules/cosmiconfig/dist/merge.d.ts | 9 - node_modules/cosmiconfig/dist/merge.js | 40 - node_modules/cosmiconfig/dist/readFile.d.ts | 7 - node_modules/cosmiconfig/dist/readFile.js | 56 - node_modules/cosmiconfig/dist/types.d.ts | 98 - node_modules/cosmiconfig/dist/types.js | 3 - node_modules/cosmiconfig/dist/util.d.ts | 2 - node_modules/cosmiconfig/dist/util.js | 99 - node_modules/cosmiconfig/package.json | 103 - node_modules/debug/LICENSE | 20 - node_modules/debug/README.md | 481 - node_modules/debug/package.json | 64 - node_modules/debug/src/browser.js | 272 - node_modules/debug/src/common.js | 292 - node_modules/debug/src/index.js | 10 - node_modules/debug/src/node.js | 263 - node_modules/deepmerge/.editorconfig | 7 - node_modules/deepmerge/.eslintcache | 1 - node_modules/deepmerge/changelog.md | 167 - node_modules/deepmerge/dist/cjs.js | 133 - node_modules/deepmerge/dist/umd.js | 139 - node_modules/deepmerge/index.d.ts | 20 - node_modules/deepmerge/index.js | 106 - node_modules/deepmerge/license.txt | 21 - node_modules/deepmerge/package.json | 42 - node_modules/deepmerge/readme.md | 264 - node_modules/deepmerge/rollup.config.js | 22 - node_modules/delayed-stream/.npmignore | 1 - node_modules/delayed-stream/License | 19 - node_modules/delayed-stream/Makefile | 7 - node_modules/delayed-stream/Readme.md | 141 - .../delayed-stream/lib/delayed_stream.js | 107 - node_modules/delayed-stream/package.json | 27 - node_modules/devtools-protocol/LICENSE | 27 - node_modules/devtools-protocol/README.md | 11 - .../json/browser_protocol.json | 30874 -------- .../devtools-protocol/json/js_protocol.json | 3810 - node_modules/devtools-protocol/package.json | 17 - .../pdl/browser_protocol.pdl | 60 - .../pdl/domains/Accessibility.pdl | 310 - .../pdl/domains/Animation.pdl | 195 - .../devtools-protocol/pdl/domains/Audits.pdl | 824 - .../pdl/domains/Autofill.pdl | 110 - .../pdl/domains/BackgroundService.pdl | 77 - .../pdl/domains/BluetoothEmulation.pdl | 227 - .../devtools-protocol/pdl/domains/Browser.pdl | 352 - .../devtools-protocol/pdl/domains/CSS.pdl | 1053 - .../pdl/domains/CacheStorage.pdl | 125 - .../devtools-protocol/pdl/domains/Cast.pdl | 62 - .../pdl/domains/CrashReportContext.pdl | 20 - .../devtools-protocol/pdl/domains/DOM.pdl | 965 - .../pdl/domains/DOMDebugger.pdl | 128 - .../pdl/domains/DOMSnapshot.pdl | 319 - .../pdl/domains/DOMStorage.pdl | 72 - .../pdl/domains/DeviceAccess.pdl | 43 - .../pdl/domains/DeviceOrientation.pdl | 20 - .../pdl/domains/Emulation.pdl | 671 - .../pdl/domains/EventBreakpoints.pdl | 24 - .../pdl/domains/Extensions.pdl | 107 - .../devtools-protocol/pdl/domains/FedCm.pdl | 100 - .../devtools-protocol/pdl/domains/Fetch.pdl | 251 - .../pdl/domains/FileSystem.pdl | 41 - .../pdl/domains/HeadlessExperimental.pdl | 56 - .../devtools-protocol/pdl/domains/IO.pdl | 45 - .../pdl/domains/IndexedDB.pdl | 226 - .../devtools-protocol/pdl/domains/Input.pdl | 336 - .../pdl/domains/Inspector.pdl | 28 - .../pdl/domains/LayerTree.pdl | 178 - .../devtools-protocol/pdl/domains/Log.pdl | 93 - .../devtools-protocol/pdl/domains/Media.pdl | 111 - .../devtools-protocol/pdl/domains/Memory.pdl | 112 - .../devtools-protocol/pdl/domains/Network.pdl | 2385 - .../devtools-protocol/pdl/domains/Overlay.pdl | 522 - .../devtools-protocol/pdl/domains/PWA.pdl | 143 - .../devtools-protocol/pdl/domains/Page.pdl | 1761 - .../pdl/domains/Performance.pdl | 54 - .../pdl/domains/PerformanceTimeline.pdl | 71 - .../devtools-protocol/pdl/domains/Preload.pdl | 296 - .../pdl/domains/Security.pdl | 196 - .../pdl/domains/ServiceWorker.pdl | 121 - .../pdl/domains/SmartCardEmulation.pdl | 405 - .../devtools-protocol/pdl/domains/Storage.pdl | 644 - .../pdl/domains/SystemInfo.pdl | 130 - .../devtools-protocol/pdl/domains/Target.pdl | 351 - .../pdl/domains/Tethering.pdl | 28 - .../devtools-protocol/pdl/domains/Tracing.pdl | 163 - .../pdl/domains/WebAudio.pdl | 205 - .../pdl/domains/WebAuthn.pdl | 239 - .../devtools-protocol/pdl/domains/WebMCP.pdl | 91 - .../devtools-protocol/pdl/js_protocol.pdl | 1843 - .../types/protocol-mapping.d.ts | 6321 -- .../types/protocol-proxy-api.d.ts | 5507 -- .../types/protocol-tests-proxy-api.d.ts | 5981 -- .../devtools-protocol/types/protocol.d.ts | 22162 ------ node_modules/dunder-proto/.eslintrc | 5 - node_modules/dunder-proto/.github/FUNDING.yml | 12 - node_modules/dunder-proto/.nycrc | 13 - node_modules/dunder-proto/CHANGELOG.md | 24 - node_modules/dunder-proto/LICENSE | 21 - node_modules/dunder-proto/README.md | 54 - node_modules/dunder-proto/get.d.ts | 5 - node_modules/dunder-proto/get.js | 30 - node_modules/dunder-proto/package.json | 76 - node_modules/dunder-proto/set.d.ts | 5 - node_modules/dunder-proto/set.js | 35 - node_modules/dunder-proto/test/get.js | 34 - node_modules/dunder-proto/test/index.js | 4 - node_modules/dunder-proto/test/set.js | 50 - node_modules/dunder-proto/tsconfig.json | 9 - node_modules/emoji-regex/LICENSE-MIT.txt | 20 - node_modules/emoji-regex/README.md | 73 - node_modules/emoji-regex/es2015/index.js | 6 - node_modules/emoji-regex/es2015/text.js | 6 - node_modules/emoji-regex/index.d.ts | 23 - node_modules/emoji-regex/index.js | 6 - node_modules/emoji-regex/package.json | 50 - node_modules/emoji-regex/text.js | 6 - node_modules/end-of-stream/LICENSE | 21 - node_modules/end-of-stream/README.md | 54 - node_modules/end-of-stream/index.js | 96 - node_modules/end-of-stream/package.json | 37 - node_modules/env-paths/index.d.ts | 101 - node_modules/env-paths/index.js | 74 - node_modules/env-paths/license | 9 - node_modules/env-paths/package.json | 45 - node_modules/env-paths/readme.md | 115 - node_modules/error-ex/LICENSE | 21 - node_modules/error-ex/README.md | 144 - node_modules/error-ex/index.js | 141 - node_modules/error-ex/package.json | 46 - node_modules/es-define-property/.eslintrc | 13 - .../es-define-property/.github/FUNDING.yml | 12 - node_modules/es-define-property/.nycrc | 9 - node_modules/es-define-property/CHANGELOG.md | 29 - node_modules/es-define-property/LICENSE | 21 - node_modules/es-define-property/README.md | 49 - node_modules/es-define-property/index.d.ts | 3 - node_modules/es-define-property/index.js | 14 - node_modules/es-define-property/package.json | 81 - node_modules/es-define-property/test/index.js | 56 - node_modules/es-define-property/tsconfig.json | 10 - node_modules/es-errors/.eslintrc | 5 - node_modules/es-errors/.github/FUNDING.yml | 12 - node_modules/es-errors/CHANGELOG.md | 40 - node_modules/es-errors/LICENSE | 21 - node_modules/es-errors/README.md | 55 - node_modules/es-errors/eval.d.ts | 3 - node_modules/es-errors/eval.js | 4 - node_modules/es-errors/index.d.ts | 3 - node_modules/es-errors/index.js | 4 - node_modules/es-errors/package.json | 80 - node_modules/es-errors/range.d.ts | 3 - node_modules/es-errors/range.js | 4 - node_modules/es-errors/ref.d.ts | 3 - node_modules/es-errors/ref.js | 4 - node_modules/es-errors/syntax.d.ts | 3 - node_modules/es-errors/syntax.js | 4 - node_modules/es-errors/test/index.js | 19 - node_modules/es-errors/tsconfig.json | 49 - node_modules/es-errors/type.d.ts | 3 - node_modules/es-errors/type.js | 4 - node_modules/es-errors/uri.d.ts | 3 - node_modules/es-errors/uri.js | 4 - node_modules/es-object-atoms/.eslintrc | 16 - .../es-object-atoms/.github/FUNDING.yml | 12 - node_modules/es-object-atoms/CHANGELOG.md | 44 - node_modules/es-object-atoms/LICENSE | 21 - node_modules/es-object-atoms/README.md | 63 - .../RequireObjectCoercible.d.ts | 3 - .../es-object-atoms/RequireObjectCoercible.js | 11 - node_modules/es-object-atoms/ToObject.d.ts | 7 - node_modules/es-object-atoms/ToObject.js | 10 - node_modules/es-object-atoms/index.d.ts | 3 - node_modules/es-object-atoms/index.js | 4 - node_modules/es-object-atoms/isObject.d.ts | 3 - node_modules/es-object-atoms/isObject.js | 6 - node_modules/es-object-atoms/package.json | 79 - node_modules/es-object-atoms/test/index.js | 38 - node_modules/es-object-atoms/tsconfig.json | 7 - node_modules/es-set-tostringtag/.eslintrc | 13 - node_modules/es-set-tostringtag/.nycrc | 9 - node_modules/es-set-tostringtag/CHANGELOG.md | 67 - node_modules/es-set-tostringtag/LICENSE | 21 - node_modules/es-set-tostringtag/README.md | 53 - node_modules/es-set-tostringtag/index.d.ts | 10 - node_modules/es-set-tostringtag/index.js | 35 - node_modules/es-set-tostringtag/package.json | 78 - node_modules/es-set-tostringtag/test/index.js | 85 - node_modules/es-set-tostringtag/tsconfig.json | 9 - node_modules/escalade/dist/index.js | 22 - node_modules/escalade/dist/index.mjs | 22 - node_modules/escalade/index.d.mts | 11 - node_modules/escalade/index.d.ts | 15 - node_modules/escalade/license | 9 - node_modules/escalade/package.json | 74 - node_modules/escalade/readme.md | 211 - node_modules/escalade/sync/index.d.mts | 9 - node_modules/escalade/sync/index.d.ts | 13 - node_modules/escalade/sync/index.js | 18 - node_modules/escalade/sync/index.mjs | 18 - node_modules/events-universal/LICENSE | 201 - node_modules/events-universal/README.md | 17 - node_modules/events-universal/bare.js | 1 - node_modules/events-universal/default.js | 1 - node_modules/events-universal/index.js | 1 - node_modules/events-universal/package.json | 39 - node_modules/events-universal/react-native.js | 1 - node_modules/fast-fifo/LICENSE | 21 - node_modules/fast-fifo/README.md | 78 - node_modules/fast-fifo/fixed-size.js | 39 - node_modules/fast-fifo/index.js | 48 - node_modules/fast-fifo/package.json | 28 - node_modules/follow-redirects/LICENSE | 18 - node_modules/follow-redirects/README.md | 157 - node_modules/follow-redirects/debug.js | 15 - node_modules/follow-redirects/http.js | 1 - node_modules/follow-redirects/https.js | 1 - node_modules/follow-redirects/index.js | 709 - node_modules/follow-redirects/package.json | 58 - node_modules/for-in/LICENSE | 21 - node_modules/for-in/README.md | 85 - node_modules/for-in/index.js | 16 - node_modules/for-in/package.json | 68 - node_modules/for-own/LICENSE | 21 - node_modules/for-own/README.md | 85 - node_modules/for-own/index.js | 19 - node_modules/for-own/package.json | 70 - node_modules/form-data/CHANGELOG.md | 659 - node_modules/form-data/License | 19 - node_modules/form-data/README.md | 355 - node_modules/form-data/index.d.ts | 62 - node_modules/form-data/lib/browser.js | 4 - node_modules/form-data/lib/form_data.js | 494 - node_modules/form-data/lib/populate.js | 10 - node_modules/form-data/package.json | 82 - node_modules/fs-extra/LICENSE | 15 - node_modules/fs-extra/README.md | 262 - node_modules/fs-extra/lib/copy/copy-sync.js | 169 - node_modules/fs-extra/lib/copy/copy.js | 235 - node_modules/fs-extra/lib/copy/index.js | 7 - node_modules/fs-extra/lib/empty/index.js | 39 - node_modules/fs-extra/lib/ensure/file.js | 69 - node_modules/fs-extra/lib/ensure/index.js | 23 - node_modules/fs-extra/lib/ensure/link.js | 64 - .../fs-extra/lib/ensure/symlink-paths.js | 99 - .../fs-extra/lib/ensure/symlink-type.js | 31 - node_modules/fs-extra/lib/ensure/symlink.js | 82 - node_modules/fs-extra/lib/fs/index.js | 128 - node_modules/fs-extra/lib/index.js | 16 - node_modules/fs-extra/lib/json/index.js | 16 - node_modules/fs-extra/lib/json/jsonfile.js | 11 - .../fs-extra/lib/json/output-json-sync.js | 12 - node_modules/fs-extra/lib/json/output-json.js | 12 - node_modules/fs-extra/lib/mkdirs/index.js | 14 - node_modules/fs-extra/lib/mkdirs/make-dir.js | 27 - node_modules/fs-extra/lib/mkdirs/utils.js | 21 - node_modules/fs-extra/lib/move/index.js | 7 - node_modules/fs-extra/lib/move/move-sync.js | 54 - node_modules/fs-extra/lib/move/move.js | 75 - .../fs-extra/lib/output-file/index.js | 40 - .../fs-extra/lib/path-exists/index.js | 12 - node_modules/fs-extra/lib/remove/index.js | 22 - node_modules/fs-extra/lib/remove/rimraf.js | 302 - node_modules/fs-extra/lib/util/stat.js | 154 - node_modules/fs-extra/lib/util/utimes.js | 26 - node_modules/fs-extra/package.json | 67 - node_modules/fs.realpath/LICENSE | 43 - node_modules/fs.realpath/README.md | 33 - node_modules/fs.realpath/index.js | 66 - node_modules/fs.realpath/old.js | 303 - node_modules/fs.realpath/package.json | 26 - node_modules/function-bind/.eslintrc | 21 - .../function-bind/.github/FUNDING.yml | 12 - .../function-bind/.github/SECURITY.md | 3 - node_modules/function-bind/.nycrc | 13 - node_modules/function-bind/CHANGELOG.md | 136 - node_modules/function-bind/LICENSE | 20 - node_modules/function-bind/README.md | 46 - node_modules/function-bind/implementation.js | 84 - node_modules/function-bind/index.js | 5 - node_modules/function-bind/package.json | 87 - node_modules/function-bind/test/.eslintrc | 9 - node_modules/function-bind/test/index.js | 252 - node_modules/get-caller-file/LICENSE.md | 6 - node_modules/get-caller-file/README.md | 41 - node_modules/get-caller-file/index.d.ts | 2 - node_modules/get-caller-file/index.js | 22 - node_modules/get-caller-file/index.js.map | 1 - node_modules/get-caller-file/package.json | 42 - node_modules/get-intrinsic/.eslintrc | 42 - .../get-intrinsic/.github/FUNDING.yml | 12 - node_modules/get-intrinsic/.nycrc | 9 - node_modules/get-intrinsic/CHANGELOG.md | 186 - node_modules/get-intrinsic/LICENSE | 21 - node_modules/get-intrinsic/README.md | 71 - node_modules/get-intrinsic/index.js | 378 - node_modules/get-intrinsic/package.json | 97 - .../get-intrinsic/test/GetIntrinsic.js | 274 - node_modules/get-proto/.eslintrc | 10 - node_modules/get-proto/.github/FUNDING.yml | 12 - node_modules/get-proto/.nycrc | 9 - node_modules/get-proto/CHANGELOG.md | 21 - node_modules/get-proto/LICENSE | 21 - .../get-proto/Object.getPrototypeOf.d.ts | 5 - .../get-proto/Object.getPrototypeOf.js | 6 - node_modules/get-proto/README.md | 50 - .../get-proto/Reflect.getPrototypeOf.d.ts | 3 - .../get-proto/Reflect.getPrototypeOf.js | 4 - node_modules/get-proto/index.d.ts | 5 - node_modules/get-proto/index.js | 27 - node_modules/get-proto/package.json | 81 - node_modules/get-proto/test/index.js | 68 - node_modules/get-proto/tsconfig.json | 9 - node_modules/glob/LICENSE | 21 - node_modules/glob/README.md | 378 - node_modules/glob/common.js | 238 - node_modules/glob/glob.js | 790 - node_modules/glob/package.json | 55 - node_modules/glob/sync.js | 486 - node_modules/gopd/.eslintrc | 16 - node_modules/gopd/.github/FUNDING.yml | 12 - node_modules/gopd/CHANGELOG.md | 45 - node_modules/gopd/LICENSE | 21 - node_modules/gopd/README.md | 40 - node_modules/gopd/gOPD.d.ts | 1 - node_modules/gopd/gOPD.js | 4 - node_modules/gopd/index.d.ts | 5 - node_modules/gopd/index.js | 15 - node_modules/gopd/package.json | 77 - node_modules/gopd/test/index.js | 36 - node_modules/gopd/tsconfig.json | 9 - node_modules/graceful-fs/LICENSE | 15 - node_modules/graceful-fs/README.md | 143 - node_modules/graceful-fs/clone.js | 23 - node_modules/graceful-fs/graceful-fs.js | 448 - node_modules/graceful-fs/legacy-streams.js | 118 - node_modules/graceful-fs/package.json | 53 - node_modules/graceful-fs/polyfills.js | 355 - node_modules/has-symbols/.eslintrc | 11 - node_modules/has-symbols/.github/FUNDING.yml | 12 - node_modules/has-symbols/.nycrc | 9 - node_modules/has-symbols/CHANGELOG.md | 91 - node_modules/has-symbols/LICENSE | 21 - node_modules/has-symbols/README.md | 46 - node_modules/has-symbols/index.d.ts | 3 - node_modules/has-symbols/index.js | 14 - node_modules/has-symbols/package.json | 111 - node_modules/has-symbols/shams.d.ts | 3 - node_modules/has-symbols/shams.js | 45 - node_modules/has-symbols/test/index.js | 22 - .../has-symbols/test/shams/core-js.js | 29 - .../test/shams/get-own-property-symbols.js | 29 - node_modules/has-symbols/test/tests.js | 58 - node_modules/has-symbols/tsconfig.json | 10 - node_modules/has-tostringtag/.eslintrc | 5 - .../has-tostringtag/.github/FUNDING.yml | 12 - node_modules/has-tostringtag/.nycrc | 13 - node_modules/has-tostringtag/CHANGELOG.md | 42 - node_modules/has-tostringtag/LICENSE | 21 - node_modules/has-tostringtag/README.md | 46 - node_modules/has-tostringtag/index.d.ts | 3 - node_modules/has-tostringtag/index.js | 8 - node_modules/has-tostringtag/package.json | 108 - node_modules/has-tostringtag/shams.d.ts | 3 - node_modules/has-tostringtag/shams.js | 8 - node_modules/has-tostringtag/test/index.js | 21 - .../has-tostringtag/test/shams/core-js.js | 31 - .../test/shams/get-own-property-symbols.js | 30 - node_modules/has-tostringtag/test/tests.js | 15 - node_modules/has-tostringtag/tsconfig.json | 49 - node_modules/hasown/.github/FUNDING.yml | 12 - node_modules/hasown/.nycrc | 13 - node_modules/hasown/CHANGELOG.md | 51 - node_modules/hasown/LICENSE | 21 - node_modules/hasown/README.md | 40 - node_modules/hasown/eslint.config.mjs | 6 - node_modules/hasown/index.d.ts | 4 - node_modules/hasown/index.js | 8 - node_modules/hasown/package.json | 92 - node_modules/hasown/tsconfig.json | 6 - node_modules/https-proxy-agent/README.md | 137 - .../https-proxy-agent/dist/agent.d.ts | 30 - node_modules/https-proxy-agent/dist/agent.js | 177 - .../https-proxy-agent/dist/agent.js.map | 1 - .../https-proxy-agent/dist/index.d.ts | 23 - node_modules/https-proxy-agent/dist/index.js | 14 - .../https-proxy-agent/dist/index.js.map | 1 - .../dist/parse-proxy-response.d.ts | 7 - .../dist/parse-proxy-response.js | 66 - .../dist/parse-proxy-response.js.map | 1 - node_modules/https-proxy-agent/package.json | 56 - node_modules/import-fresh/index.d.ts | 30 - node_modules/import-fresh/index.js | 34 - node_modules/import-fresh/license | 9 - node_modules/import-fresh/package.json | 48 - node_modules/import-fresh/readme.md | 54 - node_modules/inflight/LICENSE | 15 - node_modules/inflight/README.md | 37 - node_modules/inflight/inflight.js | 54 - node_modules/inflight/package.json | 29 - node_modules/inherits/LICENSE | 16 - node_modules/inherits/README.md | 42 - node_modules/inherits/inherits.js | 9 - node_modules/inherits/inherits_browser.js | 27 - node_modules/inherits/package.json | 29 - node_modules/is-arrayish/.editorconfig | 18 - node_modules/is-arrayish/.istanbul.yml | 4 - node_modules/is-arrayish/.npmignore | 5 - node_modules/is-arrayish/.travis.yml | 17 - node_modules/is-arrayish/LICENSE | 21 - node_modules/is-arrayish/README.md | 16 - node_modules/is-arrayish/index.js | 10 - node_modules/is-arrayish/package.json | 34 - node_modules/is-buffer/LICENSE | 21 - node_modules/is-buffer/README.md | 53 - node_modules/is-buffer/index.js | 21 - node_modules/is-buffer/package.json | 51 - node_modules/is-buffer/test/basic.js | 24 - node_modules/is-extendable/LICENSE | 21 - node_modules/is-extendable/README.md | 72 - node_modules/is-extendable/index.js | 13 - node_modules/is-extendable/package.json | 51 - .../is-fullwidth-code-point/index.d.ts | 17 - node_modules/is-fullwidth-code-point/index.js | 50 - node_modules/is-fullwidth-code-point/license | 9 - .../is-fullwidth-code-point/package.json | 42 - .../is-fullwidth-code-point/readme.md | 39 - node_modules/is-plain-object/LICENSE | 21 - node_modules/is-plain-object/README.md | 104 - node_modules/is-plain-object/index.d.ts | 5 - node_modules/is-plain-object/index.js | 37 - node_modules/is-plain-object/package.json | 79 - node_modules/isobject/LICENSE | 21 - node_modules/isobject/README.md | 122 - node_modules/isobject/index.d.ts | 5 - node_modules/isobject/index.js | 12 - node_modules/isobject/package.json | 74 - node_modules/js-tokens/CHANGELOG.md | 151 - node_modules/js-tokens/LICENSE | 21 - node_modules/js-tokens/README.md | 240 - node_modules/js-tokens/index.js | 23 - node_modules/js-tokens/package.json | 30 - node_modules/js-yaml/LICENSE | 21 - node_modules/js-yaml/README.md | 247 - node_modules/js-yaml/bin/js-yaml.js | 126 - node_modules/js-yaml/dist/js-yaml.js | 3880 - node_modules/js-yaml/dist/js-yaml.min.js | 2 - node_modules/js-yaml/dist/js-yaml.mjs | 3856 - node_modules/js-yaml/index.js | 47 - node_modules/js-yaml/lib/common.js | 59 - node_modules/js-yaml/lib/dumper.js | 965 - node_modules/js-yaml/lib/exception.js | 55 - node_modules/js-yaml/lib/loader.js | 1733 - node_modules/js-yaml/lib/schema.js | 121 - node_modules/js-yaml/lib/schema/core.js | 11 - node_modules/js-yaml/lib/schema/default.js | 22 - node_modules/js-yaml/lib/schema/failsafe.js | 17 - node_modules/js-yaml/lib/schema/json.js | 19 - node_modules/js-yaml/lib/snippet.js | 101 - node_modules/js-yaml/lib/type.js | 66 - node_modules/js-yaml/lib/type/binary.js | 125 - node_modules/js-yaml/lib/type/bool.js | 35 - node_modules/js-yaml/lib/type/float.js | 97 - node_modules/js-yaml/lib/type/int.js | 156 - node_modules/js-yaml/lib/type/map.js | 8 - node_modules/js-yaml/lib/type/merge.js | 12 - node_modules/js-yaml/lib/type/null.js | 35 - node_modules/js-yaml/lib/type/omap.js | 44 - node_modules/js-yaml/lib/type/pairs.js | 53 - node_modules/js-yaml/lib/type/seq.js | 8 - node_modules/js-yaml/lib/type/set.js | 29 - node_modules/js-yaml/lib/type/str.js | 8 - node_modules/js-yaml/lib/type/timestamp.js | 88 - node_modules/js-yaml/package.json | 66 - .../CHANGELOG.md | 50 - .../json-parse-even-better-errors/LICENSE.md | 25 - .../json-parse-even-better-errors/README.md | 96 - .../json-parse-even-better-errors/index.js | 121 - .../package.json | 33 - node_modules/jsonfile/LICENSE | 15 - node_modules/jsonfile/README.md | 230 - node_modules/jsonfile/index.js | 88 - node_modules/jsonfile/package.json | 40 - node_modules/jsonfile/utils.js | 18 - node_modules/kind-of/LICENSE | 21 - node_modules/kind-of/README.md | 261 - node_modules/kind-of/index.js | 116 - node_modules/kind-of/package.json | 90 - node_modules/lazy-cache/LICENSE | 21 - node_modules/lazy-cache/README.md | 147 - node_modules/lazy-cache/index.js | 67 - node_modules/lazy-cache/package.json | 58 - node_modules/lines-and-columns/LICENSE | 21 - node_modules/lines-and-columns/README.md | 33 - .../lines-and-columns/build/index.d.ts | 13 - node_modules/lines-and-columns/build/index.js | 62 - node_modules/lines-and-columns/package.json | 49 - node_modules/math-intrinsics/.eslintrc | 16 - .../math-intrinsics/.github/FUNDING.yml | 12 - node_modules/math-intrinsics/CHANGELOG.md | 24 - node_modules/math-intrinsics/LICENSE | 21 - node_modules/math-intrinsics/README.md | 50 - node_modules/math-intrinsics/abs.d.ts | 1 - node_modules/math-intrinsics/abs.js | 4 - .../constants/maxArrayLength.d.ts | 3 - .../constants/maxArrayLength.js | 4 - .../constants/maxSafeInteger.d.ts | 3 - .../constants/maxSafeInteger.js | 5 - .../math-intrinsics/constants/maxValue.d.ts | 3 - .../math-intrinsics/constants/maxValue.js | 5 - node_modules/math-intrinsics/floor.d.ts | 1 - node_modules/math-intrinsics/floor.js | 4 - node_modules/math-intrinsics/isFinite.d.ts | 3 - node_modules/math-intrinsics/isFinite.js | 12 - node_modules/math-intrinsics/isInteger.d.ts | 3 - node_modules/math-intrinsics/isInteger.js | 16 - node_modules/math-intrinsics/isNaN.d.ts | 1 - node_modules/math-intrinsics/isNaN.js | 6 - .../math-intrinsics/isNegativeZero.d.ts | 3 - .../math-intrinsics/isNegativeZero.js | 6 - node_modules/math-intrinsics/max.d.ts | 1 - node_modules/math-intrinsics/max.js | 4 - node_modules/math-intrinsics/min.d.ts | 1 - node_modules/math-intrinsics/min.js | 4 - node_modules/math-intrinsics/mod.d.ts | 3 - node_modules/math-intrinsics/mod.js | 9 - node_modules/math-intrinsics/package.json | 86 - node_modules/math-intrinsics/pow.d.ts | 1 - node_modules/math-intrinsics/pow.js | 4 - node_modules/math-intrinsics/round.d.ts | 1 - node_modules/math-intrinsics/round.js | 4 - node_modules/math-intrinsics/sign.d.ts | 3 - node_modules/math-intrinsics/sign.js | 11 - node_modules/math-intrinsics/test/index.js | 192 - node_modules/math-intrinsics/tsconfig.json | 3 - node_modules/merge-deep/LICENSE | 21 - node_modules/merge-deep/README.md | 92 - node_modules/merge-deep/index.js | 63 - node_modules/merge-deep/package.json | 79 - node_modules/mime-db/HISTORY.md | 507 - node_modules/mime-db/LICENSE | 23 - node_modules/mime-db/README.md | 100 - node_modules/mime-db/db.json | 8519 -- node_modules/mime-db/index.js | 12 - node_modules/mime-db/package.json | 60 - node_modules/mime-types/HISTORY.md | 397 - node_modules/mime-types/LICENSE | 23 - node_modules/mime-types/README.md | 113 - node_modules/mime-types/index.js | 188 - node_modules/mime-types/package.json | 44 - node_modules/minimatch/LICENSE | 15 - node_modules/minimatch/README.md | 267 - node_modules/minimatch/minimatch.js | 1005 - node_modules/minimatch/package.json | 33 - node_modules/mitt/LICENSE | 21 - node_modules/mitt/README.md | 205 - node_modules/mitt/dist/mitt.js | 2 - node_modules/mitt/dist/mitt.js.map | 1 - node_modules/mitt/dist/mitt.mjs | 2 - node_modules/mitt/dist/mitt.mjs.map | 1 - node_modules/mitt/dist/mitt.umd.js | 2 - node_modules/mitt/dist/mitt.umd.js.map | 1 - node_modules/mitt/index.d.ts | 21 - node_modules/mitt/package.json | 85 - node_modules/mixin-object/LICENSE | 21 - node_modules/mixin-object/README.md | 75 - node_modules/mixin-object/index.js | 36 - .../mixin-object/node_modules/for-in/LICENSE | 21 - .../node_modules/for-in/README.md | 85 - .../mixin-object/node_modules/for-in/index.js | 16 - .../node_modules/for-in/package.json | 64 - node_modules/mixin-object/package.json | 61 - node_modules/ms/index.js | 162 - node_modules/ms/license.md | 21 - node_modules/ms/package.json | 38 - node_modules/ms/readme.md | 59 - node_modules/once/LICENSE | 15 - node_modules/once/README.md | 79 - node_modules/once/once.js | 42 - node_modules/once/package.json | 33 - node_modules/parent-module/index.js | 37 - node_modules/parent-module/license | 9 - node_modules/parent-module/package.json | 46 - node_modules/parent-module/readme.md | 67 - node_modules/parse-json/index.js | 54 - node_modules/parse-json/license | 9 - node_modules/parse-json/package.json | 45 - node_modules/parse-json/readme.md | 119 - node_modules/path-is-absolute/index.js | 20 - node_modules/path-is-absolute/license | 21 - node_modules/path-is-absolute/package.json | 43 - node_modules/path-is-absolute/readme.md | 59 - node_modules/picocolors/LICENSE | 15 - node_modules/picocolors/README.md | 21 - node_modules/picocolors/package.json | 25 - node_modules/picocolors/picocolors.browser.js | 4 - node_modules/picocolors/picocolors.d.ts | 5 - node_modules/picocolors/picocolors.js | 75 - node_modules/picocolors/types.d.ts | 51 - node_modules/progress/CHANGELOG.md | 115 - node_modules/progress/LICENSE | 22 - node_modules/progress/Makefile | 8 - node_modules/progress/Readme.md | 146 - node_modules/progress/index.js | 1 - node_modules/progress/lib/node-progress.js | 236 - node_modules/progress/package.json | 26 - node_modules/proxy-from-env/LICENSE | 20 - node_modules/proxy-from-env/README.md | 163 - node_modules/proxy-from-env/index.cjs | 105 - node_modules/proxy-from-env/index.js | 103 - node_modules/proxy-from-env/package.json | 43 - node_modules/pump/.github/FUNDING.yml | 2 - node_modules/pump/.travis.yml | 5 - node_modules/pump/LICENSE | 21 - node_modules/pump/README.md | 74 - node_modules/pump/SECURITY.md | 5 - node_modules/pump/empty.js | 1 - node_modules/pump/index.js | 86 - node_modules/pump/package.json | 30 - node_modules/pump/test-browser.js | 66 - node_modules/pump/test-node.js | 53 - node_modules/puppeteer-core/README.md | 64 - .../lib/es5-iife/puppeteer-core-browser.d.ts | 9822 --- .../lib/es5-iife/puppeteer-core-browser.js | 27343 ------- .../lib/puppeteer/api/BluetoothEmulation.d.ts | 96 - .../puppeteer/api/BluetoothEmulation.d.ts.map | 1 - .../lib/puppeteer/api/BluetoothEmulation.js | 7 - .../puppeteer/api/BluetoothEmulation.js.map | 1 - .../lib/puppeteer/api/Browser.d.ts | 555 - .../lib/puppeteer/api/Browser.d.ts.map | 1 - .../lib/puppeteer/api/Browser.js | 196 - .../lib/puppeteer/api/Browser.js.map | 1 - .../lib/puppeteer/api/BrowserContext.d.ts | 230 - .../lib/puppeteer/api/BrowserContext.d.ts.map | 1 - .../lib/puppeteer/api/BrowserContext.js | 183 - .../lib/puppeteer/api/BrowserContext.js.map | 1 - .../lib/puppeteer/api/CDPSession.d.ts | 116 - .../lib/puppeteer/api/CDPSession.d.ts.map | 1 - .../lib/puppeteer/api/CDPSession.js | 68 - .../lib/puppeteer/api/CDPSession.js.map | 1 - .../puppeteer/api/DeviceRequestPrompt.d.ts | 62 - .../api/DeviceRequestPrompt.d.ts.map | 1 - .../lib/puppeteer/api/DeviceRequestPrompt.js | 34 - .../puppeteer/api/DeviceRequestPrompt.js.map | 1 - .../lib/puppeteer/api/Dialog.d.ts | 72 - .../lib/puppeteer/api/Dialog.d.ts.map | 1 - .../lib/puppeteer/api/Dialog.js | 90 - .../lib/puppeteer/api/Dialog.js.map | 1 - .../lib/puppeteer/api/ElementHandle.d.ts | 705 - .../lib/puppeteer/api/ElementHandle.d.ts.map | 1 - .../lib/puppeteer/api/ElementHandle.js | 1406 - .../lib/puppeteer/api/ElementHandle.js.map | 1 - .../puppeteer/api/ElementHandleSymbol.d.ts | 10 - .../api/ElementHandleSymbol.d.ts.map | 1 - .../lib/puppeteer/api/ElementHandleSymbol.js | 10 - .../puppeteer/api/ElementHandleSymbol.js.map | 1 - .../lib/puppeteer/api/Environment.d.ts | 15 - .../lib/puppeteer/api/Environment.d.ts.map | 1 - .../lib/puppeteer/api/Environment.js | 7 - .../lib/puppeteer/api/Environment.js.map | 1 - .../lib/puppeteer/api/Extension.d.ts | 86 - .../lib/puppeteer/api/Extension.d.ts.map | 1 - .../lib/puppeteer/api/Extension.js | 84 - .../lib/puppeteer/api/Extension.js.map | 1 - .../lib/puppeteer/api/Frame.d.ts | 797 - .../lib/puppeteer/api/Frame.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/Frame.js | 904 - .../lib/puppeteer/api/Frame.js.map | 1 - .../lib/puppeteer/api/HTTPRequest.d.ts | 429 - .../lib/puppeteer/api/HTTPRequest.d.ts.map | 1 - .../lib/puppeteer/api/HTTPRequest.js | 461 - .../lib/puppeteer/api/HTTPRequest.js.map | 1 - .../lib/puppeteer/api/HTTPResponse.d.ts | 116 - .../lib/puppeteer/api/HTTPResponse.d.ts.map | 1 - .../lib/puppeteer/api/HTTPResponse.js | 56 - .../lib/puppeteer/api/HTTPResponse.js.map | 1 - .../lib/puppeteer/api/Input.d.ts | 486 - .../lib/puppeteer/api/Input.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/Input.js | 211 - .../lib/puppeteer/api/Input.js.map | 1 - .../lib/puppeteer/api/Issue.d.ts | 22 - .../lib/puppeteer/api/Issue.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/Issue.js | 7 - .../lib/puppeteer/api/Issue.js.map | 1 - .../lib/puppeteer/api/JSHandle.d.ts | 123 - .../lib/puppeteer/api/JSHandle.d.ts.map | 1 - .../lib/puppeteer/api/JSHandle.js | 227 - .../lib/puppeteer/api/JSHandle.js.map | 1 - .../lib/puppeteer/api/Page.d.ts | 2470 - .../lib/puppeteer/api/Page.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/Page.js | 1512 - .../lib/puppeteer/api/Page.js.map | 1 - .../lib/puppeteer/api/Realm.d.ts | 141 - .../lib/puppeteer/api/Realm.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/Realm.js | 72 - .../lib/puppeteer/api/Realm.js.map | 1 - .../lib/puppeteer/api/Target.d.ts | 80 - .../lib/puppeteer/api/Target.d.ts.map | 1 - .../lib/puppeteer/api/Target.js | 49 - .../lib/puppeteer/api/Target.js.map | 1 - .../lib/puppeteer/api/WebWorker.d.ts | 124 - .../lib/puppeteer/api/WebWorker.d.ts.map | 1 - .../lib/puppeteer/api/WebWorker.js | 120 - .../lib/puppeteer/api/WebWorker.js.map | 1 - .../puppeteer-core/lib/puppeteer/api/api.d.ts | 26 - .../lib/puppeteer/api/api.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/api/api.js | 23 - .../lib/puppeteer/api/api.js.map | 1 - .../lib/puppeteer/api/locators/locators.d.ts | 326 - .../puppeteer/api/locators/locators.d.ts.map | 1 - .../lib/puppeteer/api/locators/locators.js | 799 - .../puppeteer/api/locators/locators.js.map | 1 - .../lib/puppeteer/bidi/BidiOverCdp.d.ts | 12 - .../lib/puppeteer/bidi/BidiOverCdp.d.ts.map | 1 - .../lib/puppeteer/bidi/BidiOverCdp.js | 146 - .../lib/puppeteer/bidi/BidiOverCdp.js.map | 1 - .../puppeteer/bidi/BluetoothEmulation.d.ts | 18 - .../bidi/BluetoothEmulation.d.ts.map | 1 - .../lib/puppeteer/bidi/BluetoothEmulation.js | 38 - .../puppeteer/bidi/BluetoothEmulation.js.map | 1 - .../lib/puppeteer/bidi/Browser.d.ts | 70 - .../lib/puppeteer/bidi/Browser.d.ts.map | 1 - .../lib/puppeteer/bidi/Browser.js | 342 - .../lib/puppeteer/bidi/Browser.js.map | 1 - .../lib/puppeteer/bidi/BrowserConnector.d.ts | 18 - .../puppeteer/bidi/BrowserConnector.d.ts.map | 1 - .../lib/puppeteer/bidi/BrowserConnector.js | 84 - .../puppeteer/bidi/BrowserConnector.js.map | 1 - .../lib/puppeteer/bidi/BrowserContext.d.ts | 52 - .../puppeteer/bidi/BrowserContext.d.ts.map | 1 - .../lib/puppeteer/bidi/BrowserContext.js | 382 - .../lib/puppeteer/bidi/BrowserContext.js.map | 1 - .../lib/puppeteer/bidi/CDPSession.d.ts | 29 - .../lib/puppeteer/bidi/CDPSession.d.ts.map | 1 - .../lib/puppeteer/bidi/CDPSession.js | 90 - .../lib/puppeteer/bidi/CDPSession.js.map | 1 - .../lib/puppeteer/bidi/Connection.d.ts | 59 - .../lib/puppeteer/bidi/Connection.d.ts.map | 1 - .../lib/puppeteer/bidi/Connection.js | 160 - .../lib/puppeteer/bidi/Connection.js.map | 1 - .../lib/puppeteer/bidi/Deserializer.d.ts | 14 - .../lib/puppeteer/bidi/Deserializer.d.ts.map | 1 - .../lib/puppeteer/bidi/Deserializer.js | 80 - .../lib/puppeteer/bidi/Deserializer.js.map | 1 - .../puppeteer/bidi/DeviceRequestPrompt.d.ts | 27 - .../bidi/DeviceRequestPrompt.d.ts.map | 1 - .../lib/puppeteer/bidi/DeviceRequestPrompt.js | 85 - .../puppeteer/bidi/DeviceRequestPrompt.js.map | 1 - .../lib/puppeteer/bidi/Dialog.d.ts | 17 - .../lib/puppeteer/bidi/Dialog.d.ts.map | 1 - .../lib/puppeteer/bidi/Dialog.js | 24 - .../lib/puppeteer/bidi/Dialog.js.map | 1 - .../lib/puppeteer/bidi/ElementHandle.d.ts | 29 - .../lib/puppeteer/bidi/ElementHandle.d.ts.map | 1 - .../lib/puppeteer/bidi/ElementHandle.js | 219 - .../lib/puppeteer/bidi/ElementHandle.js.map | 1 - .../lib/puppeteer/bidi/ExposedFunction.d.ts | 19 - .../puppeteer/bidi/ExposedFunction.d.ts.map | 1 - .../lib/puppeteer/bidi/ExposedFunction.js | 261 - .../lib/puppeteer/bidi/ExposedFunction.js.map | 1 - .../lib/puppeteer/bidi/Frame.d.ts | 55 - .../lib/puppeteer/bidi/Frame.d.ts.map | 1 - .../lib/puppeteer/bidi/Frame.js | 469 - .../lib/puppeteer/bidi/Frame.js.map | 1 - .../lib/puppeteer/bidi/HTTPRequest.d.ts | 47 - .../lib/puppeteer/bidi/HTTPRequest.d.ts.map | 1 - .../lib/puppeteer/bidi/HTTPRequest.js | 253 - .../lib/puppeteer/bidi/HTTPRequest.js.map | 1 - .../lib/puppeteer/bidi/HTTPResponse.d.ts | 35 - .../lib/puppeteer/bidi/HTTPResponse.d.ts.map | 1 - .../lib/puppeteer/bidi/HTTPResponse.js | 169 - .../lib/puppeteer/bidi/HTTPResponse.js.map | 1 - .../lib/puppeteer/bidi/Input.d.ts | 78 - .../lib/puppeteer/bidi/Input.d.ts.map | 1 - .../lib/puppeteer/bidi/Input.js | 628 - .../lib/puppeteer/bidi/Input.js.map | 1 - .../lib/puppeteer/bidi/JSHandle.d.ts | 28 - .../lib/puppeteer/bidi/JSHandle.d.ts.map | 1 - .../lib/puppeteer/bidi/JSHandle.js | 71 - .../lib/puppeteer/bidi/JSHandle.js.map | 1 - .../lib/puppeteer/bidi/Page.d.ts | 154 - .../lib/puppeteer/bidi/Page.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/bidi/Page.js | 974 - .../lib/puppeteer/bidi/Page.js.map | 1 - .../lib/puppeteer/bidi/Realm.d.ts | 65 - .../lib/puppeteer/bidi/Realm.d.ts.map | 1 - .../lib/puppeteer/bidi/Realm.js | 340 - .../lib/puppeteer/bidi/Realm.js.map | 1 - .../lib/puppeteer/bidi/Serializer.d.ts | 14 - .../lib/puppeteer/bidi/Serializer.d.ts.map | 1 - .../lib/puppeteer/bidi/Serializer.js | 121 - .../lib/puppeteer/bidi/Serializer.js.map | 1 - .../lib/puppeteer/bidi/Target.d.ts | 72 - .../lib/puppeteer/bidi/Target.d.ts.map | 1 - .../lib/puppeteer/bidi/Target.js | 146 - .../lib/puppeteer/bidi/Target.js.map | 1 - .../lib/puppeteer/bidi/WebWorker.d.ts | 22 - .../lib/puppeteer/bidi/WebWorker.d.ts.map | 1 - .../lib/puppeteer/bidi/WebWorker.js | 34 - .../lib/puppeteer/bidi/WebWorker.js.map | 1 - .../lib/puppeteer/bidi/bidi.d.ts | 18 - .../lib/puppeteer/bidi/bidi.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/bidi/bidi.js | 18 - .../lib/puppeteer/bidi/bidi.js.map | 1 - .../lib/puppeteer/bidi/core/Browser.d.ts | 52 - .../lib/puppeteer/bidi/core/Browser.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Browser.js | 353 - .../lib/puppeteer/bidi/core/Browser.js.map | 1 - .../puppeteer/bidi/core/BrowsingContext.d.ts | 130 - .../bidi/core/BrowsingContext.d.ts.map | 1 - .../puppeteer/bidi/core/BrowsingContext.js | 628 - .../bidi/core/BrowsingContext.js.map | 1 - .../lib/puppeteer/bidi/core/Connection.d.ts | 26 - .../puppeteer/bidi/core/Connection.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Connection.js | 7 - .../lib/puppeteer/bidi/core/Connection.js.map | 1 - .../lib/puppeteer/bidi/core/Navigation.d.ts | 39 - .../puppeteer/bidi/core/Navigation.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Navigation.js | 168 - .../lib/puppeteer/bidi/core/Navigation.js.map | 1 - .../lib/puppeteer/bidi/core/Realm.d.ts | 87 - .../lib/puppeteer/bidi/core/Realm.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Realm.js | 302 - .../lib/puppeteer/bidi/core/Realm.js.map | 1 - .../lib/puppeteer/bidi/core/Request.d.ts | 54 - .../lib/puppeteer/bidi/core/Request.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Request.js | 308 - .../lib/puppeteer/bidi/core/Request.js.map | 1 - .../lib/puppeteer/bidi/core/Session.d.ts | 44 - .../lib/puppeteer/bidi/core/Session.d.ts.map | 1 - .../lib/puppeteer/bidi/core/Session.js | 178 - .../lib/puppeteer/bidi/core/Session.js.map | 1 - .../lib/puppeteer/bidi/core/UserContext.d.ts | 49 - .../puppeteer/bidi/core/UserContext.d.ts.map | 1 - .../lib/puppeteer/bidi/core/UserContext.js | 207 - .../puppeteer/bidi/core/UserContext.js.map | 1 - .../lib/puppeteer/bidi/core/UserPrompt.d.ts | 40 - .../puppeteer/bidi/core/UserPrompt.d.ts.map | 1 - .../lib/puppeteer/bidi/core/UserPrompt.js | 132 - .../lib/puppeteer/bidi/core/UserPrompt.js.map | 1 - .../lib/puppeteer/bidi/core/core.d.ts | 15 - .../lib/puppeteer/bidi/core/core.d.ts.map | 1 - .../lib/puppeteer/bidi/core/core.js | 14 - .../lib/puppeteer/bidi/core/core.js.map | 1 - .../lib/puppeteer/bidi/util.d.ts | 47 - .../lib/puppeteer/bidi/util.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/bidi/util.js | 135 - .../lib/puppeteer/bidi/util.js.map | 1 - .../lib/puppeteer/cdp/Accessibility.d.ts | 225 - .../lib/puppeteer/cdp/Accessibility.d.ts.map | 1 - .../lib/puppeteer/cdp/Accessibility.js | 591 - .../lib/puppeteer/cdp/Accessibility.js.map | 1 - .../lib/puppeteer/cdp/Binding.d.ts | 19 - .../lib/puppeteer/cdp/Binding.d.ts.map | 1 - .../lib/puppeteer/cdp/Binding.js | 162 - .../lib/puppeteer/cdp/Binding.js.map | 1 - .../lib/puppeteer/cdp/BluetoothEmulation.d.ts | 18 - .../puppeteer/cdp/BluetoothEmulation.d.ts.map | 1 - .../lib/puppeteer/cdp/BluetoothEmulation.js | 26 - .../puppeteer/cdp/BluetoothEmulation.js.map | 1 - .../lib/puppeteer/cdp/Browser.d.ts | 63 - .../lib/puppeteer/cdp/Browser.d.ts.map | 1 - .../lib/puppeteer/cdp/Browser.js | 390 - .../lib/puppeteer/cdp/Browser.js.map | 1 - .../lib/puppeteer/cdp/BrowserConnector.d.ts | 16 - .../puppeteer/cdp/BrowserConnector.d.ts.map | 1 - .../lib/puppeteer/cdp/BrowserConnector.js | 26 - .../lib/puppeteer/cdp/BrowserConnector.js.map | 1 - .../lib/puppeteer/cdp/BrowserContext.d.ts | 37 - .../lib/puppeteer/cdp/BrowserContext.d.ts.map | 1 - .../lib/puppeteer/cdp/BrowserContext.js | 190 - .../lib/puppeteer/cdp/BrowserContext.js.map | 1 - .../lib/puppeteer/cdp/CdpIssue.d.ts | 17 - .../lib/puppeteer/cdp/CdpIssue.d.ts.map | 1 - .../lib/puppeteer/cdp/CdpIssue.js | 23 - .../lib/puppeteer/cdp/CdpIssue.js.map | 1 - .../lib/puppeteer/cdp/CdpPreloadScript.d.ts | 18 - .../puppeteer/cdp/CdpPreloadScript.d.ts.map | 1 - .../lib/puppeteer/cdp/CdpPreloadScript.js | 39 - .../lib/puppeteer/cdp/CdpPreloadScript.js.map | 1 - .../lib/puppeteer/cdp/CdpSession.d.ts | 71 - .../lib/puppeteer/cdp/CdpSession.d.ts.map | 1 - .../lib/puppeteer/cdp/CdpSession.js | 144 - .../lib/puppeteer/cdp/CdpSession.js.map | 1 - .../lib/puppeteer/cdp/Connection.d.ts | 92 - .../lib/puppeteer/cdp/Connection.d.ts.map | 1 - .../lib/puppeteer/cdp/Connection.js | 268 - .../lib/puppeteer/cdp/Connection.js.map | 1 - .../lib/puppeteer/cdp/Coverage.d.ts | 195 - .../lib/puppeteer/cdp/Coverage.d.ts.map | 1 - .../lib/puppeteer/cdp/Coverage.js | 372 - .../lib/puppeteer/cdp/Coverage.js.map | 1 - .../puppeteer/cdp/DeviceRequestPrompt.d.ts | 30 - .../cdp/DeviceRequestPrompt.d.ts.map | 1 - .../lib/puppeteer/cdp/DeviceRequestPrompt.js | 151 - .../puppeteer/cdp/DeviceRequestPrompt.js.map | 1 - .../lib/puppeteer/cdp/Dialog.d.ts | 20 - .../lib/puppeteer/cdp/Dialog.d.ts.map | 1 - .../lib/puppeteer/cdp/Dialog.js | 23 - .../lib/puppeteer/cdp/Dialog.js.map | 1 - .../lib/puppeteer/cdp/ElementHandle.d.ts | 35 - .../lib/puppeteer/cdp/ElementHandle.d.ts.map | 1 - .../lib/puppeteer/cdp/ElementHandle.js | 207 - .../lib/puppeteer/cdp/ElementHandle.js.map | 1 - .../lib/puppeteer/cdp/EmulationManager.d.ts | 62 - .../puppeteer/cdp/EmulationManager.d.ts.map | 1 - .../lib/puppeteer/cdp/EmulationManager.js | 458 - .../lib/puppeteer/cdp/EmulationManager.js.map | 1 - .../lib/puppeteer/cdp/ExecutionContext.d.ts | 121 - .../puppeteer/cdp/ExecutionContext.d.ts.map | 1 - .../lib/puppeteer/cdp/ExecutionContext.js | 458 - .../lib/puppeteer/cdp/ExecutionContext.js.map | 1 - .../lib/puppeteer/cdp/Extension.d.ts | 16 - .../lib/puppeteer/cdp/Extension.d.ts.map | 1 - .../lib/puppeteer/cdp/Extension.js | 75 - .../lib/puppeteer/cdp/Extension.js.map | 1 - .../lib/puppeteer/cdp/ExtensionTransport.d.ts | 28 - .../puppeteer/cdp/ExtensionTransport.d.ts.map | 1 - .../lib/puppeteer/cdp/ExtensionTransport.js | 175 - .../puppeteer/cdp/ExtensionTransport.js.map | 1 - .../lib/puppeteer/cdp/Frame.d.ts | 91 - .../lib/puppeteer/cdp/Frame.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/Frame.js | 373 - .../lib/puppeteer/cdp/Frame.js.map | 1 - .../lib/puppeteer/cdp/FrameManager.d.ts | 51 - .../lib/puppeteer/cdp/FrameManager.d.ts.map | 1 - .../lib/puppeteer/cdp/FrameManager.js | 495 - .../lib/puppeteer/cdp/FrameManager.js.map | 1 - .../lib/puppeteer/cdp/FrameManagerEvents.d.ts | 45 - .../puppeteer/cdp/FrameManagerEvents.d.ts.map | 1 - .../lib/puppeteer/cdp/FrameManagerEvents.js | 24 - .../puppeteer/cdp/FrameManagerEvents.js.map | 1 - .../lib/puppeteer/cdp/FrameTree.d.ts | 29 - .../lib/puppeteer/cdp/FrameTree.d.ts.map | 1 - .../lib/puppeteer/cdp/FrameTree.js | 91 - .../lib/puppeteer/cdp/FrameTree.js.map | 1 - .../lib/puppeteer/cdp/HTTPRequest.d.ts | 71 - .../lib/puppeteer/cdp/HTTPRequest.d.ts.map | 1 - .../lib/puppeteer/cdp/HTTPRequest.js | 195 - .../lib/puppeteer/cdp/HTTPRequest.js.map | 1 - .../lib/puppeteer/cdp/HTTPResponse.d.ts | 31 - .../lib/puppeteer/cdp/HTTPResponse.d.ts.map | 1 - .../lib/puppeteer/cdp/HTTPResponse.js | 127 - .../lib/puppeteer/cdp/HTTPResponse.js.map | 1 - .../lib/puppeteer/cdp/Input.d.ts | 68 - .../lib/puppeteer/cdp/Input.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/Input.js | 497 - .../lib/puppeteer/cdp/Input.js.map | 1 - .../lib/puppeteer/cdp/IsolatedWorld.d.ts | 73 - .../lib/puppeteer/cdp/IsolatedWorld.d.ts.map | 1 - .../lib/puppeteer/cdp/IsolatedWorld.js | 187 - .../lib/puppeteer/cdp/IsolatedWorld.js.map | 1 - .../lib/puppeteer/cdp/IsolatedWorlds.d.ts | 20 - .../lib/puppeteer/cdp/IsolatedWorlds.d.ts.map | 1 - .../lib/puppeteer/cdp/IsolatedWorlds.js | 20 - .../lib/puppeteer/cdp/IsolatedWorlds.js.map | 1 - .../lib/puppeteer/cdp/JSHandle.d.ts | 36 - .../lib/puppeteer/cdp/JSHandle.d.ts.map | 1 - .../lib/puppeteer/cdp/JSHandle.js | 101 - .../lib/puppeteer/cdp/JSHandle.js.map | 1 - .../lib/puppeteer/cdp/LifecycleWatcher.d.ts | 49 - .../puppeteer/cdp/LifecycleWatcher.d.ts.map | 1 - .../lib/puppeteer/cdp/LifecycleWatcher.js | 174 - .../lib/puppeteer/cdp/LifecycleWatcher.js.map | 1 - .../puppeteer/cdp/NetworkEventManager.d.ts | 59 - .../cdp/NetworkEventManager.d.ts.map | 1 - .../lib/puppeteer/cdp/NetworkEventManager.js | 162 - .../puppeteer/cdp/NetworkEventManager.js.map | 1 - .../lib/puppeteer/cdp/NetworkManager.d.ts | 66 - .../lib/puppeteer/cdp/NetworkManager.d.ts.map | 1 - .../lib/puppeteer/cdp/NetworkManager.js | 601 - .../lib/puppeteer/cdp/NetworkManager.js.map | 1 - .../lib/puppeteer/cdp/Page.d.ts | 156 - .../lib/puppeteer/cdp/Page.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/Page.js | 1030 - .../lib/puppeteer/cdp/Page.js.map | 1 - .../cdp/PredefinedNetworkConditions.d.ts | 38 - .../cdp/PredefinedNetworkConditions.d.ts.map | 1 - .../cdp/PredefinedNetworkConditions.js | 69 - .../cdp/PredefinedNetworkConditions.js.map | 1 - .../lib/puppeteer/cdp/Target.d.ts | 87 - .../lib/puppeteer/cdp/Target.d.ts.map | 1 - .../lib/puppeteer/cdp/Target.js | 252 - .../lib/puppeteer/cdp/Target.js.map | 1 - .../lib/puppeteer/cdp/TargetManageEvents.d.ts | 34 - .../puppeteer/cdp/TargetManageEvents.d.ts.map | 1 - .../lib/puppeteer/cdp/TargetManageEvents.js | 7 - .../puppeteer/cdp/TargetManageEvents.js.map | 1 - .../lib/puppeteer/cdp/TargetManager.d.ts | 43 - .../lib/puppeteer/cdp/TargetManager.d.ts.map | 1 - .../lib/puppeteer/cdp/TargetManager.js | 414 - .../lib/puppeteer/cdp/TargetManager.js.map | 1 - .../lib/puppeteer/cdp/Tracing.d.ts | 55 - .../lib/puppeteer/cdp/Tracing.d.ts.map | 1 - .../lib/puppeteer/cdp/Tracing.js | 110 - .../lib/puppeteer/cdp/Tracing.js.map | 1 - .../lib/puppeteer/cdp/WebMCP.d.ts | 225 - .../lib/puppeteer/cdp/WebMCP.d.ts.map | 1 - .../lib/puppeteer/cdp/WebMCP.js | 275 - .../lib/puppeteer/cdp/WebMCP.js.map | 1 - .../lib/puppeteer/cdp/WebWorker.d.ts | 28 - .../lib/puppeteer/cdp/WebWorker.d.ts.map | 1 - .../lib/puppeteer/cdp/WebWorker.js | 98 - .../lib/puppeteer/cdp/WebWorker.js.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/cdp.d.ts | 44 - .../lib/puppeteer/cdp/cdp.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/cdp.js | 44 - .../lib/puppeteer/cdp/cdp.js.map | 1 - .../lib/puppeteer/cdp/utils.d.ts | 49 - .../lib/puppeteer/cdp/utils.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/cdp/utils.js | 250 - .../lib/puppeteer/cdp/utils.js.map | 1 - .../puppeteer/common/AriaQueryHandler.d.ts | 17 - .../common/AriaQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/AriaQueryHandler.js | 54 - .../puppeteer/common/AriaQueryHandler.js.map | 1 - .../puppeteer/common/BrowserConnector.d.ts | 20 - .../common/BrowserConnector.d.ts.map | 1 - .../lib/puppeteer/common/BrowserConnector.js | 139 - .../puppeteer/common/BrowserConnector.js.map | 1 - .../common/BrowserWebSocketTransport.d.ts | 19 - .../common/BrowserWebSocketTransport.d.ts.map | 1 - .../common/BrowserWebSocketTransport.js | 40 - .../common/BrowserWebSocketTransport.js.map | 1 - .../lib/puppeteer/common/CSSQueryHandler.d.ts | 15 - .../puppeteer/common/CSSQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/CSSQueryHandler.js | 18 - .../puppeteer/common/CSSQueryHandler.js.map | 1 - .../puppeteer/common/CallbackRegistry.d.ts | 41 - .../common/CallbackRegistry.d.ts.map | 1 - .../lib/puppeteer/common/CallbackRegistry.js | 136 - .../puppeteer/common/CallbackRegistry.js.map | 1 - .../lib/puppeteer/common/Configuration.d.ts | 193 - .../puppeteer/common/Configuration.d.ts.map | 1 - .../lib/puppeteer/common/Configuration.js | 7 - .../lib/puppeteer/common/Configuration.js.map | 1 - .../lib/puppeteer/common/ConnectOptions.d.ts | 203 - .../puppeteer/common/ConnectOptions.d.ts.map | 1 - .../lib/puppeteer/common/ConnectOptions.js | 7 - .../puppeteer/common/ConnectOptions.js.map | 1 - .../puppeteer/common/ConnectionTransport.d.ts | 15 - .../common/ConnectionTransport.d.ts.map | 1 - .../puppeteer/common/ConnectionTransport.js | 7 - .../common/ConnectionTransport.js.map | 1 - .../lib/puppeteer/common/ConsoleMessage.d.ts | 74 - .../puppeteer/common/ConsoleMessage.d.ts.map | 1 - .../lib/puppeteer/common/ConsoleMessage.js | 78 - .../puppeteer/common/ConsoleMessage.js.map | 1 - .../lib/puppeteer/common/Cookie.d.ts | 226 - .../lib/puppeteer/common/Cookie.d.ts.map | 1 - .../lib/puppeteer/common/Cookie.js | 7 - .../lib/puppeteer/common/Cookie.js.map | 1 - .../puppeteer/common/CustomQueryHandler.d.ts | 75 - .../common/CustomQueryHandler.d.ts.map | 1 - .../puppeteer/common/CustomQueryHandler.js | 114 - .../common/CustomQueryHandler.js.map | 1 - .../lib/puppeteer/common/Debug.d.ts | 61 - .../lib/puppeteer/common/Debug.d.ts.map | 1 - .../lib/puppeteer/common/Debug.js | 109 - .../lib/puppeteer/common/Debug.js.map | 1 - .../lib/puppeteer/common/Device.d.ts | 34 - .../lib/puppeteer/common/Device.d.ts.map | 1 - .../lib/puppeteer/common/Device.js | 1604 - .../lib/puppeteer/common/Device.js.map | 1 - .../puppeteer/common/DownloadBehavior.d.ts | 30 - .../common/DownloadBehavior.d.ts.map | 1 - .../lib/puppeteer/common/DownloadBehavior.js | 7 - .../puppeteer/common/DownloadBehavior.js.map | 1 - .../lib/puppeteer/common/Errors.d.ts | 80 - .../lib/puppeteer/common/Errors.d.ts.map | 1 - .../lib/puppeteer/common/Errors.js | 94 - .../lib/puppeteer/common/Errors.js.map | 1 - .../lib/puppeteer/common/EventEmitter.d.ts | 106 - .../puppeteer/common/EventEmitter.d.ts.map | 1 - .../lib/puppeteer/common/EventEmitter.js | 135 - .../lib/puppeteer/common/EventEmitter.js.map | 1 - .../lib/puppeteer/common/FileChooser.d.ts | 56 - .../lib/puppeteer/common/FileChooser.d.ts.map | 1 - .../lib/puppeteer/common/FileChooser.js | 75 - .../lib/puppeteer/common/FileChooser.js.map | 1 - .../lib/puppeteer/common/GetQueryHandler.d.ts | 16 - .../puppeteer/common/GetQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/GetQueryHandler.js | 70 - .../puppeteer/common/GetQueryHandler.js.map | 1 - .../lib/puppeteer/common/HandleIterator.d.ts | 12 - .../puppeteer/common/HandleIterator.d.ts.map | 1 - .../lib/puppeteer/common/HandleIterator.js | 142 - .../puppeteer/common/HandleIterator.js.map | 1 - .../lib/puppeteer/common/LazyArg.d.ts | 23 - .../lib/puppeteer/common/LazyArg.d.ts.map | 1 - .../lib/puppeteer/common/LazyArg.js | 23 - .../lib/puppeteer/common/LazyArg.js.map | 1 - .../common/NetworkManagerEvents.d.ts | 32 - .../common/NetworkManagerEvents.d.ts.map | 1 - .../puppeteer/common/NetworkManagerEvents.js | 21 - .../common/NetworkManagerEvents.js.map | 1 - .../lib/puppeteer/common/PDFOptions.d.ts | 203 - .../lib/puppeteer/common/PDFOptions.d.ts.map | 1 - .../lib/puppeteer/common/PDFOptions.js | 58 - .../lib/puppeteer/common/PDFOptions.js.map | 1 - .../lib/puppeteer/common/PQueryHandler.d.ts | 14 - .../puppeteer/common/PQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/PQueryHandler.js | 18 - .../lib/puppeteer/common/PQueryHandler.js.map | 1 - .../lib/puppeteer/common/PSelectorParser.d.ts | 16 - .../puppeteer/common/PSelectorParser.d.ts.map | 1 - .../lib/puppeteer/common/PSelectorParser.js | 100 - .../puppeteer/common/PSelectorParser.js.map | 1 - .../puppeteer/common/PierceQueryHandler.d.ts | 15 - .../common/PierceQueryHandler.d.ts.map | 1 - .../puppeteer/common/PierceQueryHandler.js | 18 - .../common/PierceQueryHandler.js.map | 1 - .../lib/puppeteer/common/Puppeteer.d.ts | 94 - .../lib/puppeteer/common/Puppeteer.d.ts.map | 1 - .../lib/puppeteer/common/Puppeteer.js | 98 - .../lib/puppeteer/common/Puppeteer.js.map | 1 - .../lib/puppeteer/common/QueryHandler.d.ts | 57 - .../puppeteer/common/QueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/QueryHandler.js | 225 - .../lib/puppeteer/common/QueryHandler.js.map | 1 - .../lib/puppeteer/common/ScriptInjector.d.ts | 14 - .../puppeteer/common/ScriptInjector.d.ts.map | 1 - .../lib/puppeteer/common/ScriptInjector.js | 51 - .../puppeteer/common/ScriptInjector.js.map | 1 - .../lib/puppeteer/common/SecurityDetails.d.ts | 46 - .../puppeteer/common/SecurityDetails.d.ts.map | 1 - .../lib/puppeteer/common/SecurityDetails.js | 69 - .../puppeteer/common/SecurityDetails.js.map | 1 - .../puppeteer/common/SupportedBrowser.d.ts | 12 - .../common/SupportedBrowser.d.ts.map | 1 - .../lib/puppeteer/common/SupportedBrowser.js | 7 - .../puppeteer/common/SupportedBrowser.js.map | 1 - .../lib/puppeteer/common/TaskQueue.d.ts | 14 - .../lib/puppeteer/common/TaskQueue.d.ts.map | 1 - .../lib/puppeteer/common/TaskQueue.js | 24 - .../lib/puppeteer/common/TaskQueue.js.map | 1 - .../puppeteer/common/TextQueryHandler.d.ts | 13 - .../common/TextQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/TextQueryHandler.js | 15 - .../puppeteer/common/TextQueryHandler.js.map | 1 - .../lib/puppeteer/common/TimeoutSettings.d.ts | 17 - .../puppeteer/common/TimeoutSettings.d.ts.map | 1 - .../lib/puppeteer/common/TimeoutSettings.js | 39 - .../puppeteer/common/TimeoutSettings.js.map | 1 - .../puppeteer/common/USKeyboardLayout.d.ts | 30 - .../common/USKeyboardLayout.d.ts.map | 1 - .../lib/puppeteer/common/USKeyboardLayout.js | 394 - .../puppeteer/common/USKeyboardLayout.js.map | 1 - .../lib/puppeteer/common/Viewport.d.ts | 50 - .../lib/puppeteer/common/Viewport.d.ts.map | 1 - .../lib/puppeteer/common/Viewport.js | 7 - .../lib/puppeteer/common/Viewport.js.map | 1 - .../lib/puppeteer/common/WaitTask.d.ts | 42 - .../lib/puppeteer/common/WaitTask.d.ts.map | 1 - .../lib/puppeteer/common/WaitTask.js | 197 - .../lib/puppeteer/common/WaitTask.js.map | 1 - .../puppeteer/common/XPathQueryHandler.d.ts | 14 - .../common/XPathQueryHandler.d.ts.map | 1 - .../lib/puppeteer/common/XPathQueryHandler.js | 21 - .../puppeteer/common/XPathQueryHandler.js.map | 1 - .../lib/puppeteer/common/common.d.ts | 43 - .../lib/puppeteer/common/common.d.ts.map | 1 - .../lib/puppeteer/common/common.js | 35 - .../lib/puppeteer/common/common.js.map | 1 - .../lib/puppeteer/common/types.d.ts | 87 - .../lib/puppeteer/common/types.d.ts.map | 1 - .../lib/puppeteer/common/types.js | 7 - .../lib/puppeteer/common/types.js.map | 1 - .../lib/puppeteer/common/util.d.ts | 124 - .../lib/puppeteer/common/util.d.ts.map | 1 - .../lib/puppeteer/common/util.js | 375 - .../lib/puppeteer/common/util.js.map | 1 - .../lib/puppeteer/environment.d.ts | 25 - .../lib/puppeteer/environment.d.ts.map | 1 - .../lib/puppeteer/environment.js | 24 - .../lib/puppeteer/environment.js.map | 1 - .../lib/puppeteer/generated/injected.d.ts | 9 - .../lib/puppeteer/generated/injected.d.ts.map | 1 - .../lib/puppeteer/generated/injected.js | 9 - .../lib/puppeteer/generated/injected.js.map | 1 - .../lib/puppeteer/index-browser.d.ts | 13 - .../lib/puppeteer/index-browser.d.ts.map | 1 - .../lib/puppeteer/index-browser.js | 11 - .../lib/puppeteer/index-browser.js.map | 1 - .../puppeteer-core/lib/puppeteer/index.d.ts | 8 - .../lib/puppeteer/index.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/index.js | 8 - .../puppeteer-core/lib/puppeteer/index.js.map | 1 - .../puppeteer/injected/ARIAQuerySelector.d.ts | 26 - .../injected/ARIAQuerySelector.d.ts.map | 1 - .../puppeteer/injected/ARIAQuerySelector.js | 20 - .../injected/ARIAQuerySelector.js.map | 1 - .../lib/puppeteer/injected/CSSSelector.d.ts | 14 - .../puppeteer/injected/CSSSelector.d.ts.map | 1 - .../lib/puppeteer/injected/CSSSelector.js | 20 - .../lib/puppeteer/injected/CSSSelector.js.map | 1 - .../injected/CustomQuerySelector.d.ts | 30 - .../injected/CustomQuerySelector.d.ts.map | 1 - .../puppeteer/injected/CustomQuerySelector.js | 50 - .../injected/CustomQuerySelector.js.map | 1 - .../puppeteer/injected/PQuerySelector.d.ts | 49 - .../injected/PQuerySelector.d.ts.map | 1 - .../lib/puppeteer/injected/PQuerySelector.js | 216 - .../puppeteer/injected/PQuerySelector.js.map | 1 - .../injected/PierceQuerySelector.d.ts | 14 - .../injected/PierceQuerySelector.d.ts.map | 1 - .../puppeteer/injected/PierceQuerySelector.js | 58 - .../injected/PierceQuerySelector.js.map | 1 - .../lib/puppeteer/injected/Poller.d.ts | 44 - .../lib/puppeteer/injected/Poller.d.ts.map | 1 - .../lib/puppeteer/injected/Poller.js | 140 - .../lib/puppeteer/injected/Poller.js.map | 1 - .../lib/puppeteer/injected/TextContent.d.ts | 29 - .../puppeteer/injected/TextContent.d.ts.map | 1 - .../lib/puppeteer/injected/TextContent.js | 117 - .../lib/puppeteer/injected/TextContent.js.map | 1 - .../puppeteer/injected/TextQuerySelector.d.ts | 12 - .../injected/TextQuerySelector.d.ts.map | 1 - .../puppeteer/injected/TextQuerySelector.js | 39 - .../injected/TextQuerySelector.js.map | 1 - .../injected/XPathQuerySelector.d.ts | 10 - .../injected/XPathQuerySelector.d.ts.map | 1 - .../puppeteer/injected/XPathQuerySelector.js | 28 - .../injected/XPathQuerySelector.js.map | 1 - .../lib/puppeteer/injected/injected.d.ts | 51 - .../lib/puppeteer/injected/injected.d.ts.map | 1 - .../lib/puppeteer/injected/injected.js | 42 - .../lib/puppeteer/injected/injected.js.map | 1 - .../lib/puppeteer/injected/util.d.ts | 13 - .../lib/puppeteer/injected/util.d.ts.map | 1 - .../lib/puppeteer/injected/util.js | 60 - .../lib/puppeteer/injected/util.js.map | 1 - .../lib/puppeteer/node/BrowserLauncher.d.ts | 104 - .../puppeteer/node/BrowserLauncher.d.ts.map | 1 - .../lib/puppeteer/node/BrowserLauncher.js | 324 - .../lib/puppeteer/node/BrowserLauncher.js.map | 1 - .../lib/puppeteer/node/ChromeLauncher.d.ts | 49 - .../puppeteer/node/ChromeLauncher.d.ts.map | 1 - .../lib/puppeteer/node/ChromeLauncher.js | 273 - .../lib/puppeteer/node/ChromeLauncher.js.map | 1 - .../lib/puppeteer/node/FirefoxLauncher.d.ts | 28 - .../puppeteer/node/FirefoxLauncher.d.ts.map | 1 - .../lib/puppeteer/node/FirefoxLauncher.js | 167 - .../lib/puppeteer/node/FirefoxLauncher.js.map | 1 - .../lib/puppeteer/node/LaunchOptions.d.ts | 142 - .../lib/puppeteer/node/LaunchOptions.d.ts.map | 1 - .../lib/puppeteer/node/LaunchOptions.js | 22 - .../lib/puppeteer/node/LaunchOptions.js.map | 1 - .../node/NodeWebSocketTransport.d.ts | 20 - .../node/NodeWebSocketTransport.d.ts.map | 1 - .../puppeteer/node/NodeWebSocketTransport.js | 56 - .../node/NodeWebSocketTransport.js.map | 1 - .../lib/puppeteer/node/PipeTransport.d.ts | 18 - .../lib/puppeteer/node/PipeTransport.d.ts.map | 1 - .../lib/puppeteer/node/PipeTransport.js | 72 - .../lib/puppeteer/node/PipeTransport.js.map | 1 - .../lib/puppeteer/node/PuppeteerNode.d.ts | 153 - .../lib/puppeteer/node/PuppeteerNode.d.ts.map | 1 - .../lib/puppeteer/node/PuppeteerNode.js | 254 - .../lib/puppeteer/node/PuppeteerNode.js.map | 1 - .../lib/puppeteer/node/ScreenRecorder.d.ts | 47 - .../puppeteer/node/ScreenRecorder.d.ts.map | 1 - .../lib/puppeteer/node/ScreenRecorder.js | 280 - .../lib/puppeteer/node/ScreenRecorder.js.map | 1 - .../lib/puppeteer/node/node.d.ts | 13 - .../lib/puppeteer/node/node.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/node/node.js | 12 - .../lib/puppeteer/node/node.js.map | 1 - .../lib/puppeteer/node/util/fs.d.ts | 14 - .../lib/puppeteer/node/util/fs.d.ts.map | 1 - .../lib/puppeteer/node/util/fs.js | 24 - .../lib/puppeteer/node/util/fs.js.map | 1 - .../lib/puppeteer/puppeteer-core-browser.d.ts | 18 - .../puppeteer/puppeteer-core-browser.d.ts.map | 1 - .../lib/puppeteer/puppeteer-core-browser.js | 20 - .../puppeteer/puppeteer-core-browser.js.map | 1 - .../lib/puppeteer/puppeteer-core.d.ts | 34 - .../lib/puppeteer/puppeteer-core.d.ts.map | 1 - .../lib/puppeteer/puppeteer-core.js | 41 - .../lib/puppeteer/puppeteer-core.js.map | 1 - .../lib/puppeteer/revisions.d.ts | 14 - .../lib/puppeteer/revisions.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/revisions.js | 14 - .../lib/puppeteer/revisions.js.map | 1 - .../lib/puppeteer/util/AsyncIterableUtil.d.ts | 16 - .../puppeteer/util/AsyncIterableUtil.d.ts.map | 1 - .../lib/puppeteer/util/AsyncIterableUtil.js | 29 - .../puppeteer/util/AsyncIterableUtil.js.map | 1 - .../lib/puppeteer/util/Deferred.d.ts | 35 - .../lib/puppeteer/util/Deferred.d.ts.map | 1 - .../lib/puppeteer/util/Deferred.js | 105 - .../lib/puppeteer/util/Deferred.js.map | 1 - .../lib/puppeteer/util/ErrorLike.d.ts | 36 - .../lib/puppeteer/util/ErrorLike.d.ts.map | 1 - .../lib/puppeteer/util/ErrorLike.js | 41 - .../lib/puppeteer/util/ErrorLike.js.map | 1 - .../lib/puppeteer/util/Function.d.ts | 34 - .../lib/puppeteer/util/Function.d.ts.map | 1 - .../lib/puppeteer/util/Function.js | 70 - .../lib/puppeteer/util/Function.js.map | 1 - .../lib/puppeteer/util/Mutex.d.ts | 17 - .../lib/puppeteer/util/Mutex.d.ts.map | 1 - .../lib/puppeteer/util/Mutex.js | 46 - .../lib/puppeteer/util/Mutex.js.map | 1 - .../lib/puppeteer/util/assert.d.ts | 14 - .../lib/puppeteer/util/assert.d.ts.map | 1 - .../lib/puppeteer/util/assert.js | 18 - .../lib/puppeteer/util/assert.js.map | 1 - .../lib/puppeteer/util/decorators.d.ts | 27 - .../lib/puppeteer/util/decorators.d.ts.map | 1 - .../lib/puppeteer/util/decorators.js | 232 - .../lib/puppeteer/util/decorators.js.map | 1 - .../lib/puppeteer/util/disposable.d.ts | 218 - .../lib/puppeteer/util/disposable.d.ts.map | 1 - .../lib/puppeteer/util/disposable.js | 342 - .../lib/puppeteer/util/disposable.js.map | 1 - .../lib/puppeteer/util/encoding.d.ts | 22 - .../lib/puppeteer/util/encoding.d.ts.map | 1 - .../lib/puppeteer/util/encoding.js | 63 - .../lib/puppeteer/util/encoding.js.map | 1 - .../lib/puppeteer/util/httpUtils.d.ts | 13 - .../lib/puppeteer/util/httpUtils.d.ts.map | 1 - .../lib/puppeteer/util/httpUtils.js | 24 - .../lib/puppeteer/util/httpUtils.js.map | 1 - .../util/incremental-id-generator.d.ts | 14 - .../util/incremental-id-generator.d.ts.map | 1 - .../util/incremental-id-generator.js | 18 - .../util/incremental-id-generator.js.map | 1 - .../lib/puppeteer/util/util.d.ts | 14 - .../lib/puppeteer/util/util.d.ts.map | 1 - .../puppeteer-core/lib/puppeteer/util/util.js | 14 - .../lib/puppeteer/util/util.js.map | 1 - .../lib/puppeteer/util/version.d.ts | 7 - .../lib/puppeteer/util/version.d.ts.map | 1 - .../lib/puppeteer/util/version.js | 10 - .../lib/puppeteer/util/version.js.map | 1 - .../lib/third_party/mitt/mitt.d.ts | 2 - .../lib/third_party/mitt/mitt.js | 44 - .../lib/third_party/parsel-js/parsel-js.d.ts | 2 - .../lib/third_party/parsel-js/parsel-js.js | 196 - .../lib/third_party/rxjs/rxjs.d.ts | 2 - .../lib/third_party/rxjs/rxjs.js | 2887 - .../urlpattern-polyfill.d.ts | 1 - .../urlpattern-polyfill.js | 805 - node_modules/puppeteer-core/lib/types.d.ts | 9822 --- node_modules/puppeteer-core/package.json | 169 - .../src/api/BluetoothEmulation.ts | 103 - .../puppeteer-core/src/api/Browser.ts | 733 - .../puppeteer-core/src/api/BrowserContext.ts | 385 - .../puppeteer-core/src/api/CDPSession.ts | 137 - .../src/api/DeviceRequestPrompt.ts | 71 - node_modules/puppeteer-core/src/api/Dialog.ts | 111 - .../puppeteer-core/src/api/ElementHandle.ts | 1708 - .../src/api/ElementHandleSymbol.ts | 10 - .../puppeteer-core/src/api/Environment.ts | 16 - .../puppeteer-core/src/api/Extension.ts | 126 - node_modules/puppeteer-core/src/api/Frame.ts | 1232 - .../puppeteer-core/src/api/HTTPRequest.ts | 750 - .../puppeteer-core/src/api/HTTPResponse.ts | 148 - node_modules/puppeteer-core/src/api/Input.ts | 568 - node_modules/puppeteer-core/src/api/Issue.ts | 24 - .../puppeteer-core/src/api/JSHandle.ts | 212 - node_modules/puppeteer-core/src/api/Page.ts | 3333 - node_modules/puppeteer-core/src/api/Realm.ts | 207 - node_modules/puppeteer-core/src/api/Target.ts | 95 - .../puppeteer-core/src/api/WebWorker.ts | 161 - node_modules/puppeteer-core/src/api/api.ts | 26 - .../src/api/locators/locators.ts | 1191 - .../puppeteer-core/src/bidi/BidiOverCdp.ts | 208 - .../src/bidi/BluetoothEmulation.ts | 52 - .../puppeteer-core/src/bidi/Browser.ts | 390 - .../src/bidi/BrowserConnector.ts | 132 - .../puppeteer-core/src/bidi/BrowserContext.ts | 400 - .../puppeteer-core/src/bidi/CDPSession.ts | 124 - .../puppeteer-core/src/bidi/Connection.ts | 232 - .../puppeteer-core/src/bidi/Deserializer.ts | 92 - .../src/bidi/DeviceRequestPrompt.ts | 138 - .../puppeteer-core/src/bidi/Dialog.ts | 32 - .../puppeteer-core/src/bidi/ElementHandle.ts | 153 - .../src/bidi/ExposedFunction.ts | 256 - node_modules/puppeteer-core/src/bidi/Frame.ts | 616 - .../puppeteer-core/src/bidi/HTTPRequest.ts | 354 - .../puppeteer-core/src/bidi/HTTPResponse.ts | 165 - node_modules/puppeteer-core/src/bidi/Input.ts | 741 - .../puppeteer-core/src/bidi/JSHandle.ts | 95 - node_modules/puppeteer-core/src/bidi/Page.ts | 1225 - node_modules/puppeteer-core/src/bidi/Realm.ts | 448 - .../puppeteer-core/src/bidi/Serializer.ts | 126 - .../puppeteer-core/src/bidi/Target.ts | 167 - .../puppeteer-core/src/bidi/WebWorker.ts | 48 - node_modules/puppeteer-core/src/bidi/bidi.ts | 18 - .../puppeteer-core/src/bidi/core/Browser.ts | 321 - .../src/bidi/core/BrowsingContext.ts | 817 - .../src/bidi/core/Connection.ts | 31 - .../src/bidi/core/Navigation.ts | 174 - .../puppeteer-core/src/bidi/core/README.md | 52 - .../puppeteer-core/src/bidi/core/Realm.ts | 361 - .../puppeteer-core/src/bidi/core/Request.ts | 349 - .../puppeteer-core/src/bidi/core/Session.ts | 162 - .../src/bidi/core/UserContext.ts | 238 - .../src/bidi/core/UserPrompt.ts | 135 - .../puppeteer-core/src/bidi/core/core.ts | 15 - node_modules/puppeteer-core/src/bidi/util.ts | 195 - .../puppeteer-core/src/cdp/Accessibility.ts | 784 - .../puppeteer-core/src/cdp/Binding.ts | 133 - .../src/cdp/BluetoothEmulation.ts | 47 - .../puppeteer-core/src/cdp/Browser.ts | 650 - .../src/cdp/BrowserConnector.ts | 74 - .../puppeteer-core/src/cdp/BrowserContext.ts | 181 - .../puppeteer-core/src/cdp/CdpIssue.ts | 30 - .../src/cdp/CdpPreloadScript.ts | 46 - .../puppeteer-core/src/cdp/CdpSession.ts | 194 - .../puppeteer-core/src/cdp/Connection.ts | 339 - .../puppeteer-core/src/cdp/Coverage.ts | 508 - .../src/cdp/DeviceRequestPrompt.ts | 230 - node_modules/puppeteer-core/src/cdp/Dialog.ts | 37 - .../puppeteer-core/src/cdp/ElementHandle.ts | 217 - .../src/cdp/EmulationManager.ts | 611 - .../src/cdp/ExecutionContext.ts | 550 - .../puppeteer-core/src/cdp/Extension.ts | 108 - .../src/cdp/ExtensionTransport.ts | 197 - node_modules/puppeteer-core/src/cdp/Frame.ts | 466 - .../puppeteer-core/src/cdp/FrameManager.ts | 625 - .../src/cdp/FrameManagerEvents.ts | 53 - .../puppeteer-core/src/cdp/FrameTree.ts | 100 - .../puppeteer-core/src/cdp/HTTPRequest.ts | 301 - .../puppeteer-core/src/cdp/HTTPResponse.ts | 169 - node_modules/puppeteer-core/src/cdp/Input.ts | 653 - .../puppeteer-core/src/cdp/IsolatedWorld.ts | 304 - .../puppeteer-core/src/cdp/IsolatedWorlds.ts | 20 - .../puppeteer-core/src/cdp/JSHandle.ts | 126 - .../src/cdp/LifecycleWatcher.ts | 276 - .../src/cdp/NetworkEventManager.ts | 267 - .../puppeteer-core/src/cdp/NetworkManager.ts | 834 - node_modules/puppeteer-core/src/cdp/Page.ts | 1396 - .../src/cdp/PredefinedNetworkConditions.ts | 71 - node_modules/puppeteer-core/src/cdp/Target.ts | 321 - .../src/cdp/TargetManageEvents.ts | 38 - .../puppeteer-core/src/cdp/TargetManager.ts | 556 - .../puppeteer-core/src/cdp/Tracing.ts | 140 - node_modules/puppeteer-core/src/cdp/WebMCP.ts | 447 - .../puppeteer-core/src/cdp/WebWorker.ts | 139 - node_modules/puppeteer-core/src/cdp/cdp.ts | 44 - node_modules/puppeteer-core/src/cdp/utils.ts | 323 - .../src/common/AriaQueryHandler.ts | 89 - .../src/common/BrowserConnector.ts | 193 - .../src/common/BrowserWebSocketTransport.ts | 51 - .../src/common/CSSQueryHandler.ts | 29 - .../src/common/CallbackRegistry.ts | 178 - .../src/common/Configuration.ts | 199 - .../src/common/ConnectOptions.ts | 226 - .../src/common/ConnectionTransport.ts | 15 - .../src/common/ConsoleMessage.ts | 146 - .../puppeteer-core/src/common/Cookie.ts | 233 - .../src/common/CustomQueryHandler.ts | 164 - .../puppeteer-core/src/common/Debug.ts | 126 - .../puppeteer-core/src/common/Device.ts | 1751 - .../src/common/DownloadBehavior.ts | 31 - .../puppeteer-core/src/common/Errors.ts | 98 - .../puppeteer-core/src/common/EventEmitter.ts | 202 - .../puppeteer-core/src/common/FileChooser.ts | 87 - .../src/common/GetQueryHandler.ts | 80 - .../src/common/HandleIterator.ts | 76 - .../puppeteer-core/src/common/LazyArg.ts | 37 - .../src/common/NetworkManagerEvents.ts | 38 - .../puppeteer-core/src/common/PDFOptions.ts | 274 - .../src/common/PQueryHandler.ts | 31 - .../src/common/PSelectorParser.ts | 121 - .../src/common/PierceQueryHandler.ts | 29 - .../puppeteer-core/src/common/Puppeteer.ts | 125 - .../puppeteer-core/src/common/QueryHandler.ts | 220 - .../src/common/ScriptInjector.ts | 57 - .../src/common/SecurityDetails.ts | 78 - .../src/common/SupportedBrowser.ts | 12 - .../puppeteer-core/src/common/TaskQueue.ts | 29 - .../src/common/TextQueryHandler.ts | 20 - .../src/common/TimeoutSettings.ts | 45 - .../src/common/USKeyboardLayout.ts | 671 - .../puppeteer-core/src/common/Viewport.ts | 50 - .../puppeteer-core/src/common/WaitTask.ts | 273 - .../src/common/XPathQueryHandler.ts | 35 - .../puppeteer-core/src/common/common.ts | 43 - .../puppeteer-core/src/common/types.ts | 114 - .../puppeteer-core/src/common/util.ts | 478 - .../puppeteer-core/src/environment.ts | 38 - .../puppeteer-core/src/generated/injected.ts | 8 - .../puppeteer-core/src/index-browser.ts | 14 - node_modules/puppeteer-core/src/index.ts | 8 - .../src/injected/ARIAQuerySelector.ts | 41 - .../src/injected/CSSSelector.ts | 26 - .../src/injected/CustomQuerySelector.ts | 65 - .../src/injected/PQuerySelector.ts | 294 - .../src/injected/PierceQuerySelector.ts | 65 - .../puppeteer-core/src/injected/Poller.ts | 168 - .../puppeteer-core/src/injected/README.md | 5 - .../src/injected/TextContent.ts | 146 - .../src/injected/TextQuerySelector.ts | 46 - .../src/injected/XPathQuerySelector.ts | 39 - .../puppeteer-core/src/injected/injected.ts | 53 - .../puppeteer-core/src/injected/util.ts | 72 - .../src/node/BrowserLauncher.ts | 572 - .../puppeteer-core/src/node/ChromeLauncher.ts | 356 - .../src/node/FirefoxLauncher.ts | 221 - .../puppeteer-core/src/node/LaunchOptions.ts | 162 - .../src/node/NodeWebSocketTransport.ts | 66 - .../puppeteer-core/src/node/PipeTransport.ts | 95 - .../puppeteer-core/src/node/PuppeteerNode.ts | 329 - .../puppeteer-core/src/node/ScreenRecorder.ts | 350 - node_modules/puppeteer-core/src/node/node.ts | 13 - .../puppeteer-core/src/node/util/fs.ts | 27 - .../src/puppeteer-core-browser.ts | 25 - .../puppeteer-core/src/puppeteer-core.ts | 48 - node_modules/puppeteer-core/src/revisions.ts | 14 - .../puppeteer-core/src/templates/README.md | 3 - .../src/templates/injected.ts.tmpl | 8 - .../src/util/AsyncIterableUtil.ts | 46 - .../puppeteer-core/src/util/Deferred.ts | 128 - .../puppeteer-core/src/util/ErrorLike.ts | 66 - .../puppeteer-core/src/util/Function.ts | 95 - node_modules/puppeteer-core/src/util/Mutex.ts | 51 - .../puppeteer-core/src/util/assert.ts | 21 - .../puppeteer-core/src/util/decorators.ts | 210 - .../puppeteer-core/src/util/disposable.ts | 396 - .../puppeteer-core/src/util/encoding.ts | 73 - .../puppeteer-core/src/util/httpUtils.ts | 25 - .../src/util/incremental-id-generator.ts | 23 - node_modules/puppeteer-core/src/util/util.ts | 14 - .../puppeteer-core/src/util/version.ts | 10 - .../puppeteer-extra-plugin-stealth/LICENSE | 21 - .../evasions/_template/index.js | 28 - .../evasions/_template/package.json | 4 - .../evasions/_template/readme.md | 19 - .../evasions/_utils/index.js | 583 - .../evasions/_utils/index.test.js | 709 - .../evasions/_utils/readme.md | 288 - .../evasions/_utils/withUtils.js | 49 - .../evasions/chrome.app/index.js | 100 - .../evasions/chrome.app/index.test.js | 71 - .../evasions/chrome.app/package.json | 4 - .../evasions/chrome.app/readme.md | 17 - .../evasions/chrome.csi/index.js | 73 - .../evasions/chrome.csi/index.test.js | 48 - .../evasions/chrome.csi/package.json | 4 - .../evasions/chrome.csi/readme.md | 30 - .../evasions/chrome.loadTimes/index.js | 167 - .../evasions/chrome.loadTimes/index.test.js | 63 - .../evasions/chrome.loadTimes/package.json | 4 - .../evasions/chrome.loadTimes/readme.md | 28 - .../evasions/chrome.runtime/index.js | 254 - .../evasions/chrome.runtime/index.test.js | 286 - .../evasions/chrome.runtime/package.json | 4 - .../evasions/chrome.runtime/readme.md | 33 - .../evasions/chrome.runtime/staticData.json | 41 - .../evasions/defaultArgs/index.js | 47 - .../evasions/defaultArgs/index.test.js | 36 - .../evasions/defaultArgs/package.json | 4 - .../evasions/defaultArgs/readme.md | 18 - .../evasions/iframe.contentWindow/index.js | 136 - .../iframe.contentWindow/index.test.js | 448 - .../iframe.contentWindow/package.json | 4 - .../evasions/iframe.contentWindow/readme.md | 20 - .../evasions/media.codecs/index.js | 91 - .../evasions/media.codecs/index.test.js | 104 - .../evasions/media.codecs/package.json | 4 - .../evasions/media.codecs/readme.md | 39 - .../navigator.hardwareConcurrency/index.js | 49 - .../index.test.js | 59 - .../package.json | 4 - .../navigator.hardwareConcurrency/readme.md | 20 - .../evasions/navigator.languages/index.js | 48 - .../navigator.languages/index.test.js | 102 - .../evasions/navigator.languages/package.json | 4 - .../evasions/navigator.languages/readme.md | 18 - .../evasions/navigator.permissions/index.js | 70 - .../navigator.permissions/index.test.js | 105 - .../navigator.permissions/package.json | 4 - .../evasions/navigator.permissions/readme.md | 17 - .../evasions/navigator.plugins/data.json | 48 - .../navigator.plugins/functionMocks.js | 50 - .../evasions/navigator.plugins/index.js | 101 - .../evasions/navigator.plugins/index.test.js | 56 - .../evasions/navigator.plugins/magicArray.js | 144 - .../evasions/navigator.plugins/mimeTypes.js | 18 - .../navigator.plugins/mimeTypes.test.js | 208 - .../evasions/navigator.plugins/package.json | 4 - .../evasions/navigator.plugins/plugins.js | 18 - .../navigator.plugins/plugins.test.js | 184 - .../evasions/navigator.plugins/readme.md | 25 - .../evasions/navigator.vendor/index.js | 66 - .../evasions/navigator.vendor/index.test.js | 69 - .../evasions/navigator.vendor/package.json | 4 - .../evasions/navigator.vendor/readme.md | 37 - .../evasions/navigator.webdriver/index.js | 48 - .../navigator.webdriver/index.test.js | 44 - .../evasions/navigator.webdriver/package.json | 4 - .../evasions/navigator.webdriver/readme.md | 18 - .../evasions/readme.md | 13 - .../evasions/sourceurl/_fixtures/test.html | 37 - .../evasions/sourceurl/index.js | 83 - .../evasions/sourceurl/index.test.js | 54 - .../evasions/sourceurl/package.json | 4 - .../evasions/sourceurl/readme.md | 18 - .../evasions/user-agent-override/index.js | 208 - .../user-agent-override/index.test.js | 324 - .../evasions/user-agent-override/package.json | 4 - .../evasions/user-agent-override/readme.md | 54 - .../evasions/webgl.vendor/index.js | 59 - .../evasions/webgl.vendor/index.test.js | 222 - .../evasions/webgl.vendor/package.json | 4 - .../evasions/webgl.vendor/readme.md | 21 - .../evasions/window.outerdimensions/index.js | 44 - .../window.outerdimensions/package.json | 4 - .../evasions/window.outerdimensions/readme.md | 18 - .../examples/detect-headless.js | 97 - .../examples/test1.js | 23 - .../examples/test2.js | 26 - .../puppeteer-extra-plugin-stealth/index.d.ts | 111 - .../puppeteer-extra-plugin-stealth/index.js | 177 - .../index.test.js | 54 - .../package.json | 71 - .../puppeteer-extra-plugin-stealth/readme.md | 329 - .../test/cat-and-mouse.test.js | 162 - .../fixtures/dummy-with-service-worker.html | 22 - .../test/fixtures/dummy.html | 11 - .../test/fixtures/sw.js | 1 - .../test/fpscanner.test.js | 52 - .../test/service-worker.test.js | 112 - .../test/util.js | 65 - .../LICENSE | 21 - .../index.js | 130 - .../package.json | 53 - .../readme.md | 30 - .../LICENSE | 21 - .../index.js | 81 - .../package.json | 52 - .../readme.md | 50 - node_modules/puppeteer-extra-plugin/LICENSE | 21 - .../puppeteer-extra-plugin/dist/index.cjs.js | 533 - .../dist/index.cjs.js.map | 1 - .../puppeteer-extra-plugin/dist/index.d.ts | 420 - .../puppeteer-extra-plugin/dist/index.esm.js | 527 - .../dist/index.esm.js.map | 1 - .../puppeteer-extra-plugin/dist/index.js | 526 - .../puppeteer-extra-plugin/dist/index.js.map | 1 - .../dist/index.test.d.ts | 1 - .../puppeteer-extra-plugin/dist/index.test.js | 115 - .../dist/index.test.js.map | 1 - .../dist/puppeteer.d.ts | 5 - .../puppeteer-extra-plugin/dist/puppeteer.js | 13 - .../dist/puppeteer.js.map | 1 - .../puppeteer-extra-plugin/package.json | 82 - node_modules/puppeteer-extra-plugin/readme.md | 509 - node_modules/puppeteer-extra/LICENSE | 21 - .../puppeteer-extra/dist/ambient.d.ts | 8 - .../puppeteer-extra/dist/index.cjs.js | 470 - .../puppeteer-extra/dist/index.cjs.js.map | 1 - node_modules/puppeteer-extra/dist/index.d.ts | 260 - .../puppeteer-extra/dist/index.esm.js | 459 - .../puppeteer-extra/dist/index.esm.js.map | 1 - node_modules/puppeteer-extra/dist/index.js | 459 - .../puppeteer-extra/dist/index.js.map | 1 - .../dist/puppeteer-legacy.d.ts | 33 - node_modules/puppeteer-extra/package.json | 87 - node_modules/puppeteer-extra/readme.md | 609 - node_modules/puppeteer/README.md | 64 - node_modules/puppeteer/install.mjs | 43 - .../lib/puppeteer/getConfiguration.d.ts | 11 - .../lib/puppeteer/getConfiguration.d.ts.map | 1 - .../lib/puppeteer/getConfiguration.js | 122 - .../lib/puppeteer/getConfiguration.js.map | 1 - .../puppeteer/lib/puppeteer/node/cli.d.ts | 8 - .../puppeteer/lib/puppeteer/node/cli.d.ts.map | 1 - .../puppeteer/lib/puppeteer/node/cli.js | 38 - .../puppeteer/lib/puppeteer/node/cli.js.map | 1 - .../puppeteer/lib/puppeteer/node/install.d.ts | 10 - .../lib/puppeteer/node/install.d.ts.map | 1 - .../puppeteer/lib/puppeteer/node/install.js | 119 - .../lib/puppeteer/node/install.js.map | 1 - .../puppeteer/lib/puppeteer/puppeteer.d.ts | 38 - .../lib/puppeteer/puppeteer.d.ts.map | 1 - .../puppeteer/lib/puppeteer/puppeteer.js | 39 - .../puppeteer/lib/puppeteer/puppeteer.js.map | 1 - node_modules/puppeteer/lib/types.d.ts | 79 - node_modules/puppeteer/package.json | 131 - .../puppeteer/src/getConfiguration.ts | 166 - node_modules/puppeteer/src/node/cli.ts | 46 - node_modules/puppeteer/src/node/install.ts | 167 - node_modules/puppeteer/src/puppeteer.ts | 45 - node_modules/require-directory/.jshintrc | 67 - node_modules/require-directory/.npmignore | 1 - node_modules/require-directory/.travis.yml | 3 - node_modules/require-directory/LICENSE | 22 - .../require-directory/README.markdown | 184 - node_modules/require-directory/index.js | 86 - node_modules/require-directory/package.json | 40 - node_modules/resolve-from/index.js | 47 - node_modules/resolve-from/license | 9 - node_modules/resolve-from/package.json | 34 - node_modules/resolve-from/readme.md | 72 - node_modules/rimraf/CHANGELOG.md | 65 - node_modules/rimraf/LICENSE | 15 - node_modules/rimraf/README.md | 101 - node_modules/rimraf/bin.js | 68 - node_modules/rimraf/package.json | 32 - node_modules/rimraf/rimraf.js | 360 - node_modules/semver/LICENSE | 15 - node_modules/semver/README.md | 680 - node_modules/semver/bin/semver.js | 195 - node_modules/semver/classes/comparator.js | 143 - node_modules/semver/classes/index.js | 7 - node_modules/semver/classes/range.js | 564 - node_modules/semver/classes/semver.js | 333 - node_modules/semver/functions/clean.js | 8 - node_modules/semver/functions/cmp.js | 54 - node_modules/semver/functions/coerce.js | 62 - .../semver/functions/compare-build.js | 9 - .../semver/functions/compare-loose.js | 5 - node_modules/semver/functions/compare.js | 7 - node_modules/semver/functions/diff.js | 60 - node_modules/semver/functions/eq.js | 5 - node_modules/semver/functions/gt.js | 5 - node_modules/semver/functions/gte.js | 5 - node_modules/semver/functions/inc.js | 21 - node_modules/semver/functions/lt.js | 5 - node_modules/semver/functions/lte.js | 5 - node_modules/semver/functions/major.js | 5 - node_modules/semver/functions/minor.js | 5 - node_modules/semver/functions/neq.js | 5 - node_modules/semver/functions/parse.js | 18 - node_modules/semver/functions/patch.js | 5 - node_modules/semver/functions/prerelease.js | 8 - node_modules/semver/functions/rcompare.js | 5 - node_modules/semver/functions/rsort.js | 5 - node_modules/semver/functions/satisfies.js | 12 - node_modules/semver/functions/sort.js | 5 - node_modules/semver/functions/truncate.js | 48 - node_modules/semver/functions/valid.js | 8 - node_modules/semver/index.js | 93 - node_modules/semver/internal/constants.js | 37 - node_modules/semver/internal/debug.js | 11 - node_modules/semver/internal/identifiers.js | 29 - node_modules/semver/internal/lrucache.js | 42 - node_modules/semver/internal/parse-options.js | 17 - node_modules/semver/internal/re.js | 223 - node_modules/semver/package.json | 78 - node_modules/semver/preload.js | 4 - node_modules/semver/range.bnf | 17 - node_modules/semver/ranges/gtr.js | 6 - node_modules/semver/ranges/intersects.js | 9 - node_modules/semver/ranges/ltr.js | 6 - node_modules/semver/ranges/max-satisfying.js | 27 - node_modules/semver/ranges/min-satisfying.js | 26 - node_modules/semver/ranges/min-version.js | 63 - node_modules/semver/ranges/outside.js | 82 - node_modules/semver/ranges/simplify.js | 49 - node_modules/semver/ranges/subset.js | 249 - node_modules/semver/ranges/to-comparators.js | 10 - node_modules/semver/ranges/valid.js | 13 - node_modules/shallow-clone/LICENSE | 21 - node_modules/shallow-clone/README.md | 94 - node_modules/shallow-clone/index.js | 56 - .../node_modules/kind-of/LICENSE | 22 - .../node_modules/kind-of/README.md | 212 - .../node_modules/kind-of/index.js | 84 - .../node_modules/kind-of/package.json | 57 - .../node_modules/lazy-cache/LICENSE | 21 - .../node_modules/lazy-cache/README.md | 128 - .../node_modules/lazy-cache/index.js | 67 - .../node_modules/lazy-cache/package.json | 46 - node_modules/shallow-clone/package.json | 55 - node_modules/shallow-clone/utils.js | 10 - node_modules/streamx/LICENSE | 21 - node_modules/streamx/README.md | 490 - node_modules/streamx/index.js | 1232 - node_modules/streamx/package.json | 36 - node_modules/string-width/index.d.ts | 29 - node_modules/string-width/index.js | 47 - node_modules/string-width/license | 9 - node_modules/string-width/package.json | 56 - node_modules/string-width/readme.md | 50 - node_modules/strip-ansi/index.d.ts | 17 - node_modules/strip-ansi/index.js | 4 - node_modules/strip-ansi/license | 9 - node_modules/strip-ansi/package.json | 54 - node_modules/strip-ansi/readme.md | 46 - node_modules/tar-fs/LICENSE | 21 - node_modules/tar-fs/README.md | 154 - node_modules/tar-fs/index.js | 400 - node_modules/tar-fs/package.json | 61 - node_modules/tar-stream/LICENSE | 21 - node_modules/tar-stream/README.md | 183 - node_modules/tar-stream/constants.js | 14 - node_modules/tar-stream/extract.js | 418 - node_modules/tar-stream/headers.js | 322 - node_modules/tar-stream/index.js | 2 - node_modules/tar-stream/pack.js | 287 - node_modules/tar-stream/package.json | 42 - node_modules/teex/LICENSE | 21 - node_modules/teex/README.md | 31 - node_modules/teex/example.js | 16 - node_modules/teex/index.js | 52 - node_modules/teex/package.json | 26 - node_modules/teex/test.js | 68 - node_modules/text-decoder/LICENSE | 201 - node_modules/text-decoder/README.md | 36 - node_modules/text-decoder/index.js | 64 - .../text-decoder/lib/pass-through-decoder.js | 19 - node_modules/text-decoder/lib/utf8-decoder.js | 185 - node_modules/text-decoder/package.json | 39 - node_modules/typed-query-selector/LICENSE | 21 - node_modules/typed-query-selector/README.md | 265 - .../typed-query-selector/package.json | 26 - node_modules/typed-query-selector/parser.d.ts | 258 - node_modules/typed-query-selector/shim.d.ts | 15 - node_modules/typed-query-selector/strict.d.ts | 19 - node_modules/universalify/LICENSE | 20 - node_modules/universalify/README.md | 76 - node_modules/universalify/index.js | 24 - node_modules/universalify/package.json | 34 - .../webdriver-bidi-protocol/CHANGELOG.md | 394 - node_modules/webdriver-bidi-protocol/LICENSE | 202 - .../webdriver-bidi-protocol/README.md | 39 - .../webdriver-bidi-protocol/out/gen/main.d.ts | 2977 - .../webdriver-bidi-protocol/out/gen/main.js | 2 - .../out/gen/mapping.d.ts | 310 - .../out/gen/mapping.js | 2 - .../out/gen/permissions.d.ts | 28 - .../out/gen/permissions.js | 2 - .../out/gen/ua-client-hints.d.ts | 35 - .../out/gen/ua-client-hints.js | 2 - .../out/gen/web-bluetooth.d.ts | 314 - .../out/gen/web-bluetooth.js | 2 - .../webdriver-bidi-protocol/out/index.d.ts | 31 - .../webdriver-bidi-protocol/out/index.js | 77 - .../webdriver-bidi-protocol/package.json | 35 - .../webdriver-bidi-protocol/src/gen/main.ts | 2981 - .../src/gen/mapping.ts | 311 - .../src/gen/permissions.ts | 28 - .../src/gen/ua-client-hints.ts | 35 - .../src/gen/web-bluetooth.ts | 314 - .../webdriver-bidi-protocol/src/index.ts | 46 - node_modules/wrap-ansi/index.js | 216 - node_modules/wrap-ansi/license | 9 - node_modules/wrap-ansi/package.json | 62 - node_modules/wrap-ansi/readme.md | 91 - node_modules/wrappy/LICENSE | 15 - node_modules/wrappy/README.md | 36 - node_modules/wrappy/package.json | 29 - node_modules/wrappy/wrappy.js | 33 - node_modules/ws/LICENSE | 20 - node_modules/ws/README.md | 548 - node_modules/ws/browser.js | 8 - node_modules/ws/index.js | 22 - node_modules/ws/lib/buffer-util.js | 131 - node_modules/ws/lib/constants.js | 19 - node_modules/ws/lib/event-target.js | 292 - node_modules/ws/lib/extension.js | 203 - node_modules/ws/lib/limiter.js | 55 - node_modules/ws/lib/permessage-deflate.js | 528 - node_modules/ws/lib/receiver.js | 760 - node_modules/ws/lib/sender.js | 607 - node_modules/ws/lib/stream.js | 161 - node_modules/ws/lib/subprotocol.js | 62 - node_modules/ws/lib/validation.js | 152 - node_modules/ws/lib/websocket-server.js | 562 - node_modules/ws/lib/websocket.js | 1407 - node_modules/ws/package.json | 70 - node_modules/ws/wrapper.mjs | 21 - node_modules/y18n/CHANGELOG.md | 100 - node_modules/y18n/LICENSE | 13 - node_modules/y18n/README.md | 127 - node_modules/y18n/build/index.cjs | 203 - node_modules/y18n/build/lib/cjs.js | 6 - node_modules/y18n/build/lib/index.js | 174 - .../y18n/build/lib/platform-shims/node.js | 19 - node_modules/y18n/index.mjs | 8 - node_modules/y18n/package.json | 70 - node_modules/yargs-parser/CHANGELOG.md | 308 - node_modules/yargs-parser/LICENSE.txt | 14 - node_modules/yargs-parser/README.md | 518 - node_modules/yargs-parser/browser.js | 29 - node_modules/yargs-parser/build/index.cjs | 1050 - node_modules/yargs-parser/build/lib/index.js | 62 - .../yargs-parser/build/lib/string-utils.js | 65 - .../build/lib/tokenize-arg-string.js | 40 - .../build/lib/yargs-parser-types.js | 12 - .../yargs-parser/build/lib/yargs-parser.js | 1045 - node_modules/yargs-parser/package.json | 92 - node_modules/yargs/LICENSE | 21 - node_modules/yargs/README.md | 204 - node_modules/yargs/browser.d.ts | 5 - node_modules/yargs/browser.mjs | 7 - node_modules/yargs/build/index.cjs | 1 - node_modules/yargs/build/lib/argsert.js | 62 - node_modules/yargs/build/lib/command.js | 449 - .../yargs/build/lib/completion-templates.js | 48 - node_modules/yargs/build/lib/completion.js | 243 - node_modules/yargs/build/lib/middleware.js | 88 - node_modules/yargs/build/lib/parse-command.js | 32 - .../yargs/build/lib/typings/common-types.js | 9 - .../build/lib/typings/yargs-parser-types.js | 1 - node_modules/yargs/build/lib/usage.js | 584 - .../yargs/build/lib/utils/apply-extends.js | 59 - .../yargs/build/lib/utils/is-promise.js | 5 - .../yargs/build/lib/utils/levenshtein.js | 34 - .../build/lib/utils/maybe-async-result.js | 17 - .../yargs/build/lib/utils/obj-filter.js | 10 - .../yargs/build/lib/utils/process-argv.js | 17 - .../yargs/build/lib/utils/set-blocking.js | 12 - .../yargs/build/lib/utils/which-module.js | 10 - node_modules/yargs/build/lib/validation.js | 305 - node_modules/yargs/build/lib/yargs-factory.js | 1512 - node_modules/yargs/build/lib/yerror.js | 9 - node_modules/yargs/helpers/helpers.mjs | 10 - node_modules/yargs/helpers/index.js | 14 - node_modules/yargs/helpers/package.json | 3 - node_modules/yargs/index.cjs | 53 - node_modules/yargs/index.mjs | 8 - .../yargs/lib/platform-shims/browser.mjs | 95 - node_modules/yargs/lib/platform-shims/esm.mjs | 73 - node_modules/yargs/locales/be.json | 46 - node_modules/yargs/locales/cs.json | 51 - node_modules/yargs/locales/de.json | 46 - node_modules/yargs/locales/en.json | 55 - node_modules/yargs/locales/es.json | 46 - node_modules/yargs/locales/fi.json | 49 - node_modules/yargs/locales/fr.json | 53 - node_modules/yargs/locales/hi.json | 49 - node_modules/yargs/locales/hu.json | 46 - node_modules/yargs/locales/id.json | 50 - node_modules/yargs/locales/it.json | 46 - node_modules/yargs/locales/ja.json | 51 - node_modules/yargs/locales/ko.json | 49 - node_modules/yargs/locales/nb.json | 44 - node_modules/yargs/locales/nl.json | 49 - node_modules/yargs/locales/nn.json | 44 - node_modules/yargs/locales/pirate.json | 13 - node_modules/yargs/locales/pl.json | 49 - node_modules/yargs/locales/pt.json | 45 - node_modules/yargs/locales/pt_BR.json | 48 - node_modules/yargs/locales/ru.json | 51 - node_modules/yargs/locales/th.json | 46 - node_modules/yargs/locales/tr.json | 48 - node_modules/yargs/locales/uk_UA.json | 51 - node_modules/yargs/locales/uz.json | 52 - node_modules/yargs/locales/zh_CN.json | 48 - node_modules/yargs/locales/zh_TW.json | 51 - node_modules/yargs/package.json | 123 - node_modules/yargs/yargs | 9 - node_modules/yargs/yargs.mjs | 10 - node_modules/zod/LICENSE | 21 - node_modules/zod/README.md | 208 - node_modules/zod/index.cjs | 33 - node_modules/zod/index.d.cts | 4 - node_modules/zod/index.d.ts | 4 - node_modules/zod/index.js | 4 - node_modules/zod/package.json | 118 - node_modules/zod/src/index.ts | 4 - node_modules/zod/src/v3/ZodError.ts | 330 - .../zod/src/v3/benchmarks/datetime.ts | 58 - .../src/v3/benchmarks/discriminatedUnion.ts | 80 - node_modules/zod/src/v3/benchmarks/index.ts | 59 - node_modules/zod/src/v3/benchmarks/ipv4.ts | 57 - node_modules/zod/src/v3/benchmarks/object.ts | 69 - .../zod/src/v3/benchmarks/primitives.ts | 162 - .../zod/src/v3/benchmarks/realworld.ts | 63 - node_modules/zod/src/v3/benchmarks/string.ts | 55 - node_modules/zod/src/v3/benchmarks/union.ts | 80 - node_modules/zod/src/v3/errors.ts | 13 - node_modules/zod/src/v3/external.ts | 6 - node_modules/zod/src/v3/helpers/enumUtil.ts | 17 - node_modules/zod/src/v3/helpers/errorUtil.ts | 8 - node_modules/zod/src/v3/helpers/parseUtil.ts | 176 - .../zod/src/v3/helpers/partialUtil.ts | 34 - .../zod/src/v3/helpers/typeAliases.ts | 2 - node_modules/zod/src/v3/helpers/util.ts | 224 - node_modules/zod/src/v3/index.ts | 4 - node_modules/zod/src/v3/locales/en.ts | 124 - node_modules/zod/src/v3/standard-schema.ts | 113 - node_modules/zod/src/v3/tests/Mocker.ts | 54 - .../zod/src/v3/tests/all-errors.test.ts | 157 - .../zod/src/v3/tests/anyunknown.test.ts | 28 - node_modules/zod/src/v3/tests/array.test.ts | 71 - .../zod/src/v3/tests/async-parsing.test.ts | 388 - .../src/v3/tests/async-refinements.test.ts | 46 - node_modules/zod/src/v3/tests/base.test.ts | 29 - node_modules/zod/src/v3/tests/bigint.test.ts | 55 - node_modules/zod/src/v3/tests/branded.test.ts | 53 - node_modules/zod/src/v3/tests/catch.test.ts | 220 - node_modules/zod/src/v3/tests/coerce.test.ts | 133 - node_modules/zod/src/v3/tests/complex.test.ts | 56 - node_modules/zod/src/v3/tests/custom.test.ts | 31 - node_modules/zod/src/v3/tests/date.test.ts | 32 - .../zod/src/v3/tests/deepmasking.test.ts | 186 - node_modules/zod/src/v3/tests/default.test.ts | 112 - .../zod/src/v3/tests/description.test.ts | 33 - .../src/v3/tests/discriminated-unions.test.ts | 315 - node_modules/zod/src/v3/tests/enum.test.ts | 80 - node_modules/zod/src/v3/tests/error.test.ts | 551 - .../zod/src/v3/tests/firstparty.test.ts | 87 - .../v3/tests/firstpartyschematypes.test.ts | 21 - .../zod/src/v3/tests/function.test.ts | 257 - .../zod/src/v3/tests/generics.test.ts | 48 - .../zod/src/v3/tests/instanceof.test.ts | 37 - .../zod/src/v3/tests/intersection.test.ts | 110 - .../src/v3/tests/language-server.source.ts | 76 - .../zod/src/v3/tests/language-server.test.ts | 207 - node_modules/zod/src/v3/tests/literal.test.ts | 36 - node_modules/zod/src/v3/tests/map.test.ts | 110 - node_modules/zod/src/v3/tests/masking.test.ts | 4 - node_modules/zod/src/v3/tests/mocker.test.ts | 19 - node_modules/zod/src/v3/tests/nan.test.ts | 21 - .../zod/src/v3/tests/nativeEnum.test.ts | 87 - .../zod/src/v3/tests/nullable.test.ts | 42 - node_modules/zod/src/v3/tests/number.test.ts | 176 - .../src/v3/tests/object-augmentation.test.ts | 29 - .../src/v3/tests/object-in-es5-env.test.ts | 29 - node_modules/zod/src/v3/tests/object.test.ts | 434 - .../zod/src/v3/tests/optional.test.ts | 42 - .../zod/src/v3/tests/parseUtil.test.ts | 23 - node_modules/zod/src/v3/tests/parser.test.ts | 41 - .../zod/src/v3/tests/partials.test.ts | 243 - .../zod/src/v3/tests/pickomit.test.ts | 111 - .../zod/src/v3/tests/pipeline.test.ts | 29 - .../zod/src/v3/tests/preprocess.test.ts | 186 - .../zod/src/v3/tests/primitive.test.ts | 440 - node_modules/zod/src/v3/tests/promise.test.ts | 90 - .../zod/src/v3/tests/readonly.test.ts | 194 - node_modules/zod/src/v3/tests/record.test.ts | 171 - .../zod/src/v3/tests/recursive.test.ts | 197 - node_modules/zod/src/v3/tests/refine.test.ts | 313 - .../zod/src/v3/tests/safeparse.test.ts | 27 - node_modules/zod/src/v3/tests/set.test.ts | 142 - .../zod/src/v3/tests/standard-schema.test.ts | 83 - node_modules/zod/src/v3/tests/string.test.ts | 916 - .../zod/src/v3/tests/transformer.test.ts | 233 - node_modules/zod/src/v3/tests/tuple.test.ts | 90 - node_modules/zod/src/v3/tests/unions.test.ts | 57 - .../zod/src/v3/tests/validations.test.ts | 133 - node_modules/zod/src/v3/tests/void.test.ts | 15 - node_modules/zod/src/v3/types.ts | 5136 -- node_modules/zod/src/v4-mini/index.ts | 1 - node_modules/zod/src/v4/classic/checks.ts | 30 - node_modules/zod/src/v4/classic/coerce.ts | 27 - node_modules/zod/src/v4/classic/compat.ts | 66 - node_modules/zod/src/v4/classic/errors.ts | 75 - node_modules/zod/src/v4/classic/external.ts | 50 - node_modules/zod/src/v4/classic/index.ts | 5 - node_modules/zod/src/v4/classic/iso.ts | 90 - node_modules/zod/src/v4/classic/parse.ts | 33 - node_modules/zod/src/v4/classic/schemas.ts | 2054 - .../src/v4/classic/tests/anyunknown.test.ts | 26 - .../zod/src/v4/classic/tests/array.test.ts | 264 - .../v4/classic/tests/assignability.test.ts | 210 - .../v4/classic/tests/async-parsing.test.ts | 381 - .../classic/tests/async-refinements.test.ts | 68 - .../zod/src/v4/classic/tests/base.test.ts | 7 - .../zod/src/v4/classic/tests/bigint.test.ts | 54 - .../zod/src/v4/classic/tests/brand.test.ts | 63 - .../zod/src/v4/classic/tests/catch.test.ts | 252 - .../zod/src/v4/classic/tests/coalesce.test.ts | 20 - .../zod/src/v4/classic/tests/coerce.test.ts | 160 - .../v4/classic/tests/continuability.test.ts | 352 - .../zod/src/v4/classic/tests/custom.test.ts | 40 - .../zod/src/v4/classic/tests/date.test.ts | 31 - .../zod/src/v4/classic/tests/datetime.test.ts | 296 - .../zod/src/v4/classic/tests/default.test.ts | 313 - .../src/v4/classic/tests/description.test.ts | 32 - .../tests/discriminated-unions.test.ts | 619 - .../zod/src/v4/classic/tests/enum.test.ts | 285 - .../src/v4/classic/tests/error-utils.test.ts | 527 - .../zod/src/v4/classic/tests/error.test.ts | 711 - .../zod/src/v4/classic/tests/file.test.ts | 91 - .../src/v4/classic/tests/firstparty.test.ts | 175 - .../zod/src/v4/classic/tests/function.test.ts | 268 - .../zod/src/v4/classic/tests/generics.test.ts | 72 - .../zod/src/v4/classic/tests/index.test.ts | 829 - .../src/v4/classic/tests/instanceof.test.ts | 34 - .../src/v4/classic/tests/intersection.test.ts | 171 - .../zod/src/v4/classic/tests/json.test.ts | 108 - .../zod/src/v4/classic/tests/lazy.test.ts | 227 - .../zod/src/v4/classic/tests/literal.test.ts | 92 - .../zod/src/v4/classic/tests/map.test.ts | 196 - .../zod/src/v4/classic/tests/nan.test.ts | 21 - .../v4/classic/tests/nested-refine.test.ts | 168 - .../src/v4/classic/tests/nonoptional.test.ts | 86 - .../zod/src/v4/classic/tests/nullable.test.ts | 22 - .../zod/src/v4/classic/tests/number.test.ts | 247 - .../zod/src/v4/classic/tests/object.test.ts | 563 - .../zod/src/v4/classic/tests/optional.test.ts | 123 - .../zod/src/v4/classic/tests/partial.test.ts | 147 - .../zod/src/v4/classic/tests/pickomit.test.ts | 127 - .../zod/src/v4/classic/tests/pipe.test.ts | 81 - .../zod/src/v4/classic/tests/prefault.test.ts | 37 - .../src/v4/classic/tests/preprocess.test.ts | 298 - .../src/v4/classic/tests/primitive.test.ts | 175 - .../zod/src/v4/classic/tests/promise.test.ts | 81 - .../src/v4/classic/tests/prototypes.test.ts | 23 - .../zod/src/v4/classic/tests/readonly.test.ts | 252 - .../zod/src/v4/classic/tests/record.test.ts | 342 - .../v4/classic/tests/recursive-types.test.ts | 356 - .../zod/src/v4/classic/tests/refine.test.ts | 532 - .../src/v4/classic/tests/registries.test.ts | 204 - .../zod/src/v4/classic/tests/set.test.ts | 179 - .../v4/classic/tests/standard-schema.test.ts | 57 - .../v4/classic/tests/string-formats.test.ts | 109 - .../zod/src/v4/classic/tests/string.test.ts | 881 - .../src/v4/classic/tests/stringbool.test.ts | 66 - .../v4/classic/tests/template-literal.test.ts | 758 - .../v4/classic/tests/to-json-schema.test.ts | 2314 - .../src/v4/classic/tests/transform.test.ts | 250 - .../zod/src/v4/classic/tests/tuple.test.ts | 163 - .../zod/src/v4/classic/tests/union.test.ts | 94 - .../src/v4/classic/tests/validations.test.ts | 283 - .../zod/src/v4/classic/tests/void.test.ts | 12 - node_modules/zod/src/v4/core/api.ts | 1594 - node_modules/zod/src/v4/core/checks.ts | 1283 - node_modules/zod/src/v4/core/config.ts | 15 - node_modules/zod/src/v4/core/core.ts | 134 - node_modules/zod/src/v4/core/doc.ts | 44 - node_modules/zod/src/v4/core/errors.ts | 424 - node_modules/zod/src/v4/core/function.ts | 176 - node_modules/zod/src/v4/core/index.ts | 15 - node_modules/zod/src/v4/core/json-schema.ts | 143 - node_modules/zod/src/v4/core/parse.ts | 94 - node_modules/zod/src/v4/core/regexes.ts | 135 - node_modules/zod/src/v4/core/registries.ts | 96 - node_modules/zod/src/v4/core/schemas.ts | 3842 - .../zod/src/v4/core/standard-schema.ts | 64 - .../zod/src/v4/core/tests/index.test.ts | 46 - .../zod/src/v4/core/tests/locales/be.test.ts | 124 - .../zod/src/v4/core/tests/locales/en.test.ts | 22 - .../zod/src/v4/core/tests/locales/ru.test.ts | 128 - .../zod/src/v4/core/tests/locales/tr.test.ts | 69 - .../zod/src/v4/core/to-json-schema.ts | 977 - node_modules/zod/src/v4/core/util.ts | 775 - node_modules/zod/src/v4/core/versions.ts | 5 - node_modules/zod/src/v4/core/zsf.ts | 323 - node_modules/zod/src/v4/index.ts | 4 - node_modules/zod/src/v4/locales/ar.ts | 125 - node_modules/zod/src/v4/locales/az.ts | 121 - node_modules/zod/src/v4/locales/be.ts | 184 - node_modules/zod/src/v4/locales/ca.ts | 127 - node_modules/zod/src/v4/locales/cs.ts | 142 - node_modules/zod/src/v4/locales/de.ts | 124 - node_modules/zod/src/v4/locales/en.ts | 127 - node_modules/zod/src/v4/locales/eo.ts | 125 - node_modules/zod/src/v4/locales/es.ts | 125 - node_modules/zod/src/v4/locales/fa.ts | 134 - node_modules/zod/src/v4/locales/fi.ts | 131 - node_modules/zod/src/v4/locales/fr-CA.ts | 126 - node_modules/zod/src/v4/locales/fr.ts | 124 - node_modules/zod/src/v4/locales/he.ts | 125 - node_modules/zod/src/v4/locales/hu.ts | 126 - node_modules/zod/src/v4/locales/id.ts | 125 - node_modules/zod/src/v4/locales/index.ts | 39 - node_modules/zod/src/v4/locales/it.ts | 125 - node_modules/zod/src/v4/locales/ja.ts | 122 - node_modules/zod/src/v4/locales/kh.ts | 126 - node_modules/zod/src/v4/locales/ko.ts | 131 - node_modules/zod/src/v4/locales/mk.ts | 127 - node_modules/zod/src/v4/locales/ms.ts | 124 - node_modules/zod/src/v4/locales/nl.ts | 126 - node_modules/zod/src/v4/locales/no.ts | 124 - node_modules/zod/src/v4/locales/ota.ts | 125 - node_modules/zod/src/v4/locales/pl.ts | 126 - node_modules/zod/src/v4/locales/ps.ts | 133 - node_modules/zod/src/v4/locales/pt.ts | 123 - node_modules/zod/src/v4/locales/ru.ts | 184 - node_modules/zod/src/v4/locales/sl.ts | 126 - node_modules/zod/src/v4/locales/sv.ts | 127 - node_modules/zod/src/v4/locales/ta.ts | 125 - node_modules/zod/src/v4/locales/th.ts | 126 - node_modules/zod/src/v4/locales/tr.ts | 121 - node_modules/zod/src/v4/locales/ua.ts | 126 - node_modules/zod/src/v4/locales/ur.ts | 126 - node_modules/zod/src/v4/locales/vi.ts | 125 - node_modules/zod/src/v4/locales/zh-CN.ts | 123 - node_modules/zod/src/v4/locales/zh-TW.ts | 125 - node_modules/zod/src/v4/mini/checks.ts | 32 - node_modules/zod/src/v4/mini/coerce.ts | 22 - node_modules/zod/src/v4/mini/external.ts | 40 - node_modules/zod/src/v4/mini/index.ts | 3 - node_modules/zod/src/v4/mini/iso.ts | 62 - node_modules/zod/src/v4/mini/parse.ts | 1 - node_modules/zod/src/v4/mini/schemas.ts | 1579 - .../src/v4/mini/tests/assignability.test.ts | 129 - .../zod/src/v4/mini/tests/brand.test.ts | 51 - .../zod/src/v4/mini/tests/checks.test.ts | 144 - .../zod/src/v4/mini/tests/computed.test.ts | 36 - .../zod/src/v4/mini/tests/error.test.ts | 22 - .../zod/src/v4/mini/tests/functions.test.ts | 43 - .../zod/src/v4/mini/tests/index.test.ts | 871 - .../zod/src/v4/mini/tests/number.test.ts | 95 - .../zod/src/v4/mini/tests/object.test.ts | 185 - .../zod/src/v4/mini/tests/prototypes.test.ts | 43 - .../src/v4/mini/tests/recursive-types.test.ts | 275 - .../zod/src/v4/mini/tests/string.test.ts | 299 - node_modules/zod/v3/ZodError.cjs | 138 - node_modules/zod/v3/ZodError.d.cts | 164 - node_modules/zod/v3/ZodError.d.ts | 164 - node_modules/zod/v3/ZodError.js | 133 - node_modules/zod/v3/errors.cjs | 17 - node_modules/zod/v3/errors.d.cts | 5 - node_modules/zod/v3/errors.d.ts | 5 - node_modules/zod/v3/errors.js | 9 - node_modules/zod/v3/external.cjs | 22 - node_modules/zod/v3/external.d.cts | 6 - node_modules/zod/v3/external.d.ts | 6 - node_modules/zod/v3/external.js | 6 - node_modules/zod/v3/helpers/enumUtil.cjs | 2 - node_modules/zod/v3/helpers/enumUtil.d.cts | 8 - node_modules/zod/v3/helpers/enumUtil.d.ts | 8 - node_modules/zod/v3/helpers/enumUtil.js | 1 - node_modules/zod/v3/helpers/errorUtil.cjs | 9 - node_modules/zod/v3/helpers/errorUtil.d.cts | 9 - node_modules/zod/v3/helpers/errorUtil.d.ts | 9 - node_modules/zod/v3/helpers/errorUtil.js | 6 - node_modules/zod/v3/helpers/parseUtil.cjs | 124 - node_modules/zod/v3/helpers/parseUtil.d.cts | 78 - node_modules/zod/v3/helpers/parseUtil.d.ts | 78 - node_modules/zod/v3/helpers/parseUtil.js | 109 - node_modules/zod/v3/helpers/partialUtil.cjs | 2 - node_modules/zod/v3/helpers/partialUtil.d.cts | 8 - node_modules/zod/v3/helpers/partialUtil.d.ts | 8 - node_modules/zod/v3/helpers/partialUtil.js | 1 - node_modules/zod/v3/helpers/typeAliases.cjs | 2 - node_modules/zod/v3/helpers/typeAliases.d.cts | 2 - node_modules/zod/v3/helpers/typeAliases.d.ts | 2 - node_modules/zod/v3/helpers/typeAliases.js | 1 - node_modules/zod/v3/helpers/util.cjs | 137 - node_modules/zod/v3/helpers/util.d.cts | 85 - node_modules/zod/v3/helpers/util.d.ts | 85 - node_modules/zod/v3/helpers/util.js | 133 - node_modules/zod/v3/index.cjs | 33 - node_modules/zod/v3/index.d.cts | 4 - node_modules/zod/v3/index.d.ts | 4 - node_modules/zod/v3/index.js | 4 - node_modules/zod/v3/locales/en.cjs | 111 - node_modules/zod/v3/locales/en.d.cts | 3 - node_modules/zod/v3/locales/en.d.ts | 3 - node_modules/zod/v3/locales/en.js | 109 - node_modules/zod/v3/standard-schema.cjs | 2 - node_modules/zod/v3/standard-schema.d.cts | 102 - node_modules/zod/v3/standard-schema.d.ts | 102 - node_modules/zod/v3/standard-schema.js | 1 - node_modules/zod/v3/types.cjs | 3775 - node_modules/zod/v3/types.d.cts | 1031 - node_modules/zod/v3/types.d.ts | 1031 - node_modules/zod/v3/types.js | 3693 - node_modules/zod/v4-mini/index.cjs | 17 - node_modules/zod/v4-mini/index.d.cts | 1 - node_modules/zod/v4-mini/index.d.ts | 1 - node_modules/zod/v4-mini/index.js | 1 - node_modules/zod/v4/classic/checks.cjs | 32 - node_modules/zod/v4/classic/checks.d.cts | 1 - node_modules/zod/v4/classic/checks.d.ts | 1 - node_modules/zod/v4/classic/checks.js | 1 - node_modules/zod/v4/classic/coerce.cjs | 47 - node_modules/zod/v4/classic/coerce.d.cts | 17 - node_modules/zod/v4/classic/coerce.d.ts | 17 - node_modules/zod/v4/classic/coerce.js | 17 - node_modules/zod/v4/classic/compat.cjs | 57 - node_modules/zod/v4/classic/compat.d.cts | 46 - node_modules/zod/v4/classic/compat.d.ts | 46 - node_modules/zod/v4/classic/compat.js | 27 - node_modules/zod/v4/classic/errors.cjs | 67 - node_modules/zod/v4/classic/errors.d.cts | 30 - node_modules/zod/v4/classic/errors.d.ts | 30 - node_modules/zod/v4/classic/errors.js | 41 - node_modules/zod/v4/classic/external.cjs | 70 - node_modules/zod/v4/classic/external.d.cts | 13 - node_modules/zod/v4/classic/external.d.ts | 13 - node_modules/zod/v4/classic/external.js | 18 - node_modules/zod/v4/classic/index.cjs | 33 - node_modules/zod/v4/classic/index.d.cts | 4 - node_modules/zod/v4/classic/index.d.ts | 4 - node_modules/zod/v4/classic/index.js | 4 - node_modules/zod/v4/classic/iso.cjs | 60 - node_modules/zod/v4/classic/iso.d.cts | 22 - node_modules/zod/v4/classic/iso.d.ts | 22 - node_modules/zod/v4/classic/iso.js | 30 - node_modules/zod/v4/classic/parse.cjs | 32 - node_modules/zod/v4/classic/parse.d.cts | 23 - node_modules/zod/v4/classic/parse.d.ts | 23 - node_modules/zod/v4/classic/parse.js | 6 - node_modules/zod/v4/classic/schemas.cjs | 1109 - node_modules/zod/v4/classic/schemas.d.cts | 630 - node_modules/zod/v4/classic/schemas.d.ts | 630 - node_modules/zod/v4/classic/schemas.js | 1006 - node_modules/zod/v4/core/api.cjs | 1039 - node_modules/zod/v4/core/api.d.cts | 284 - node_modules/zod/v4/core/api.d.ts | 284 - node_modules/zod/v4/core/api.js | 906 - node_modules/zod/v4/core/checks.cjs | 591 - node_modules/zod/v4/core/checks.d.cts | 278 - node_modules/zod/v4/core/checks.d.ts | 278 - node_modules/zod/v4/core/checks.js | 565 - node_modules/zod/v4/core/core.cjs | 67 - node_modules/zod/v4/core/core.d.cts | 49 - node_modules/zod/v4/core/core.d.ts | 49 - node_modules/zod/v4/core/core.js | 61 - node_modules/zod/v4/core/doc.cjs | 39 - node_modules/zod/v4/core/doc.d.cts | 14 - node_modules/zod/v4/core/doc.d.ts | 14 - node_modules/zod/v4/core/doc.js | 35 - node_modules/zod/v4/core/errors.cjs | 226 - node_modules/zod/v4/core/errors.d.cts | 208 - node_modules/zod/v4/core/errors.d.ts | 208 - node_modules/zod/v4/core/errors.js | 195 - node_modules/zod/v4/core/function.cjs | 102 - node_modules/zod/v4/core/function.d.cts | 52 - node_modules/zod/v4/core/function.d.ts | 52 - node_modules/zod/v4/core/function.js | 75 - node_modules/zod/v4/core/index.cjs | 44 - node_modules/zod/v4/core/index.d.cts | 15 - node_modules/zod/v4/core/index.d.ts | 15 - node_modules/zod/v4/core/index.js | 15 - node_modules/zod/v4/core/json-schema.cjs | 2 - node_modules/zod/v4/core/json-schema.d.cts | 87 - node_modules/zod/v4/core/json-schema.d.ts | 87 - node_modules/zod/v4/core/json-schema.js | 1 - node_modules/zod/v4/core/parse.cjs | 87 - node_modules/zod/v4/core/parse.d.cts | 25 - node_modules/zod/v4/core/parse.d.ts | 25 - node_modules/zod/v4/core/parse.js | 57 - node_modules/zod/v4/core/regexes.cjs | 103 - node_modules/zod/v4/core/regexes.d.cts | 62 - node_modules/zod/v4/core/regexes.d.ts | 62 - node_modules/zod/v4/core/regexes.js | 95 - node_modules/zod/v4/core/registries.cjs | 56 - node_modules/zod/v4/core/registries.d.cts | 35 - node_modules/zod/v4/core/registries.d.ts | 35 - node_modules/zod/v4/core/registries.js | 51 - node_modules/zod/v4/core/schemas.cjs | 1748 - node_modules/zod/v4/core/schemas.d.cts | 1041 - node_modules/zod/v4/core/schemas.d.ts | 1041 - node_modules/zod/v4/core/schemas.js | 1717 - node_modules/zod/v4/core/standard-schema.cjs | 2 - .../zod/v4/core/standard-schema.d.cts | 55 - node_modules/zod/v4/core/standard-schema.d.ts | 55 - node_modules/zod/v4/core/standard-schema.js | 1 - node_modules/zod/v4/core/to-json-schema.cjs | 854 - node_modules/zod/v4/core/to-json-schema.d.cts | 88 - node_modules/zod/v4/core/to-json-schema.d.ts | 88 - node_modules/zod/v4/core/to-json-schema.js | 849 - node_modules/zod/v4/core/util.cjs | 539 - node_modules/zod/v4/core/util.d.cts | 183 - node_modules/zod/v4/core/util.d.ts | 183 - node_modules/zod/v4/core/util.js | 493 - node_modules/zod/v4/core/versions.cjs | 8 - node_modules/zod/v4/core/versions.d.cts | 5 - node_modules/zod/v4/core/versions.d.ts | 5 - node_modules/zod/v4/core/versions.js | 5 - node_modules/zod/v4/index.cjs | 22 - node_modules/zod/v4/index.d.cts | 3 - node_modules/zod/v4/index.d.ts | 3 - node_modules/zod/v4/index.js | 3 - node_modules/zod/v4/locales/ar.cjs | 142 - node_modules/zod/v4/locales/ar.d.cts | 4 - node_modules/zod/v4/locales/ar.d.ts | 4 - node_modules/zod/v4/locales/ar.js | 116 - node_modules/zod/v4/locales/az.cjs | 141 - node_modules/zod/v4/locales/az.d.cts | 4 - node_modules/zod/v4/locales/az.d.ts | 4 - node_modules/zod/v4/locales/az.js | 115 - node_modules/zod/v4/locales/be.cjs | 190 - node_modules/zod/v4/locales/be.d.cts | 4 - node_modules/zod/v4/locales/be.d.ts | 4 - node_modules/zod/v4/locales/be.js | 164 - node_modules/zod/v4/locales/ca.cjs | 144 - node_modules/zod/v4/locales/ca.d.cts | 4 - node_modules/zod/v4/locales/ca.d.ts | 4 - node_modules/zod/v4/locales/ca.js | 118 - node_modules/zod/v4/locales/cs.cjs | 161 - node_modules/zod/v4/locales/cs.d.cts | 4 - node_modules/zod/v4/locales/cs.d.ts | 4 - node_modules/zod/v4/locales/cs.js | 135 - node_modules/zod/v4/locales/de.cjs | 142 - node_modules/zod/v4/locales/de.d.cts | 4 - node_modules/zod/v4/locales/de.d.ts | 4 - node_modules/zod/v4/locales/de.js | 116 - node_modules/zod/v4/locales/en.cjs | 145 - node_modules/zod/v4/locales/en.d.cts | 5 - node_modules/zod/v4/locales/en.d.ts | 5 - node_modules/zod/v4/locales/en.js | 117 - node_modules/zod/v4/locales/eo.cjs | 144 - node_modules/zod/v4/locales/eo.d.cts | 5 - node_modules/zod/v4/locales/eo.d.ts | 5 - node_modules/zod/v4/locales/eo.js | 116 - node_modules/zod/v4/locales/es.cjs | 143 - node_modules/zod/v4/locales/es.d.cts | 4 - node_modules/zod/v4/locales/es.d.ts | 4 - node_modules/zod/v4/locales/es.js | 117 - node_modules/zod/v4/locales/fa.cjs | 148 - node_modules/zod/v4/locales/fa.d.cts | 4 - node_modules/zod/v4/locales/fa.d.ts | 4 - node_modules/zod/v4/locales/fa.js | 122 - node_modules/zod/v4/locales/fi.cjs | 148 - node_modules/zod/v4/locales/fi.d.cts | 4 - node_modules/zod/v4/locales/fi.d.ts | 4 - node_modules/zod/v4/locales/fi.js | 122 - node_modules/zod/v4/locales/fr-CA.cjs | 143 - node_modules/zod/v4/locales/fr-CA.d.cts | 4 - node_modules/zod/v4/locales/fr-CA.d.ts | 4 - node_modules/zod/v4/locales/fr-CA.js | 117 - node_modules/zod/v4/locales/fr.cjs | 142 - node_modules/zod/v4/locales/fr.d.cts | 4 - node_modules/zod/v4/locales/fr.d.ts | 4 - node_modules/zod/v4/locales/fr.js | 116 - node_modules/zod/v4/locales/he.cjs | 143 - node_modules/zod/v4/locales/he.d.cts | 4 - node_modules/zod/v4/locales/he.d.ts | 4 - node_modules/zod/v4/locales/he.js | 117 - node_modules/zod/v4/locales/hu.cjs | 143 - node_modules/zod/v4/locales/hu.d.cts | 4 - node_modules/zod/v4/locales/hu.d.ts | 4 - node_modules/zod/v4/locales/hu.js | 117 - node_modules/zod/v4/locales/id.cjs | 142 - node_modules/zod/v4/locales/id.d.cts | 4 - node_modules/zod/v4/locales/id.d.ts | 4 - node_modules/zod/v4/locales/id.js | 116 - node_modules/zod/v4/locales/index.cjs | 84 - node_modules/zod/v4/locales/index.d.cts | 39 - node_modules/zod/v4/locales/index.d.ts | 39 - node_modules/zod/v4/locales/index.js | 39 - node_modules/zod/v4/locales/it.cjs | 143 - node_modules/zod/v4/locales/it.d.cts | 4 - node_modules/zod/v4/locales/it.d.ts | 4 - node_modules/zod/v4/locales/it.js | 117 - node_modules/zod/v4/locales/ja.cjs | 141 - node_modules/zod/v4/locales/ja.d.cts | 4 - node_modules/zod/v4/locales/ja.d.ts | 4 - node_modules/zod/v4/locales/ja.js | 115 - node_modules/zod/v4/locales/kh.cjs | 143 - node_modules/zod/v4/locales/kh.d.cts | 4 - node_modules/zod/v4/locales/kh.d.ts | 4 - node_modules/zod/v4/locales/kh.js | 117 - node_modules/zod/v4/locales/ko.cjs | 147 - node_modules/zod/v4/locales/ko.d.cts | 4 - node_modules/zod/v4/locales/ko.d.ts | 4 - node_modules/zod/v4/locales/ko.js | 121 - node_modules/zod/v4/locales/mk.cjs | 144 - node_modules/zod/v4/locales/mk.d.cts | 4 - node_modules/zod/v4/locales/mk.d.ts | 4 - node_modules/zod/v4/locales/mk.js | 118 - node_modules/zod/v4/locales/ms.cjs | 142 - node_modules/zod/v4/locales/ms.d.cts | 4 - node_modules/zod/v4/locales/ms.d.ts | 4 - node_modules/zod/v4/locales/ms.js | 116 - node_modules/zod/v4/locales/nl.cjs | 143 - node_modules/zod/v4/locales/nl.d.cts | 4 - node_modules/zod/v4/locales/nl.d.ts | 4 - node_modules/zod/v4/locales/nl.js | 117 - node_modules/zod/v4/locales/no.cjs | 142 - node_modules/zod/v4/locales/no.d.cts | 4 - node_modules/zod/v4/locales/no.d.ts | 4 - node_modules/zod/v4/locales/no.js | 116 - node_modules/zod/v4/locales/ota.cjs | 143 - node_modules/zod/v4/locales/ota.d.cts | 4 - node_modules/zod/v4/locales/ota.d.ts | 4 - node_modules/zod/v4/locales/ota.js | 117 - node_modules/zod/v4/locales/pl.cjs | 143 - node_modules/zod/v4/locales/pl.d.cts | 4 - node_modules/zod/v4/locales/pl.d.ts | 4 - node_modules/zod/v4/locales/pl.js | 117 - node_modules/zod/v4/locales/ps.cjs | 148 - node_modules/zod/v4/locales/ps.d.cts | 4 - node_modules/zod/v4/locales/ps.d.ts | 4 - node_modules/zod/v4/locales/ps.js | 122 - node_modules/zod/v4/locales/pt.cjs | 142 - node_modules/zod/v4/locales/pt.d.cts | 4 - node_modules/zod/v4/locales/pt.d.ts | 4 - node_modules/zod/v4/locales/pt.js | 116 - node_modules/zod/v4/locales/ru.cjs | 190 - node_modules/zod/v4/locales/ru.d.cts | 4 - node_modules/zod/v4/locales/ru.d.ts | 4 - node_modules/zod/v4/locales/ru.js | 164 - node_modules/zod/v4/locales/sl.cjs | 143 - node_modules/zod/v4/locales/sl.d.cts | 4 - node_modules/zod/v4/locales/sl.d.ts | 4 - node_modules/zod/v4/locales/sl.js | 117 - node_modules/zod/v4/locales/sv.cjs | 144 - node_modules/zod/v4/locales/sv.d.cts | 4 - node_modules/zod/v4/locales/sv.d.ts | 4 - node_modules/zod/v4/locales/sv.js | 118 - node_modules/zod/v4/locales/ta.cjs | 143 - node_modules/zod/v4/locales/ta.d.cts | 4 - node_modules/zod/v4/locales/ta.d.ts | 4 - node_modules/zod/v4/locales/ta.js | 117 - node_modules/zod/v4/locales/th.cjs | 143 - node_modules/zod/v4/locales/th.d.cts | 4 - node_modules/zod/v4/locales/th.d.ts | 4 - node_modules/zod/v4/locales/th.js | 117 - node_modules/zod/v4/locales/tr.cjs | 143 - node_modules/zod/v4/locales/tr.d.cts | 5 - node_modules/zod/v4/locales/tr.d.ts | 5 - node_modules/zod/v4/locales/tr.js | 115 - node_modules/zod/v4/locales/ua.cjs | 143 - node_modules/zod/v4/locales/ua.d.cts | 4 - node_modules/zod/v4/locales/ua.d.ts | 4 - node_modules/zod/v4/locales/ua.js | 117 - node_modules/zod/v4/locales/ur.cjs | 143 - node_modules/zod/v4/locales/ur.d.cts | 4 - node_modules/zod/v4/locales/ur.d.ts | 4 - node_modules/zod/v4/locales/ur.js | 117 - node_modules/zod/v4/locales/vi.cjs | 142 - node_modules/zod/v4/locales/vi.d.cts | 4 - node_modules/zod/v4/locales/vi.d.ts | 4 - node_modules/zod/v4/locales/vi.js | 116 - node_modules/zod/v4/locales/zh-CN.cjs | 142 - node_modules/zod/v4/locales/zh-CN.d.cts | 4 - node_modules/zod/v4/locales/zh-CN.d.ts | 4 - node_modules/zod/v4/locales/zh-CN.js | 116 - node_modules/zod/v4/locales/zh-TW.cjs | 143 - node_modules/zod/v4/locales/zh-TW.d.cts | 4 - node_modules/zod/v4/locales/zh-TW.d.ts | 4 - node_modules/zod/v4/locales/zh-TW.js | 117 - node_modules/zod/v4/mini/checks.cjs | 34 - node_modules/zod/v4/mini/checks.d.cts | 1 - node_modules/zod/v4/mini/checks.d.ts | 1 - node_modules/zod/v4/mini/checks.js | 1 - node_modules/zod/v4/mini/coerce.cjs | 47 - node_modules/zod/v4/mini/coerce.d.cts | 7 - node_modules/zod/v4/mini/coerce.d.ts | 7 - node_modules/zod/v4/mini/coerce.js | 17 - node_modules/zod/v4/mini/external.cjs | 62 - node_modules/zod/v4/mini/external.d.cts | 11 - node_modules/zod/v4/mini/external.d.ts | 11 - node_modules/zod/v4/mini/external.js | 13 - node_modules/zod/v4/mini/index.cjs | 32 - node_modules/zod/v4/mini/index.d.cts | 3 - node_modules/zod/v4/mini/index.d.ts | 3 - node_modules/zod/v4/mini/index.js | 3 - node_modules/zod/v4/mini/iso.cjs | 60 - node_modules/zod/v4/mini/iso.d.cts | 22 - node_modules/zod/v4/mini/iso.d.ts | 22 - node_modules/zod/v4/mini/iso.js | 30 - node_modules/zod/v4/mini/parse.cjs | 8 - node_modules/zod/v4/mini/parse.d.cts | 1 - node_modules/zod/v4/mini/parse.d.ts | 1 - node_modules/zod/v4/mini/parse.js | 1 - node_modules/zod/v4/mini/schemas.cjs | 839 - node_modules/zod/v4/mini/schemas.d.cts | 356 - node_modules/zod/v4/mini/schemas.d.ts | 356 - node_modules/zod/v4/mini/schemas.js | 732 - 3343 files changed, 142 insertions(+), 626113 deletions(-) rename gitignore => .gitignore (93%) delete mode 120000 node_modules/.bin/browsers delete mode 120000 node_modules/.bin/js-yaml delete mode 120000 node_modules/.bin/puppeteer delete mode 120000 node_modules/.bin/rimraf delete mode 120000 node_modules/.bin/semver delete mode 100644 node_modules/.package-lock.json delete mode 100644 node_modules/@babel/code-frame/LICENSE delete mode 100644 node_modules/@babel/code-frame/README.md delete mode 100644 node_modules/@babel/code-frame/lib/index.js delete mode 100644 node_modules/@babel/code-frame/lib/index.js.map delete mode 100644 node_modules/@babel/code-frame/package.json delete mode 100644 node_modules/@babel/helper-validator-identifier/LICENSE delete mode 100644 node_modules/@babel/helper-validator-identifier/README.md delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/identifier.js delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/identifier.js.map delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/index.js delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/index.js.map delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/keyword.js delete mode 100644 node_modules/@babel/helper-validator-identifier/lib/keyword.js.map delete mode 100644 node_modules/@babel/helper-validator-identifier/package.json delete mode 100644 node_modules/@puppeteer/browsers/README.md delete mode 100644 node_modules/@puppeteer/browsers/lib/CLI.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/CLI.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/CLI.js delete mode 100644 node_modules/@puppeteer/browsers/lib/CLI.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/Cache.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/Cache.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/Cache.js delete mode 100644 node_modules/@puppeteer/browsers/lib/Cache.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.js delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js delete mode 100644 node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chrome.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromium.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/chromium.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/firefox.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/firefox.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/types.js delete mode 100644 node_modules/@puppeteer/browsers/lib/browser-data/types.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/debug.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/debug.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/debug.js delete mode 100644 node_modules/@puppeteer/browsers/lib/debug.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/detectPlatform.js delete mode 100644 node_modules/@puppeteer/browsers/lib/detectPlatform.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/fileUtil.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/fileUtil.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/fileUtil.js delete mode 100644 node_modules/@puppeteer/browsers/lib/fileUtil.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/httpUtil.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/httpUtil.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/httpUtil.js delete mode 100644 node_modules/@puppeteer/browsers/lib/httpUtil.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/install.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/install.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/install.js delete mode 100644 node_modules/@puppeteer/browsers/lib/install.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/launch.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/launch.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/launch.js delete mode 100644 node_modules/@puppeteer/browsers/lib/launch.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/main-cli.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/main-cli.d.ts.map delete mode 100755 node_modules/@puppeteer/browsers/lib/main-cli.js delete mode 100644 node_modules/@puppeteer/browsers/lib/main-cli.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/main.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/main.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/main.js delete mode 100644 node_modules/@puppeteer/browsers/lib/main.js.map delete mode 100644 node_modules/@puppeteer/browsers/lib/provider.d.ts delete mode 100644 node_modules/@puppeteer/browsers/lib/provider.d.ts.map delete mode 100644 node_modules/@puppeteer/browsers/lib/provider.js delete mode 100644 node_modules/@puppeteer/browsers/lib/provider.js.map delete mode 100644 node_modules/@puppeteer/browsers/package.json delete mode 100644 node_modules/@puppeteer/browsers/src/CLI.ts delete mode 100644 node_modules/@puppeteer/browsers/src/Cache.ts delete mode 100644 node_modules/@puppeteer/browsers/src/DefaultProvider.spec.ts delete mode 100644 node_modules/@puppeteer/browsers/src/DefaultProvider.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/browser-data.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/chrome-headless-shell.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/chrome.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/chromedriver.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/chromium.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/firefox.ts delete mode 100644 node_modules/@puppeteer/browsers/src/browser-data/types.ts delete mode 100644 node_modules/@puppeteer/browsers/src/debug.ts delete mode 100644 node_modules/@puppeteer/browsers/src/detectPlatform.ts delete mode 100644 node_modules/@puppeteer/browsers/src/fileUtil.ts delete mode 100644 node_modules/@puppeteer/browsers/src/httpUtil.ts delete mode 100644 node_modules/@puppeteer/browsers/src/install.ts delete mode 100644 node_modules/@puppeteer/browsers/src/launch.ts delete mode 100644 node_modules/@puppeteer/browsers/src/main-cli.ts delete mode 100644 node_modules/@puppeteer/browsers/src/main.ts delete mode 100644 node_modules/@puppeteer/browsers/src/provider.ts delete mode 100644 node_modules/@types/debug/LICENSE delete mode 100644 node_modules/@types/debug/README.md delete mode 100644 node_modules/@types/debug/index.d.ts delete mode 100644 node_modules/@types/debug/package.json delete mode 100644 node_modules/@types/ms/LICENSE delete mode 100644 node_modules/@types/ms/README.md delete mode 100644 node_modules/@types/ms/index.d.ts delete mode 100644 node_modules/@types/ms/package.json delete mode 100644 node_modules/agent-base/README.md delete mode 100644 node_modules/agent-base/dist/src/index.d.ts delete mode 100644 node_modules/agent-base/dist/src/index.js delete mode 100644 node_modules/agent-base/dist/src/index.js.map delete mode 100644 node_modules/agent-base/dist/src/promisify.d.ts delete mode 100644 node_modules/agent-base/dist/src/promisify.js delete mode 100644 node_modules/agent-base/dist/src/promisify.js.map delete mode 100644 node_modules/agent-base/package.json delete mode 100644 node_modules/agent-base/src/index.ts delete mode 100644 node_modules/agent-base/src/promisify.ts delete mode 100644 node_modules/ansi-regex/index.d.ts delete mode 100644 node_modules/ansi-regex/index.js delete mode 100644 node_modules/ansi-regex/license delete mode 100644 node_modules/ansi-regex/package.json delete mode 100644 node_modules/ansi-regex/readme.md delete mode 100644 node_modules/ansi-styles/index.d.ts delete mode 100644 node_modules/ansi-styles/index.js delete mode 100644 node_modules/ansi-styles/license delete mode 100644 node_modules/ansi-styles/package.json delete mode 100644 node_modules/ansi-styles/readme.md delete mode 100644 node_modules/argparse/CHANGELOG.md delete mode 100644 node_modules/argparse/LICENSE delete mode 100644 node_modules/argparse/README.md delete mode 100644 node_modules/argparse/argparse.js delete mode 100644 node_modules/argparse/lib/sub.js delete mode 100644 node_modules/argparse/lib/textwrap.js delete mode 100644 node_modules/argparse/package.json delete mode 100644 node_modules/arr-union/LICENSE delete mode 100644 node_modules/arr-union/README.md delete mode 100644 node_modules/arr-union/index.js delete mode 100644 node_modules/arr-union/package.json delete mode 100644 node_modules/asynckit/LICENSE delete mode 100644 node_modules/asynckit/README.md delete mode 100644 node_modules/asynckit/bench.js delete mode 100644 node_modules/asynckit/index.js delete mode 100644 node_modules/asynckit/lib/abort.js delete mode 100644 node_modules/asynckit/lib/async.js delete mode 100644 node_modules/asynckit/lib/defer.js delete mode 100644 node_modules/asynckit/lib/iterate.js delete mode 100644 node_modules/asynckit/lib/readable_asynckit.js delete mode 100644 node_modules/asynckit/lib/readable_parallel.js delete mode 100644 node_modules/asynckit/lib/readable_serial.js delete mode 100644 node_modules/asynckit/lib/readable_serial_ordered.js delete mode 100644 node_modules/asynckit/lib/state.js delete mode 100644 node_modules/asynckit/lib/streamify.js delete mode 100644 node_modules/asynckit/lib/terminator.js delete mode 100644 node_modules/asynckit/package.json delete mode 100644 node_modules/asynckit/parallel.js delete mode 100644 node_modules/asynckit/serial.js delete mode 100644 node_modules/asynckit/serialOrdered.js delete mode 100644 node_modules/asynckit/stream.js delete mode 100644 node_modules/axios/CHANGELOG.md delete mode 100644 node_modules/axios/LICENSE delete mode 100644 node_modules/axios/MIGRATION_GUIDE.md delete mode 100644 node_modules/axios/README.md delete mode 100644 node_modules/axios/dist/axios.js delete mode 100644 node_modules/axios/dist/axios.js.map delete mode 100644 node_modules/axios/dist/axios.min.js delete mode 100644 node_modules/axios/dist/axios.min.js.map delete mode 100644 node_modules/axios/dist/browser/axios.cjs delete mode 100644 node_modules/axios/dist/browser/axios.cjs.map delete mode 100644 node_modules/axios/dist/esm/axios.js delete mode 100644 node_modules/axios/dist/esm/axios.js.map delete mode 100644 node_modules/axios/dist/esm/axios.min.js delete mode 100644 node_modules/axios/dist/esm/axios.min.js.map delete mode 100644 node_modules/axios/dist/node/axios.cjs delete mode 100644 node_modules/axios/dist/node/axios.cjs.map delete mode 100644 node_modules/axios/index.d.cts delete mode 100644 node_modules/axios/index.d.ts delete mode 100644 node_modules/axios/index.js delete mode 100644 node_modules/axios/lib/adapters/README.md delete mode 100644 node_modules/axios/lib/adapters/adapters.js delete mode 100644 node_modules/axios/lib/adapters/fetch.js delete mode 100755 node_modules/axios/lib/adapters/http.js delete mode 100644 node_modules/axios/lib/adapters/xhr.js delete mode 100644 node_modules/axios/lib/axios.js delete mode 100644 node_modules/axios/lib/cancel/CancelToken.js delete mode 100644 node_modules/axios/lib/cancel/CanceledError.js delete mode 100644 node_modules/axios/lib/cancel/isCancel.js delete mode 100644 node_modules/axios/lib/core/Axios.js delete mode 100644 node_modules/axios/lib/core/AxiosError.js delete mode 100644 node_modules/axios/lib/core/AxiosHeaders.js delete mode 100644 node_modules/axios/lib/core/InterceptorManager.js delete mode 100644 node_modules/axios/lib/core/README.md delete mode 100644 node_modules/axios/lib/core/buildFullPath.js delete mode 100644 node_modules/axios/lib/core/dispatchRequest.js delete mode 100644 node_modules/axios/lib/core/mergeConfig.js delete mode 100644 node_modules/axios/lib/core/settle.js delete mode 100644 node_modules/axios/lib/core/transformData.js delete mode 100644 node_modules/axios/lib/defaults/index.js delete mode 100644 node_modules/axios/lib/defaults/transitional.js delete mode 100644 node_modules/axios/lib/env/README.md delete mode 100644 node_modules/axios/lib/env/classes/FormData.js delete mode 100644 node_modules/axios/lib/env/data.js delete mode 100644 node_modules/axios/lib/helpers/AxiosTransformStream.js delete mode 100644 node_modules/axios/lib/helpers/AxiosURLSearchParams.js delete mode 100644 node_modules/axios/lib/helpers/HttpStatusCode.js delete mode 100644 node_modules/axios/lib/helpers/README.md delete mode 100644 node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js delete mode 100644 node_modules/axios/lib/helpers/bind.js delete mode 100644 node_modules/axios/lib/helpers/buildURL.js delete mode 100644 node_modules/axios/lib/helpers/callbackify.js delete mode 100644 node_modules/axios/lib/helpers/combineURLs.js delete mode 100644 node_modules/axios/lib/helpers/composeSignals.js delete mode 100644 node_modules/axios/lib/helpers/cookies.js delete mode 100644 node_modules/axios/lib/helpers/deprecatedMethod.js delete mode 100644 node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js delete mode 100644 node_modules/axios/lib/helpers/formDataToJSON.js delete mode 100644 node_modules/axios/lib/helpers/formDataToStream.js delete mode 100644 node_modules/axios/lib/helpers/fromDataURI.js delete mode 100644 node_modules/axios/lib/helpers/isAbsoluteURL.js delete mode 100644 node_modules/axios/lib/helpers/isAxiosError.js delete mode 100644 node_modules/axios/lib/helpers/isURLSameOrigin.js delete mode 100644 node_modules/axios/lib/helpers/null.js delete mode 100644 node_modules/axios/lib/helpers/parseHeaders.js delete mode 100644 node_modules/axios/lib/helpers/parseProtocol.js delete mode 100644 node_modules/axios/lib/helpers/progressEventReducer.js delete mode 100644 node_modules/axios/lib/helpers/readBlob.js delete mode 100644 node_modules/axios/lib/helpers/resolveConfig.js delete mode 100644 node_modules/axios/lib/helpers/sanitizeHeaderValue.js delete mode 100644 node_modules/axios/lib/helpers/shouldBypassProxy.js delete mode 100644 node_modules/axios/lib/helpers/speedometer.js delete mode 100644 node_modules/axios/lib/helpers/spread.js delete mode 100644 node_modules/axios/lib/helpers/throttle.js delete mode 100644 node_modules/axios/lib/helpers/toFormData.js delete mode 100644 node_modules/axios/lib/helpers/toURLEncodedForm.js delete mode 100644 node_modules/axios/lib/helpers/trackStream.js delete mode 100644 node_modules/axios/lib/helpers/validator.js delete mode 100644 node_modules/axios/lib/platform/browser/classes/Blob.js delete mode 100644 node_modules/axios/lib/platform/browser/classes/FormData.js delete mode 100644 node_modules/axios/lib/platform/browser/classes/URLSearchParams.js delete mode 100644 node_modules/axios/lib/platform/browser/index.js delete mode 100644 node_modules/axios/lib/platform/common/utils.js delete mode 100644 node_modules/axios/lib/platform/index.js delete mode 100644 node_modules/axios/lib/platform/node/classes/FormData.js delete mode 100644 node_modules/axios/lib/platform/node/classes/URLSearchParams.js delete mode 100644 node_modules/axios/lib/platform/node/index.js delete mode 100644 node_modules/axios/lib/utils.js delete mode 100644 node_modules/axios/package.json delete mode 100644 node_modules/b4a/LICENSE delete mode 100644 node_modules/b4a/README.md delete mode 100644 node_modules/b4a/browser.js delete mode 100644 node_modules/b4a/index.js delete mode 100644 node_modules/b4a/lib/ascii.js delete mode 100644 node_modules/b4a/lib/base64.js delete mode 100644 node_modules/b4a/lib/hex.js delete mode 100644 node_modules/b4a/lib/latin1.js delete mode 100644 node_modules/b4a/lib/utf16le.js delete mode 100644 node_modules/b4a/lib/utf8.js delete mode 100644 node_modules/b4a/package.json delete mode 100644 node_modules/b4a/react-native.js delete mode 100644 node_modules/balanced-match/.github/FUNDING.yml delete mode 100644 node_modules/balanced-match/LICENSE.md delete mode 100644 node_modules/balanced-match/README.md delete mode 100644 node_modules/balanced-match/index.js delete mode 100644 node_modules/balanced-match/package.json delete mode 100644 node_modules/bare-events/LICENSE delete mode 100644 node_modules/bare-events/README.md delete mode 100644 node_modules/bare-events/global.d.ts delete mode 100644 node_modules/bare-events/global.js delete mode 100644 node_modules/bare-events/index.d.ts delete mode 100644 node_modules/bare-events/index.js delete mode 100644 node_modules/bare-events/lib/errors.js delete mode 100644 node_modules/bare-events/package.json delete mode 100644 node_modules/bare-events/web.d.ts delete mode 100644 node_modules/bare-events/web.js delete mode 100644 node_modules/bare-fs/CMakeLists.txt delete mode 100644 node_modules/bare-fs/LICENSE delete mode 100644 node_modules/bare-fs/README.md delete mode 100644 node_modules/bare-fs/binding.c delete mode 100644 node_modules/bare-fs/binding.js delete mode 100644 node_modules/bare-fs/index.d.ts delete mode 100644 node_modules/bare-fs/index.js delete mode 100644 node_modules/bare-fs/lib/constants.d.ts delete mode 100644 node_modules/bare-fs/lib/constants.js delete mode 100644 node_modules/bare-fs/lib/errors.d.ts delete mode 100644 node_modules/bare-fs/lib/errors.js delete mode 100644 node_modules/bare-fs/package.json delete mode 100644 node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/android-ia32/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/android-x64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/win32-arm64/bare-fs.bare delete mode 100644 node_modules/bare-fs/prebuilds/win32-x64/bare-fs.bare delete mode 100644 node_modules/bare-fs/promises.d.ts delete mode 100644 node_modules/bare-fs/promises.js delete mode 100644 node_modules/bare-os/CMakeLists.txt delete mode 100644 node_modules/bare-os/LICENSE delete mode 100644 node_modules/bare-os/README.md delete mode 100644 node_modules/bare-os/binding.c delete mode 100644 node_modules/bare-os/binding.js delete mode 100644 node_modules/bare-os/index.d.ts delete mode 100644 node_modules/bare-os/index.js delete mode 100644 node_modules/bare-os/lib/constants.d.ts delete mode 100644 node_modules/bare-os/lib/constants.js delete mode 100644 node_modules/bare-os/lib/errors.d.ts delete mode 100644 node_modules/bare-os/lib/errors.js delete mode 100644 node_modules/bare-os/package.json delete mode 100644 node_modules/bare-os/prebuilds/android-arm/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/android-arm64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/android-ia32/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/android-x64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/darwin-arm64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/darwin-x64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/ios-arm64-simulator/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/ios-arm64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/ios-x64-simulator/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/linux-arm64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/linux-x64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/win32-arm64/bare-os.bare delete mode 100644 node_modules/bare-os/prebuilds/win32-x64/bare-os.bare delete mode 100644 node_modules/bare-path/LICENSE delete mode 100644 node_modules/bare-path/NOTICE delete mode 100644 node_modules/bare-path/README.md delete mode 100644 node_modules/bare-path/index.js delete mode 100644 node_modules/bare-path/lib/constants.js delete mode 100644 node_modules/bare-path/lib/posix.js delete mode 100644 node_modules/bare-path/lib/shared.js delete mode 100644 node_modules/bare-path/lib/win32.js delete mode 100644 node_modules/bare-path/package.json delete mode 100644 node_modules/bare-stream/LICENSE delete mode 100644 node_modules/bare-stream/README.md delete mode 100644 node_modules/bare-stream/global.d.ts delete mode 100644 node_modules/bare-stream/global.js delete mode 100644 node_modules/bare-stream/index.d.ts delete mode 100644 node_modules/bare-stream/index.js delete mode 100644 node_modules/bare-stream/package.json delete mode 100644 node_modules/bare-stream/promises.js delete mode 100644 node_modules/bare-stream/web.d.ts delete mode 100644 node_modules/bare-stream/web.js delete mode 100644 node_modules/bare-url/CMakeLists.txt delete mode 100644 node_modules/bare-url/LICENSE delete mode 100644 node_modules/bare-url/README.md delete mode 100644 node_modules/bare-url/binding.c delete mode 100644 node_modules/bare-url/binding.js delete mode 100644 node_modules/bare-url/global.d.ts delete mode 100644 node_modules/bare-url/global.js delete mode 100644 node_modules/bare-url/index.d.ts delete mode 100644 node_modules/bare-url/index.js delete mode 100644 node_modules/bare-url/lib/errors.d.ts delete mode 100644 node_modules/bare-url/lib/errors.js delete mode 100644 node_modules/bare-url/lib/url-search-params.d.ts delete mode 100644 node_modules/bare-url/lib/url-search-params.js delete mode 100644 node_modules/bare-url/package.json delete mode 100644 node_modules/bare-url/prebuilds/android-arm/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/android-arm64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/android-ia32/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/android-x64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/darwin-arm64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/linux-x64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare delete mode 100644 node_modules/bare-url/prebuilds/win32-x64/bare-url.bare delete mode 100644 node_modules/brace-expansion/LICENSE delete mode 100644 node_modules/brace-expansion/README.md delete mode 100644 node_modules/brace-expansion/index.js delete mode 100644 node_modules/brace-expansion/package.json delete mode 100644 node_modules/call-bind-apply-helpers/.eslintrc delete mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml delete mode 100644 node_modules/call-bind-apply-helpers/.nycrc delete mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md delete mode 100644 node_modules/call-bind-apply-helpers/LICENSE delete mode 100644 node_modules/call-bind-apply-helpers/README.md delete mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/actualApply.js delete mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/applyBind.js delete mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/functionApply.js delete mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/functionCall.js delete mode 100644 node_modules/call-bind-apply-helpers/index.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/index.js delete mode 100644 node_modules/call-bind-apply-helpers/package.json delete mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts delete mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js delete mode 100644 node_modules/call-bind-apply-helpers/test/index.js delete mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json delete mode 100644 node_modules/callsites/index.d.ts delete mode 100644 node_modules/callsites/index.js delete mode 100644 node_modules/callsites/license delete mode 100644 node_modules/callsites/package.json delete mode 100644 node_modules/callsites/readme.md delete mode 100644 node_modules/chromium-bidi/.browser delete mode 100644 node_modules/chromium-bidi/LICENSE delete mode 100644 node_modules/chromium-bidi/README.md delete mode 100644 node_modules/chromium-bidi/lib/THIRD_PARTY_NOTICES delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiParser.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiServer.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js delete mode 100644 node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/PipeTransport.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/index.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/index.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/index.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/reader.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/reader.js delete mode 100644 node_modules/chromium-bidi/lib/bidiServer/reader.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/BidiParser.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/BidiParser.js delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/BidiParser.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/Transport.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/Transport.js delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/Transport.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/bidiTab.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/bidiTab.js delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/bidiTab.js.map delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js delete mode 100644 node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js.map delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpClient.d.ts delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpClient.js delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpClient.js.map delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpConnection.d.ts delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpConnection.js delete mode 100644 node_modules/chromium-bidi/lib/cdp/CdpConnection.js.map delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdp.d.ts delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdp.js delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdp.js.map delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdpMessage.d.ts delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdpMessage.js delete mode 100644 node_modules/chromium-bidi/lib/cdp/cdpMessage.js.map delete mode 100644 node_modules/chromium-bidi/lib/iife/mapperTab.js delete mode 100644 node_modules/chromium-bidi/lib/iife/mapperTab.js.map delete mode 100644 node_modules/chromium-bidi/lib/index.d.ts delete mode 100644 node_modules/chromium-bidi/lib/index.js delete mode 100644 node_modules/chromium-bidi/lib/index.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js delete mode 100644 node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/ErrorResponse.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/ErrorResponse.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/ErrorResponse.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/cdp.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/cdp.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/cdp.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/chromium-bidi.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/chromium-bidi.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/chromium-bidi.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js.map delete mode 100644 node_modules/chromium-bidi/lib/protocol/protocol.d.ts delete mode 100644 node_modules/chromium-bidi/lib/protocol/protocol.js delete mode 100644 node_modules/chromium-bidi/lib/protocol/protocol.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/Buffer.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/Buffer.js delete mode 100644 node_modules/chromium-bidi/lib/utils/Buffer.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/DefaultMap.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/DefaultMap.js delete mode 100644 node_modules/chromium-bidi/lib/utils/DefaultMap.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/Deferred.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/Deferred.js delete mode 100644 node_modules/chromium-bidi/lib/utils/Deferred.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/EventEmitter.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/EventEmitter.js delete mode 100644 node_modules/chromium-bidi/lib/utils/EventEmitter.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/IdWrapper.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/IdWrapper.js delete mode 100644 node_modules/chromium-bidi/lib/utils/IdWrapper.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/Mutex.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/Mutex.js delete mode 100644 node_modules/chromium-bidi/lib/utils/Mutex.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/ProcessingQueue.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/ProcessingQueue.js delete mode 100644 node_modules/chromium-bidi/lib/utils/ProcessingQueue.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/assert.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/assert.js delete mode 100644 node_modules/chromium-bidi/lib/utils/assert.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/base64.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/base64.js delete mode 100644 node_modules/chromium-bidi/lib/utils/base64.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/cdpErrorConstants.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js delete mode 100644 node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/graphemeTools.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/graphemeTools.js delete mode 100644 node_modules/chromium-bidi/lib/utils/graphemeTools.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/log.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/log.js delete mode 100644 node_modules/chromium-bidi/lib/utils/log.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/result.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/result.js delete mode 100644 node_modules/chromium-bidi/lib/utils/result.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/time.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/time.js delete mode 100644 node_modules/chromium-bidi/lib/utils/time.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/transport.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/transport.js delete mode 100644 node_modules/chromium-bidi/lib/utils/transport.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/unitConversions.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/unitConversions.js delete mode 100644 node_modules/chromium-bidi/lib/utils/unitConversions.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/urlHelpers.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/urlHelpers.js delete mode 100644 node_modules/chromium-bidi/lib/utils/urlHelpers.js.map delete mode 100644 node_modules/chromium-bidi/lib/utils/uuid.d.ts delete mode 100644 node_modules/chromium-bidi/lib/utils/uuid.js delete mode 100644 node_modules/chromium-bidi/lib/utils/uuid.js.map delete mode 100644 node_modules/chromium-bidi/package.json delete mode 100644 node_modules/cliui/CHANGELOG.md delete mode 100644 node_modules/cliui/LICENSE.txt delete mode 100644 node_modules/cliui/README.md delete mode 100644 node_modules/cliui/build/index.cjs delete mode 100644 node_modules/cliui/build/index.d.cts delete mode 100644 node_modules/cliui/build/lib/index.js delete mode 100644 node_modules/cliui/build/lib/string-utils.js delete mode 100644 node_modules/cliui/index.mjs delete mode 100644 node_modules/cliui/package.json delete mode 100644 node_modules/clone-deep/LICENSE delete mode 100644 node_modules/clone-deep/README.md delete mode 100644 node_modules/clone-deep/index.js delete mode 100644 node_modules/clone-deep/package.json delete mode 100644 node_modules/clone-deep/utils.js delete mode 100644 node_modules/color-convert/CHANGELOG.md delete mode 100644 node_modules/color-convert/LICENSE delete mode 100644 node_modules/color-convert/README.md delete mode 100644 node_modules/color-convert/conversions.js delete mode 100644 node_modules/color-convert/index.js delete mode 100644 node_modules/color-convert/package.json delete mode 100644 node_modules/color-convert/route.js delete mode 100644 node_modules/color-name/LICENSE delete mode 100644 node_modules/color-name/README.md delete mode 100644 node_modules/color-name/index.js delete mode 100644 node_modules/color-name/package.json delete mode 100644 node_modules/combined-stream/License delete mode 100644 node_modules/combined-stream/Readme.md delete mode 100644 node_modules/combined-stream/lib/combined_stream.js delete mode 100644 node_modules/combined-stream/package.json delete mode 100644 node_modules/combined-stream/yarn.lock delete mode 100644 node_modules/concat-map/.travis.yml delete mode 100644 node_modules/concat-map/LICENSE delete mode 100644 node_modules/concat-map/README.markdown delete mode 100644 node_modules/concat-map/example/map.js delete mode 100644 node_modules/concat-map/index.js delete mode 100644 node_modules/concat-map/package.json delete mode 100644 node_modules/concat-map/test/map.js delete mode 100644 node_modules/cosmiconfig/LICENSE delete mode 100644 node_modules/cosmiconfig/README.md delete mode 100644 node_modules/cosmiconfig/dist/Explorer.d.ts delete mode 100644 node_modules/cosmiconfig/dist/Explorer.js delete mode 100644 node_modules/cosmiconfig/dist/ExplorerBase.d.ts delete mode 100644 node_modules/cosmiconfig/dist/ExplorerBase.js delete mode 100644 node_modules/cosmiconfig/dist/ExplorerSync.d.ts delete mode 100644 node_modules/cosmiconfig/dist/ExplorerSync.js delete mode 100644 node_modules/cosmiconfig/dist/cacheWrapper.d.ts delete mode 100644 node_modules/cosmiconfig/dist/cacheWrapper.js delete mode 100644 node_modules/cosmiconfig/dist/canUseDynamicImport.d.ts delete mode 100644 node_modules/cosmiconfig/dist/canUseDynamicImport.js delete mode 100644 node_modules/cosmiconfig/dist/defaults.d.ts delete mode 100644 node_modules/cosmiconfig/dist/defaults.js delete mode 100644 node_modules/cosmiconfig/dist/getDirectory.d.ts delete mode 100644 node_modules/cosmiconfig/dist/getDirectory.js delete mode 100644 node_modules/cosmiconfig/dist/getPropertyByPath.d.ts delete mode 100644 node_modules/cosmiconfig/dist/getPropertyByPath.js delete mode 100644 node_modules/cosmiconfig/dist/index.d.ts delete mode 100644 node_modules/cosmiconfig/dist/index.js delete mode 100644 node_modules/cosmiconfig/dist/loaders.d.ts delete mode 100644 node_modules/cosmiconfig/dist/loaders.js delete mode 100644 node_modules/cosmiconfig/dist/merge.d.ts delete mode 100644 node_modules/cosmiconfig/dist/merge.js delete mode 100644 node_modules/cosmiconfig/dist/readFile.d.ts delete mode 100644 node_modules/cosmiconfig/dist/readFile.js delete mode 100644 node_modules/cosmiconfig/dist/types.d.ts delete mode 100644 node_modules/cosmiconfig/dist/types.js delete mode 100644 node_modules/cosmiconfig/dist/util.d.ts delete mode 100644 node_modules/cosmiconfig/dist/util.js delete mode 100644 node_modules/cosmiconfig/package.json delete mode 100644 node_modules/debug/LICENSE delete mode 100644 node_modules/debug/README.md delete mode 100644 node_modules/debug/package.json delete mode 100644 node_modules/debug/src/browser.js delete mode 100644 node_modules/debug/src/common.js delete mode 100644 node_modules/debug/src/index.js delete mode 100644 node_modules/debug/src/node.js delete mode 100644 node_modules/deepmerge/.editorconfig delete mode 100644 node_modules/deepmerge/.eslintcache delete mode 100644 node_modules/deepmerge/changelog.md delete mode 100644 node_modules/deepmerge/dist/cjs.js delete mode 100644 node_modules/deepmerge/dist/umd.js delete mode 100644 node_modules/deepmerge/index.d.ts delete mode 100644 node_modules/deepmerge/index.js delete mode 100644 node_modules/deepmerge/license.txt delete mode 100644 node_modules/deepmerge/package.json delete mode 100644 node_modules/deepmerge/readme.md delete mode 100644 node_modules/deepmerge/rollup.config.js delete mode 100644 node_modules/delayed-stream/.npmignore delete mode 100644 node_modules/delayed-stream/License delete mode 100644 node_modules/delayed-stream/Makefile delete mode 100644 node_modules/delayed-stream/Readme.md delete mode 100644 node_modules/delayed-stream/lib/delayed_stream.js delete mode 100644 node_modules/delayed-stream/package.json delete mode 100644 node_modules/devtools-protocol/LICENSE delete mode 100644 node_modules/devtools-protocol/README.md delete mode 100644 node_modules/devtools-protocol/json/browser_protocol.json delete mode 100644 node_modules/devtools-protocol/json/js_protocol.json delete mode 100644 node_modules/devtools-protocol/package.json delete mode 100644 node_modules/devtools-protocol/pdl/browser_protocol.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Accessibility.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Animation.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Audits.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Autofill.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/BackgroundService.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/BluetoothEmulation.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Browser.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/CSS.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/CacheStorage.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Cast.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/CrashReportContext.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DOM.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DOMDebugger.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DOMSnapshot.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DOMStorage.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DeviceAccess.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/DeviceOrientation.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Emulation.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/EventBreakpoints.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Extensions.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/FedCm.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Fetch.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/FileSystem.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/HeadlessExperimental.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/IO.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/IndexedDB.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Input.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Inspector.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/LayerTree.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Log.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Media.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Memory.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Network.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Overlay.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/PWA.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Page.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Performance.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/PerformanceTimeline.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Preload.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Security.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/ServiceWorker.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/SmartCardEmulation.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Storage.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/SystemInfo.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Target.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Tethering.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/Tracing.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/WebAudio.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/WebAuthn.pdl delete mode 100644 node_modules/devtools-protocol/pdl/domains/WebMCP.pdl delete mode 100644 node_modules/devtools-protocol/pdl/js_protocol.pdl delete mode 100644 node_modules/devtools-protocol/types/protocol-mapping.d.ts delete mode 100644 node_modules/devtools-protocol/types/protocol-proxy-api.d.ts delete mode 100644 node_modules/devtools-protocol/types/protocol-tests-proxy-api.d.ts delete mode 100644 node_modules/devtools-protocol/types/protocol.d.ts delete mode 100644 node_modules/dunder-proto/.eslintrc delete mode 100644 node_modules/dunder-proto/.github/FUNDING.yml delete mode 100644 node_modules/dunder-proto/.nycrc delete mode 100644 node_modules/dunder-proto/CHANGELOG.md delete mode 100644 node_modules/dunder-proto/LICENSE delete mode 100644 node_modules/dunder-proto/README.md delete mode 100644 node_modules/dunder-proto/get.d.ts delete mode 100644 node_modules/dunder-proto/get.js delete mode 100644 node_modules/dunder-proto/package.json delete mode 100644 node_modules/dunder-proto/set.d.ts delete mode 100644 node_modules/dunder-proto/set.js delete mode 100644 node_modules/dunder-proto/test/get.js delete mode 100644 node_modules/dunder-proto/test/index.js delete mode 100644 node_modules/dunder-proto/test/set.js delete mode 100644 node_modules/dunder-proto/tsconfig.json delete mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt delete mode 100644 node_modules/emoji-regex/README.md delete mode 100644 node_modules/emoji-regex/es2015/index.js delete mode 100644 node_modules/emoji-regex/es2015/text.js delete mode 100644 node_modules/emoji-regex/index.d.ts delete mode 100644 node_modules/emoji-regex/index.js delete mode 100644 node_modules/emoji-regex/package.json delete mode 100644 node_modules/emoji-regex/text.js delete mode 100644 node_modules/end-of-stream/LICENSE delete mode 100644 node_modules/end-of-stream/README.md delete mode 100644 node_modules/end-of-stream/index.js delete mode 100644 node_modules/end-of-stream/package.json delete mode 100644 node_modules/env-paths/index.d.ts delete mode 100644 node_modules/env-paths/index.js delete mode 100644 node_modules/env-paths/license delete mode 100644 node_modules/env-paths/package.json delete mode 100644 node_modules/env-paths/readme.md delete mode 100644 node_modules/error-ex/LICENSE delete mode 100644 node_modules/error-ex/README.md delete mode 100644 node_modules/error-ex/index.js delete mode 100644 node_modules/error-ex/package.json delete mode 100644 node_modules/es-define-property/.eslintrc delete mode 100644 node_modules/es-define-property/.github/FUNDING.yml delete mode 100644 node_modules/es-define-property/.nycrc delete mode 100644 node_modules/es-define-property/CHANGELOG.md delete mode 100644 node_modules/es-define-property/LICENSE delete mode 100644 node_modules/es-define-property/README.md delete mode 100644 node_modules/es-define-property/index.d.ts delete mode 100644 node_modules/es-define-property/index.js delete mode 100644 node_modules/es-define-property/package.json delete mode 100644 node_modules/es-define-property/test/index.js delete mode 100644 node_modules/es-define-property/tsconfig.json delete mode 100644 node_modules/es-errors/.eslintrc delete mode 100644 node_modules/es-errors/.github/FUNDING.yml delete mode 100644 node_modules/es-errors/CHANGELOG.md delete mode 100644 node_modules/es-errors/LICENSE delete mode 100644 node_modules/es-errors/README.md delete mode 100644 node_modules/es-errors/eval.d.ts delete mode 100644 node_modules/es-errors/eval.js delete mode 100644 node_modules/es-errors/index.d.ts delete mode 100644 node_modules/es-errors/index.js delete mode 100644 node_modules/es-errors/package.json delete mode 100644 node_modules/es-errors/range.d.ts delete mode 100644 node_modules/es-errors/range.js delete mode 100644 node_modules/es-errors/ref.d.ts delete mode 100644 node_modules/es-errors/ref.js delete mode 100644 node_modules/es-errors/syntax.d.ts delete mode 100644 node_modules/es-errors/syntax.js delete mode 100644 node_modules/es-errors/test/index.js delete mode 100644 node_modules/es-errors/tsconfig.json delete mode 100644 node_modules/es-errors/type.d.ts delete mode 100644 node_modules/es-errors/type.js delete mode 100644 node_modules/es-errors/uri.d.ts delete mode 100644 node_modules/es-errors/uri.js delete mode 100644 node_modules/es-object-atoms/.eslintrc delete mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml delete mode 100644 node_modules/es-object-atoms/CHANGELOG.md delete mode 100644 node_modules/es-object-atoms/LICENSE delete mode 100644 node_modules/es-object-atoms/README.md delete mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts delete mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js delete mode 100644 node_modules/es-object-atoms/ToObject.d.ts delete mode 100644 node_modules/es-object-atoms/ToObject.js delete mode 100644 node_modules/es-object-atoms/index.d.ts delete mode 100644 node_modules/es-object-atoms/index.js delete mode 100644 node_modules/es-object-atoms/isObject.d.ts delete mode 100644 node_modules/es-object-atoms/isObject.js delete mode 100644 node_modules/es-object-atoms/package.json delete mode 100644 node_modules/es-object-atoms/test/index.js delete mode 100644 node_modules/es-object-atoms/tsconfig.json delete mode 100644 node_modules/es-set-tostringtag/.eslintrc delete mode 100644 node_modules/es-set-tostringtag/.nycrc delete mode 100644 node_modules/es-set-tostringtag/CHANGELOG.md delete mode 100644 node_modules/es-set-tostringtag/LICENSE delete mode 100644 node_modules/es-set-tostringtag/README.md delete mode 100644 node_modules/es-set-tostringtag/index.d.ts delete mode 100644 node_modules/es-set-tostringtag/index.js delete mode 100644 node_modules/es-set-tostringtag/package.json delete mode 100644 node_modules/es-set-tostringtag/test/index.js delete mode 100644 node_modules/es-set-tostringtag/tsconfig.json delete mode 100644 node_modules/escalade/dist/index.js delete mode 100644 node_modules/escalade/dist/index.mjs delete mode 100644 node_modules/escalade/index.d.mts delete mode 100644 node_modules/escalade/index.d.ts delete mode 100644 node_modules/escalade/license delete mode 100644 node_modules/escalade/package.json delete mode 100644 node_modules/escalade/readme.md delete mode 100644 node_modules/escalade/sync/index.d.mts delete mode 100644 node_modules/escalade/sync/index.d.ts delete mode 100644 node_modules/escalade/sync/index.js delete mode 100644 node_modules/escalade/sync/index.mjs delete mode 100644 node_modules/events-universal/LICENSE delete mode 100644 node_modules/events-universal/README.md delete mode 100644 node_modules/events-universal/bare.js delete mode 100644 node_modules/events-universal/default.js delete mode 100644 node_modules/events-universal/index.js delete mode 100644 node_modules/events-universal/package.json delete mode 100644 node_modules/events-universal/react-native.js delete mode 100644 node_modules/fast-fifo/LICENSE delete mode 100644 node_modules/fast-fifo/README.md delete mode 100644 node_modules/fast-fifo/fixed-size.js delete mode 100644 node_modules/fast-fifo/index.js delete mode 100644 node_modules/fast-fifo/package.json delete mode 100644 node_modules/follow-redirects/LICENSE delete mode 100644 node_modules/follow-redirects/README.md delete mode 100644 node_modules/follow-redirects/debug.js delete mode 100644 node_modules/follow-redirects/http.js delete mode 100644 node_modules/follow-redirects/https.js delete mode 100644 node_modules/follow-redirects/index.js delete mode 100644 node_modules/follow-redirects/package.json delete mode 100644 node_modules/for-in/LICENSE delete mode 100644 node_modules/for-in/README.md delete mode 100644 node_modules/for-in/index.js delete mode 100644 node_modules/for-in/package.json delete mode 100644 node_modules/for-own/LICENSE delete mode 100644 node_modules/for-own/README.md delete mode 100644 node_modules/for-own/index.js delete mode 100644 node_modules/for-own/package.json delete mode 100644 node_modules/form-data/CHANGELOG.md delete mode 100644 node_modules/form-data/License delete mode 100644 node_modules/form-data/README.md delete mode 100644 node_modules/form-data/index.d.ts delete mode 100644 node_modules/form-data/lib/browser.js delete mode 100644 node_modules/form-data/lib/form_data.js delete mode 100644 node_modules/form-data/lib/populate.js delete mode 100644 node_modules/form-data/package.json delete mode 100644 node_modules/fs-extra/LICENSE delete mode 100644 node_modules/fs-extra/README.md delete mode 100644 node_modules/fs-extra/lib/copy/copy-sync.js delete mode 100644 node_modules/fs-extra/lib/copy/copy.js delete mode 100644 node_modules/fs-extra/lib/copy/index.js delete mode 100644 node_modules/fs-extra/lib/empty/index.js delete mode 100644 node_modules/fs-extra/lib/ensure/file.js delete mode 100644 node_modules/fs-extra/lib/ensure/index.js delete mode 100644 node_modules/fs-extra/lib/ensure/link.js delete mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js delete mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js delete mode 100644 node_modules/fs-extra/lib/ensure/symlink.js delete mode 100644 node_modules/fs-extra/lib/fs/index.js delete mode 100644 node_modules/fs-extra/lib/index.js delete mode 100644 node_modules/fs-extra/lib/json/index.js delete mode 100644 node_modules/fs-extra/lib/json/jsonfile.js delete mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js delete mode 100644 node_modules/fs-extra/lib/json/output-json.js delete mode 100644 node_modules/fs-extra/lib/mkdirs/index.js delete mode 100644 node_modules/fs-extra/lib/mkdirs/make-dir.js delete mode 100644 node_modules/fs-extra/lib/mkdirs/utils.js delete mode 100644 node_modules/fs-extra/lib/move/index.js delete mode 100644 node_modules/fs-extra/lib/move/move-sync.js delete mode 100644 node_modules/fs-extra/lib/move/move.js delete mode 100644 node_modules/fs-extra/lib/output-file/index.js delete mode 100644 node_modules/fs-extra/lib/path-exists/index.js delete mode 100644 node_modules/fs-extra/lib/remove/index.js delete mode 100644 node_modules/fs-extra/lib/remove/rimraf.js delete mode 100644 node_modules/fs-extra/lib/util/stat.js delete mode 100644 node_modules/fs-extra/lib/util/utimes.js delete mode 100644 node_modules/fs-extra/package.json delete mode 100644 node_modules/fs.realpath/LICENSE delete mode 100644 node_modules/fs.realpath/README.md delete mode 100644 node_modules/fs.realpath/index.js delete mode 100644 node_modules/fs.realpath/old.js delete mode 100644 node_modules/fs.realpath/package.json delete mode 100644 node_modules/function-bind/.eslintrc delete mode 100644 node_modules/function-bind/.github/FUNDING.yml delete mode 100644 node_modules/function-bind/.github/SECURITY.md delete mode 100644 node_modules/function-bind/.nycrc delete mode 100644 node_modules/function-bind/CHANGELOG.md delete mode 100644 node_modules/function-bind/LICENSE delete mode 100644 node_modules/function-bind/README.md delete mode 100644 node_modules/function-bind/implementation.js delete mode 100644 node_modules/function-bind/index.js delete mode 100644 node_modules/function-bind/package.json delete mode 100644 node_modules/function-bind/test/.eslintrc delete mode 100644 node_modules/function-bind/test/index.js delete mode 100644 node_modules/get-caller-file/LICENSE.md delete mode 100644 node_modules/get-caller-file/README.md delete mode 100644 node_modules/get-caller-file/index.d.ts delete mode 100644 node_modules/get-caller-file/index.js delete mode 100644 node_modules/get-caller-file/index.js.map delete mode 100644 node_modules/get-caller-file/package.json delete mode 100644 node_modules/get-intrinsic/.eslintrc delete mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml delete mode 100644 node_modules/get-intrinsic/.nycrc delete mode 100644 node_modules/get-intrinsic/CHANGELOG.md delete mode 100644 node_modules/get-intrinsic/LICENSE delete mode 100644 node_modules/get-intrinsic/README.md delete mode 100644 node_modules/get-intrinsic/index.js delete mode 100644 node_modules/get-intrinsic/package.json delete mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js delete mode 100644 node_modules/get-proto/.eslintrc delete mode 100644 node_modules/get-proto/.github/FUNDING.yml delete mode 100644 node_modules/get-proto/.nycrc delete mode 100644 node_modules/get-proto/CHANGELOG.md delete mode 100644 node_modules/get-proto/LICENSE delete mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts delete mode 100644 node_modules/get-proto/Object.getPrototypeOf.js delete mode 100644 node_modules/get-proto/README.md delete mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts delete mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js delete mode 100644 node_modules/get-proto/index.d.ts delete mode 100644 node_modules/get-proto/index.js delete mode 100644 node_modules/get-proto/package.json delete mode 100644 node_modules/get-proto/test/index.js delete mode 100644 node_modules/get-proto/tsconfig.json delete mode 100644 node_modules/glob/LICENSE delete mode 100644 node_modules/glob/README.md delete mode 100644 node_modules/glob/common.js delete mode 100644 node_modules/glob/glob.js delete mode 100644 node_modules/glob/package.json delete mode 100644 node_modules/glob/sync.js delete mode 100644 node_modules/gopd/.eslintrc delete mode 100644 node_modules/gopd/.github/FUNDING.yml delete mode 100644 node_modules/gopd/CHANGELOG.md delete mode 100644 node_modules/gopd/LICENSE delete mode 100644 node_modules/gopd/README.md delete mode 100644 node_modules/gopd/gOPD.d.ts delete mode 100644 node_modules/gopd/gOPD.js delete mode 100644 node_modules/gopd/index.d.ts delete mode 100644 node_modules/gopd/index.js delete mode 100644 node_modules/gopd/package.json delete mode 100644 node_modules/gopd/test/index.js delete mode 100644 node_modules/gopd/tsconfig.json delete mode 100644 node_modules/graceful-fs/LICENSE delete mode 100644 node_modules/graceful-fs/README.md delete mode 100644 node_modules/graceful-fs/clone.js delete mode 100644 node_modules/graceful-fs/graceful-fs.js delete mode 100644 node_modules/graceful-fs/legacy-streams.js delete mode 100644 node_modules/graceful-fs/package.json delete mode 100644 node_modules/graceful-fs/polyfills.js delete mode 100644 node_modules/has-symbols/.eslintrc delete mode 100644 node_modules/has-symbols/.github/FUNDING.yml delete mode 100644 node_modules/has-symbols/.nycrc delete mode 100644 node_modules/has-symbols/CHANGELOG.md delete mode 100644 node_modules/has-symbols/LICENSE delete mode 100644 node_modules/has-symbols/README.md delete mode 100644 node_modules/has-symbols/index.d.ts delete mode 100644 node_modules/has-symbols/index.js delete mode 100644 node_modules/has-symbols/package.json delete mode 100644 node_modules/has-symbols/shams.d.ts delete mode 100644 node_modules/has-symbols/shams.js delete mode 100644 node_modules/has-symbols/test/index.js delete mode 100644 node_modules/has-symbols/test/shams/core-js.js delete mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js delete mode 100644 node_modules/has-symbols/test/tests.js delete mode 100644 node_modules/has-symbols/tsconfig.json delete mode 100644 node_modules/has-tostringtag/.eslintrc delete mode 100644 node_modules/has-tostringtag/.github/FUNDING.yml delete mode 100644 node_modules/has-tostringtag/.nycrc delete mode 100644 node_modules/has-tostringtag/CHANGELOG.md delete mode 100644 node_modules/has-tostringtag/LICENSE delete mode 100644 node_modules/has-tostringtag/README.md delete mode 100644 node_modules/has-tostringtag/index.d.ts delete mode 100644 node_modules/has-tostringtag/index.js delete mode 100644 node_modules/has-tostringtag/package.json delete mode 100644 node_modules/has-tostringtag/shams.d.ts delete mode 100644 node_modules/has-tostringtag/shams.js delete mode 100644 node_modules/has-tostringtag/test/index.js delete mode 100644 node_modules/has-tostringtag/test/shams/core-js.js delete mode 100644 node_modules/has-tostringtag/test/shams/get-own-property-symbols.js delete mode 100644 node_modules/has-tostringtag/test/tests.js delete mode 100644 node_modules/has-tostringtag/tsconfig.json delete mode 100644 node_modules/hasown/.github/FUNDING.yml delete mode 100644 node_modules/hasown/.nycrc delete mode 100644 node_modules/hasown/CHANGELOG.md delete mode 100644 node_modules/hasown/LICENSE delete mode 100644 node_modules/hasown/README.md delete mode 100644 node_modules/hasown/eslint.config.mjs delete mode 100644 node_modules/hasown/index.d.ts delete mode 100644 node_modules/hasown/index.js delete mode 100644 node_modules/hasown/package.json delete mode 100644 node_modules/hasown/tsconfig.json delete mode 100644 node_modules/https-proxy-agent/README.md delete mode 100644 node_modules/https-proxy-agent/dist/agent.d.ts delete mode 100644 node_modules/https-proxy-agent/dist/agent.js delete mode 100644 node_modules/https-proxy-agent/dist/agent.js.map delete mode 100644 node_modules/https-proxy-agent/dist/index.d.ts delete mode 100644 node_modules/https-proxy-agent/dist/index.js delete mode 100644 node_modules/https-proxy-agent/dist/index.js.map delete mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts delete mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.js delete mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.js.map delete mode 100644 node_modules/https-proxy-agent/package.json delete mode 100644 node_modules/import-fresh/index.d.ts delete mode 100644 node_modules/import-fresh/index.js delete mode 100644 node_modules/import-fresh/license delete mode 100644 node_modules/import-fresh/package.json delete mode 100644 node_modules/import-fresh/readme.md delete mode 100644 node_modules/inflight/LICENSE delete mode 100644 node_modules/inflight/README.md delete mode 100644 node_modules/inflight/inflight.js delete mode 100644 node_modules/inflight/package.json delete mode 100644 node_modules/inherits/LICENSE delete mode 100644 node_modules/inherits/README.md delete mode 100644 node_modules/inherits/inherits.js delete mode 100644 node_modules/inherits/inherits_browser.js delete mode 100644 node_modules/inherits/package.json delete mode 100644 node_modules/is-arrayish/.editorconfig delete mode 100644 node_modules/is-arrayish/.istanbul.yml delete mode 100644 node_modules/is-arrayish/.npmignore delete mode 100644 node_modules/is-arrayish/.travis.yml delete mode 100644 node_modules/is-arrayish/LICENSE delete mode 100644 node_modules/is-arrayish/README.md delete mode 100644 node_modules/is-arrayish/index.js delete mode 100644 node_modules/is-arrayish/package.json delete mode 100644 node_modules/is-buffer/LICENSE delete mode 100644 node_modules/is-buffer/README.md delete mode 100644 node_modules/is-buffer/index.js delete mode 100644 node_modules/is-buffer/package.json delete mode 100644 node_modules/is-buffer/test/basic.js delete mode 100644 node_modules/is-extendable/LICENSE delete mode 100644 node_modules/is-extendable/README.md delete mode 100644 node_modules/is-extendable/index.js delete mode 100644 node_modules/is-extendable/package.json delete mode 100644 node_modules/is-fullwidth-code-point/index.d.ts delete mode 100644 node_modules/is-fullwidth-code-point/index.js delete mode 100644 node_modules/is-fullwidth-code-point/license delete mode 100644 node_modules/is-fullwidth-code-point/package.json delete mode 100644 node_modules/is-fullwidth-code-point/readme.md delete mode 100644 node_modules/is-plain-object/LICENSE delete mode 100644 node_modules/is-plain-object/README.md delete mode 100644 node_modules/is-plain-object/index.d.ts delete mode 100644 node_modules/is-plain-object/index.js delete mode 100644 node_modules/is-plain-object/package.json delete mode 100644 node_modules/isobject/LICENSE delete mode 100644 node_modules/isobject/README.md delete mode 100644 node_modules/isobject/index.d.ts delete mode 100644 node_modules/isobject/index.js delete mode 100644 node_modules/isobject/package.json delete mode 100644 node_modules/js-tokens/CHANGELOG.md delete mode 100644 node_modules/js-tokens/LICENSE delete mode 100644 node_modules/js-tokens/README.md delete mode 100644 node_modules/js-tokens/index.js delete mode 100644 node_modules/js-tokens/package.json delete mode 100644 node_modules/js-yaml/LICENSE delete mode 100644 node_modules/js-yaml/README.md delete mode 100755 node_modules/js-yaml/bin/js-yaml.js delete mode 100644 node_modules/js-yaml/dist/js-yaml.js delete mode 100644 node_modules/js-yaml/dist/js-yaml.min.js delete mode 100644 node_modules/js-yaml/dist/js-yaml.mjs delete mode 100644 node_modules/js-yaml/index.js delete mode 100644 node_modules/js-yaml/lib/common.js delete mode 100644 node_modules/js-yaml/lib/dumper.js delete mode 100644 node_modules/js-yaml/lib/exception.js delete mode 100644 node_modules/js-yaml/lib/loader.js delete mode 100644 node_modules/js-yaml/lib/schema.js delete mode 100644 node_modules/js-yaml/lib/schema/core.js delete mode 100644 node_modules/js-yaml/lib/schema/default.js delete mode 100644 node_modules/js-yaml/lib/schema/failsafe.js delete mode 100644 node_modules/js-yaml/lib/schema/json.js delete mode 100644 node_modules/js-yaml/lib/snippet.js delete mode 100644 node_modules/js-yaml/lib/type.js delete mode 100644 node_modules/js-yaml/lib/type/binary.js delete mode 100644 node_modules/js-yaml/lib/type/bool.js delete mode 100644 node_modules/js-yaml/lib/type/float.js delete mode 100644 node_modules/js-yaml/lib/type/int.js delete mode 100644 node_modules/js-yaml/lib/type/map.js delete mode 100644 node_modules/js-yaml/lib/type/merge.js delete mode 100644 node_modules/js-yaml/lib/type/null.js delete mode 100644 node_modules/js-yaml/lib/type/omap.js delete mode 100644 node_modules/js-yaml/lib/type/pairs.js delete mode 100644 node_modules/js-yaml/lib/type/seq.js delete mode 100644 node_modules/js-yaml/lib/type/set.js delete mode 100644 node_modules/js-yaml/lib/type/str.js delete mode 100644 node_modules/js-yaml/lib/type/timestamp.js delete mode 100644 node_modules/js-yaml/package.json delete mode 100644 node_modules/json-parse-even-better-errors/CHANGELOG.md delete mode 100644 node_modules/json-parse-even-better-errors/LICENSE.md delete mode 100644 node_modules/json-parse-even-better-errors/README.md delete mode 100644 node_modules/json-parse-even-better-errors/index.js delete mode 100644 node_modules/json-parse-even-better-errors/package.json delete mode 100644 node_modules/jsonfile/LICENSE delete mode 100644 node_modules/jsonfile/README.md delete mode 100644 node_modules/jsonfile/index.js delete mode 100644 node_modules/jsonfile/package.json delete mode 100644 node_modules/jsonfile/utils.js delete mode 100644 node_modules/kind-of/LICENSE delete mode 100644 node_modules/kind-of/README.md delete mode 100644 node_modules/kind-of/index.js delete mode 100644 node_modules/kind-of/package.json delete mode 100644 node_modules/lazy-cache/LICENSE delete mode 100644 node_modules/lazy-cache/README.md delete mode 100644 node_modules/lazy-cache/index.js delete mode 100644 node_modules/lazy-cache/package.json delete mode 100644 node_modules/lines-and-columns/LICENSE delete mode 100644 node_modules/lines-and-columns/README.md delete mode 100644 node_modules/lines-and-columns/build/index.d.ts delete mode 100644 node_modules/lines-and-columns/build/index.js delete mode 100644 node_modules/lines-and-columns/package.json delete mode 100644 node_modules/math-intrinsics/.eslintrc delete mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml delete mode 100644 node_modules/math-intrinsics/CHANGELOG.md delete mode 100644 node_modules/math-intrinsics/LICENSE delete mode 100644 node_modules/math-intrinsics/README.md delete mode 100644 node_modules/math-intrinsics/abs.d.ts delete mode 100644 node_modules/math-intrinsics/abs.js delete mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts delete mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js delete mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts delete mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js delete mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts delete mode 100644 node_modules/math-intrinsics/constants/maxValue.js delete mode 100644 node_modules/math-intrinsics/floor.d.ts delete mode 100644 node_modules/math-intrinsics/floor.js delete mode 100644 node_modules/math-intrinsics/isFinite.d.ts delete mode 100644 node_modules/math-intrinsics/isFinite.js delete mode 100644 node_modules/math-intrinsics/isInteger.d.ts delete mode 100644 node_modules/math-intrinsics/isInteger.js delete mode 100644 node_modules/math-intrinsics/isNaN.d.ts delete mode 100644 node_modules/math-intrinsics/isNaN.js delete mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts delete mode 100644 node_modules/math-intrinsics/isNegativeZero.js delete mode 100644 node_modules/math-intrinsics/max.d.ts delete mode 100644 node_modules/math-intrinsics/max.js delete mode 100644 node_modules/math-intrinsics/min.d.ts delete mode 100644 node_modules/math-intrinsics/min.js delete mode 100644 node_modules/math-intrinsics/mod.d.ts delete mode 100644 node_modules/math-intrinsics/mod.js delete mode 100644 node_modules/math-intrinsics/package.json delete mode 100644 node_modules/math-intrinsics/pow.d.ts delete mode 100644 node_modules/math-intrinsics/pow.js delete mode 100644 node_modules/math-intrinsics/round.d.ts delete mode 100644 node_modules/math-intrinsics/round.js delete mode 100644 node_modules/math-intrinsics/sign.d.ts delete mode 100644 node_modules/math-intrinsics/sign.js delete mode 100644 node_modules/math-intrinsics/test/index.js delete mode 100644 node_modules/math-intrinsics/tsconfig.json delete mode 100644 node_modules/merge-deep/LICENSE delete mode 100644 node_modules/merge-deep/README.md delete mode 100644 node_modules/merge-deep/index.js delete mode 100644 node_modules/merge-deep/package.json delete mode 100644 node_modules/mime-db/HISTORY.md delete mode 100644 node_modules/mime-db/LICENSE delete mode 100644 node_modules/mime-db/README.md delete mode 100644 node_modules/mime-db/db.json delete mode 100644 node_modules/mime-db/index.js delete mode 100644 node_modules/mime-db/package.json delete mode 100644 node_modules/mime-types/HISTORY.md delete mode 100644 node_modules/mime-types/LICENSE delete mode 100644 node_modules/mime-types/README.md delete mode 100644 node_modules/mime-types/index.js delete mode 100644 node_modules/mime-types/package.json delete mode 100644 node_modules/minimatch/LICENSE delete mode 100644 node_modules/minimatch/README.md delete mode 100644 node_modules/minimatch/minimatch.js delete mode 100644 node_modules/minimatch/package.json delete mode 100644 node_modules/mitt/LICENSE delete mode 100644 node_modules/mitt/README.md delete mode 100644 node_modules/mitt/dist/mitt.js delete mode 100644 node_modules/mitt/dist/mitt.js.map delete mode 100644 node_modules/mitt/dist/mitt.mjs delete mode 100644 node_modules/mitt/dist/mitt.mjs.map delete mode 100644 node_modules/mitt/dist/mitt.umd.js delete mode 100644 node_modules/mitt/dist/mitt.umd.js.map delete mode 100644 node_modules/mitt/index.d.ts delete mode 100644 node_modules/mitt/package.json delete mode 100644 node_modules/mixin-object/LICENSE delete mode 100644 node_modules/mixin-object/README.md delete mode 100644 node_modules/mixin-object/index.js delete mode 100644 node_modules/mixin-object/node_modules/for-in/LICENSE delete mode 100644 node_modules/mixin-object/node_modules/for-in/README.md delete mode 100644 node_modules/mixin-object/node_modules/for-in/index.js delete mode 100644 node_modules/mixin-object/node_modules/for-in/package.json delete mode 100644 node_modules/mixin-object/package.json delete mode 100644 node_modules/ms/index.js delete mode 100644 node_modules/ms/license.md delete mode 100644 node_modules/ms/package.json delete mode 100644 node_modules/ms/readme.md delete mode 100644 node_modules/once/LICENSE delete mode 100644 node_modules/once/README.md delete mode 100644 node_modules/once/once.js delete mode 100644 node_modules/once/package.json delete mode 100644 node_modules/parent-module/index.js delete mode 100644 node_modules/parent-module/license delete mode 100644 node_modules/parent-module/package.json delete mode 100644 node_modules/parent-module/readme.md delete mode 100644 node_modules/parse-json/index.js delete mode 100644 node_modules/parse-json/license delete mode 100644 node_modules/parse-json/package.json delete mode 100644 node_modules/parse-json/readme.md delete mode 100644 node_modules/path-is-absolute/index.js delete mode 100644 node_modules/path-is-absolute/license delete mode 100644 node_modules/path-is-absolute/package.json delete mode 100644 node_modules/path-is-absolute/readme.md delete mode 100644 node_modules/picocolors/LICENSE delete mode 100644 node_modules/picocolors/README.md delete mode 100644 node_modules/picocolors/package.json delete mode 100644 node_modules/picocolors/picocolors.browser.js delete mode 100644 node_modules/picocolors/picocolors.d.ts delete mode 100644 node_modules/picocolors/picocolors.js delete mode 100644 node_modules/picocolors/types.d.ts delete mode 100644 node_modules/progress/CHANGELOG.md delete mode 100644 node_modules/progress/LICENSE delete mode 100644 node_modules/progress/Makefile delete mode 100644 node_modules/progress/Readme.md delete mode 100644 node_modules/progress/index.js delete mode 100644 node_modules/progress/lib/node-progress.js delete mode 100644 node_modules/progress/package.json delete mode 100644 node_modules/proxy-from-env/LICENSE delete mode 100644 node_modules/proxy-from-env/README.md delete mode 100644 node_modules/proxy-from-env/index.cjs delete mode 100644 node_modules/proxy-from-env/index.js delete mode 100644 node_modules/proxy-from-env/package.json delete mode 100644 node_modules/pump/.github/FUNDING.yml delete mode 100644 node_modules/pump/.travis.yml delete mode 100644 node_modules/pump/LICENSE delete mode 100644 node_modules/pump/README.md delete mode 100644 node_modules/pump/SECURITY.md delete mode 100644 node_modules/pump/empty.js delete mode 100644 node_modules/pump/index.js delete mode 100644 node_modules/pump/package.json delete mode 100644 node_modules/pump/test-browser.js delete mode 100644 node_modules/pump/test-node.js delete mode 100644 node_modules/puppeteer-core/README.md delete mode 100644 node_modules/puppeteer-core/lib/es5-iife/puppeteer-core-browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/es5-iife/puppeteer-core-browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BluetoothEmulation.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BluetoothEmulation.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BluetoothEmulation.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BluetoothEmulation.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BrowserContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BrowserContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BrowserContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/BrowserContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/CDPSession.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/CDPSession.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/CDPSession.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/CDPSession.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/DeviceRequestPrompt.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/DeviceRequestPrompt.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/DeviceRequestPrompt.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/DeviceRequestPrompt.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Dialog.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Dialog.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Dialog.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Dialog.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandleSymbol.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandleSymbol.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandleSymbol.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/ElementHandleSymbol.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Environment.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Environment.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Environment.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Environment.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Extension.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Extension.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Extension.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Extension.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Frame.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Frame.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Frame.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Frame.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPRequest.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPRequest.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPRequest.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPRequest.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPResponse.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPResponse.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPResponse.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/HTTPResponse.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Input.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Input.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Input.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Input.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Issue.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Issue.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Issue.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Issue.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/JSHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/JSHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/JSHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/JSHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Page.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Page.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Page.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Page.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Realm.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Realm.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Realm.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Realm.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Target.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Target.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Target.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/Target.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/WebWorker.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/WebWorker.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/WebWorker.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/WebWorker.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/api.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/api.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/api.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/api.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/locators/locators.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/locators/locators.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/locators/locators.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/api/locators/locators.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BidiOverCdp.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BidiOverCdp.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BidiOverCdp.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BidiOverCdp.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BluetoothEmulation.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BluetoothEmulation.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BluetoothEmulation.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BluetoothEmulation.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserConnector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserConnector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserConnector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserConnector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/BrowserContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/CDPSession.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/CDPSession.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/CDPSession.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/CDPSession.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Connection.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Connection.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Connection.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Connection.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Deserializer.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Deserializer.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Deserializer.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Deserializer.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/DeviceRequestPrompt.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/DeviceRequestPrompt.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/DeviceRequestPrompt.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/DeviceRequestPrompt.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Dialog.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Dialog.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Dialog.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Dialog.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ElementHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ElementHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ElementHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ElementHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ExposedFunction.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ExposedFunction.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ExposedFunction.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/ExposedFunction.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Frame.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Frame.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Frame.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Frame.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPRequest.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPRequest.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPRequest.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPRequest.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPResponse.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPResponse.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPResponse.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/HTTPResponse.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Input.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Input.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Input.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Input.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/JSHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/JSHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/JSHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/JSHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Page.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Page.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Page.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Page.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Realm.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Realm.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Realm.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Realm.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Serializer.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Serializer.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Serializer.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Serializer.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Target.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Target.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Target.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/Target.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/WebWorker.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/WebWorker.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/WebWorker.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/WebWorker.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/bidi.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/bidi.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/bidi.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/bidi.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/BrowsingContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/BrowsingContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/BrowsingContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/BrowsingContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Connection.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Connection.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Connection.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Connection.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Navigation.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Navigation.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Navigation.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Navigation.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Realm.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Realm.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Realm.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Realm.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Request.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Request.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Request.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Request.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Session.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Session.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Session.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/Session.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserPrompt.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserPrompt.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserPrompt.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/UserPrompt.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/core.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/core.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/core.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/core/core.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/util.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/util.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/util.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/bidi/util.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Accessibility.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Accessibility.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Accessibility.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Accessibility.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Binding.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Binding.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Binding.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Binding.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BluetoothEmulation.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BluetoothEmulation.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BluetoothEmulation.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BluetoothEmulation.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserConnector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserConnector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserConnector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserConnector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/BrowserContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpIssue.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpIssue.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpIssue.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpIssue.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpPreloadScript.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpPreloadScript.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpPreloadScript.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpPreloadScript.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/CdpSession.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Connection.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Coverage.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Coverage.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Coverage.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Coverage.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/DeviceRequestPrompt.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/DeviceRequestPrompt.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/DeviceRequestPrompt.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/DeviceRequestPrompt.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Dialog.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Dialog.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Dialog.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Dialog.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ElementHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ElementHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ElementHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ElementHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/EmulationManager.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/EmulationManager.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/EmulationManager.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/EmulationManager.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExecutionContext.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Extension.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Extension.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Extension.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Extension.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExtensionTransport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExtensionTransport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExtensionTransport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/ExtensionTransport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Frame.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Frame.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Frame.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Frame.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManager.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManager.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManager.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManager.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManagerEvents.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManagerEvents.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManagerEvents.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameManagerEvents.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameTree.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameTree.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameTree.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/FrameTree.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPRequest.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPRequest.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPRequest.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPRequest.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPResponse.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPResponse.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPResponse.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/HTTPResponse.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Input.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Input.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Input.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Input.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorld.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorlds.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorlds.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorlds.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/IsolatedWorlds.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/JSHandle.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/JSHandle.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/JSHandle.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/JSHandle.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/LifecycleWatcher.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/LifecycleWatcher.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/LifecycleWatcher.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/LifecycleWatcher.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkEventManager.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkEventManager.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkEventManager.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkEventManager.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkManager.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkManager.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkManager.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/NetworkManager.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Page.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Page.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Page.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Page.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/PredefinedNetworkConditions.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/PredefinedNetworkConditions.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/PredefinedNetworkConditions.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Target.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Target.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Target.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Target.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManageEvents.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManageEvents.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManageEvents.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManageEvents.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManager.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManager.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManager.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/TargetManager.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Tracing.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Tracing.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Tracing.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/Tracing.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebMCP.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebMCP.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebMCP.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebMCP.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebWorker.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebWorker.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebWorker.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/WebWorker.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/cdp.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/cdp.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/cdp.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/cdp.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/utils.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/utils.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/utils.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/cdp/utils.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/AriaQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/AriaQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/AriaQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/AriaQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserConnector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserConnector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserConnector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserConnector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserWebSocketTransport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserWebSocketTransport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserWebSocketTransport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/BrowserWebSocketTransport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CSSQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CSSQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CSSQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CSSQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CallbackRegistry.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Configuration.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Configuration.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Configuration.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Configuration.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectOptions.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectOptions.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectOptions.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectOptions.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectionTransport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectionTransport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectionTransport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConnectionTransport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConsoleMessage.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConsoleMessage.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConsoleMessage.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ConsoleMessage.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Cookie.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Cookie.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Cookie.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Cookie.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CustomQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CustomQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CustomQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/CustomQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Debug.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Debug.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Debug.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Debug.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Device.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Device.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Device.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Device.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/DownloadBehavior.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/DownloadBehavior.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/DownloadBehavior.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/DownloadBehavior.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Errors.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Errors.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Errors.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Errors.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/EventEmitter.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/EventEmitter.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/EventEmitter.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/EventEmitter.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/FileChooser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/FileChooser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/FileChooser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/FileChooser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/GetQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/GetQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/GetQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/GetQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/HandleIterator.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/HandleIterator.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/HandleIterator.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/HandleIterator.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/LazyArg.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/LazyArg.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/LazyArg.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/LazyArg.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/NetworkManagerEvents.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/NetworkManagerEvents.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/NetworkManagerEvents.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/NetworkManagerEvents.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PDFOptions.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PDFOptions.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PDFOptions.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PDFOptions.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PSelectorParser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PSelectorParser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PSelectorParser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PSelectorParser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PierceQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PierceQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PierceQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/PierceQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Puppeteer.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Puppeteer.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Puppeteer.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Puppeteer.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/QueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/QueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/QueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/QueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ScriptInjector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ScriptInjector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ScriptInjector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/ScriptInjector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SecurityDetails.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SecurityDetails.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SecurityDetails.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SecurityDetails.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SupportedBrowser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SupportedBrowser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SupportedBrowser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/SupportedBrowser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TaskQueue.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TaskQueue.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TaskQueue.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TaskQueue.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TextQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TextQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TextQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TextQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TimeoutSettings.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TimeoutSettings.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TimeoutSettings.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/TimeoutSettings.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/USKeyboardLayout.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/USKeyboardLayout.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/USKeyboardLayout.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/USKeyboardLayout.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Viewport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Viewport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Viewport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/Viewport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/WaitTask.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/WaitTask.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/WaitTask.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/WaitTask.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/XPathQueryHandler.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/XPathQueryHandler.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/XPathQueryHandler.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/XPathQueryHandler.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/common.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/common.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/common.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/common.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/types.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/types.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/types.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/types.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/util.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/util.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/util.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/common/util.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/environment.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/environment.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/environment.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/environment.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/generated/injected.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/generated/injected.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/generated/injected.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/generated/injected.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index-browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index-browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index-browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index-browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/index.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/ARIAQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/ARIAQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/ARIAQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/ARIAQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CSSSelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CSSSelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CSSSelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CSSSelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CustomQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CustomQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CustomQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/CustomQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PierceQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PierceQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PierceQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/PierceQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/Poller.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/Poller.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/Poller.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/Poller.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextContent.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextContent.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextContent.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextContent.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/TextQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/XPathQuerySelector.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/XPathQuerySelector.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/XPathQuerySelector.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/XPathQuerySelector.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/injected.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/injected.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/injected.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/injected.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/util.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/util.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/util.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/injected/util.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/BrowserLauncher.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/BrowserLauncher.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/BrowserLauncher.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/BrowserLauncher.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ChromeLauncher.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ChromeLauncher.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ChromeLauncher.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ChromeLauncher.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/FirefoxLauncher.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/FirefoxLauncher.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/FirefoxLauncher.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/FirefoxLauncher.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/LaunchOptions.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/LaunchOptions.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/LaunchOptions.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/LaunchOptions.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/NodeWebSocketTransport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/NodeWebSocketTransport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/NodeWebSocketTransport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/NodeWebSocketTransport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PipeTransport.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PipeTransport.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PipeTransport.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PipeTransport.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PuppeteerNode.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PuppeteerNode.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PuppeteerNode.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/PuppeteerNode.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ScreenRecorder.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ScreenRecorder.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ScreenRecorder.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/ScreenRecorder.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/node.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/node.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/node.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/node.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/util/fs.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/util/fs.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/util/fs.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/node/util/fs.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core-browser.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core-browser.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core-browser.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core-browser.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/puppeteer-core.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/revisions.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/revisions.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/revisions.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/revisions.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/AsyncIterableUtil.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/AsyncIterableUtil.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/AsyncIterableUtil.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/AsyncIterableUtil.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Deferred.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Deferred.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Deferred.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Deferred.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/ErrorLike.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/ErrorLike.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/ErrorLike.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/ErrorLike.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Function.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Function.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Function.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Function.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Mutex.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Mutex.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Mutex.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/Mutex.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/assert.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/assert.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/assert.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/assert.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/decorators.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/decorators.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/decorators.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/decorators.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/disposable.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/disposable.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/disposable.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/disposable.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/encoding.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/encoding.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/encoding.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/encoding.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/httpUtils.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/httpUtils.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/httpUtils.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/httpUtils.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/incremental-id-generator.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/incremental-id-generator.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/incremental-id-generator.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/incremental-id-generator.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/util.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/util.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/util.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/util.js.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/version.d.ts delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/version.d.ts.map delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/version.js delete mode 100644 node_modules/puppeteer-core/lib/puppeteer/util/version.js.map delete mode 100644 node_modules/puppeteer-core/lib/third_party/mitt/mitt.d.ts delete mode 100644 node_modules/puppeteer-core/lib/third_party/mitt/mitt.js delete mode 100644 node_modules/puppeteer-core/lib/third_party/parsel-js/parsel-js.d.ts delete mode 100644 node_modules/puppeteer-core/lib/third_party/parsel-js/parsel-js.js delete mode 100644 node_modules/puppeteer-core/lib/third_party/rxjs/rxjs.d.ts delete mode 100644 node_modules/puppeteer-core/lib/third_party/rxjs/rxjs.js delete mode 100644 node_modules/puppeteer-core/lib/third_party/urlpattern-polyfill/urlpattern-polyfill.d.ts delete mode 100644 node_modules/puppeteer-core/lib/third_party/urlpattern-polyfill/urlpattern-polyfill.js delete mode 100644 node_modules/puppeteer-core/lib/types.d.ts delete mode 100644 node_modules/puppeteer-core/package.json delete mode 100644 node_modules/puppeteer-core/src/api/BluetoothEmulation.ts delete mode 100644 node_modules/puppeteer-core/src/api/Browser.ts delete mode 100644 node_modules/puppeteer-core/src/api/BrowserContext.ts delete mode 100644 node_modules/puppeteer-core/src/api/CDPSession.ts delete mode 100644 node_modules/puppeteer-core/src/api/DeviceRequestPrompt.ts delete mode 100644 node_modules/puppeteer-core/src/api/Dialog.ts delete mode 100644 node_modules/puppeteer-core/src/api/ElementHandle.ts delete mode 100644 node_modules/puppeteer-core/src/api/ElementHandleSymbol.ts delete mode 100644 node_modules/puppeteer-core/src/api/Environment.ts delete mode 100644 node_modules/puppeteer-core/src/api/Extension.ts delete mode 100644 node_modules/puppeteer-core/src/api/Frame.ts delete mode 100644 node_modules/puppeteer-core/src/api/HTTPRequest.ts delete mode 100644 node_modules/puppeteer-core/src/api/HTTPResponse.ts delete mode 100644 node_modules/puppeteer-core/src/api/Input.ts delete mode 100644 node_modules/puppeteer-core/src/api/Issue.ts delete mode 100644 node_modules/puppeteer-core/src/api/JSHandle.ts delete mode 100644 node_modules/puppeteer-core/src/api/Page.ts delete mode 100644 node_modules/puppeteer-core/src/api/Realm.ts delete mode 100644 node_modules/puppeteer-core/src/api/Target.ts delete mode 100644 node_modules/puppeteer-core/src/api/WebWorker.ts delete mode 100644 node_modules/puppeteer-core/src/api/api.ts delete mode 100644 node_modules/puppeteer-core/src/api/locators/locators.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/BidiOverCdp.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/BluetoothEmulation.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Browser.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/BrowserConnector.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/BrowserContext.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/CDPSession.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Connection.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Deserializer.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/DeviceRequestPrompt.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Dialog.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/ElementHandle.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/ExposedFunction.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Frame.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/HTTPRequest.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/HTTPResponse.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Input.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/JSHandle.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Page.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Realm.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Serializer.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/Target.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/WebWorker.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/bidi.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Browser.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/BrowsingContext.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Connection.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Navigation.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/README.md delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Realm.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Request.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/Session.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/UserContext.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/UserPrompt.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/core/core.ts delete mode 100644 node_modules/puppeteer-core/src/bidi/util.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Accessibility.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Binding.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/BluetoothEmulation.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Browser.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/BrowserConnector.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/BrowserContext.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/CdpIssue.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/CdpPreloadScript.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/CdpSession.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Connection.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Coverage.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/DeviceRequestPrompt.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Dialog.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/ElementHandle.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/EmulationManager.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/ExecutionContext.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Extension.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/ExtensionTransport.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Frame.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/FrameManager.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/FrameManagerEvents.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/FrameTree.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/HTTPRequest.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/HTTPResponse.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Input.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/IsolatedWorld.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/IsolatedWorlds.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/JSHandle.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/LifecycleWatcher.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/NetworkEventManager.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/NetworkManager.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Page.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/PredefinedNetworkConditions.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Target.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/TargetManageEvents.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/TargetManager.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/Tracing.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/WebMCP.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/WebWorker.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/cdp.ts delete mode 100644 node_modules/puppeteer-core/src/cdp/utils.ts delete mode 100644 node_modules/puppeteer-core/src/common/AriaQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/BrowserConnector.ts delete mode 100644 node_modules/puppeteer-core/src/common/BrowserWebSocketTransport.ts delete mode 100644 node_modules/puppeteer-core/src/common/CSSQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/CallbackRegistry.ts delete mode 100644 node_modules/puppeteer-core/src/common/Configuration.ts delete mode 100644 node_modules/puppeteer-core/src/common/ConnectOptions.ts delete mode 100644 node_modules/puppeteer-core/src/common/ConnectionTransport.ts delete mode 100644 node_modules/puppeteer-core/src/common/ConsoleMessage.ts delete mode 100644 node_modules/puppeteer-core/src/common/Cookie.ts delete mode 100644 node_modules/puppeteer-core/src/common/CustomQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/Debug.ts delete mode 100644 node_modules/puppeteer-core/src/common/Device.ts delete mode 100644 node_modules/puppeteer-core/src/common/DownloadBehavior.ts delete mode 100644 node_modules/puppeteer-core/src/common/Errors.ts delete mode 100644 node_modules/puppeteer-core/src/common/EventEmitter.ts delete mode 100644 node_modules/puppeteer-core/src/common/FileChooser.ts delete mode 100644 node_modules/puppeteer-core/src/common/GetQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/HandleIterator.ts delete mode 100644 node_modules/puppeteer-core/src/common/LazyArg.ts delete mode 100644 node_modules/puppeteer-core/src/common/NetworkManagerEvents.ts delete mode 100644 node_modules/puppeteer-core/src/common/PDFOptions.ts delete mode 100644 node_modules/puppeteer-core/src/common/PQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/PSelectorParser.ts delete mode 100644 node_modules/puppeteer-core/src/common/PierceQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/Puppeteer.ts delete mode 100644 node_modules/puppeteer-core/src/common/QueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/ScriptInjector.ts delete mode 100644 node_modules/puppeteer-core/src/common/SecurityDetails.ts delete mode 100644 node_modules/puppeteer-core/src/common/SupportedBrowser.ts delete mode 100644 node_modules/puppeteer-core/src/common/TaskQueue.ts delete mode 100644 node_modules/puppeteer-core/src/common/TextQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/TimeoutSettings.ts delete mode 100644 node_modules/puppeteer-core/src/common/USKeyboardLayout.ts delete mode 100644 node_modules/puppeteer-core/src/common/Viewport.ts delete mode 100644 node_modules/puppeteer-core/src/common/WaitTask.ts delete mode 100644 node_modules/puppeteer-core/src/common/XPathQueryHandler.ts delete mode 100644 node_modules/puppeteer-core/src/common/common.ts delete mode 100644 node_modules/puppeteer-core/src/common/types.ts delete mode 100644 node_modules/puppeteer-core/src/common/util.ts delete mode 100644 node_modules/puppeteer-core/src/environment.ts delete mode 100644 node_modules/puppeteer-core/src/generated/injected.ts delete mode 100644 node_modules/puppeteer-core/src/index-browser.ts delete mode 100644 node_modules/puppeteer-core/src/index.ts delete mode 100644 node_modules/puppeteer-core/src/injected/ARIAQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/CSSSelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/CustomQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/PQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/PierceQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/Poller.ts delete mode 100644 node_modules/puppeteer-core/src/injected/README.md delete mode 100644 node_modules/puppeteer-core/src/injected/TextContent.ts delete mode 100644 node_modules/puppeteer-core/src/injected/TextQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/XPathQuerySelector.ts delete mode 100644 node_modules/puppeteer-core/src/injected/injected.ts delete mode 100644 node_modules/puppeteer-core/src/injected/util.ts delete mode 100644 node_modules/puppeteer-core/src/node/BrowserLauncher.ts delete mode 100644 node_modules/puppeteer-core/src/node/ChromeLauncher.ts delete mode 100644 node_modules/puppeteer-core/src/node/FirefoxLauncher.ts delete mode 100644 node_modules/puppeteer-core/src/node/LaunchOptions.ts delete mode 100644 node_modules/puppeteer-core/src/node/NodeWebSocketTransport.ts delete mode 100644 node_modules/puppeteer-core/src/node/PipeTransport.ts delete mode 100644 node_modules/puppeteer-core/src/node/PuppeteerNode.ts delete mode 100644 node_modules/puppeteer-core/src/node/ScreenRecorder.ts delete mode 100644 node_modules/puppeteer-core/src/node/node.ts delete mode 100644 node_modules/puppeteer-core/src/node/util/fs.ts delete mode 100644 node_modules/puppeteer-core/src/puppeteer-core-browser.ts delete mode 100644 node_modules/puppeteer-core/src/puppeteer-core.ts delete mode 100644 node_modules/puppeteer-core/src/revisions.ts delete mode 100644 node_modules/puppeteer-core/src/templates/README.md delete mode 100644 node_modules/puppeteer-core/src/templates/injected.ts.tmpl delete mode 100644 node_modules/puppeteer-core/src/util/AsyncIterableUtil.ts delete mode 100644 node_modules/puppeteer-core/src/util/Deferred.ts delete mode 100644 node_modules/puppeteer-core/src/util/ErrorLike.ts delete mode 100644 node_modules/puppeteer-core/src/util/Function.ts delete mode 100644 node_modules/puppeteer-core/src/util/Mutex.ts delete mode 100644 node_modules/puppeteer-core/src/util/assert.ts delete mode 100644 node_modules/puppeteer-core/src/util/decorators.ts delete mode 100644 node_modules/puppeteer-core/src/util/disposable.ts delete mode 100644 node_modules/puppeteer-core/src/util/encoding.ts delete mode 100644 node_modules/puppeteer-core/src/util/httpUtils.ts delete mode 100644 node_modules/puppeteer-core/src/util/incremental-id-generator.ts delete mode 100644 node_modules/puppeteer-core/src/util/util.ts delete mode 100644 node_modules/puppeteer-core/src/util/version.ts delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/LICENSE delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_template/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_template/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_template/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_utils/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_utils/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_utils/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/_utils/withUtils.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.app/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.app/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.app/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.app/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.csi/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.csi/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.csi/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.csi/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.loadTimes/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.loadTimes/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.loadTimes/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.loadTimes/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.runtime/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.runtime/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.runtime/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.runtime/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/chrome.runtime/staticData.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/defaultArgs/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/defaultArgs/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/defaultArgs/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/defaultArgs/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/iframe.contentWindow/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/iframe.contentWindow/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/iframe.contentWindow/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/iframe.contentWindow/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/media.codecs/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/media.codecs/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/media.codecs/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/media.codecs/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.hardwareConcurrency/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.hardwareConcurrency/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.hardwareConcurrency/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.hardwareConcurrency/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.languages/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.languages/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.languages/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.languages/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.permissions/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.permissions/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.permissions/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.permissions/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/data.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/functionMocks.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/magicArray.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/mimeTypes.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/mimeTypes.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/plugins.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/plugins.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.plugins/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.vendor/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.vendor/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.vendor/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.vendor/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.webdriver/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.webdriver/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.webdriver/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/navigator.webdriver/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/sourceurl/_fixtures/test.html delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/sourceurl/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/sourceurl/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/sourceurl/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/sourceurl/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/user-agent-override/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/user-agent-override/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/user-agent-override/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/user-agent-override/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/webgl.vendor/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/webgl.vendor/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/webgl.vendor/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/webgl.vendor/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/window.outerdimensions/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/window.outerdimensions/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/evasions/window.outerdimensions/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/examples/detect-headless.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/examples/test1.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/examples/test2.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/index.d.ts delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/cat-and-mouse.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/fixtures/dummy-with-service-worker.html delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/fixtures/dummy.html delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/fixtures/sw.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/fpscanner.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/service-worker.test.js delete mode 100644 node_modules/puppeteer-extra-plugin-stealth/test/util.js delete mode 100644 node_modules/puppeteer-extra-plugin-user-data-dir/LICENSE delete mode 100644 node_modules/puppeteer-extra-plugin-user-data-dir/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-user-data-dir/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-user-data-dir/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin-user-preferences/LICENSE delete mode 100644 node_modules/puppeteer-extra-plugin-user-preferences/index.js delete mode 100644 node_modules/puppeteer-extra-plugin-user-preferences/package.json delete mode 100644 node_modules/puppeteer-extra-plugin-user-preferences/readme.md delete mode 100644 node_modules/puppeteer-extra-plugin/LICENSE delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.cjs.js delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.cjs.js.map delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.d.ts delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.esm.js delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.esm.js.map delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.js delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.js.map delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.test.d.ts delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.test.js delete mode 100644 node_modules/puppeteer-extra-plugin/dist/index.test.js.map delete mode 100644 node_modules/puppeteer-extra-plugin/dist/puppeteer.d.ts delete mode 100644 node_modules/puppeteer-extra-plugin/dist/puppeteer.js delete mode 100644 node_modules/puppeteer-extra-plugin/dist/puppeteer.js.map delete mode 100644 node_modules/puppeteer-extra-plugin/package.json delete mode 100644 node_modules/puppeteer-extra-plugin/readme.md delete mode 100644 node_modules/puppeteer-extra/LICENSE delete mode 100644 node_modules/puppeteer-extra/dist/ambient.d.ts delete mode 100644 node_modules/puppeteer-extra/dist/index.cjs.js delete mode 100644 node_modules/puppeteer-extra/dist/index.cjs.js.map delete mode 100644 node_modules/puppeteer-extra/dist/index.d.ts delete mode 100644 node_modules/puppeteer-extra/dist/index.esm.js delete mode 100644 node_modules/puppeteer-extra/dist/index.esm.js.map delete mode 100644 node_modules/puppeteer-extra/dist/index.js delete mode 100644 node_modules/puppeteer-extra/dist/index.js.map delete mode 100644 node_modules/puppeteer-extra/dist/puppeteer-legacy.d.ts delete mode 100644 node_modules/puppeteer-extra/package.json delete mode 100644 node_modules/puppeteer-extra/readme.md delete mode 100644 node_modules/puppeteer/README.md delete mode 100755 node_modules/puppeteer/install.mjs delete mode 100644 node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts delete mode 100644 node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/getConfiguration.js delete mode 100644 node_modules/puppeteer/lib/puppeteer/getConfiguration.js.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/cli.d.ts delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/cli.d.ts.map delete mode 100755 node_modules/puppeteer/lib/puppeteer/node/cli.js delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/cli.js.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/install.d.ts delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/install.d.ts.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/install.js delete mode 100644 node_modules/puppeteer/lib/puppeteer/node/install.js.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts delete mode 100644 node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts.map delete mode 100644 node_modules/puppeteer/lib/puppeteer/puppeteer.js delete mode 100644 node_modules/puppeteer/lib/puppeteer/puppeteer.js.map delete mode 100644 node_modules/puppeteer/lib/types.d.ts delete mode 100644 node_modules/puppeteer/package.json delete mode 100644 node_modules/puppeteer/src/getConfiguration.ts delete mode 100644 node_modules/puppeteer/src/node/cli.ts delete mode 100644 node_modules/puppeteer/src/node/install.ts delete mode 100644 node_modules/puppeteer/src/puppeteer.ts delete mode 100644 node_modules/require-directory/.jshintrc delete mode 100644 node_modules/require-directory/.npmignore delete mode 100644 node_modules/require-directory/.travis.yml delete mode 100644 node_modules/require-directory/LICENSE delete mode 100644 node_modules/require-directory/README.markdown delete mode 100644 node_modules/require-directory/index.js delete mode 100644 node_modules/require-directory/package.json delete mode 100644 node_modules/resolve-from/index.js delete mode 100644 node_modules/resolve-from/license delete mode 100644 node_modules/resolve-from/package.json delete mode 100644 node_modules/resolve-from/readme.md delete mode 100644 node_modules/rimraf/CHANGELOG.md delete mode 100644 node_modules/rimraf/LICENSE delete mode 100644 node_modules/rimraf/README.md delete mode 100755 node_modules/rimraf/bin.js delete mode 100644 node_modules/rimraf/package.json delete mode 100644 node_modules/rimraf/rimraf.js delete mode 100644 node_modules/semver/LICENSE delete mode 100644 node_modules/semver/README.md delete mode 100755 node_modules/semver/bin/semver.js delete mode 100644 node_modules/semver/classes/comparator.js delete mode 100644 node_modules/semver/classes/index.js delete mode 100644 node_modules/semver/classes/range.js delete mode 100644 node_modules/semver/classes/semver.js delete mode 100644 node_modules/semver/functions/clean.js delete mode 100644 node_modules/semver/functions/cmp.js delete mode 100644 node_modules/semver/functions/coerce.js delete mode 100644 node_modules/semver/functions/compare-build.js delete mode 100644 node_modules/semver/functions/compare-loose.js delete mode 100644 node_modules/semver/functions/compare.js delete mode 100644 node_modules/semver/functions/diff.js delete mode 100644 node_modules/semver/functions/eq.js delete mode 100644 node_modules/semver/functions/gt.js delete mode 100644 node_modules/semver/functions/gte.js delete mode 100644 node_modules/semver/functions/inc.js delete mode 100644 node_modules/semver/functions/lt.js delete mode 100644 node_modules/semver/functions/lte.js delete mode 100644 node_modules/semver/functions/major.js delete mode 100644 node_modules/semver/functions/minor.js delete mode 100644 node_modules/semver/functions/neq.js delete mode 100644 node_modules/semver/functions/parse.js delete mode 100644 node_modules/semver/functions/patch.js delete mode 100644 node_modules/semver/functions/prerelease.js delete mode 100644 node_modules/semver/functions/rcompare.js delete mode 100644 node_modules/semver/functions/rsort.js delete mode 100644 node_modules/semver/functions/satisfies.js delete mode 100644 node_modules/semver/functions/sort.js delete mode 100644 node_modules/semver/functions/truncate.js delete mode 100644 node_modules/semver/functions/valid.js delete mode 100644 node_modules/semver/index.js delete mode 100644 node_modules/semver/internal/constants.js delete mode 100644 node_modules/semver/internal/debug.js delete mode 100644 node_modules/semver/internal/identifiers.js delete mode 100644 node_modules/semver/internal/lrucache.js delete mode 100644 node_modules/semver/internal/parse-options.js delete mode 100644 node_modules/semver/internal/re.js delete mode 100644 node_modules/semver/package.json delete mode 100644 node_modules/semver/preload.js delete mode 100644 node_modules/semver/range.bnf delete mode 100644 node_modules/semver/ranges/gtr.js delete mode 100644 node_modules/semver/ranges/intersects.js delete mode 100644 node_modules/semver/ranges/ltr.js delete mode 100644 node_modules/semver/ranges/max-satisfying.js delete mode 100644 node_modules/semver/ranges/min-satisfying.js delete mode 100644 node_modules/semver/ranges/min-version.js delete mode 100644 node_modules/semver/ranges/outside.js delete mode 100644 node_modules/semver/ranges/simplify.js delete mode 100644 node_modules/semver/ranges/subset.js delete mode 100644 node_modules/semver/ranges/to-comparators.js delete mode 100644 node_modules/semver/ranges/valid.js delete mode 100644 node_modules/shallow-clone/LICENSE delete mode 100644 node_modules/shallow-clone/README.md delete mode 100644 node_modules/shallow-clone/index.js delete mode 100644 node_modules/shallow-clone/node_modules/kind-of/LICENSE delete mode 100644 node_modules/shallow-clone/node_modules/kind-of/README.md delete mode 100644 node_modules/shallow-clone/node_modules/kind-of/index.js delete mode 100644 node_modules/shallow-clone/node_modules/kind-of/package.json delete mode 100644 node_modules/shallow-clone/node_modules/lazy-cache/LICENSE delete mode 100644 node_modules/shallow-clone/node_modules/lazy-cache/README.md delete mode 100644 node_modules/shallow-clone/node_modules/lazy-cache/index.js delete mode 100644 node_modules/shallow-clone/node_modules/lazy-cache/package.json delete mode 100644 node_modules/shallow-clone/package.json delete mode 100644 node_modules/shallow-clone/utils.js delete mode 100644 node_modules/streamx/LICENSE delete mode 100644 node_modules/streamx/README.md delete mode 100644 node_modules/streamx/index.js delete mode 100644 node_modules/streamx/package.json delete mode 100644 node_modules/string-width/index.d.ts delete mode 100644 node_modules/string-width/index.js delete mode 100644 node_modules/string-width/license delete mode 100644 node_modules/string-width/package.json delete mode 100644 node_modules/string-width/readme.md delete mode 100644 node_modules/strip-ansi/index.d.ts delete mode 100644 node_modules/strip-ansi/index.js delete mode 100644 node_modules/strip-ansi/license delete mode 100644 node_modules/strip-ansi/package.json delete mode 100644 node_modules/strip-ansi/readme.md delete mode 100644 node_modules/tar-fs/LICENSE delete mode 100644 node_modules/tar-fs/README.md delete mode 100644 node_modules/tar-fs/index.js delete mode 100644 node_modules/tar-fs/package.json delete mode 100644 node_modules/tar-stream/LICENSE delete mode 100644 node_modules/tar-stream/README.md delete mode 100644 node_modules/tar-stream/constants.js delete mode 100644 node_modules/tar-stream/extract.js delete mode 100644 node_modules/tar-stream/headers.js delete mode 100644 node_modules/tar-stream/index.js delete mode 100644 node_modules/tar-stream/pack.js delete mode 100644 node_modules/tar-stream/package.json delete mode 100644 node_modules/teex/LICENSE delete mode 100644 node_modules/teex/README.md delete mode 100644 node_modules/teex/example.js delete mode 100644 node_modules/teex/index.js delete mode 100644 node_modules/teex/package.json delete mode 100644 node_modules/teex/test.js delete mode 100644 node_modules/text-decoder/LICENSE delete mode 100644 node_modules/text-decoder/README.md delete mode 100644 node_modules/text-decoder/index.js delete mode 100644 node_modules/text-decoder/lib/pass-through-decoder.js delete mode 100644 node_modules/text-decoder/lib/utf8-decoder.js delete mode 100644 node_modules/text-decoder/package.json delete mode 100644 node_modules/typed-query-selector/LICENSE delete mode 100644 node_modules/typed-query-selector/README.md delete mode 100644 node_modules/typed-query-selector/package.json delete mode 100644 node_modules/typed-query-selector/parser.d.ts delete mode 100644 node_modules/typed-query-selector/shim.d.ts delete mode 100644 node_modules/typed-query-selector/strict.d.ts delete mode 100644 node_modules/universalify/LICENSE delete mode 100644 node_modules/universalify/README.md delete mode 100644 node_modules/universalify/index.js delete mode 100644 node_modules/universalify/package.json delete mode 100644 node_modules/webdriver-bidi-protocol/CHANGELOG.md delete mode 100644 node_modules/webdriver-bidi-protocol/LICENSE delete mode 100644 node_modules/webdriver-bidi-protocol/README.md delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/main.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/main.js delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/mapping.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/mapping.js delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/permissions.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/permissions.js delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/ua-client-hints.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/ua-client-hints.js delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/web-bluetooth.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/gen/web-bluetooth.js delete mode 100644 node_modules/webdriver-bidi-protocol/out/index.d.ts delete mode 100644 node_modules/webdriver-bidi-protocol/out/index.js delete mode 100644 node_modules/webdriver-bidi-protocol/package.json delete mode 100644 node_modules/webdriver-bidi-protocol/src/gen/main.ts delete mode 100644 node_modules/webdriver-bidi-protocol/src/gen/mapping.ts delete mode 100644 node_modules/webdriver-bidi-protocol/src/gen/permissions.ts delete mode 100644 node_modules/webdriver-bidi-protocol/src/gen/ua-client-hints.ts delete mode 100644 node_modules/webdriver-bidi-protocol/src/gen/web-bluetooth.ts delete mode 100644 node_modules/webdriver-bidi-protocol/src/index.ts delete mode 100755 node_modules/wrap-ansi/index.js delete mode 100644 node_modules/wrap-ansi/license delete mode 100644 node_modules/wrap-ansi/package.json delete mode 100644 node_modules/wrap-ansi/readme.md delete mode 100644 node_modules/wrappy/LICENSE delete mode 100644 node_modules/wrappy/README.md delete mode 100644 node_modules/wrappy/package.json delete mode 100644 node_modules/wrappy/wrappy.js delete mode 100644 node_modules/ws/LICENSE delete mode 100644 node_modules/ws/README.md delete mode 100644 node_modules/ws/browser.js delete mode 100644 node_modules/ws/index.js delete mode 100644 node_modules/ws/lib/buffer-util.js delete mode 100644 node_modules/ws/lib/constants.js delete mode 100644 node_modules/ws/lib/event-target.js delete mode 100644 node_modules/ws/lib/extension.js delete mode 100644 node_modules/ws/lib/limiter.js delete mode 100644 node_modules/ws/lib/permessage-deflate.js delete mode 100644 node_modules/ws/lib/receiver.js delete mode 100644 node_modules/ws/lib/sender.js delete mode 100644 node_modules/ws/lib/stream.js delete mode 100644 node_modules/ws/lib/subprotocol.js delete mode 100644 node_modules/ws/lib/validation.js delete mode 100644 node_modules/ws/lib/websocket-server.js delete mode 100644 node_modules/ws/lib/websocket.js delete mode 100644 node_modules/ws/package.json delete mode 100644 node_modules/ws/wrapper.mjs delete mode 100644 node_modules/y18n/CHANGELOG.md delete mode 100644 node_modules/y18n/LICENSE delete mode 100644 node_modules/y18n/README.md delete mode 100644 node_modules/y18n/build/index.cjs delete mode 100644 node_modules/y18n/build/lib/cjs.js delete mode 100644 node_modules/y18n/build/lib/index.js delete mode 100644 node_modules/y18n/build/lib/platform-shims/node.js delete mode 100644 node_modules/y18n/index.mjs delete mode 100644 node_modules/y18n/package.json delete mode 100644 node_modules/yargs-parser/CHANGELOG.md delete mode 100644 node_modules/yargs-parser/LICENSE.txt delete mode 100644 node_modules/yargs-parser/README.md delete mode 100644 node_modules/yargs-parser/browser.js delete mode 100644 node_modules/yargs-parser/build/index.cjs delete mode 100644 node_modules/yargs-parser/build/lib/index.js delete mode 100644 node_modules/yargs-parser/build/lib/string-utils.js delete mode 100644 node_modules/yargs-parser/build/lib/tokenize-arg-string.js delete mode 100644 node_modules/yargs-parser/build/lib/yargs-parser-types.js delete mode 100644 node_modules/yargs-parser/build/lib/yargs-parser.js delete mode 100644 node_modules/yargs-parser/package.json delete mode 100644 node_modules/yargs/LICENSE delete mode 100644 node_modules/yargs/README.md delete mode 100644 node_modules/yargs/browser.d.ts delete mode 100644 node_modules/yargs/browser.mjs delete mode 100644 node_modules/yargs/build/index.cjs delete mode 100644 node_modules/yargs/build/lib/argsert.js delete mode 100644 node_modules/yargs/build/lib/command.js delete mode 100644 node_modules/yargs/build/lib/completion-templates.js delete mode 100644 node_modules/yargs/build/lib/completion.js delete mode 100644 node_modules/yargs/build/lib/middleware.js delete mode 100644 node_modules/yargs/build/lib/parse-command.js delete mode 100644 node_modules/yargs/build/lib/typings/common-types.js delete mode 100644 node_modules/yargs/build/lib/typings/yargs-parser-types.js delete mode 100644 node_modules/yargs/build/lib/usage.js delete mode 100644 node_modules/yargs/build/lib/utils/apply-extends.js delete mode 100644 node_modules/yargs/build/lib/utils/is-promise.js delete mode 100644 node_modules/yargs/build/lib/utils/levenshtein.js delete mode 100644 node_modules/yargs/build/lib/utils/maybe-async-result.js delete mode 100644 node_modules/yargs/build/lib/utils/obj-filter.js delete mode 100644 node_modules/yargs/build/lib/utils/process-argv.js delete mode 100644 node_modules/yargs/build/lib/utils/set-blocking.js delete mode 100644 node_modules/yargs/build/lib/utils/which-module.js delete mode 100644 node_modules/yargs/build/lib/validation.js delete mode 100644 node_modules/yargs/build/lib/yargs-factory.js delete mode 100644 node_modules/yargs/build/lib/yerror.js delete mode 100644 node_modules/yargs/helpers/helpers.mjs delete mode 100644 node_modules/yargs/helpers/index.js delete mode 100644 node_modules/yargs/helpers/package.json delete mode 100644 node_modules/yargs/index.cjs delete mode 100644 node_modules/yargs/index.mjs delete mode 100644 node_modules/yargs/lib/platform-shims/browser.mjs delete mode 100644 node_modules/yargs/lib/platform-shims/esm.mjs delete mode 100644 node_modules/yargs/locales/be.json delete mode 100644 node_modules/yargs/locales/cs.json delete mode 100644 node_modules/yargs/locales/de.json delete mode 100644 node_modules/yargs/locales/en.json delete mode 100644 node_modules/yargs/locales/es.json delete mode 100644 node_modules/yargs/locales/fi.json delete mode 100644 node_modules/yargs/locales/fr.json delete mode 100644 node_modules/yargs/locales/hi.json delete mode 100644 node_modules/yargs/locales/hu.json delete mode 100644 node_modules/yargs/locales/id.json delete mode 100644 node_modules/yargs/locales/it.json delete mode 100644 node_modules/yargs/locales/ja.json delete mode 100644 node_modules/yargs/locales/ko.json delete mode 100644 node_modules/yargs/locales/nb.json delete mode 100644 node_modules/yargs/locales/nl.json delete mode 100644 node_modules/yargs/locales/nn.json delete mode 100644 node_modules/yargs/locales/pirate.json delete mode 100644 node_modules/yargs/locales/pl.json delete mode 100644 node_modules/yargs/locales/pt.json delete mode 100644 node_modules/yargs/locales/pt_BR.json delete mode 100644 node_modules/yargs/locales/ru.json delete mode 100644 node_modules/yargs/locales/th.json delete mode 100644 node_modules/yargs/locales/tr.json delete mode 100644 node_modules/yargs/locales/uk_UA.json delete mode 100644 node_modules/yargs/locales/uz.json delete mode 100644 node_modules/yargs/locales/zh_CN.json delete mode 100644 node_modules/yargs/locales/zh_TW.json delete mode 100644 node_modules/yargs/package.json delete mode 100644 node_modules/yargs/yargs delete mode 100644 node_modules/yargs/yargs.mjs delete mode 100644 node_modules/zod/LICENSE delete mode 100644 node_modules/zod/README.md delete mode 100644 node_modules/zod/index.cjs delete mode 100644 node_modules/zod/index.d.cts delete mode 100644 node_modules/zod/index.d.ts delete mode 100644 node_modules/zod/index.js delete mode 100644 node_modules/zod/package.json delete mode 100644 node_modules/zod/src/index.ts delete mode 100644 node_modules/zod/src/v3/ZodError.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/datetime.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/index.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/ipv4.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/object.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/primitives.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/realworld.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/string.ts delete mode 100644 node_modules/zod/src/v3/benchmarks/union.ts delete mode 100644 node_modules/zod/src/v3/errors.ts delete mode 100644 node_modules/zod/src/v3/external.ts delete mode 100644 node_modules/zod/src/v3/helpers/enumUtil.ts delete mode 100644 node_modules/zod/src/v3/helpers/errorUtil.ts delete mode 100644 node_modules/zod/src/v3/helpers/parseUtil.ts delete mode 100644 node_modules/zod/src/v3/helpers/partialUtil.ts delete mode 100644 node_modules/zod/src/v3/helpers/typeAliases.ts delete mode 100644 node_modules/zod/src/v3/helpers/util.ts delete mode 100644 node_modules/zod/src/v3/index.ts delete mode 100644 node_modules/zod/src/v3/locales/en.ts delete mode 100644 node_modules/zod/src/v3/standard-schema.ts delete mode 100644 node_modules/zod/src/v3/tests/Mocker.ts delete mode 100644 node_modules/zod/src/v3/tests/all-errors.test.ts delete mode 100644 node_modules/zod/src/v3/tests/anyunknown.test.ts delete mode 100644 node_modules/zod/src/v3/tests/array.test.ts delete mode 100644 node_modules/zod/src/v3/tests/async-parsing.test.ts delete mode 100644 node_modules/zod/src/v3/tests/async-refinements.test.ts delete mode 100644 node_modules/zod/src/v3/tests/base.test.ts delete mode 100644 node_modules/zod/src/v3/tests/bigint.test.ts delete mode 100644 node_modules/zod/src/v3/tests/branded.test.ts delete mode 100644 node_modules/zod/src/v3/tests/catch.test.ts delete mode 100644 node_modules/zod/src/v3/tests/coerce.test.ts delete mode 100644 node_modules/zod/src/v3/tests/complex.test.ts delete mode 100644 node_modules/zod/src/v3/tests/custom.test.ts delete mode 100644 node_modules/zod/src/v3/tests/date.test.ts delete mode 100644 node_modules/zod/src/v3/tests/deepmasking.test.ts delete mode 100644 node_modules/zod/src/v3/tests/default.test.ts delete mode 100644 node_modules/zod/src/v3/tests/description.test.ts delete mode 100644 node_modules/zod/src/v3/tests/discriminated-unions.test.ts delete mode 100644 node_modules/zod/src/v3/tests/enum.test.ts delete mode 100644 node_modules/zod/src/v3/tests/error.test.ts delete mode 100644 node_modules/zod/src/v3/tests/firstparty.test.ts delete mode 100644 node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts delete mode 100644 node_modules/zod/src/v3/tests/function.test.ts delete mode 100644 node_modules/zod/src/v3/tests/generics.test.ts delete mode 100644 node_modules/zod/src/v3/tests/instanceof.test.ts delete mode 100644 node_modules/zod/src/v3/tests/intersection.test.ts delete mode 100644 node_modules/zod/src/v3/tests/language-server.source.ts delete mode 100644 node_modules/zod/src/v3/tests/language-server.test.ts delete mode 100644 node_modules/zod/src/v3/tests/literal.test.ts delete mode 100644 node_modules/zod/src/v3/tests/map.test.ts delete mode 100644 node_modules/zod/src/v3/tests/masking.test.ts delete mode 100644 node_modules/zod/src/v3/tests/mocker.test.ts delete mode 100644 node_modules/zod/src/v3/tests/nan.test.ts delete mode 100644 node_modules/zod/src/v3/tests/nativeEnum.test.ts delete mode 100644 node_modules/zod/src/v3/tests/nullable.test.ts delete mode 100644 node_modules/zod/src/v3/tests/number.test.ts delete mode 100644 node_modules/zod/src/v3/tests/object-augmentation.test.ts delete mode 100644 node_modules/zod/src/v3/tests/object-in-es5-env.test.ts delete mode 100644 node_modules/zod/src/v3/tests/object.test.ts delete mode 100644 node_modules/zod/src/v3/tests/optional.test.ts delete mode 100644 node_modules/zod/src/v3/tests/parseUtil.test.ts delete mode 100644 node_modules/zod/src/v3/tests/parser.test.ts delete mode 100644 node_modules/zod/src/v3/tests/partials.test.ts delete mode 100644 node_modules/zod/src/v3/tests/pickomit.test.ts delete mode 100644 node_modules/zod/src/v3/tests/pipeline.test.ts delete mode 100644 node_modules/zod/src/v3/tests/preprocess.test.ts delete mode 100644 node_modules/zod/src/v3/tests/primitive.test.ts delete mode 100644 node_modules/zod/src/v3/tests/promise.test.ts delete mode 100644 node_modules/zod/src/v3/tests/readonly.test.ts delete mode 100644 node_modules/zod/src/v3/tests/record.test.ts delete mode 100644 node_modules/zod/src/v3/tests/recursive.test.ts delete mode 100644 node_modules/zod/src/v3/tests/refine.test.ts delete mode 100644 node_modules/zod/src/v3/tests/safeparse.test.ts delete mode 100644 node_modules/zod/src/v3/tests/set.test.ts delete mode 100644 node_modules/zod/src/v3/tests/standard-schema.test.ts delete mode 100644 node_modules/zod/src/v3/tests/string.test.ts delete mode 100644 node_modules/zod/src/v3/tests/transformer.test.ts delete mode 100644 node_modules/zod/src/v3/tests/tuple.test.ts delete mode 100644 node_modules/zod/src/v3/tests/unions.test.ts delete mode 100644 node_modules/zod/src/v3/tests/validations.test.ts delete mode 100644 node_modules/zod/src/v3/tests/void.test.ts delete mode 100644 node_modules/zod/src/v3/types.ts delete mode 100644 node_modules/zod/src/v4-mini/index.ts delete mode 100644 node_modules/zod/src/v4/classic/checks.ts delete mode 100644 node_modules/zod/src/v4/classic/coerce.ts delete mode 100644 node_modules/zod/src/v4/classic/compat.ts delete mode 100644 node_modules/zod/src/v4/classic/errors.ts delete mode 100644 node_modules/zod/src/v4/classic/external.ts delete mode 100644 node_modules/zod/src/v4/classic/index.ts delete mode 100644 node_modules/zod/src/v4/classic/iso.ts delete mode 100644 node_modules/zod/src/v4/classic/parse.ts delete mode 100644 node_modules/zod/src/v4/classic/schemas.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/anyunknown.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/array.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/assignability.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/async-parsing.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/async-refinements.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/base.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/bigint.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/brand.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/catch.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/coalesce.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/coerce.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/continuability.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/custom.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/date.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/datetime.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/default.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/description.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/enum.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/error-utils.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/error.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/file.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/firstparty.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/function.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/generics.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/index.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/instanceof.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/intersection.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/json.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/lazy.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/literal.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/map.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/nan.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/nested-refine.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/nonoptional.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/nullable.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/number.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/object.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/optional.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/partial.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/pickomit.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/pipe.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/prefault.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/preprocess.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/primitive.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/promise.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/prototypes.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/readonly.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/record.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/recursive-types.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/refine.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/registries.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/set.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/standard-schema.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/string-formats.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/string.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/stringbool.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/template-literal.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/transform.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/tuple.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/union.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/validations.test.ts delete mode 100644 node_modules/zod/src/v4/classic/tests/void.test.ts delete mode 100644 node_modules/zod/src/v4/core/api.ts delete mode 100644 node_modules/zod/src/v4/core/checks.ts delete mode 100644 node_modules/zod/src/v4/core/config.ts delete mode 100644 node_modules/zod/src/v4/core/core.ts delete mode 100644 node_modules/zod/src/v4/core/doc.ts delete mode 100644 node_modules/zod/src/v4/core/errors.ts delete mode 100644 node_modules/zod/src/v4/core/function.ts delete mode 100644 node_modules/zod/src/v4/core/index.ts delete mode 100644 node_modules/zod/src/v4/core/json-schema.ts delete mode 100644 node_modules/zod/src/v4/core/parse.ts delete mode 100644 node_modules/zod/src/v4/core/regexes.ts delete mode 100644 node_modules/zod/src/v4/core/registries.ts delete mode 100644 node_modules/zod/src/v4/core/schemas.ts delete mode 100644 node_modules/zod/src/v4/core/standard-schema.ts delete mode 100644 node_modules/zod/src/v4/core/tests/index.test.ts delete mode 100644 node_modules/zod/src/v4/core/tests/locales/be.test.ts delete mode 100644 node_modules/zod/src/v4/core/tests/locales/en.test.ts delete mode 100644 node_modules/zod/src/v4/core/tests/locales/ru.test.ts delete mode 100644 node_modules/zod/src/v4/core/tests/locales/tr.test.ts delete mode 100644 node_modules/zod/src/v4/core/to-json-schema.ts delete mode 100644 node_modules/zod/src/v4/core/util.ts delete mode 100644 node_modules/zod/src/v4/core/versions.ts delete mode 100644 node_modules/zod/src/v4/core/zsf.ts delete mode 100644 node_modules/zod/src/v4/index.ts delete mode 100644 node_modules/zod/src/v4/locales/ar.ts delete mode 100644 node_modules/zod/src/v4/locales/az.ts delete mode 100644 node_modules/zod/src/v4/locales/be.ts delete mode 100644 node_modules/zod/src/v4/locales/ca.ts delete mode 100644 node_modules/zod/src/v4/locales/cs.ts delete mode 100644 node_modules/zod/src/v4/locales/de.ts delete mode 100644 node_modules/zod/src/v4/locales/en.ts delete mode 100644 node_modules/zod/src/v4/locales/eo.ts delete mode 100644 node_modules/zod/src/v4/locales/es.ts delete mode 100644 node_modules/zod/src/v4/locales/fa.ts delete mode 100644 node_modules/zod/src/v4/locales/fi.ts delete mode 100644 node_modules/zod/src/v4/locales/fr-CA.ts delete mode 100644 node_modules/zod/src/v4/locales/fr.ts delete mode 100644 node_modules/zod/src/v4/locales/he.ts delete mode 100644 node_modules/zod/src/v4/locales/hu.ts delete mode 100644 node_modules/zod/src/v4/locales/id.ts delete mode 100644 node_modules/zod/src/v4/locales/index.ts delete mode 100644 node_modules/zod/src/v4/locales/it.ts delete mode 100644 node_modules/zod/src/v4/locales/ja.ts delete mode 100644 node_modules/zod/src/v4/locales/kh.ts delete mode 100644 node_modules/zod/src/v4/locales/ko.ts delete mode 100644 node_modules/zod/src/v4/locales/mk.ts delete mode 100644 node_modules/zod/src/v4/locales/ms.ts delete mode 100644 node_modules/zod/src/v4/locales/nl.ts delete mode 100644 node_modules/zod/src/v4/locales/no.ts delete mode 100644 node_modules/zod/src/v4/locales/ota.ts delete mode 100644 node_modules/zod/src/v4/locales/pl.ts delete mode 100644 node_modules/zod/src/v4/locales/ps.ts delete mode 100644 node_modules/zod/src/v4/locales/pt.ts delete mode 100644 node_modules/zod/src/v4/locales/ru.ts delete mode 100644 node_modules/zod/src/v4/locales/sl.ts delete mode 100644 node_modules/zod/src/v4/locales/sv.ts delete mode 100644 node_modules/zod/src/v4/locales/ta.ts delete mode 100644 node_modules/zod/src/v4/locales/th.ts delete mode 100644 node_modules/zod/src/v4/locales/tr.ts delete mode 100644 node_modules/zod/src/v4/locales/ua.ts delete mode 100644 node_modules/zod/src/v4/locales/ur.ts delete mode 100644 node_modules/zod/src/v4/locales/vi.ts delete mode 100644 node_modules/zod/src/v4/locales/zh-CN.ts delete mode 100644 node_modules/zod/src/v4/locales/zh-TW.ts delete mode 100644 node_modules/zod/src/v4/mini/checks.ts delete mode 100644 node_modules/zod/src/v4/mini/coerce.ts delete mode 100644 node_modules/zod/src/v4/mini/external.ts delete mode 100644 node_modules/zod/src/v4/mini/index.ts delete mode 100644 node_modules/zod/src/v4/mini/iso.ts delete mode 100644 node_modules/zod/src/v4/mini/parse.ts delete mode 100644 node_modules/zod/src/v4/mini/schemas.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/assignability.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/brand.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/checks.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/computed.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/error.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/functions.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/index.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/number.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/object.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/prototypes.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/recursive-types.test.ts delete mode 100644 node_modules/zod/src/v4/mini/tests/string.test.ts delete mode 100644 node_modules/zod/v3/ZodError.cjs delete mode 100644 node_modules/zod/v3/ZodError.d.cts delete mode 100644 node_modules/zod/v3/ZodError.d.ts delete mode 100644 node_modules/zod/v3/ZodError.js delete mode 100644 node_modules/zod/v3/errors.cjs delete mode 100644 node_modules/zod/v3/errors.d.cts delete mode 100644 node_modules/zod/v3/errors.d.ts delete mode 100644 node_modules/zod/v3/errors.js delete mode 100644 node_modules/zod/v3/external.cjs delete mode 100644 node_modules/zod/v3/external.d.cts delete mode 100644 node_modules/zod/v3/external.d.ts delete mode 100644 node_modules/zod/v3/external.js delete mode 100644 node_modules/zod/v3/helpers/enumUtil.cjs delete mode 100644 node_modules/zod/v3/helpers/enumUtil.d.cts delete mode 100644 node_modules/zod/v3/helpers/enumUtil.d.ts delete mode 100644 node_modules/zod/v3/helpers/enumUtil.js delete mode 100644 node_modules/zod/v3/helpers/errorUtil.cjs delete mode 100644 node_modules/zod/v3/helpers/errorUtil.d.cts delete mode 100644 node_modules/zod/v3/helpers/errorUtil.d.ts delete mode 100644 node_modules/zod/v3/helpers/errorUtil.js delete mode 100644 node_modules/zod/v3/helpers/parseUtil.cjs delete mode 100644 node_modules/zod/v3/helpers/parseUtil.d.cts delete mode 100644 node_modules/zod/v3/helpers/parseUtil.d.ts delete mode 100644 node_modules/zod/v3/helpers/parseUtil.js delete mode 100644 node_modules/zod/v3/helpers/partialUtil.cjs delete mode 100644 node_modules/zod/v3/helpers/partialUtil.d.cts delete mode 100644 node_modules/zod/v3/helpers/partialUtil.d.ts delete mode 100644 node_modules/zod/v3/helpers/partialUtil.js delete mode 100644 node_modules/zod/v3/helpers/typeAliases.cjs delete mode 100644 node_modules/zod/v3/helpers/typeAliases.d.cts delete mode 100644 node_modules/zod/v3/helpers/typeAliases.d.ts delete mode 100644 node_modules/zod/v3/helpers/typeAliases.js delete mode 100644 node_modules/zod/v3/helpers/util.cjs delete mode 100644 node_modules/zod/v3/helpers/util.d.cts delete mode 100644 node_modules/zod/v3/helpers/util.d.ts delete mode 100644 node_modules/zod/v3/helpers/util.js delete mode 100644 node_modules/zod/v3/index.cjs delete mode 100644 node_modules/zod/v3/index.d.cts delete mode 100644 node_modules/zod/v3/index.d.ts delete mode 100644 node_modules/zod/v3/index.js delete mode 100644 node_modules/zod/v3/locales/en.cjs delete mode 100644 node_modules/zod/v3/locales/en.d.cts delete mode 100644 node_modules/zod/v3/locales/en.d.ts delete mode 100644 node_modules/zod/v3/locales/en.js delete mode 100644 node_modules/zod/v3/standard-schema.cjs delete mode 100644 node_modules/zod/v3/standard-schema.d.cts delete mode 100644 node_modules/zod/v3/standard-schema.d.ts delete mode 100644 node_modules/zod/v3/standard-schema.js delete mode 100644 node_modules/zod/v3/types.cjs delete mode 100644 node_modules/zod/v3/types.d.cts delete mode 100644 node_modules/zod/v3/types.d.ts delete mode 100644 node_modules/zod/v3/types.js delete mode 100644 node_modules/zod/v4-mini/index.cjs delete mode 100644 node_modules/zod/v4-mini/index.d.cts delete mode 100644 node_modules/zod/v4-mini/index.d.ts delete mode 100644 node_modules/zod/v4-mini/index.js delete mode 100644 node_modules/zod/v4/classic/checks.cjs delete mode 100644 node_modules/zod/v4/classic/checks.d.cts delete mode 100644 node_modules/zod/v4/classic/checks.d.ts delete mode 100644 node_modules/zod/v4/classic/checks.js delete mode 100644 node_modules/zod/v4/classic/coerce.cjs delete mode 100644 node_modules/zod/v4/classic/coerce.d.cts delete mode 100644 node_modules/zod/v4/classic/coerce.d.ts delete mode 100644 node_modules/zod/v4/classic/coerce.js delete mode 100644 node_modules/zod/v4/classic/compat.cjs delete mode 100644 node_modules/zod/v4/classic/compat.d.cts delete mode 100644 node_modules/zod/v4/classic/compat.d.ts delete mode 100644 node_modules/zod/v4/classic/compat.js delete mode 100644 node_modules/zod/v4/classic/errors.cjs delete mode 100644 node_modules/zod/v4/classic/errors.d.cts delete mode 100644 node_modules/zod/v4/classic/errors.d.ts delete mode 100644 node_modules/zod/v4/classic/errors.js delete mode 100644 node_modules/zod/v4/classic/external.cjs delete mode 100644 node_modules/zod/v4/classic/external.d.cts delete mode 100644 node_modules/zod/v4/classic/external.d.ts delete mode 100644 node_modules/zod/v4/classic/external.js delete mode 100644 node_modules/zod/v4/classic/index.cjs delete mode 100644 node_modules/zod/v4/classic/index.d.cts delete mode 100644 node_modules/zod/v4/classic/index.d.ts delete mode 100644 node_modules/zod/v4/classic/index.js delete mode 100644 node_modules/zod/v4/classic/iso.cjs delete mode 100644 node_modules/zod/v4/classic/iso.d.cts delete mode 100644 node_modules/zod/v4/classic/iso.d.ts delete mode 100644 node_modules/zod/v4/classic/iso.js delete mode 100644 node_modules/zod/v4/classic/parse.cjs delete mode 100644 node_modules/zod/v4/classic/parse.d.cts delete mode 100644 node_modules/zod/v4/classic/parse.d.ts delete mode 100644 node_modules/zod/v4/classic/parse.js delete mode 100644 node_modules/zod/v4/classic/schemas.cjs delete mode 100644 node_modules/zod/v4/classic/schemas.d.cts delete mode 100644 node_modules/zod/v4/classic/schemas.d.ts delete mode 100644 node_modules/zod/v4/classic/schemas.js delete mode 100644 node_modules/zod/v4/core/api.cjs delete mode 100644 node_modules/zod/v4/core/api.d.cts delete mode 100644 node_modules/zod/v4/core/api.d.ts delete mode 100644 node_modules/zod/v4/core/api.js delete mode 100644 node_modules/zod/v4/core/checks.cjs delete mode 100644 node_modules/zod/v4/core/checks.d.cts delete mode 100644 node_modules/zod/v4/core/checks.d.ts delete mode 100644 node_modules/zod/v4/core/checks.js delete mode 100644 node_modules/zod/v4/core/core.cjs delete mode 100644 node_modules/zod/v4/core/core.d.cts delete mode 100644 node_modules/zod/v4/core/core.d.ts delete mode 100644 node_modules/zod/v4/core/core.js delete mode 100644 node_modules/zod/v4/core/doc.cjs delete mode 100644 node_modules/zod/v4/core/doc.d.cts delete mode 100644 node_modules/zod/v4/core/doc.d.ts delete mode 100644 node_modules/zod/v4/core/doc.js delete mode 100644 node_modules/zod/v4/core/errors.cjs delete mode 100644 node_modules/zod/v4/core/errors.d.cts delete mode 100644 node_modules/zod/v4/core/errors.d.ts delete mode 100644 node_modules/zod/v4/core/errors.js delete mode 100644 node_modules/zod/v4/core/function.cjs delete mode 100644 node_modules/zod/v4/core/function.d.cts delete mode 100644 node_modules/zod/v4/core/function.d.ts delete mode 100644 node_modules/zod/v4/core/function.js delete mode 100644 node_modules/zod/v4/core/index.cjs delete mode 100644 node_modules/zod/v4/core/index.d.cts delete mode 100644 node_modules/zod/v4/core/index.d.ts delete mode 100644 node_modules/zod/v4/core/index.js delete mode 100644 node_modules/zod/v4/core/json-schema.cjs delete mode 100644 node_modules/zod/v4/core/json-schema.d.cts delete mode 100644 node_modules/zod/v4/core/json-schema.d.ts delete mode 100644 node_modules/zod/v4/core/json-schema.js delete mode 100644 node_modules/zod/v4/core/parse.cjs delete mode 100644 node_modules/zod/v4/core/parse.d.cts delete mode 100644 node_modules/zod/v4/core/parse.d.ts delete mode 100644 node_modules/zod/v4/core/parse.js delete mode 100644 node_modules/zod/v4/core/regexes.cjs delete mode 100644 node_modules/zod/v4/core/regexes.d.cts delete mode 100644 node_modules/zod/v4/core/regexes.d.ts delete mode 100644 node_modules/zod/v4/core/regexes.js delete mode 100644 node_modules/zod/v4/core/registries.cjs delete mode 100644 node_modules/zod/v4/core/registries.d.cts delete mode 100644 node_modules/zod/v4/core/registries.d.ts delete mode 100644 node_modules/zod/v4/core/registries.js delete mode 100644 node_modules/zod/v4/core/schemas.cjs delete mode 100644 node_modules/zod/v4/core/schemas.d.cts delete mode 100644 node_modules/zod/v4/core/schemas.d.ts delete mode 100644 node_modules/zod/v4/core/schemas.js delete mode 100644 node_modules/zod/v4/core/standard-schema.cjs delete mode 100644 node_modules/zod/v4/core/standard-schema.d.cts delete mode 100644 node_modules/zod/v4/core/standard-schema.d.ts delete mode 100644 node_modules/zod/v4/core/standard-schema.js delete mode 100644 node_modules/zod/v4/core/to-json-schema.cjs delete mode 100644 node_modules/zod/v4/core/to-json-schema.d.cts delete mode 100644 node_modules/zod/v4/core/to-json-schema.d.ts delete mode 100644 node_modules/zod/v4/core/to-json-schema.js delete mode 100644 node_modules/zod/v4/core/util.cjs delete mode 100644 node_modules/zod/v4/core/util.d.cts delete mode 100644 node_modules/zod/v4/core/util.d.ts delete mode 100644 node_modules/zod/v4/core/util.js delete mode 100644 node_modules/zod/v4/core/versions.cjs delete mode 100644 node_modules/zod/v4/core/versions.d.cts delete mode 100644 node_modules/zod/v4/core/versions.d.ts delete mode 100644 node_modules/zod/v4/core/versions.js delete mode 100644 node_modules/zod/v4/index.cjs delete mode 100644 node_modules/zod/v4/index.d.cts delete mode 100644 node_modules/zod/v4/index.d.ts delete mode 100644 node_modules/zod/v4/index.js delete mode 100644 node_modules/zod/v4/locales/ar.cjs delete mode 100644 node_modules/zod/v4/locales/ar.d.cts delete mode 100644 node_modules/zod/v4/locales/ar.d.ts delete mode 100644 node_modules/zod/v4/locales/ar.js delete mode 100644 node_modules/zod/v4/locales/az.cjs delete mode 100644 node_modules/zod/v4/locales/az.d.cts delete mode 100644 node_modules/zod/v4/locales/az.d.ts delete mode 100644 node_modules/zod/v4/locales/az.js delete mode 100644 node_modules/zod/v4/locales/be.cjs delete mode 100644 node_modules/zod/v4/locales/be.d.cts delete mode 100644 node_modules/zod/v4/locales/be.d.ts delete mode 100644 node_modules/zod/v4/locales/be.js delete mode 100644 node_modules/zod/v4/locales/ca.cjs delete mode 100644 node_modules/zod/v4/locales/ca.d.cts delete mode 100644 node_modules/zod/v4/locales/ca.d.ts delete mode 100644 node_modules/zod/v4/locales/ca.js delete mode 100644 node_modules/zod/v4/locales/cs.cjs delete mode 100644 node_modules/zod/v4/locales/cs.d.cts delete mode 100644 node_modules/zod/v4/locales/cs.d.ts delete mode 100644 node_modules/zod/v4/locales/cs.js delete mode 100644 node_modules/zod/v4/locales/de.cjs delete mode 100644 node_modules/zod/v4/locales/de.d.cts delete mode 100644 node_modules/zod/v4/locales/de.d.ts delete mode 100644 node_modules/zod/v4/locales/de.js delete mode 100644 node_modules/zod/v4/locales/en.cjs delete mode 100644 node_modules/zod/v4/locales/en.d.cts delete mode 100644 node_modules/zod/v4/locales/en.d.ts delete mode 100644 node_modules/zod/v4/locales/en.js delete mode 100644 node_modules/zod/v4/locales/eo.cjs delete mode 100644 node_modules/zod/v4/locales/eo.d.cts delete mode 100644 node_modules/zod/v4/locales/eo.d.ts delete mode 100644 node_modules/zod/v4/locales/eo.js delete mode 100644 node_modules/zod/v4/locales/es.cjs delete mode 100644 node_modules/zod/v4/locales/es.d.cts delete mode 100644 node_modules/zod/v4/locales/es.d.ts delete mode 100644 node_modules/zod/v4/locales/es.js delete mode 100644 node_modules/zod/v4/locales/fa.cjs delete mode 100644 node_modules/zod/v4/locales/fa.d.cts delete mode 100644 node_modules/zod/v4/locales/fa.d.ts delete mode 100644 node_modules/zod/v4/locales/fa.js delete mode 100644 node_modules/zod/v4/locales/fi.cjs delete mode 100644 node_modules/zod/v4/locales/fi.d.cts delete mode 100644 node_modules/zod/v4/locales/fi.d.ts delete mode 100644 node_modules/zod/v4/locales/fi.js delete mode 100644 node_modules/zod/v4/locales/fr-CA.cjs delete mode 100644 node_modules/zod/v4/locales/fr-CA.d.cts delete mode 100644 node_modules/zod/v4/locales/fr-CA.d.ts delete mode 100644 node_modules/zod/v4/locales/fr-CA.js delete mode 100644 node_modules/zod/v4/locales/fr.cjs delete mode 100644 node_modules/zod/v4/locales/fr.d.cts delete mode 100644 node_modules/zod/v4/locales/fr.d.ts delete mode 100644 node_modules/zod/v4/locales/fr.js delete mode 100644 node_modules/zod/v4/locales/he.cjs delete mode 100644 node_modules/zod/v4/locales/he.d.cts delete mode 100644 node_modules/zod/v4/locales/he.d.ts delete mode 100644 node_modules/zod/v4/locales/he.js delete mode 100644 node_modules/zod/v4/locales/hu.cjs delete mode 100644 node_modules/zod/v4/locales/hu.d.cts delete mode 100644 node_modules/zod/v4/locales/hu.d.ts delete mode 100644 node_modules/zod/v4/locales/hu.js delete mode 100644 node_modules/zod/v4/locales/id.cjs delete mode 100644 node_modules/zod/v4/locales/id.d.cts delete mode 100644 node_modules/zod/v4/locales/id.d.ts delete mode 100644 node_modules/zod/v4/locales/id.js delete mode 100644 node_modules/zod/v4/locales/index.cjs delete mode 100644 node_modules/zod/v4/locales/index.d.cts delete mode 100644 node_modules/zod/v4/locales/index.d.ts delete mode 100644 node_modules/zod/v4/locales/index.js delete mode 100644 node_modules/zod/v4/locales/it.cjs delete mode 100644 node_modules/zod/v4/locales/it.d.cts delete mode 100644 node_modules/zod/v4/locales/it.d.ts delete mode 100644 node_modules/zod/v4/locales/it.js delete mode 100644 node_modules/zod/v4/locales/ja.cjs delete mode 100644 node_modules/zod/v4/locales/ja.d.cts delete mode 100644 node_modules/zod/v4/locales/ja.d.ts delete mode 100644 node_modules/zod/v4/locales/ja.js delete mode 100644 node_modules/zod/v4/locales/kh.cjs delete mode 100644 node_modules/zod/v4/locales/kh.d.cts delete mode 100644 node_modules/zod/v4/locales/kh.d.ts delete mode 100644 node_modules/zod/v4/locales/kh.js delete mode 100644 node_modules/zod/v4/locales/ko.cjs delete mode 100644 node_modules/zod/v4/locales/ko.d.cts delete mode 100644 node_modules/zod/v4/locales/ko.d.ts delete mode 100644 node_modules/zod/v4/locales/ko.js delete mode 100644 node_modules/zod/v4/locales/mk.cjs delete mode 100644 node_modules/zod/v4/locales/mk.d.cts delete mode 100644 node_modules/zod/v4/locales/mk.d.ts delete mode 100644 node_modules/zod/v4/locales/mk.js delete mode 100644 node_modules/zod/v4/locales/ms.cjs delete mode 100644 node_modules/zod/v4/locales/ms.d.cts delete mode 100644 node_modules/zod/v4/locales/ms.d.ts delete mode 100644 node_modules/zod/v4/locales/ms.js delete mode 100644 node_modules/zod/v4/locales/nl.cjs delete mode 100644 node_modules/zod/v4/locales/nl.d.cts delete mode 100644 node_modules/zod/v4/locales/nl.d.ts delete mode 100644 node_modules/zod/v4/locales/nl.js delete mode 100644 node_modules/zod/v4/locales/no.cjs delete mode 100644 node_modules/zod/v4/locales/no.d.cts delete mode 100644 node_modules/zod/v4/locales/no.d.ts delete mode 100644 node_modules/zod/v4/locales/no.js delete mode 100644 node_modules/zod/v4/locales/ota.cjs delete mode 100644 node_modules/zod/v4/locales/ota.d.cts delete mode 100644 node_modules/zod/v4/locales/ota.d.ts delete mode 100644 node_modules/zod/v4/locales/ota.js delete mode 100644 node_modules/zod/v4/locales/pl.cjs delete mode 100644 node_modules/zod/v4/locales/pl.d.cts delete mode 100644 node_modules/zod/v4/locales/pl.d.ts delete mode 100644 node_modules/zod/v4/locales/pl.js delete mode 100644 node_modules/zod/v4/locales/ps.cjs delete mode 100644 node_modules/zod/v4/locales/ps.d.cts delete mode 100644 node_modules/zod/v4/locales/ps.d.ts delete mode 100644 node_modules/zod/v4/locales/ps.js delete mode 100644 node_modules/zod/v4/locales/pt.cjs delete mode 100644 node_modules/zod/v4/locales/pt.d.cts delete mode 100644 node_modules/zod/v4/locales/pt.d.ts delete mode 100644 node_modules/zod/v4/locales/pt.js delete mode 100644 node_modules/zod/v4/locales/ru.cjs delete mode 100644 node_modules/zod/v4/locales/ru.d.cts delete mode 100644 node_modules/zod/v4/locales/ru.d.ts delete mode 100644 node_modules/zod/v4/locales/ru.js delete mode 100644 node_modules/zod/v4/locales/sl.cjs delete mode 100644 node_modules/zod/v4/locales/sl.d.cts delete mode 100644 node_modules/zod/v4/locales/sl.d.ts delete mode 100644 node_modules/zod/v4/locales/sl.js delete mode 100644 node_modules/zod/v4/locales/sv.cjs delete mode 100644 node_modules/zod/v4/locales/sv.d.cts delete mode 100644 node_modules/zod/v4/locales/sv.d.ts delete mode 100644 node_modules/zod/v4/locales/sv.js delete mode 100644 node_modules/zod/v4/locales/ta.cjs delete mode 100644 node_modules/zod/v4/locales/ta.d.cts delete mode 100644 node_modules/zod/v4/locales/ta.d.ts delete mode 100644 node_modules/zod/v4/locales/ta.js delete mode 100644 node_modules/zod/v4/locales/th.cjs delete mode 100644 node_modules/zod/v4/locales/th.d.cts delete mode 100644 node_modules/zod/v4/locales/th.d.ts delete mode 100644 node_modules/zod/v4/locales/th.js delete mode 100644 node_modules/zod/v4/locales/tr.cjs delete mode 100644 node_modules/zod/v4/locales/tr.d.cts delete mode 100644 node_modules/zod/v4/locales/tr.d.ts delete mode 100644 node_modules/zod/v4/locales/tr.js delete mode 100644 node_modules/zod/v4/locales/ua.cjs delete mode 100644 node_modules/zod/v4/locales/ua.d.cts delete mode 100644 node_modules/zod/v4/locales/ua.d.ts delete mode 100644 node_modules/zod/v4/locales/ua.js delete mode 100644 node_modules/zod/v4/locales/ur.cjs delete mode 100644 node_modules/zod/v4/locales/ur.d.cts delete mode 100644 node_modules/zod/v4/locales/ur.d.ts delete mode 100644 node_modules/zod/v4/locales/ur.js delete mode 100644 node_modules/zod/v4/locales/vi.cjs delete mode 100644 node_modules/zod/v4/locales/vi.d.cts delete mode 100644 node_modules/zod/v4/locales/vi.d.ts delete mode 100644 node_modules/zod/v4/locales/vi.js delete mode 100644 node_modules/zod/v4/locales/zh-CN.cjs delete mode 100644 node_modules/zod/v4/locales/zh-CN.d.cts delete mode 100644 node_modules/zod/v4/locales/zh-CN.d.ts delete mode 100644 node_modules/zod/v4/locales/zh-CN.js delete mode 100644 node_modules/zod/v4/locales/zh-TW.cjs delete mode 100644 node_modules/zod/v4/locales/zh-TW.d.cts delete mode 100644 node_modules/zod/v4/locales/zh-TW.d.ts delete mode 100644 node_modules/zod/v4/locales/zh-TW.js delete mode 100644 node_modules/zod/v4/mini/checks.cjs delete mode 100644 node_modules/zod/v4/mini/checks.d.cts delete mode 100644 node_modules/zod/v4/mini/checks.d.ts delete mode 100644 node_modules/zod/v4/mini/checks.js delete mode 100644 node_modules/zod/v4/mini/coerce.cjs delete mode 100644 node_modules/zod/v4/mini/coerce.d.cts delete mode 100644 node_modules/zod/v4/mini/coerce.d.ts delete mode 100644 node_modules/zod/v4/mini/coerce.js delete mode 100644 node_modules/zod/v4/mini/external.cjs delete mode 100644 node_modules/zod/v4/mini/external.d.cts delete mode 100644 node_modules/zod/v4/mini/external.d.ts delete mode 100644 node_modules/zod/v4/mini/external.js delete mode 100644 node_modules/zod/v4/mini/index.cjs delete mode 100644 node_modules/zod/v4/mini/index.d.cts delete mode 100644 node_modules/zod/v4/mini/index.d.ts delete mode 100644 node_modules/zod/v4/mini/index.js delete mode 100644 node_modules/zod/v4/mini/iso.cjs delete mode 100644 node_modules/zod/v4/mini/iso.d.cts delete mode 100644 node_modules/zod/v4/mini/iso.d.ts delete mode 100644 node_modules/zod/v4/mini/iso.js delete mode 100644 node_modules/zod/v4/mini/parse.cjs delete mode 100644 node_modules/zod/v4/mini/parse.d.cts delete mode 100644 node_modules/zod/v4/mini/parse.d.ts delete mode 100644 node_modules/zod/v4/mini/parse.js delete mode 100644 node_modules/zod/v4/mini/schemas.cjs delete mode 100644 node_modules/zod/v4/mini/schemas.d.cts delete mode 100644 node_modules/zod/v4/mini/schemas.d.ts delete mode 100644 node_modules/zod/v4/mini/schemas.js diff --git a/gitignore b/.gitignore similarity index 93% rename from gitignore rename to .gitignore index 4f6fab7..7cf7be9 100644 --- a/gitignore +++ b/.gitignore @@ -1,143 +1,143 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.* -!.env.example - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist -.output - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp directory -.temp - -# Sveltekit cache directory -.svelte-kit/ - -# vitepress build output -**/.vitepress/dist - -# vitepress cache directory -**/.vitepress/cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# Firebase cache directory -.firebase/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# pnpm -.pnpm-store - -# yarn v3 -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/sdks -!.yarn/versions - -# Vite files -vite.config.js.timestamp-* -vite.config.ts.timestamp-* +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.* +!.env.example + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist +.output + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp directory +.temp + +# Sveltekit cache directory +.svelte-kit/ + +# vitepress build output +**/.vitepress/dist + +# vitepress cache directory +**/.vitepress/cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Firebase cache directory +.firebase/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# pnpm +.pnpm-store + +# yarn v3 +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Vite files +vite.config.js.timestamp-* +vite.config.ts.timestamp-* .vite/ \ No newline at end of file diff --git a/node_modules/.bin/browsers b/node_modules/.bin/browsers deleted file mode 120000 index bf6e2ee..0000000 --- a/node_modules/.bin/browsers +++ /dev/null @@ -1 +0,0 @@ -../@puppeteer/browsers/lib/main-cli.js \ No newline at end of file diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml deleted file mode 120000 index 9dbd010..0000000 --- a/node_modules/.bin/js-yaml +++ /dev/null @@ -1 +0,0 @@ -../js-yaml/bin/js-yaml.js \ No newline at end of file diff --git a/node_modules/.bin/puppeteer b/node_modules/.bin/puppeteer deleted file mode 120000 index 0402510..0000000 --- a/node_modules/.bin/puppeteer +++ /dev/null @@ -1 +0,0 @@ -../puppeteer/lib/puppeteer/node/cli.js \ No newline at end of file diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf deleted file mode 120000 index 4cd49a4..0000000 --- a/node_modules/.bin/rimraf +++ /dev/null @@ -1 +0,0 @@ -../rimraf/bin.js \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver deleted file mode 120000 index 5aaadf4..0000000 --- a/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index 2384604..0000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,1540 +0,0 @@ -{ - "name": "codevscodesjs", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.3.tgz", - "integrity": "sha512-v3YaiGpzUTgOZkHBFR0iZg58Vto25SqBQxfLUXDiofJccwVl6Mlr7BdLCS1NZgxikdeIHf936cxYWL9IZp3tow==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "progress": "^2.0.3", - "semver": "^7.7.4", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/main-cli.js" - }, - "engines": { - "node": ">=22.12.0" - }, - "peerDependencies": { - "proxy-agent": ">=8.0.1" - }, - "peerDependenciesMeta": { - "proxy-agent": { - "optional": true - } - } - }, - "node_modules/@types/debug": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", - "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.1.tgz", - "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/b4a": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.1.tgz", - "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/bare-events": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.3.tgz", - "integrity": "sha512-HdUm8EMQBLaJvGUdidNNbqpA1kYkwNcb+MYxkxCLAPJGQzlv9J0C24h8V65Z4c5GLd/JEALDvpFCQgpLJqc0zw==", - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz", - "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.1.tgz", - "integrity": "sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==", - "license": "Apache-2.0", - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.1.tgz", - "integrity": "sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==", - "license": "Apache-2.0", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.3.tgz", - "integrity": "sha512-Kccpc7ACfXaxfeInfqKcZtW4pT5YBn1mesc4sCsun6sRwtbJ4h+sNOaksUpYEJUKfN65YWC6Bw2OJEFiKxq8nQ==", - "license": "Apache-2.0", - "dependencies": { - "bare-path": "^3.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chromium-bidi": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-16.0.1.tgz", - "integrity": "sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "engines": { - "node": ">=20.19.0 <22.0.0 || >=22.12.0" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", - "license": "MIT", - "dependencies": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", - "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1608973", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", - "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", - "license": "BSD-3-Clause" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "license": "MIT", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", - "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "license": "MIT" - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/jsonfile": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", - "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge-deep": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", - "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", - "license": "MIT", - "dependencies": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "node_modules/mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", - "license": "MIT", - "dependencies": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-object/node_modules/for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.4.tgz", - "integrity": "sha512-QFdBAuNOqL0I+AdARTlRR1KcgPk0fo0dU127e1ZQFVxb9QPcpBDIiQp/dMgdbyLXHpF2GRjC/OezDmjKcLCKYw==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "3.0.3", - "chromium-bidi": "16.0.1", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1608973", - "puppeteer-core": "25.0.4", - "typed-query-selector": "^2.12.2" - }, - "bin": { - "puppeteer": "lib/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=22.12.0" - } - }, - "node_modules/puppeteer-core": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.4.tgz", - "integrity": "sha512-K1LQKDP6w1rIr1jUyN9obH16TO/DCy86k3q+FBd2prGY+TStxhFySxmaZZuRF+0D3BJXjwCYFke7tMHCH4olTA==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "3.0.3", - "chromium-bidi": "16.0.1", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1608973", - "typed-query-selector": "^2.12.2", - "webdriver-bidi-protocol": "0.4.1", - "ws": "^8.20.0" - }, - "engines": { - "node": ">=22.12.0" - } - }, - "node_modules/puppeteer-extra": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.6.tgz", - "integrity": "sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==", - "license": "MIT", - "dependencies": { - "@types/debug": "^4.1.0", - "debug": "^4.1.1", - "deepmerge": "^4.2.2" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "@types/puppeteer": "*", - "puppeteer": "*", - "puppeteer-core": "*" - }, - "peerDependenciesMeta": { - "@types/puppeteer": { - "optional": true - }, - "puppeteer": { - "optional": true - }, - "puppeteer-core": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.2.3.tgz", - "integrity": "sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==", - "license": "MIT", - "dependencies": { - "@types/debug": "^4.1.0", - "debug": "^4.1.1", - "merge-deep": "^3.0.1" - }, - "engines": { - "node": ">=9.11.2" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin-stealth": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.11.2.tgz", - "integrity": "sha512-bUemM5XmTj9i2ZerBzsk2AN5is0wHMNE6K0hXBzBXOzP5m5G3Wl0RHhiqKeHToe/uIH8AoZiGhc1tCkLZQPKTQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "puppeteer-extra-plugin": "^3.2.3", - "puppeteer-extra-plugin-user-preferences": "^2.4.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin-user-data-dir": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-data-dir/-/puppeteer-extra-plugin-user-data-dir-2.4.1.tgz", - "integrity": "sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^10.0.0", - "puppeteer-extra-plugin": "^3.2.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/puppeteer-extra-plugin-user-preferences": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-preferences/-/puppeteer-extra-plugin-user-preferences-2.4.1.tgz", - "integrity": "sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "deepmerge": "^4.2.2", - "puppeteer-extra-plugin": "^3.2.3", - "puppeteer-extra-plugin-user-data-dir": "^2.4.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "playwright-extra": "*", - "puppeteer-extra": "*" - }, - "peerDependenciesMeta": { - "playwright-extra": { - "optional": true - }, - "puppeteer-extra": { - "optional": true - } - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", - "license": "MIT", - "dependencies": { - "is-buffer": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone/node_modules/lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamx": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz", - "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar-fs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz", - "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.2.0.tgz", - "integrity": "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "bare-fs": "^4.5.5", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, - "node_modules/text-decoder": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz", - "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "node_modules/typed-query-selector": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz", - "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", - "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/node_modules/@babel/code-frame/LICENSE b/node_modules/@babel/code-frame/LICENSE deleted file mode 100644 index f31575e..0000000 --- a/node_modules/@babel/code-frame/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/code-frame/README.md b/node_modules/@babel/code-frame/README.md deleted file mode 100644 index 7160755..0000000 --- a/node_modules/@babel/code-frame/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/code-frame - -> Generate errors that contain a code frame that point to source locations. - -See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/code-frame -``` - -or using yarn: - -```sh -yarn add @babel/code-frame --dev -``` diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js deleted file mode 100644 index 9c5db40..0000000 --- a/node_modules/@babel/code-frame/lib/index.js +++ /dev/null @@ -1,217 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var picocolors = require('picocolors'); -var jsTokens = require('js-tokens'); -var helperValidatorIdentifier = require('@babel/helper-validator-identifier'); - -function isColorSupported() { - return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported - ); -} -const compose = (f, g) => v => f(g(v)); -function buildDefs(colors) { - return { - keyword: colors.cyan, - capitalized: colors.yellow, - jsxIdentifier: colors.yellow, - punctuator: colors.yellow, - number: colors.magenta, - string: colors.green, - regex: colors.magenta, - comment: colors.gray, - invalid: compose(compose(colors.white, colors.bgRed), colors.bold), - gutter: colors.gray, - marker: compose(colors.red, colors.bold), - message: compose(colors.red, colors.bold), - reset: colors.reset - }; -} -const defsOn = buildDefs(picocolors.createColors(true)); -const defsOff = buildDefs(picocolors.createColors(false)); -function getDefs(enabled) { - return enabled ? defsOn : defsOff; -} - -const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); -const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/; -const BRACKET = /^[()[\]{}]$/; -let tokenize; -const JSX_TAG = /^[a-z][\w-]*$/i; -const getTokenType = function (token, offset, text) { - if (token.type === "name") { - const tokenValue = token.value; - if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) { - return "keyword"; - } - if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === " defs[type](str)).join("\n"); - } else { - highlighted += value; - } - } - return highlighted; -} - -let deprecationWarningShown = false; -const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; -function getMarkerLines(loc, source, opts, startLineBaseZero) { - const startLoc = Object.assign({ - column: 0, - line: -1 - }, loc.start); - const endLoc = Object.assign({}, startLoc, loc.end); - const { - linesAbove = 2, - linesBelow = 3 - } = opts || {}; - const startLine = startLoc.line - startLineBaseZero; - const startColumn = startLoc.column; - const endLine = endLoc.line - startLineBaseZero; - const endColumn = endLoc.column; - let start = Math.max(startLine - (linesAbove + 1), 0); - let end = Math.min(source.length, endLine + linesBelow); - if (startLine === -1) { - start = 0; - } - if (endLine === -1) { - end = source.length; - } - const lineDiff = endLine - startLine; - const markerLines = {}; - if (lineDiff) { - for (let i = 0; i <= lineDiff; i++) { - const lineNumber = i + startLine; - if (!startColumn) { - markerLines[lineNumber] = true; - } else if (i === 0) { - const sourceLength = source[lineNumber - 1].length; - markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1]; - } else if (i === lineDiff) { - markerLines[lineNumber] = [0, endColumn]; - } else { - const sourceLength = source[lineNumber - i].length; - markerLines[lineNumber] = [0, sourceLength]; - } - } - } else { - if (startColumn === endColumn) { - if (startColumn) { - markerLines[startLine] = [startColumn, 0]; - } else { - markerLines[startLine] = true; - } - } else { - markerLines[startLine] = [startColumn, endColumn - startColumn]; - } - } - return { - start, - end, - markerLines - }; -} -function codeFrameColumns(rawLines, loc, opts = {}) { - const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode; - const startLineBaseZero = (opts.startLine || 1) - 1; - const defs = getDefs(shouldHighlight); - const lines = rawLines.split(NEWLINE); - const { - start, - end, - markerLines - } = getMarkerLines(loc, lines, opts, startLineBaseZero); - const hasColumns = loc.start && typeof loc.start.column === "number"; - const numberMaxWidth = String(end + startLineBaseZero).length; - const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines; - let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { - const number = start + 1 + index; - const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth); - const gutter = ` ${paddedNumber} |`; - const hasMarker = markerLines[number]; - const lastMarkerLine = !markerLines[number + 1]; - if (hasMarker) { - let markerLine = ""; - if (Array.isArray(hasMarker)) { - const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); - const numberOfMarkers = hasMarker[1] || 1; - markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join(""); - if (lastMarkerLine && opts.message) { - markerLine += " " + defs.message(opts.message); - } - } - return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); - } else { - return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`; - } - }).join("\n"); - if (opts.message && !hasColumns) { - frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; - } - if (shouldHighlight) { - return defs.reset(frame); - } else { - return frame; - } -} -function index (rawLines, lineNumber, colNumber, opts = {}) { - if (!deprecationWarningShown) { - deprecationWarningShown = true; - const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; - if (process.emitWarning) { - process.emitWarning(message, "DeprecationWarning"); - } else { - const deprecationError = new Error(message); - deprecationError.name = "DeprecationWarning"; - console.warn(new Error(message)); - } - } - colNumber = Math.max(colNumber, 0); - const location = { - start: { - column: colNumber, - line: lineNumber - } - }; - return codeFrameColumns(rawLines, location, opts); -} - -exports.codeFrameColumns = codeFrameColumns; -exports.default = index; -exports.highlight = highlight; -//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/code-frame/lib/index.js.map b/node_modules/@babel/code-frame/lib/index.js.map deleted file mode 100644 index 6b85ae4..0000000 --- a/node_modules/@babel/code-frame/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../src/defs.ts","../src/highlight.ts","../src/index.ts"],"sourcesContent":["import picocolors, { createColors } from \"picocolors\";\nimport type { Colors, Formatter } from \"picocolors/types\";\n\nexport function isColorSupported() {\n return (\n // See https://github.com/alexeyraspopov/picocolors/issues/62\n typeof process === \"object\" &&\n (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\")\n ? false\n : picocolors.isColorSupported\n );\n}\n\nexport type InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype UITokens = \"gutter\" | \"marker\" | \"message\";\n\nexport type Defs = Record;\n\nconst compose: (f: (gv: U) => V, g: (v: T) => U) => (v: T) => V =\n (f, g) => v =>\n f(g(v));\n\n/**\n * Styles for token types.\n */\nfunction buildDefs(colors: Colors): Defs {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n\n reset: colors.reset,\n };\n}\n\nconst defsOn = buildDefs(createColors(true));\nconst defsOff = buildDefs(createColors(false));\n\nexport function getDefs(enabled: boolean): Defs {\n return enabled ? defsOn : defsOff;\n}\n","import type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport { getDefs, type InternalTokenType } from \"./defs.ts\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n const firstChar = tokenValue.charCodeAt(0);\n if (firstChar < 128) {\n // ASCII characters\n if (\n firstChar >= charCodes.uppercaseA &&\n firstChar <= charCodes.uppercaseZ\n ) {\n return \"capitalized\";\n }\n } else {\n const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));\n if (firstChar !== firstChar.toLowerCase()) {\n return \"capitalized\";\n }\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n const tokenValue = token.value;\n if (\n isKeyword(tokenValue) ||\n isStrictReservedWord(tokenValue, true) ||\n sometimesKeywords.has(tokenValue)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(tokenValue) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) === \" defs[type as InternalTokenType](str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n","import { getDefs, isColorSupported } from \"./defs.ts\";\nimport { highlight } from \"./highlight.ts\";\n\nexport { highlight };\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /** The line number corresponding to the first line in `rawLines`. default: 1 */\n startLine?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: string[],\n opts: Options,\n startLineBaseZero: number,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line - startLineBaseZero;\n const startColumn = startLoc.column;\n const endLine = endLoc.line - startLineBaseZero;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const shouldHighlight =\n opts.forceColor || (isColorSupported() && opts.highlightCode);\n const startLineBaseZero = (opts.startLine || 1) - 1;\n const defs = getDefs(shouldHighlight);\n\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(\n loc,\n lines,\n opts,\n startLineBaseZero,\n );\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end + startLineBaseZero).length;\n\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number + startLineBaseZero}`.slice(\n -numberMaxWidth,\n );\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n defs.gutter(gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n defs.marker(\"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [\n defs.marker(\">\"),\n defs.gutter(gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : \"\"}`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"names":["isColorSupported","process","env","FORCE_COLOR","picocolors","compose","f","g","v","buildDefs","colors","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","gray","invalid","white","bgRed","bold","gutter","marker","red","message","reset","defsOn","createColors","defsOff","getDefs","enabled","sometimesKeywords","Set","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","tokenValue","value","isKeyword","isStrictReservedWord","has","test","slice","firstChar","String","fromCodePoint","codePointAt","toLowerCase","match","jsTokens","default","exec","matchToToken","index","highlight","defs","highlighted","split","map","str","join","deprecationWarningShown","getMarkerLines","loc","source","opts","startLineBaseZero","startLoc","Object","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","shouldHighlight","forceColor","highlightCode","lines","hasColumns","numberMaxWidth","highlightedLines","frame","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","colNumber","emitWarning","deprecationError","Error","name","console","warn","location"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json deleted file mode 100644 index 1f21a37..0000000 --- a/node_modules/@babel/code-frame/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@babel/code-frame", - "version": "7.29.7", - "description": "Generate errors that contain a code frame that point to source locations.", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-code-frame", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-code-frame" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "devDependencies": { - "charcodes": "^0.2.0", - "import-meta-resolve": "^4.1.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "type": "commonjs" -} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/LICENSE b/node_modules/@babel/helper-validator-identifier/LICENSE deleted file mode 100644 index f31575e..0000000 --- a/node_modules/@babel/helper-validator-identifier/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/helper-validator-identifier/README.md b/node_modules/@babel/helper-validator-identifier/README.md deleted file mode 100644 index 05c19e6..0000000 --- a/node_modules/@babel/helper-validator-identifier/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-validator-identifier - -> Validate identifier/keywords name - -See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information. - -## Install - -Using npm: - -```sh -npm install --save @babel/helper-validator-identifier -``` - -or using yarn: - -```sh -yarn add @babel/helper-validator-identifier -``` diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/node_modules/@babel/helper-validator-identifier/lib/identifier.js deleted file mode 100644 index b12e6e4..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/identifier.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isIdentifierChar = isIdentifierChar; -exports.isIdentifierName = isIdentifierName; -exports.isIdentifierStart = isIdentifierStart; -let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; -function isInAstralSet(code, set) { - let pos = 0x10000; - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - return false; -} -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes); -} -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} -function isIdentifierName(name) { - let isFirst = true; - for (let i = 0; i < name.length; i++) { - let cp = name.charCodeAt(i); - if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) { - const trail = name.charCodeAt(++i); - if ((trail & 0xfc00) === 0xdc00) { - cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); - } - } - if (isFirst) { - isFirst = false; - if (!isIdentifierStart(cp)) { - return false; - } - } else if (!isIdentifierChar(cp)) { - return false; - } - } - return !isFirst; -} - -//# sourceMappingURL=identifier.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map b/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map deleted file mode 100644 index 71d32ff..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","RegExp","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","code","set","pos","i","length","isIdentifierStart","test","String","fromCharCode","isIdentifierChar","isIdentifierName","name","isFirst","cp","charCodeAt","trail"],"sources":["../src/identifier.ts"],"sourcesContent":["// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.cjs`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088f\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5c\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdc-\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c8a\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7dc\\ua7f1-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0897-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1add\\u1ae0-\\u1aeb\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.cjs`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n"],"mappings":";;;;;;;;AAaA,IAAIA,4BAA4B,GAAG,spIAAspI;AAEzrI,IAAIC,uBAAuB,GAAG,4lFAA4lF;AAE1nF,MAAMC,uBAAuB,GAAG,IAAIC,MAAM,CACxC,GAAG,GAAGH,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMI,kBAAkB,GAAG,IAAID,MAAM,CACnC,GAAG,GAAGH,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMI,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEjnD,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAA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","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js b/node_modules/@babel/helper-validator-identifier/lib/index.js deleted file mode 100644 index 76b2282..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return _identifier.isIdentifierChar; - } -}); -Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return _identifier.isIdentifierName; - } -}); -Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return _identifier.isIdentifierStart; - } -}); -Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return _keyword.isKeyword; - } -}); -Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return _keyword.isReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindOnlyReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindReservedWord; - } -}); -Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictReservedWord; - } -}); -var _identifier = require("./identifier.js"); -var _keyword = require("./keyword.js"); - -//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/index.js.map b/node_modules/@babel/helper-validator-identifier/lib/index.js.map deleted file mode 100644 index d985f3b..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/node_modules/@babel/helper-validator-identifier/lib/keyword.js deleted file mode 100644 index 054cf84..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/keyword.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isKeyword = isKeyword; -exports.isReservedWord = isReservedWord; -exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; -exports.isStrictBindReservedWord = isStrictBindReservedWord; -exports.isStrictReservedWord = isStrictReservedWord; -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; -} -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); -} -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); -} -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); -} -function isKeyword(word) { - return keywords.has(word); -} - -//# sourceMappingURL=keyword.js.map diff --git a/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map b/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map deleted file mode 100644 index 3471f78..0000000 --- a/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B","ignoreList":[]} \ No newline at end of file diff --git a/node_modules/@babel/helper-validator-identifier/package.json b/node_modules/@babel/helper-validator-identifier/package.json deleted file mode 100644 index 9904752..0000000 --- a/node_modules/@babel/helper-validator-identifier/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@babel/helper-validator-identifier", - "version": "7.29.7", - "description": "Validate identifier/keywords name", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-identifier" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "exports": { - ".": { - "types": "./lib/index.d.ts", - "default": "./lib/index.js" - }, - "./package.json": "./package.json" - }, - "devDependencies": { - "@unicode/unicode-17.0.0": "^1.6.10", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)", - "type": "commonjs" -} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/README.md b/node_modules/@puppeteer/browsers/README.md deleted file mode 100644 index 6357766..0000000 --- a/node_modules/@puppeteer/browsers/README.md +++ /dev/null @@ -1,171 +0,0 @@ -# @puppeteer/browsers - -Manage and launch browsers/drivers from a CLI or programmatically. - -## System requirements - -- A compatible Node version (see `engines` in `package.json`). -- For Firefox downloads: - - Linux builds: `xz` and `bzip2` utilities are required to unpack `.tar.gz` and `.tar.bz2` archives. - - MacOS builds: `hdiutil` is required to unpack `.dmg` archives. -- For Chrome downloads: - - On Linux/MacOS: `unzip`. - - On Windows: `tar.exe`. - -## CLI - -Use `npx` to run the CLI: - -```bash -# This will install and run the @puppeteer/browsers package. -# If it is already installed in the current directory, the installed -# version will be used. -npx @puppeteer/browsers --help -``` - -Built-in per-command `help` will provide all documentation you need to use the CLI. - -```bash -npx @puppeteer/browsers --help # help for all commands -npx @puppeteer/browsers install --help # help for the install command -npx @puppeteer/browsers launch --help # help for the launch command -npx @puppeteer/browsers clear --help # help for the clear command -npx @puppeteer/browsers list --help # help for the list command -``` - -You can specify the version of the `@puppeteer/browsers` when using -`npx`: - -```bash -# Always install and use the latest version from the registry. -npx @puppeteer/browsers@latest --help -# Always use a specifc version. -npx @puppeteer/browsers@2.4.1 --help -# Always install the latest version and automatically confirm the installation. -npx --yes @puppeteer/browsers@latest --help -``` - -To clear all installed browsers, use the `clear` command: - -```bash -npx @puppeteer/browsers clear -``` - -To list all installed browsers, use the `list` command: - -```bash -npx @puppeteer/browsers list -``` - -Some example to give an idea of what the CLI looks like (use the `--help` command for more examples): - -```sh -# Download the latest available Chrome for Testing binary corresponding to the Stable channel. -npx @puppeteer/browsers install chrome@stable - -# Download a specific Chrome for Testing version. -npx @puppeteer/browsers install chrome@116.0.5793.0 - -# Download the latest Chrome for Testing version for the given milestone. -npx @puppeteer/browsers install chrome@117 - -# Download the latest available ChromeDriver version corresponding to the Canary channel. -npx @puppeteer/browsers install chromedriver@canary - -# Download a specific ChromeDriver version. -npx @puppeteer/browsers install chromedriver@116.0.5793.0 - -# On Ubuntu/Debian and only for Chrome, install the browser and required system dependencies. -# If the browser version has already been installed, the command -# will still attempt to install system dependencies. -# Requires root privileges. -npx puppeteer browsers install chrome --install-deps -``` - -## Known limitations - -1. Launching the system browsers is only possible for Chrome/Chromium. - -## Proxies - -The library and CLI respect `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables. For them to work, you must have the `proxy-agent` package installed: - -```bash -npm install proxy-agent -``` - -## Custom Providers - -You can implement custom browser providers to download from alternative sources like corporate mirrors, private repositories, or specialized browser builds. - -```typescript -import { - BrowserProvider, - DownloadOptions, - Browser, - BrowserPlatform, -} from '@puppeteer/browsers'; - -class SimpleMirrorProvider implements BrowserProvider { - constructor(private mirrorUrl: string) {} - - supports(options: DownloadOptions): boolean { - return options.browser === Browser.CHROME; - } - - getDownloadUrl(options: DownloadOptions): URL | null { - const {buildId, platform} = options; - const filenameMap = { - [BrowserPlatform.LINUX]: 'chrome-linux64.zip', - [BrowserPlatform.MAC]: 'chrome-mac-x64.zip', - [BrowserPlatform.MAC_ARM]: 'chrome-mac-arm64.zip', - [BrowserPlatform.WIN32]: 'chrome-win32.zip', - [BrowserPlatform.WIN64]: 'chrome-win64.zip', - }; - const filename = filenameMap[platform]; - if (!filename) return null; - return new URL(`${this.mirrorUrl}/chrome/${buildId}/${filename}`); - } - - getExecutablePath(options: DownloadOptions): string { - const {platform} = options; - if ( - platform === BrowserPlatform.MAC || - platform === BrowserPlatform.MAC_ARM - ) { - return 'chrome-mac/Chromium.app/Contents/MacOS/Chromium'; - } else if (platform === BrowserPlatform.LINUX) { - return 'chrome-linux64/chrome'; - } else if (platform.includes('win')) { - return 'chrome-win64/chrome.exe'; - } - throw new Error(`Unsupported platform: ${platform}`); - } -} -``` - -Use with the `install` API: - -```typescript -import {install} from '@puppeteer/browsers'; - -const customProvider = new SimpleMirrorProvider('https://internal.company.com'); - -await install({ - browser: Browser.CHROME, - buildId: '120.0.6099.109', - platform: BrowserPlatform.LINUX, - cacheDir: '/tmp/puppeteer-cache', - providers: [customProvider], -}); -``` - -Multiple providers can be chained - they're tried in order until one succeeds, with a default provider such as Chrome for Testing, as an automatic fallback. - -:::caution -Custom providers are NOT officially supported by Puppeteer. You accept full responsibility for binary compatibility, testing, and maintenance. -::: - -## API - -The programmatic API allows installing and launching browsers from your code. See the `test` folder for examples on how to use the `install`, `canInstall`, `launch`, `computeExecutablePath`, `computeSystemExecutablePath`, and other methods. diff --git a/node_modules/@puppeteer/browsers/lib/CLI.d.ts b/node_modules/@puppeteer/browsers/lib/CLI.d.ts deleted file mode 100644 index 4923b42..0000000 --- a/node_modules/@puppeteer/browsers/lib/CLI.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import * as readline from 'node:readline'; -import { Browser } from './browser-data/browser-data.js'; -/** - * @public - */ -export declare class CLI { - #private; - constructor(opts?: string | { - cachePath?: string; - scriptName?: string; - version?: string; - prefixCommand?: { - cmd: string; - description: string; - }; - allowCachePathOverride?: boolean; - pinnedBrowsers?: Partial>; - }, rl?: readline.Interface); - run(argv: string[]): Promise; -} -//# sourceMappingURL=CLI.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/CLI.d.ts.map b/node_modules/@puppeteer/browsers/lib/CLI.d.ts.map deleted file mode 100644 index f7056f6..0000000 --- a/node_modules/@puppeteer/browsers/lib/CLI.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../src/CLI.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAI1C,OAAO,EACL,OAAO,EAIR,MAAM,gCAAgC,CAAC;AAoCxC;;GAEG;AACH,qBAAa,GAAG;;gBAkBZ,IAAI,CAAC,EACD,MAAM,GACN;QACE,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAC,CAAC;QACnD,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,cAAc,CAAC,EAAE,OAAO,CACtB,MAAM,CACJ,OAAO,EACP;YACE,OAAO,EAAE,MAAM,CAAC;YAChB,YAAY,EAAE,OAAO,CAAC;SACvB,CACF,CACF,CAAC;KACH,EACL,EAAE,CAAC,EAAE,QAAQ,CAAC,SAAS;IA+EnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA0ezC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/CLI.js b/node_modules/@puppeteer/browsers/lib/CLI.js deleted file mode 100644 index 5827ffe..0000000 --- a/node_modules/@puppeteer/browsers/lib/CLI.js +++ /dev/null @@ -1,416 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { spawn } from 'node:child_process'; -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; -import { stdin as input, stdout as output } from 'node:process'; -import * as readline from 'node:readline'; -import { Browser, resolveBuildId, BrowserPlatform, } from './browser-data/browser-data.js'; -import { Cache } from './Cache.js'; -import { detectBrowserPlatform } from './detectPlatform.js'; -import { install } from './install.js'; -import { computeExecutablePath, computeSystemExecutablePath, launch, } from './launch.js'; -function isValidBrowser(browser) { - return Object.values(Browser).includes(browser); -} -function isValidPlatform(platform) { - return Object.values(BrowserPlatform).includes(platform); -} -// If moved update release-please config -// x-release-please-start-version -const packageVersion = '3.0.3'; -// x-release-please-end -/** - * @public - */ -export class CLI { - #cachePath; - #rl; - #scriptName; - #version; - #allowCachePathOverride; - #pinnedBrowsers; - #prefixCommand; - constructor(opts, rl) { - if (!opts) { - opts = {}; - } - if (typeof opts === 'string') { - opts = { - cachePath: opts, - }; - } - this.#cachePath = opts.cachePath ?? process.cwd(); - this.#rl = rl; - this.#scriptName = opts.scriptName ?? '@puppeteer/browsers'; - this.#version = opts.version ?? packageVersion; - this.#allowCachePathOverride = opts.allowCachePathOverride ?? true; - this.#pinnedBrowsers = opts.pinnedBrowsers; - this.#prefixCommand = opts.prefixCommand; - } - #defineBrowserParameter(yargs, required) { - return yargs.positional('browser', { - description: 'Which browser to install [@]. `latest` will try to find the latest available build. `buildId` is a browser-specific identifier such as a version or a revision.', - type: 'string', - coerce: (opt) => { - const browser = { - name: this.#parseBrowser(opt), - buildId: this.#parseBuildId(opt), - }; - if (!isValidBrowser(browser.name)) { - throw new Error(`Unsupported browser '${browser.name}'`); - } - return browser; - }, - demandOption: required, - }); - } - #definePlatformParameter(yargs) { - return yargs.option('platform', { - type: 'string', - desc: 'Platform that the binary needs to be compatible with.', - choices: Object.values(BrowserPlatform), - default: detectBrowserPlatform(), - coerce: platform => { - if (!isValidPlatform(platform)) { - throw new Error(`Unsupported platform '${platform}'`); - } - return platform; - }, - defaultDescription: 'Auto-detected', - }); - } - #definePathParameter(yargs, required = false) { - if (!this.#allowCachePathOverride) { - return yargs; - } - return yargs.option('path', { - type: 'string', - desc: 'Path to the root folder for the browser downloads and installation. If a relative path is provided, it will be resolved relative to the current working directory. The installation folder structure is compatible with the cache structure used by Puppeteer.', - defaultDescription: 'Current working directory', - ...(required ? {} : { default: process.cwd() }), - demandOption: required, - }); - } - async run(argv) { - const { default: yargs } = await import('yargs'); - const { hideBin } = await import('yargs/helpers'); - const yargsInstance = yargs(hideBin(argv)); - let target = yargsInstance - .scriptName(this.#scriptName) - .version(this.#version); - if (this.#prefixCommand) { - target = target.command(this.#prefixCommand.cmd, this.#prefixCommand.description, yargs => { - return this.#build(yargs); - }); - } - else { - target = this.#build(target); - } - await target - .demandCommand(1) - .help() - .wrap(Math.min(120, yargsInstance.terminalWidth())) - .parseAsync(); - } - #build(yargs) { - const latestOrPinned = this.#pinnedBrowsers ? 'pinned' : 'latest'; - // If there are pinned browsers allow the positional arg to be optional - const browserArgType = this.#pinnedBrowsers ? '[browser]' : ''; - return yargs - .command(`install ${browserArgType}`, 'Download and install the specified browser. If successful, the command outputs the actual browser buildId that was installed and the absolute path to the browser executable (see --format).', yargs => { - if (this.#pinnedBrowsers) { - yargs.example('$0 install', 'Install all pinned browsers'); - } - yargs - .example('$0 install chrome', `Install the ${latestOrPinned} available build of the Chrome browser.`) - .example('$0 install chrome@latest', 'Install the latest available build for the Chrome browser.') - .example('$0 install chrome@stable', 'Install the latest available build for the Chrome browser from the stable channel.') - .example('$0 install chrome@beta', 'Install the latest available build for the Chrome browser from the beta channel.') - .example('$0 install chrome@dev', 'Install the latest available build for the Chrome browser from the dev channel.') - .example('$0 install chrome@canary', 'Install the latest available build for the Chrome Canary browser.') - .example('$0 install chrome@115', 'Install the latest available build for Chrome 115.') - .example('$0 install chromedriver@canary', 'Install the latest available build for ChromeDriver Canary.') - .example('$0 install chromedriver@115', 'Install the latest available build for ChromeDriver 115.') - .example('$0 install chromedriver@115.0.5790', 'Install the latest available patch (115.0.5790.X) build for ChromeDriver.') - .example('$0 install chrome-headless-shell', 'Install the latest available chrome-headless-shell build.') - .example('$0 install chrome-headless-shell@beta', 'Install the latest available chrome-headless-shell build corresponding to the Beta channel.') - .example('$0 install chrome-headless-shell@118', 'Install the latest available chrome-headless-shell 118 build.') - .example('$0 install chromium@1083080', 'Install the revision 1083080 of the Chromium browser.') - .example('$0 install firefox', 'Install the latest nightly available build of the Firefox browser.') - .example('$0 install firefox@stable', 'Install the latest stable build of the Firefox browser.') - .example('$0 install firefox@beta', 'Install the latest beta build of the Firefox browser.') - .example('$0 install firefox@devedition', 'Install the latest devedition build of the Firefox browser.') - .example('$0 install firefox@esr', 'Install the latest ESR build of the Firefox browser.') - .example('$0 install firefox@nightly', 'Install the latest nightly build of the Firefox browser.') - .example('$0 install firefox@stable_111.0.1', 'Install a specific version of the Firefox browser.') - .example('$0 install firefox --platform mac', 'Install the latest Mac (Intel) build of the Firefox browser.'); - if (this.#allowCachePathOverride) { - yargs.example('$0 install firefox --path /tmp/my-browser-cache', 'Install to the specified cache directory.'); - } - const yargsWithBrowserParam = this.#defineBrowserParameter(yargs, !Boolean(this.#pinnedBrowsers)); - const yargsWithPlatformParam = this.#definePlatformParameter(yargsWithBrowserParam); - return this.#definePathParameter(yargsWithPlatformParam, false) - .option('base-url', { - type: 'string', - desc: 'Base URL to download from', - }) - .option('install-deps', { - type: 'boolean', - desc: 'Whether to attempt installing system dependencies (only supported on Linux, requires root privileges).', - default: false, - }) - .option('format', { - type: 'string', - desc: 'Format to use for the output. Supported placeholders: {{browser}}, {{buildId}}, {{path}}, {{platform}}', - default: '{{browser}}@{{buildId}} {{path}}', - }); - }, async (args) => { - if (this.#pinnedBrowsers && !args.browser) { - // Use allSettled to avoid scenarios that - // a browser may fail early and leave the other - // installation in a faulty state - const result = await Promise.allSettled(Object.entries(this.#pinnedBrowsers).map(async ([browser, options]) => { - if (options.skipDownload) { - return; - } - await this.#install({ - ...args, - browser: { - name: browser, - buildId: options.buildId, - }, - }); - })); - for (const install of result) { - if (install.status === 'rejected') { - throw install.reason; - } - } - } - else { - await this.#install(args); - } - }) - .command('launch ', 'Launch the specified browser', yargs => { - yargs - .example('$0 launch chrome@115.0.5790.170', 'Launch Chrome 115.0.5790.170') - .example('$0 launch firefox@112.0a1', 'Launch the Firefox browser identified by the milestone 112.0a1.') - .example('$0 launch chrome@115.0.5790.170 --detached', 'Launch the browser but detach the sub-processes.') - .example('$0 launch chrome@canary --system', 'Try to locate the Canary build of Chrome installed on the system and launch it.') - .example('$0 launch chrome@115.0.5790.170 -- --version', 'Launch Chrome 115.0.5790.170 and pass custom argument to the binary.'); - const yargsWithExtraAgs = yargs.parserConfiguration({ - 'populate--': true, - // Yargs does not have the correct overload for this. - }); - const yargsWithBrowserParam = this.#defineBrowserParameter(yargsWithExtraAgs, true); - const yargsWithPlatformParam = this.#definePlatformParameter(yargsWithBrowserParam); - return this.#definePathParameter(yargsWithPlatformParam) - .option('detached', { - type: 'boolean', - desc: 'Detach the child process.', - default: false, - }) - .option('system', { - type: 'boolean', - desc: 'Search for a browser installed on the system instead of the cache folder.', - default: false, - }) - .option('dumpio', { - type: 'boolean', - desc: "Forwards the browser's process stdout and stderr", - default: false, - }); - }, async (args) => { - const extraArgs = args['--']?.filter(arg => { - return typeof arg === 'string'; - }); - args.browser.buildId = this.#resolvePinnedBrowserIfNeeded(args.browser.buildId, args.browser.name); - const executablePath = args.system - ? computeSystemExecutablePath({ - browser: args.browser.name, - // TODO: throw an error if not a ChromeReleaseChannel is provided. - channel: args.browser.buildId, - platform: args.platform, - }) - : computeExecutablePath({ - browser: args.browser.name, - buildId: args.browser.buildId, - cacheDir: args.path ?? this.#cachePath, - platform: args.platform, - }); - launch({ - args: extraArgs, - executablePath, - dumpio: args.dumpio, - detached: args.detached, - }); - }) - .command('clear', this.#allowCachePathOverride - ? 'Removes all installed browsers from the specified cache directory' - : `Removes all installed browsers from ${this.#cachePath}`, yargs => { - return this.#definePathParameter(yargs, true); - }, async (args) => { - const cacheDir = args.path ?? this.#cachePath; - const rl = this.#rl ?? readline.createInterface({ input, output }); - rl.question(`Do you want to permanently and recursively delete the content of ${cacheDir} (yes/No)? `, answer => { - rl.close(); - if (!['y', 'yes'].includes(answer.toLowerCase().trim())) { - console.log('Cancelled.'); - return; - } - const cache = new Cache(cacheDir); - cache.clear(); - console.log(`${cacheDir} cleared.`); - }); - }) - .command('list', 'List all installed browsers in the cache directory', yargs => { - yargs.example('$0 list', 'List all installed browsers in the cache directory'); - if (this.#allowCachePathOverride) { - yargs.example('$0 list --path /tmp/my-browser-cache', 'List browsers installed in the specified cache directory'); - } - return this.#definePathParameter(yargs); - }, async (args) => { - const cacheDir = args.path ?? this.#cachePath; - const cache = new Cache(cacheDir); - const browsers = cache.getInstalledBrowsers(); - for (const browser of browsers) { - console.log(`${browser.browser}@${browser.buildId} (${browser.platform}) ${browser.executablePath}`); - } - }) - .command('bisect ', '(experimental) Bisect Chrome for Testing using the specified script. Downloads https://chromium.googlesource.com/chromium/src.git/+/main/tools/bisect-builds.py to ~/bisect-builds.py if needed.', yargs => { - return yargs - .positional('path', { - type: 'string', - description: 'Path to a script or test name to bisect.', - demandOption: true, - }) - .option('good', { - type: 'string', - alias: 'g', - demandOption: true, - desc: 'Last known good version', - }) - .option('bad', { - type: 'string', - alias: 'b', - demandOption: true, - desc: 'First known bad version', - }) - .option('cft', { - type: 'boolean', - desc: 'Use -cft', - default: true, - }); - }, async (args) => { - const isScript = args.path.endsWith('.mjs') || - args.path.endsWith('.cjs') || - args.path.endsWith('.js'); - const testCommand = isScript - ? `PUPPETEER_EXECUTABLE_PATH=%p node ${args.path}` - : `BINARY=%p npm run ${args.path}`; - const bisectScriptPath = path.join(os.homedir(), 'bisect-builds.py'); - if (!fs.existsSync(bisectScriptPath)) { - console.log('Downloading bisect-builds.py...'); - const response = await fetch('https://chromium.googlesource.com/chromium/src.git/+/main/tools/bisect-builds.py?format=TEXT'); - if (!response.ok) { - throw new Error(`Failed to download bisect-builds.py: ${response.statusText}`); - } - const base64Text = await response.text(); - const decodedText = Buffer.from(base64Text, 'base64').toString('utf-8'); - fs.writeFileSync(bisectScriptPath, decodedText, { mode: 0o755 }); - console.log(`Saved bisect-builds.py to ${bisectScriptPath}`); - } - const pythonExecutable = 'python3'; - const bisectArgs = [ - bisectScriptPath, - '-g', - args.good, - '-b', - args.bad, - args.cft ? '-cft' : '-s', - '-v', - '--verify-range', - '--not-interactive', - '-c', - testCommand, - ]; - await new Promise((resolve, reject) => { - const createProcess = spawn(pythonExecutable, bisectArgs, { - stdio: 'inherit', - }); - createProcess.on('error', message => { - reject(message); - }); - createProcess.on('exit', code => { - if (code !== 0) { - reject(new Error(`Process exited with code ${code}`)); - } - else { - resolve(); - } - }); - }); - }) - .demandCommand(1) - .help(); - } - #parseBrowser(version) { - return version.split('@').shift(); - } - #parseBuildId(version) { - const parts = version.split('@'); - return parts.length === 2 - ? parts[1] - : this.#pinnedBrowsers - ? 'pinned' - : 'latest'; - } - #resolvePinnedBrowserIfNeeded(buildId, browserName) { - if (buildId === 'pinned') { - const options = this.#pinnedBrowsers?.[browserName]; - if (!options || !options.buildId) { - throw new Error(`No pinned version found for ${browserName}`); - } - return options.buildId; - } - return buildId; - } - async #install(args) { - if (!args.browser) { - throw new Error(`No browser arg provided`); - } - if (!args.platform) { - throw new Error(`Could not resolve the current platform`); - } - args.browser.buildId = this.#resolvePinnedBrowserIfNeeded(args.browser.buildId, args.browser.name); - const originalBuildId = args.browser.buildId; - args.browser.buildId = await resolveBuildId(args.browser.name, args.platform, args.browser.buildId); - await install({ - browser: args.browser.name, - buildId: args.browser.buildId, - platform: args.platform, - cacheDir: args.path ?? this.#cachePath, - downloadProgressCallback: 'default', - baseUrl: args.baseUrl, - buildIdAlias: originalBuildId !== args.browser.buildId ? originalBuildId : undefined, - installDeps: args.installDeps, - }); - const executablePath = computeExecutablePath({ - browser: args.browser.name, - buildId: args.browser.buildId, - cacheDir: args.path ?? this.#cachePath, - platform: args.platform, - }); - console.log(args.format - .replace(/{{browser}}/g, args.browser.name) - .replace(/{{buildId}}/g, args.browser.buildId) - .replace(/{{path}}/g, executablePath) - .replace(/{{platform}}/g, args.platform)); - } -} -//# sourceMappingURL=CLI.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/CLI.js.map b/node_modules/@puppeteer/browsers/lib/CLI.js.map deleted file mode 100644 index 3de95b0..0000000 --- a/node_modules/@puppeteer/browsers/lib/CLI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CLI.js","sourceRoot":"","sources":["../src/CLI.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/Cache.d.ts b/node_modules/@puppeteer/browsers/lib/Cache.d.ts deleted file mode 100644 index 9590e34..0000000 --- a/node_modules/@puppeteer/browsers/lib/Cache.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { Browser, type BrowserPlatform } from './browser-data/browser-data.js'; -/** - * @public - */ -export declare class InstalledBrowser { - #private; - browser: Browser; - buildId: string; - platform: BrowserPlatform; - readonly executablePath: string; - /** - * @internal - */ - constructor(cache: Cache, browser: Browser, buildId: string, platform: BrowserPlatform); - /** - * Path to the root of the installation folder. Use - * {@link computeExecutablePath} to get the path to the executable binary. - */ - get path(): string; - readMetadata(): Metadata; - writeMetadata(metadata: Metadata): void; -} -/** - * @internal - */ -export interface ComputeExecutablePathOptions { - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; -} -/** - * @public - */ -export interface Metadata { - aliases: Record; - executablePaths?: Record; -} -/** - * The cache used by Puppeteer relies on the following structure: - * - * - rootDir - * -- | browserRoot(browser1) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * -- | browserRoot(browser2) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * @internal - */ -export declare class Cache { - #private; - constructor(rootDir: string); - /** - * @internal - */ - get rootDir(): string; - browserRoot(browser: Browser): string; - metadataFile(browser: Browser): string; - readMetadata(browser: Browser): Metadata; - writeMetadata(browser: Browser, metadata: Metadata): void; - readExecutablePath(browser: Browser, platform: BrowserPlatform, buildId: string): string | null; - writeExecutablePath(browser: Browser, platform: BrowserPlatform, buildId: string, executablePath: string): void; - resolveAlias(browser: Browser, alias: string): string | undefined; - installationDir(browser: Browser, platform: BrowserPlatform, buildId: string): string; - clear(): void; - uninstall(browser: Browser, platform: BrowserPlatform, buildId: string): void; - getInstalledBrowsers(): InstalledBrowser[]; - computeExecutablePath(options: ComputeExecutablePathOptions): string; -} -//# sourceMappingURL=Cache.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/Cache.d.ts.map b/node_modules/@puppeteer/browsers/lib/Cache.d.ts.map deleted file mode 100644 index e601eb9..0000000 --- a/node_modules/@puppeteer/browsers/lib/Cache.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EACL,OAAO,EACP,KAAK,eAAe,EAGrB,MAAM,gCAAgC,CAAC;AAMxC;;GAEG;AACH,qBAAa,gBAAgB;;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAIhC;;OAEG;gBAED,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe;IAa3B;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED,YAAY,IAAI,QAAQ;IAIxB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGxC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IAEvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAK;;gBAGJ,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAIrC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAItC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ;IAaxC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAMzD,kBAAkB,CAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI;IAMhB,mBAAmB,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB,IAAI;IAUP,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUjE,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM;IAIT,KAAK,IAAI,IAAI;IASb,SAAS,CACP,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,IAAI;IAqBP,oBAAoB,IAAI,gBAAgB,EAAE;IA+B1C,qBAAqB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM;CAqCrE"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/Cache.js b/node_modules/@puppeteer/browsers/lib/Cache.js deleted file mode 100644 index ab839fc..0000000 --- a/node_modules/@puppeteer/browsers/lib/Cache.js +++ /dev/null @@ -1,208 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; -import { Browser, executablePathByBrowser, getVersionComparator, } from './browser-data/browser-data.js'; -import { debug } from './debug.js'; -import { detectBrowserPlatform } from './detectPlatform.js'; -const debugCache = debug('puppeteer:browsers:cache'); -/** - * @public - */ -export class InstalledBrowser { - browser; - buildId; - platform; - executablePath; - #cache; - /** - * @internal - */ - constructor(cache, browser, buildId, platform) { - this.#cache = cache; - this.browser = browser; - this.buildId = buildId; - this.platform = platform; - this.executablePath = cache.computeExecutablePath({ - browser, - buildId, - platform, - }); - } - /** - * Path to the root of the installation folder. Use - * {@link computeExecutablePath} to get the path to the executable binary. - */ - get path() { - return this.#cache.installationDir(this.browser, this.platform, this.buildId); - } - readMetadata() { - return this.#cache.readMetadata(this.browser); - } - writeMetadata(metadata) { - this.#cache.writeMetadata(this.browser, metadata); - } -} -/** - * The cache used by Puppeteer relies on the following structure: - * - * - rootDir - * -- | browserRoot(browser1) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * -- | browserRoot(browser2) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * @internal - */ -export class Cache { - #rootDir; - constructor(rootDir) { - this.#rootDir = rootDir; - } - /** - * @internal - */ - get rootDir() { - return this.#rootDir; - } - browserRoot(browser) { - return path.join(this.#rootDir, browser); - } - metadataFile(browser) { - return path.join(this.browserRoot(browser), '.metadata'); - } - readMetadata(browser) { - const metatadaPath = this.metadataFile(browser); - if (!fs.existsSync(metatadaPath)) { - return { aliases: {} }; - } - // TODO: add type-safe parsing. - const data = JSON.parse(fs.readFileSync(metatadaPath, 'utf8')); - if (typeof data !== 'object') { - throw new Error('.metadata is not an object'); - } - return data; - } - writeMetadata(browser, metadata) { - const metatadaPath = this.metadataFile(browser); - fs.mkdirSync(path.dirname(metatadaPath), { recursive: true }); - fs.writeFileSync(metatadaPath, JSON.stringify(metadata, null, 2)); - } - readExecutablePath(browser, platform, buildId) { - const metadata = this.readMetadata(browser); - const key = `${platform}-${buildId}`; - return metadata.executablePaths?.[key] ?? null; - } - writeExecutablePath(browser, platform, buildId, executablePath) { - const metadata = this.readMetadata(browser); - if (!metadata.executablePaths) { - metadata.executablePaths = {}; - } - const key = `${platform}-${buildId}`; - metadata.executablePaths[key] = executablePath; - this.writeMetadata(browser, metadata); - } - resolveAlias(browser, alias) { - const metadata = this.readMetadata(browser); - if (alias === 'latest') { - return Object.values(metadata.aliases || {}) - .sort(getVersionComparator(browser)) - .at(-1); - } - return metadata.aliases[alias]; - } - installationDir(browser, platform, buildId) { - return path.join(this.browserRoot(browser), `${platform}-${buildId}`); - } - clear() { - fs.rmSync(this.#rootDir, { - force: true, - recursive: true, - maxRetries: 10, - retryDelay: 500, - }); - } - uninstall(browser, platform, buildId) { - const metadata = this.readMetadata(browser); - for (const alias of Object.keys(metadata.aliases)) { - if (metadata.aliases[alias] === buildId) { - delete metadata.aliases[alias]; - } - } - // Clean up executable path entry - const key = `${platform}-${buildId}`; - if (metadata.executablePaths?.[key]) { - delete metadata.executablePaths[key]; - this.writeMetadata(browser, metadata); - } - fs.rmSync(this.installationDir(browser, platform, buildId), { - force: true, - recursive: true, - maxRetries: 10, - retryDelay: 500, - }); - } - getInstalledBrowsers() { - if (!fs.existsSync(this.#rootDir)) { - return []; - } - const types = fs.readdirSync(this.#rootDir); - const browsers = types.filter((t) => { - return Object.values(Browser).includes(t); - }); - return browsers.flatMap(browser => { - const files = fs.readdirSync(this.browserRoot(browser)); - return files - .map(file => { - const result = parseFolderPath(path.join(this.browserRoot(browser), file)); - if (!result) { - return null; - } - return new InstalledBrowser(this, browser, result.buildId, result.platform); - }) - .filter((item) => { - return item !== null; - }); - }); - } - computeExecutablePath(options) { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error(`Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`); - } - try { - options.buildId = - this.resolveAlias(options.browser, options.buildId) ?? options.buildId; - } - catch { - debugCache?.('could not read .metadata file for the browser'); - } - const installationDir = this.installationDir(options.browser, options.platform, options.buildId); - const storedExecutablePath = this.readExecutablePath(options.browser, options.platform, options.buildId); - if (storedExecutablePath) { - // The metadata contains a resolved relative path from the installation dir - return path.join(installationDir, storedExecutablePath); - } - return path.join(installationDir, executablePathByBrowser[options.browser](options.platform, options.buildId)); - } -} -function parseFolderPath(folderPath) { - const name = path.basename(folderPath); - const splits = name.split('-'); - if (splits.length !== 2) { - return; - } - const [platform, buildId] = splits; - if (!buildId || !platform) { - return; - } - return { platform, buildId }; -} -//# sourceMappingURL=Cache.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/Cache.js.map b/node_modules/@puppeteer/browsers/lib/Cache.js.map deleted file mode 100644 index 73b398e..0000000 --- a/node_modules/@puppeteer/browsers/lib/Cache.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Cache.js","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts b/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts deleted file mode 100644 index d6cea58..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import type { Browser, BrowserPlatform } from './browser-data/browser-data.js'; -import type { BrowserProvider, DownloadOptions } from './provider.js'; -/** - * Default provider implementation that uses default sources. - * This is the standard provider used by Puppeteer. - * - * @public - */ -export declare class DefaultProvider implements BrowserProvider { - #private; - constructor(baseUrl?: string); - supports(_options: DownloadOptions): boolean; - getDownloadUrl(options: DownloadOptions): URL; - getExecutablePath(options: { - browser: Browser; - buildId: string; - platform: BrowserPlatform; - }): string; - getName(): string; -} -//# sourceMappingURL=DefaultProvider.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts.map b/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts.map deleted file mode 100644 index 2c79e2d..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DefaultProvider.d.ts","sourceRoot":"","sources":["../src/DefaultProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,OAAO,EAAE,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAK7E,OAAO,KAAK,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAEpE;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,eAAe;;gBAGzC,OAAO,CAAC,EAAE,MAAM;IAI5B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO;IAK5C,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG;IAgB7C,iBAAiB,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,eAAe,CAAC;KAC3B,GAAG,MAAM;IAOV,OAAO,IAAI,MAAM;CAGlB"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.js b/node_modules/@puppeteer/browsers/lib/DefaultProvider.js deleted file mode 100644 index 258316a..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { downloadUrls, executablePathByBrowser, } from './browser-data/browser-data.js'; -/** - * Default provider implementation that uses default sources. - * This is the standard provider used by Puppeteer. - * - * @public - */ -export class DefaultProvider { - #baseUrl; - constructor(baseUrl) { - this.#baseUrl = baseUrl; - } - supports(_options) { - // Default provider supports all browsers - return true; - } - getDownloadUrl(options) { - return this.#getDownloadUrl(options.browser, options.platform, options.buildId); - } - #getDownloadUrl(browser, platform, buildId) { - return new URL(downloadUrls[browser](platform, buildId, this.#baseUrl)); - } - getExecutablePath(options) { - return executablePathByBrowser[options.browser](options.platform, options.buildId); - } - getName() { - return 'DefaultProvider'; - } -} -//# sourceMappingURL=DefaultProvider.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.js.map b/node_modules/@puppeteer/browsers/lib/DefaultProvider.js.map deleted file mode 100644 index e30d9a5..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DefaultProvider.js","sourceRoot":"","sources":["../src/DefaultProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAU;IAElB,YAAY,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,QAAQ,CAAC,QAAyB;QAChC,yCAAyC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,OAAwB;QACrC,OAAO,IAAI,CAAC,eAAe,CACzB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAChB,CAAC;IACJ,CAAC;IAED,eAAe,CACb,OAAgB,EAChB,QAAyB,EACzB,OAAe;QAEf,OAAO,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,iBAAiB,CAAC,OAIjB;QACC,OAAO,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAChB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts b/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts deleted file mode 100644 index 98fce99..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -export {}; -//# sourceMappingURL=DefaultProvider.spec.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts.map b/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts.map deleted file mode 100644 index b863f4a..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DefaultProvider.spec.d.ts","sourceRoot":"","sources":["../src/DefaultProvider.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js b/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js deleted file mode 100644 index 0d3dd3d..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import assert from 'node:assert'; -import { Browser, BrowserPlatform, DefaultProvider } from './main.js'; -describe('DefaultProvider', () => { - let provider; - beforeEach(() => { - provider = new DefaultProvider(); - }); - describe('constructor', () => { - it('should create provider with default base URL', () => { - const defaultProvider = new DefaultProvider(); - assert(defaultProvider instanceof DefaultProvider); - }); - it('should create provider with custom base URL', () => { - const customBaseUrl = 'https://custom.example.com/'; - const customProvider = new DefaultProvider(customBaseUrl); - assert(customProvider instanceof DefaultProvider); - }); - }); - describe('BrowserProvider interface compliance', () => { - it('should implement supports method', () => { - assert.strictEqual(typeof provider.supports, 'function'); - }); - it('should implement getDownloadUrl method', () => { - assert.strictEqual(typeof provider.getDownloadUrl, 'function'); - }); - it('should implement getExecutablePath method', () => { - assert.strictEqual(typeof provider.getExecutablePath, 'function'); - }); - }); - describe('basic functionality', () => { - it('should handle different browsers', () => { - // Test with a known build ID that should exist - const result = provider.supports({ - browser: Browser.CHROME, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - // Chrome for Testing supports all browsers - assert.strictEqual(result, true); - }); - it('should handle different platforms', () => { - const result = provider.supports({ - browser: Browser.CHROME, - platform: BrowserPlatform.MAC, - buildId: '120.0.6099.109', - }); - // Chrome for Testing supports all platforms - assert.strictEqual(result, true); - }); - it('should handle ChromeDriver', () => { - const result = provider.supports({ - browser: Browser.CHROMEDRIVER, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - // Chrome for Testing supports all browsers - assert.strictEqual(result, true); - }); - it('should return URL for valid build', () => { - const result = provider.getDownloadUrl({ - browser: Browser.CHROME, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - assert(result instanceof URL); - assert(result.toString().includes('120.0.6099.109')); - }); - }); -}); -//# sourceMappingURL=DefaultProvider.spec.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js.map b/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js.map deleted file mode 100644 index ca00bac..0000000 --- a/node_modules/@puppeteer/browsers/lib/DefaultProvider.spec.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DefaultProvider.spec.js","sourceRoot":"","sources":["../src/DefaultProvider.spec.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts deleted file mode 100644 index 725c77a..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import * as chromeHeadlessShell from './chrome-headless-shell.js'; -import * as chrome from './chrome.js'; -import * as chromedriver from './chromedriver.js'; -import * as chromium from './chromium.js'; -import * as firefox from './firefox.js'; -import { Browser, BrowserPlatform, BrowserTag, ChromeReleaseChannel, type ProfileOptions } from './types.js'; -export type { ProfileOptions }; -export declare const downloadUrls: { - chromedriver: typeof chromedriver.resolveDownloadUrl; - "chrome-headless-shell": typeof chromeHeadlessShell.resolveDownloadUrl; - chrome: typeof chrome.resolveDownloadUrl; - chromium: typeof chromium.resolveDownloadUrl; - firefox: typeof firefox.resolveDownloadUrl; -}; -export declare const downloadPaths: { - chromedriver: typeof chromedriver.resolveDownloadPath; - "chrome-headless-shell": typeof chromeHeadlessShell.resolveDownloadPath; - chrome: typeof chrome.resolveDownloadPath; - chromium: typeof chromium.resolveDownloadPath; - firefox: typeof firefox.resolveDownloadPath; -}; -export declare const executablePathByBrowser: { - chromedriver: typeof chromedriver.relativeExecutablePath; - "chrome-headless-shell": typeof chromeHeadlessShell.relativeExecutablePath; - chrome: typeof chrome.relativeExecutablePath; - chromium: typeof chromium.relativeExecutablePath; - firefox: typeof firefox.relativeExecutablePath; -}; -export declare const versionComparators: { - chromedriver: typeof chromeHeadlessShell.compareVersions; - "chrome-headless-shell": typeof chromeHeadlessShell.compareVersions; - chrome: typeof chromeHeadlessShell.compareVersions; - chromium: typeof chromium.compareVersions; - firefox: typeof firefox.compareVersions; -}; -export { Browser, BrowserPlatform, ChromeReleaseChannel }; -/** - * @public - */ -export declare function resolveBuildId(browser: Browser, platform: BrowserPlatform, tag: string | BrowserTag): Promise; -/** - * @public - */ -export declare function createProfile(browser: Browser, opts: ProfileOptions): Promise; -/** - * @public - * - * Get's the first resolved system path - */ -export declare function resolveSystemExecutablePath(browser: Browser, platform: BrowserPlatform, channel: ChromeReleaseChannel): string; -/** - * Returns the expected default user data dir for the given channel. It does not - * check if the dir actually exists. - * - * @public - */ -export declare function resolveDefaultUserDataDir(browser: Browser, platform: BrowserPlatform, channel: ChromeReleaseChannel): string; -/** - * @internal - * - * Returns multiple paths where the executable may be located at on the current system - * ordered by likelihood (based on heuristics). - */ -export declare function resolveSystemExecutablePaths(browser: Browser, platform: BrowserPlatform, channel: ChromeReleaseChannel): [string, ...string[]]; -/** - * Returns a version comparator for the given browser that can be used to sort - * browser versions. - * - * @public - */ -export declare function getVersionComparator(browser: Browser): (a: string, b: string) => number; -//# sourceMappingURL=browser-data.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts.map deleted file mode 100644 index f1eeccf..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser-data.d.ts","sourceRoot":"","sources":["../../src/browser-data/browser-data.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,mBAAmB,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,OAAO,EACP,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAC,cAAc,EAAC,CAAC;AAE7B,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;CAMnC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;CAM9B,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAC,CAAC;AA+GxD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,MAAM,GAAG,UAAU,GACvB,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC5B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAYvB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,GACf,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAElC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js b/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js deleted file mode 100644 index 483ae86..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js +++ /dev/null @@ -1,235 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import * as chromeHeadlessShell from './chrome-headless-shell.js'; -import * as chrome from './chrome.js'; -import * as chromedriver from './chromedriver.js'; -import * as chromium from './chromium.js'; -import * as firefox from './firefox.js'; -import { Browser, BrowserPlatform, BrowserTag, ChromeReleaseChannel, } from './types.js'; -export const downloadUrls = { - [Browser.CHROMEDRIVER]: chromedriver.resolveDownloadUrl, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.resolveDownloadUrl, - [Browser.CHROME]: chrome.resolveDownloadUrl, - [Browser.CHROMIUM]: chromium.resolveDownloadUrl, - [Browser.FIREFOX]: firefox.resolveDownloadUrl, -}; -export const downloadPaths = { - [Browser.CHROMEDRIVER]: chromedriver.resolveDownloadPath, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.resolveDownloadPath, - [Browser.CHROME]: chrome.resolveDownloadPath, - [Browser.CHROMIUM]: chromium.resolveDownloadPath, - [Browser.FIREFOX]: firefox.resolveDownloadPath, -}; -export const executablePathByBrowser = { - [Browser.CHROMEDRIVER]: chromedriver.relativeExecutablePath, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.relativeExecutablePath, - [Browser.CHROME]: chrome.relativeExecutablePath, - [Browser.CHROMIUM]: chromium.relativeExecutablePath, - [Browser.FIREFOX]: firefox.relativeExecutablePath, -}; -export const versionComparators = { - [Browser.CHROMEDRIVER]: chromedriver.compareVersions, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.compareVersions, - [Browser.CHROME]: chrome.compareVersions, - [Browser.CHROMIUM]: chromium.compareVersions, - [Browser.FIREFOX]: firefox.compareVersions, -}; -export { Browser, BrowserPlatform, ChromeReleaseChannel }; -/** - * @internal - */ -async function resolveBuildIdForBrowserTag(browser, platform, tag) { - switch (browser) { - case Browser.FIREFOX: - switch (tag) { - case BrowserTag.LATEST: - return await firefox.resolveBuildId(firefox.FirefoxChannel.NIGHTLY); - case BrowserTag.BETA: - return await firefox.resolveBuildId(firefox.FirefoxChannel.BETA); - case BrowserTag.NIGHTLY: - return await firefox.resolveBuildId(firefox.FirefoxChannel.NIGHTLY); - case BrowserTag.DEVEDITION: - return await firefox.resolveBuildId(firefox.FirefoxChannel.DEVEDITION); - case BrowserTag.STABLE: - return await firefox.resolveBuildId(firefox.FirefoxChannel.STABLE); - case BrowserTag.ESR: - return await firefox.resolveBuildId(firefox.FirefoxChannel.ESR); - case BrowserTag.CANARY: - case BrowserTag.DEV: - throw new Error(`${tag.toUpperCase()} is not available for Firefox`); - } - case Browser.CHROME: { - switch (tag) { - case BrowserTag.LATEST: - return await chrome.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.BETA: - return await chrome.resolveBuildId(ChromeReleaseChannel.BETA); - case BrowserTag.CANARY: - return await chrome.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.DEV: - return await chrome.resolveBuildId(ChromeReleaseChannel.DEV); - case BrowserTag.STABLE: - return await chrome.resolveBuildId(ChromeReleaseChannel.STABLE); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error(`${tag.toUpperCase()} is not available for Chrome`); - } - } - case Browser.CHROMEDRIVER: { - switch (tag) { - case BrowserTag.LATEST: - case BrowserTag.CANARY: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.BETA: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.BETA); - case BrowserTag.DEV: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.DEV); - case BrowserTag.STABLE: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.STABLE); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error(`${tag.toUpperCase()} is not available for ChromeDriver`); - } - } - case Browser.CHROMEHEADLESSSHELL: { - switch (tag) { - case BrowserTag.LATEST: - case BrowserTag.CANARY: - return await chromeHeadlessShell.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.BETA: - return await chromeHeadlessShell.resolveBuildId(ChromeReleaseChannel.BETA); - case BrowserTag.DEV: - return await chromeHeadlessShell.resolveBuildId(ChromeReleaseChannel.DEV); - case BrowserTag.STABLE: - return await chromeHeadlessShell.resolveBuildId(ChromeReleaseChannel.STABLE); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error(`${tag} is not available for chrome-headless-shell`); - } - } - case Browser.CHROMIUM: - switch (tag) { - case BrowserTag.LATEST: - return await chromium.resolveBuildId(platform); - case BrowserTag.NIGHTLY: - case BrowserTag.CANARY: - case BrowserTag.DEV: - case BrowserTag.DEVEDITION: - case BrowserTag.BETA: - case BrowserTag.STABLE: - case BrowserTag.ESR: - throw new Error(`${tag} is not supported for Chromium. Use 'latest' instead.`); - } - } -} -/** - * @public - */ -export async function resolveBuildId(browser, platform, tag) { - const browserTag = tag; - if (Object.values(BrowserTag).includes(browserTag)) { - return await resolveBuildIdForBrowserTag(browser, platform, browserTag); - } - switch (browser) { - case Browser.FIREFOX: - return tag; - case Browser.CHROME: - const chromeResult = await chrome.resolveBuildId(tag); - if (chromeResult) { - return chromeResult; - } - return tag; - case Browser.CHROMEDRIVER: - const chromeDriverResult = await chromedriver.resolveBuildId(tag); - if (chromeDriverResult) { - return chromeDriverResult; - } - return tag; - case Browser.CHROMEHEADLESSSHELL: - const chromeHeadlessShellResult = await chromeHeadlessShell.resolveBuildId(tag); - if (chromeHeadlessShellResult) { - return chromeHeadlessShellResult; - } - return tag; - case Browser.CHROMIUM: - return tag; - } -} -/** - * @public - */ -export async function createProfile(browser, opts) { - switch (browser) { - case Browser.FIREFOX: - return await firefox.createProfile(opts); - case Browser.CHROME: - case Browser.CHROMIUM: - throw new Error(`Profile creation is not support for ${browser} yet`); - } -} -/** - * @public - * - * Get's the first resolved system path - */ -export function resolveSystemExecutablePath(browser, platform, channel) { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error(`System browser detection is not supported for ${browser} yet.`); - case Browser.CHROME: - return chrome.resolveSystemExecutablePaths(platform, channel)[0]; - } -} -/** - * Returns the expected default user data dir for the given channel. It does not - * check if the dir actually exists. - * - * @public - */ -export function resolveDefaultUserDataDir(browser, platform, channel) { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error(`Default user dir detection is not supported for ${browser} yet.`); - case Browser.CHROME: - return chrome.resolveDefaultUserDataDir(platform, channel); - } -} -/** - * @internal - * - * Returns multiple paths where the executable may be located at on the current system - * ordered by likelihood (based on heuristics). - */ -export function resolveSystemExecutablePaths(browser, platform, channel) { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error(`System browser detection is not supported for ${browser} yet.`); - case Browser.CHROME: - return chrome.resolveSystemExecutablePaths(platform, channel); - } -} -/** - * Returns a version comparator for the given browser that can be used to sort - * browser versions. - * - * @public - */ -export function getVersionComparator(browser) { - return versionComparators[browser]; -} -//# sourceMappingURL=browser-data.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js.map deleted file mode 100644 index ae7132e..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/browser-data.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"browser-data.js","sourceRoot":"","sources":["../../src/browser-data/browser-data.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts deleted file mode 100644 index d21d11b..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { BrowserPlatform } from './types.js'; -export declare function resolveDownloadUrl(platform: BrowserPlatform, buildId: string, baseUrl?: string): string; -export declare function resolveDownloadPath(platform: BrowserPlatform, buildId: string): string[]; -export declare function relativeExecutablePath(platform: BrowserPlatform, _buildId: string): string; -export { resolveBuildId, compareVersions } from './chrome.js'; -//# sourceMappingURL=chrome-headless-shell.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts.map deleted file mode 100644 index 7ac6371..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chrome-headless-shell.d.ts","sourceRoot":"","sources":["../../src/browser-data/chrome-headless-shell.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAkB3C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,SAA6D,GACnE,MAAM,CAER;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAMV;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAqBR;AAED,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js b/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js deleted file mode 100644 index 90aedc1..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import path from 'node:path'; -import { BrowserPlatform } from './types.js'; -function folder(platform) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} -export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public') { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} -export function resolveDownloadPath(platform, buildId) { - return [ - buildId, - folder(platform), - `chrome-headless-shell-${folder(platform)}.zip`, - ]; -} -export function relativeExecutablePath(platform, _buildId) { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join('chrome-headless-shell-' + folder(platform), 'chrome-headless-shell'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chrome-headless-shell-linux64', 'chrome-headless-shell'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chrome-headless-shell-' + folder(platform), 'chrome-headless-shell.exe'); - } -} -export { resolveBuildId, compareVersions } from './chrome.js'; -//# sourceMappingURL=chrome-headless-shell.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js.map deleted file mode 100644 index 6c292d0..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome-headless-shell.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chrome-headless-shell.js","sourceRoot":"","sources":["../../src/browser-data/chrome-headless-shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,SAAS,MAAM,CAAC,QAAyB;IACvC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,WAAW,CAAC;QACrB,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,OAAO,CAAC;QACjB,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAyB,EACzB,OAAe,EACf,OAAO,GAAG,0DAA0D;IAEpE,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAyB,EACzB,OAAe;IAEf,OAAO;QACL,OAAO;QACP,MAAM,CAAC,QAAQ,CAAC;QAChB,yBAAyB,MAAM,CAAC,QAAQ,CAAC,MAAM;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,QAAgB;IAEhB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,GAAG,CAAC;QACzB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,IAAI,CAAC,IAAI,CACd,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC,EAC3C,uBAAuB,CACxB,CAAC;QACJ,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CACd,+BAA+B,EAC/B,uBAAuB,CACxB,CAAC;QACJ,KAAK,eAAe,CAAC,KAAK,CAAC;QAC3B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CACd,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC,EAC3C,2BAA2B,CAC5B,CAAC;IACN,CAAC;AACH,CAAC;AAED,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts deleted file mode 100644 index 8e59536..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { BrowserPlatform, ChromeReleaseChannel } from './types.js'; -export declare function resolveDownloadUrl(platform: BrowserPlatform, buildId: string, baseUrl?: string): string; -export declare function resolveDownloadPath(platform: BrowserPlatform, buildId: string): string[]; -export declare function relativeExecutablePath(platform: BrowserPlatform, _buildId: string): string; -export declare function changeBaseVersionUrlForTesting(url: string): void; -export declare function resetBaseVersionUrlForTesting(): void; -export declare function getLastKnownGoodReleaseForChannel(channel: ChromeReleaseChannel): Promise<{ - version: string; - revision: string; -}>; -export declare function getLastKnownGoodReleaseForMilestone(milestone: string): Promise<{ - version: string; - revision: string; -} | undefined>; -export declare function getLastKnownGoodReleaseForBuild( -/** - * @example `112.0.23`, - */ -buildPrefix: string): Promise<{ - version: string; - revision: string; -} | undefined>; -export declare function resolveBuildId(channel: ChromeReleaseChannel): Promise; -export declare function resolveBuildId(channel: string): Promise; -export declare function resolveSystemExecutablePaths(platform: BrowserPlatform, channel: ChromeReleaseChannel): [string, ...string[]]; -export declare function resolveDefaultUserDataDir(platform: BrowserPlatform, channel: ChromeReleaseChannel): string; -export declare function compareVersions(a: string, b: string): number; -//# sourceMappingURL=chrome.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts.map deleted file mode 100644 index a7b63ea..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/browser-data/chrome.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,YAAY,CAAC;AAkBjE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,SAA6D,GACnE,MAAM,CAER;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAEV;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAkBR;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhE;AACD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC,CAoB9C;AAED,wBAAsB,mCAAmC,CACvD,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAAC,CAS1D;AAED,wBAAsB,+BAA+B;AACnD;;GAEG;AACH,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAAC,CAS1D;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AA2I/B,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC5B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAyCvB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CA8DR;AAoBD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAc5D"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js b/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js deleted file mode 100644 index f9e38a3..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js +++ /dev/null @@ -1,296 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { execSync } from 'node:child_process'; -import os from 'node:os'; -import path from 'node:path'; -import semver from 'semver'; -import { getJSON } from '../httpUtil.js'; -import { BrowserPlatform, ChromeReleaseChannel } from './types.js'; -function folder(platform) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} -export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public') { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} -export function resolveDownloadPath(platform, buildId) { - return [buildId, folder(platform), `chrome-${folder(platform)}.zip`]; -} -export function relativeExecutablePath(platform, _buildId) { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join('chrome-' + folder(platform), 'Google Chrome for Testing.app', 'Contents', 'MacOS', 'Google Chrome for Testing'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chrome-linux64', 'chrome'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chrome-' + folder(platform), 'chrome.exe'); - } -} -let baseVersionUrl = 'https://googlechromelabs.github.io/chrome-for-testing'; -export function changeBaseVersionUrlForTesting(url) { - baseVersionUrl = url; -} -export function resetBaseVersionUrlForTesting() { - baseVersionUrl = 'https://googlechromelabs.github.io/chrome-for-testing'; -} -export async function getLastKnownGoodReleaseForChannel(channel) { - const data = (await getJSON(new URL(`${baseVersionUrl}/last-known-good-versions.json`))); - for (const channel of Object.keys(data.channels)) { - data.channels[channel.toLowerCase()] = data.channels[channel]; - delete data.channels[channel]; - } - return data.channels[channel]; -} -export async function getLastKnownGoodReleaseForMilestone(milestone) { - const data = (await getJSON(new URL(`${baseVersionUrl}/latest-versions-per-milestone.json`))); - return data.milestones[milestone]; -} -export async function getLastKnownGoodReleaseForBuild( -/** - * @example `112.0.23`, - */ -buildPrefix) { - const data = (await getJSON(new URL(`${baseVersionUrl}/latest-patch-versions-per-build.json`))); - return data.builds[buildPrefix]; -} -export async function resolveBuildId(channel) { - if (Object.values(ChromeReleaseChannel).includes(channel)) { - return (await getLastKnownGoodReleaseForChannel(channel)).version; - } - if (channel.match(/^\d+$/)) { - // Potentially a milestone. - return (await getLastKnownGoodReleaseForMilestone(channel))?.version; - } - if (channel.match(/^\d+\.\d+\.\d+$/)) { - // Potentially a build prefix without the patch version. - return (await getLastKnownGoodReleaseForBuild(channel))?.version; - } - return; -} -const WINDOWS_ENV_PARAM_NAMES = [ - 'PROGRAMFILES', - 'ProgramW6432', - 'ProgramFiles(x86)', - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/installer/mini_installer/README.md - 'LOCALAPPDATA', -]; -function getChromeWindowsLocation(channel, locationsPrefixes) { - if (locationsPrefixes.size === 0) { - throw new Error('Non of the common Windows Env variables were set'); - } - let suffix; - switch (channel) { - case ChromeReleaseChannel.STABLE: - suffix = 'Google\\Chrome\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.BETA: - suffix = 'Google\\Chrome Beta\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.CANARY: - suffix = 'Google\\Chrome SxS\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.DEV: - suffix = 'Google\\Chrome Dev\\Application\\chrome.exe'; - break; - } - return [...locationsPrefixes.values()].map(l => { - return path.win32.join(l, suffix); - }); -} -function getWslVariable(variable) { - try { - // The Windows env for the paths are not passed down - // to WSL, so we evoke `cmd.exe` which is usually on the PATH - // from which the env can be access with all uppercase names. - // The return value is a Windows Path - `C:\Program Files`. - const result = execSync(`cmd.exe /c echo %${variable.toLocaleUpperCase()}%`, { - // We need to ignore the stderr as cmd.exe - // prints a message about wrong UNC path not supported. - stdio: ['ignore', 'pipe', 'ignore'], - encoding: 'utf-8', - }).trim(); - if (result) { - return result; - } - } - catch { } - return; -} -function getWslLocation(channel) { - const wslVersion = execSync('wslinfo --version', { - stdio: ['ignore', 'pipe', 'ignore'], - encoding: 'utf-8', - }).trim(); - if (!wslVersion) { - throw new Error('Not in WSL or unsupported version of WSL.'); - } - const wslPrefixes = new Set(); - for (const name of WINDOWS_ENV_PARAM_NAMES) { - const wslPrefix = getWslVariable(name); - if (wslPrefix) { - wslPrefixes.add(wslPrefix); - } - } - const windowsPath = getChromeWindowsLocation(channel, wslPrefixes); - return windowsPath.map(path => { - // The above command returned the Windows paths `C:\Program Files\...\chrome.exe` - // Use the `wslpath` utility tool to transform into the mounted disk - return execSync(`wslpath "${path}"`).toString().trim(); - }); -} -function getChromeLinuxOrWslLocation(channel) { - const locations = []; - switch (channel) { - case ChromeReleaseChannel.STABLE: - locations.push('/opt/google/chrome/chrome'); - break; - case ChromeReleaseChannel.BETA: - locations.push('/opt/google/chrome-beta/chrome'); - break; - case ChromeReleaseChannel.CANARY: - locations.push('/opt/google/chrome-canary/chrome'); - break; - case ChromeReleaseChannel.DEV: - locations.push('/opt/google/chrome-unstable/chrome'); - break; - } - try { - const wslPath = getWslLocation(channel); - if (wslPath) { - locations.push(...wslPath); - } - } - catch { - // Ignore WSL errors - } - return locations; -} -export function resolveSystemExecutablePaths(platform, channel) { - switch (platform) { - case BrowserPlatform.WIN64: - case BrowserPlatform.WIN32: - const prefixLocation = new Set(WINDOWS_ENV_PARAM_NAMES.map(name => { - return process.env[name]; - }).filter((l) => { - return !!l; - })); - // Fallbacks in case env vars are misconfigured. - prefixLocation.add('C:\\Program Files'); - prefixLocation.add('C:\\Program Files (x86)'); - prefixLocation.add('D:\\Program Files'); - prefixLocation.add('D:\\Program Files (x86)'); - return getChromeWindowsLocation(channel, prefixLocation); - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - switch (channel) { - case ChromeReleaseChannel.STABLE: - return [ - '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', - ]; - case ChromeReleaseChannel.BETA: - return [ - '/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta', - ]; - case ChromeReleaseChannel.CANARY: - return [ - '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary', - ]; - case ChromeReleaseChannel.DEV: - return [ - '/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev', - ]; - } - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return getChromeLinuxOrWslLocation(channel); - } -} -export function resolveDefaultUserDataDir(platform, channel) { - switch (platform) { - case BrowserPlatform.WIN64: - case BrowserPlatform.WIN32: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_win.cc;l=42;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join(getLocalAppDataWin(), 'Google', 'Chrome', 'User Data'); - case ChromeReleaseChannel.BETA: - return path.join(getLocalAppDataWin(), 'Google', 'Chrome Beta', 'User Data'); - case ChromeReleaseChannel.CANARY: - return path.join(getLocalAppDataWin(), 'Google', 'Chrome SxS', 'User Data'); - case ChromeReleaseChannel.DEV: - return path.join(getLocalAppDataWin(), 'Google', 'Chrome Dev', 'User Data'); - } - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_mac.mm;l=86;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join(getBaseUserDataDirPathMac(), 'Chrome'); - case ChromeReleaseChannel.BETA: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Beta'); - case ChromeReleaseChannel.DEV: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Dev'); - case ChromeReleaseChannel.CANARY: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Canary'); - } - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_linux.cc;l=80;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join(getConfigHomeLinux(), 'google-chrome'); - case ChromeReleaseChannel.BETA: - return path.join(getConfigHomeLinux(), 'google-chrome-beta'); - case ChromeReleaseChannel.CANARY: - return path.join(getConfigHomeLinux(), 'google-chrome-canary'); - case ChromeReleaseChannel.DEV: - return path.join(getConfigHomeLinux(), 'google-chrome-unstable'); - } - } -} -function getLocalAppDataWin() { - return (process.env['LOCALAPPDATA'] || path.join(os.homedir(), 'AppData', 'Local')); -} -function getConfigHomeLinux() { - return (process.env['CHROME_CONFIG_HOME'] || - process.env['XDG_CONFIG_HOME'] || - path.join(os.homedir(), '.config')); -} -function getBaseUserDataDirPathMac() { - return path.join(os.homedir(), 'Library', 'Application Support', 'Google'); -} -export function compareVersions(a, b) { - if (!semver.valid(a)) { - throw new Error(`Version ${a} is not a valid semver version`); - } - if (!semver.valid(b)) { - throw new Error(`Version ${b} is not a valid semver version`); - } - if (semver.gt(a, b)) { - return 1; - } - else if (semver.lt(a, b)) { - return -1; - } - else { - return 0; - } -} -//# sourceMappingURL=chrome.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js.map deleted file mode 100644 index 5571375..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chrome.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/browser-data/chrome.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts deleted file mode 100644 index 5a26c3f..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { BrowserPlatform } from './types.js'; -export declare function resolveDownloadUrl(platform: BrowserPlatform, buildId: string, baseUrl?: string): string; -export declare function resolveDownloadPath(platform: BrowserPlatform, buildId: string): string[]; -export declare function relativeExecutablePath(platform: BrowserPlatform, _buildId: string): string; -export { resolveBuildId, compareVersions } from './chrome.js'; -//# sourceMappingURL=chromedriver.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts.map deleted file mode 100644 index 5acc155..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chromedriver.d.ts","sourceRoot":"","sources":["../../src/browser-data/chromedriver.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAkB3C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,SAA6D,GACnE,MAAM,CAER;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAEV;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js b/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js deleted file mode 100644 index 2bff977..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import path from 'node:path'; -import { BrowserPlatform } from './types.js'; -function folder(platform) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} -export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public') { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} -export function resolveDownloadPath(platform, buildId) { - return [buildId, folder(platform), `chromedriver-${folder(platform)}.zip`]; -} -export function relativeExecutablePath(platform, _buildId) { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join('chromedriver-' + folder(platform), 'chromedriver'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chromedriver-linux64', 'chromedriver'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chromedriver-' + folder(platform), 'chromedriver.exe'); - } -} -export { resolveBuildId, compareVersions } from './chrome.js'; -//# sourceMappingURL=chromedriver.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js.map deleted file mode 100644 index 23c48e4..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromedriver.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chromedriver.js","sourceRoot":"","sources":["../../src/browser-data/chromedriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,SAAS,MAAM,CAAC,QAAyB;IACvC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,WAAW,CAAC;QACrB,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,OAAO,CAAC;QACjB,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAyB,EACzB,OAAe,EACf,OAAO,GAAG,0DAA0D;IAEpE,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAyB,EACzB,OAAe;IAEf,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,gBAAgB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,QAAgB;IAEhB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,GAAG,CAAC;QACzB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;QACvE,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;QAC3D,KAAK,eAAe,CAAC,KAAK,CAAC;QAC3B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,aAAa,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts deleted file mode 100644 index 6bcb936..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { BrowserPlatform } from './types.js'; -export declare function resolveDownloadUrl(platform: BrowserPlatform, buildId: string, baseUrl?: string): string; -export declare function resolveDownloadPath(platform: BrowserPlatform, buildId: string): string[]; -export declare function relativeExecutablePath(platform: BrowserPlatform, _buildId: string): string; -export declare function resolveBuildId(platform: BrowserPlatform): Promise; -export declare function compareVersions(a: string, b: string): number; -//# sourceMappingURL=chromium.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts.map deleted file mode 100644 index 6b3d7b4..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chromium.d.ts","sourceRoot":"","sources":["../../src/browser-data/chromium.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAiC3C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,SAA8D,GACpE,MAAM,CAER;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAEV;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAkBR;AACD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js b/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js deleted file mode 100644 index f49873a..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import path from 'node:path'; -import { getText } from '../httpUtil.js'; -import { BrowserPlatform } from './types.js'; -function archive(platform, buildId) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'chrome-linux'; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return 'chrome-mac'; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - // Windows archive name changed at r591479. - return parseInt(buildId, 10) > 591479 ? 'chrome-win' : 'chrome-win32'; - } -} -function folder(platform) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'Linux_x64'; - case BrowserPlatform.MAC_ARM: - return 'Mac_Arm'; - case BrowserPlatform.MAC: - return 'Mac'; - case BrowserPlatform.WIN32: - return 'Win'; - case BrowserPlatform.WIN64: - return 'Win_x64'; - } -} -export function resolveDownloadUrl(platform, buildId, baseUrl = 'https://storage.googleapis.com/chromium-browser-snapshots') { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} -export function resolveDownloadPath(platform, buildId) { - return [folder(platform), buildId, `${archive(platform, buildId)}.zip`]; -} -export function relativeExecutablePath(platform, _buildId) { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join('chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chrome-linux', 'chrome'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chrome-win', 'chrome.exe'); - } -} -export async function resolveBuildId(platform) { - return await getText(new URL(`https://storage.googleapis.com/chromium-browser-snapshots/${folder(platform)}/LAST_CHANGE`)); -} -export function compareVersions(a, b) { - return Number(a) - Number(b); -} -//# sourceMappingURL=chromium.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js.map deleted file mode 100644 index 3dacf23..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/chromium.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chromium.js","sourceRoot":"","sources":["../../src/browser-data/chromium.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,SAAS,OAAO,CAAC,QAAyB,EAAE,OAAe;IACzD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,cAAc,CAAC;QACxB,KAAK,eAAe,CAAC,OAAO,CAAC;QAC7B,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,YAAY,CAAC;QACtB,KAAK,eAAe,CAAC,KAAK,CAAC;QAC3B,KAAK,eAAe,CAAC,KAAK;YACxB,2CAA2C;YAC3C,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,QAAyB;IACvC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,WAAW,CAAC;QACrB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,SAAS,CAAC;QACnB,KAAK,eAAe,CAAC,GAAG;YACtB,OAAO,KAAK,CAAC;QACf,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,KAAK,CAAC;QACf,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAyB,EACzB,OAAe,EACf,OAAO,GAAG,2DAA2D;IAErE,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAyB,EACzB,OAAe;IAEf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,QAAgB;IAEhB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe,CAAC,GAAG,CAAC;QACzB,KAAK,eAAe,CAAC,OAAO;YAC1B,OAAO,IAAI,CAAC,IAAI,CACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,OAAO,EACP,UAAU,CACX,CAAC;QACJ,KAAK,eAAe,CAAC,SAAS,CAAC;QAC/B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC7C,KAAK,eAAe,CAAC,KAAK,CAAC;QAC3B,KAAK,eAAe,CAAC,KAAK;YACxB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAyB;IAEzB,OAAO,MAAM,OAAO,CAClB,IAAI,GAAG,CACL,6DAA6D,MAAM,CACjE,QAAQ,CACT,cAAc,CAChB,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts deleted file mode 100644 index 9b4d687..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { BrowserPlatform, type ProfileOptions } from './types.js'; -export declare function resolveDownloadUrl(platform: BrowserPlatform, buildId: string, baseUrl?: string): string; -export declare function resolveDownloadPath(platform: BrowserPlatform, buildId: string): string[]; -export declare function relativeExecutablePath(platform: BrowserPlatform, buildId: string): string; -export declare enum FirefoxChannel { - STABLE = "stable", - ESR = "esr", - DEVEDITION = "devedition", - BETA = "beta", - NIGHTLY = "nightly" -} -export declare function changeBaseVersionUrlForTesting(url: string): void; -export declare function resetBaseVersionUrlForTesting(): void; -export declare function resolveBuildId(channel?: FirefoxChannel): Promise; -export declare function createProfile(options: ProfileOptions): Promise; -export declare function compareVersions(a: string, b: string): number; -//# sourceMappingURL=firefox.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts.map deleted file mode 100644 index 0b22ff1..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"firefox.d.ts","sourceRoot":"","sources":["../../src/browser-data/firefox.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAC,eAAe,EAAE,KAAK,cAAc,EAAC,MAAM,YAAY,CAAC;AA8DhE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAiBR;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAgBV;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,CAoCR;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,wBAAsB,cAAc,CAClC,OAAO,GAAE,cAAuC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E;AAgQD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5D"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js b/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js deleted file mode 100644 index dd99190..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js +++ /dev/null @@ -1,374 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import fs from 'node:fs'; -import path from 'node:path'; -import { getJSON } from '../httpUtil.js'; -import { BrowserPlatform } from './types.js'; -function getFormat(buildId) { - const majorVersion = Number(buildId.split('.').shift()); - return majorVersion >= 135 ? 'xz' : 'bz2'; -} -function archiveNightly(platform, buildId) { - switch (platform) { - case BrowserPlatform.LINUX: - return `firefox-${buildId}.en-US.linux-x86_64.tar.${getFormat(buildId)}`; - case BrowserPlatform.LINUX_ARM: - return `firefox-${buildId}.en-US.linux-aarch64.tar.${getFormat(buildId)}`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `firefox-${buildId}.en-US.mac.dmg`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return `firefox-${buildId}.en-US.${platform}.zip`; - } -} -function archive(platform, buildId) { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return `firefox-${buildId}.tar.${getFormat(buildId)}`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `Firefox ${buildId}.dmg`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return `Firefox Setup ${buildId}.exe`; - } -} -function platformName(platform) { - switch (platform) { - case BrowserPlatform.LINUX: - return `linux-x86_64`; - case BrowserPlatform.LINUX_ARM: - return `linux-aarch64`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `mac`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return platform; - } -} -function parseBuildId(buildId) { - for (const value of Object.values(FirefoxChannel)) { - if (buildId.startsWith(value + '_')) { - buildId = buildId.substring(value.length + 1); - return [value, buildId]; - } - } - // Older versions do not have channel as the prefix.« - return [FirefoxChannel.NIGHTLY, buildId]; -} -export function resolveDownloadUrl(platform, buildId, baseUrl) { - const [channel] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - baseUrl ??= - 'https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central'; - break; - case FirefoxChannel.DEVEDITION: - baseUrl ??= 'https://archive.mozilla.org/pub/devedition/releases'; - break; - case FirefoxChannel.BETA: - case FirefoxChannel.STABLE: - case FirefoxChannel.ESR: - baseUrl ??= 'https://archive.mozilla.org/pub/firefox/releases'; - break; - } - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} -export function resolveDownloadPath(platform, buildId) { - const [channel, resolvedBuildId] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - return [archiveNightly(platform, resolvedBuildId)]; - case FirefoxChannel.DEVEDITION: - case FirefoxChannel.BETA: - case FirefoxChannel.STABLE: - case FirefoxChannel.ESR: - return [ - resolvedBuildId, - platformName(platform), - 'en-US', - archive(platform, resolvedBuildId), - ]; - } -} -export function relativeExecutablePath(platform, buildId) { - const [channel] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - switch (platform) { - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return path.join('Firefox Nightly.app', 'Contents', 'MacOS', 'firefox'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('firefox', 'firefox'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('firefox', 'firefox.exe'); - } - case FirefoxChannel.BETA: - case FirefoxChannel.DEVEDITION: - case FirefoxChannel.ESR: - case FirefoxChannel.STABLE: - switch (platform) { - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return path.join('Firefox.app', 'Contents', 'MacOS', 'firefox'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('firefox', 'firefox'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('core', 'firefox.exe'); - } - } -} -export var FirefoxChannel; -(function (FirefoxChannel) { - FirefoxChannel["STABLE"] = "stable"; - FirefoxChannel["ESR"] = "esr"; - FirefoxChannel["DEVEDITION"] = "devedition"; - FirefoxChannel["BETA"] = "beta"; - FirefoxChannel["NIGHTLY"] = "nightly"; -})(FirefoxChannel || (FirefoxChannel = {})); -let baseVersionUrl = 'https://product-details.mozilla.org/1.0'; -export function changeBaseVersionUrlForTesting(url) { - baseVersionUrl = url; -} -export function resetBaseVersionUrlForTesting() { - baseVersionUrl = 'https://product-details.mozilla.org/1.0'; -} -export async function resolveBuildId(channel = FirefoxChannel.NIGHTLY) { - const channelToVersionKey = { - [FirefoxChannel.ESR]: 'FIREFOX_ESR', - [FirefoxChannel.STABLE]: 'LATEST_FIREFOX_VERSION', - [FirefoxChannel.DEVEDITION]: 'FIREFOX_DEVEDITION', - [FirefoxChannel.BETA]: 'FIREFOX_DEVEDITION', - [FirefoxChannel.NIGHTLY]: 'FIREFOX_NIGHTLY', - }; - const versions = (await getJSON(new URL(`${baseVersionUrl}/firefox_versions.json`))); - const version = versions[channelToVersionKey[channel]]; - if (!version) { - throw new Error(`Channel ${channel} is not found.`); - } - return channel + '_' + version; -} -export async function createProfile(options) { - if (!fs.existsSync(options.path)) { - await fs.promises.mkdir(options.path, { - recursive: true, - }); - } - await syncPreferences({ - preferences: { - ...defaultProfilePreferences(options.preferences), - ...options.preferences, - }, - path: options.path, - }); -} -function defaultProfilePreferences(extraPrefs) { - const server = 'dummy.test'; - const defaultPrefs = { - // Make sure Shield doesn't hit the network. - 'app.normandy.api_url': '', - // Disable Firefox old build background check - 'app.update.checkInstallTime': false, - // Disable automatically upgrading Firefox - 'app.update.disabledForTesting': true, - // Increase the APZ content response timeout to 1 minute - 'apz.content_response_timeout': 60000, - // Prevent various error message on the console - // jest-puppeteer asserts that no error message is emitted by the console - 'browser.contentblocking.features.standard': '-tp,tpPrivate,cookieBehavior0,-cryptoTP,-fp', - // Enable the dump function: which sends messages to the system - // console - // https://bugzilla.mozilla.org/show_bug.cgi?id=1543115 - 'browser.dom.window.dump.enabled': true, - // Disable topstories - 'browser.newtabpage.activity-stream.feeds.system.topstories': false, - // Always display a blank page - 'browser.newtabpage.enabled': false, - // Background thumbnails in particular cause grief: and disabling - // thumbnails in general cannot hurt - 'browser.pagethumbnails.capturing_disabled': true, - // Disable safebrowsing components. - 'browser.safebrowsing.blockedURIs.enabled': false, - 'browser.safebrowsing.downloads.enabled': false, - 'browser.safebrowsing.malware.enabled': false, - 'browser.safebrowsing.phishing.enabled': false, - // Disable updates to search engines. - 'browser.search.update': false, - // Do not restore the last open set of tabs if the browser has crashed - 'browser.sessionstore.resume_from_crash': false, - // Skip check for default browser on startup - 'browser.shell.checkDefaultBrowser': false, - // Disable newtabpage - 'browser.startup.homepage': 'about:blank', - // Do not redirect user when a milstone upgrade of Firefox is detected - 'browser.startup.homepage_override.mstone': 'ignore', - // Start with a blank page about:blank - 'browser.startup.page': 0, - // Do not allow background tabs to be zombified on Android: otherwise for - // tests that open additional tabs: the test harness tab itself might get - // unloaded - 'browser.tabs.disableBackgroundZombification': false, - // Do not warn when closing all other open tabs - 'browser.tabs.warnOnCloseOtherTabs': false, - // Do not warn when multiple tabs will be opened - 'browser.tabs.warnOnOpen': false, - // Do not automatically offer translations, as tests do not expect this. - 'browser.translations.automaticallyPopup': false, - // Disable the UI tour. - 'browser.uitour.enabled': false, - // Turn off search suggestions in the location bar so as not to trigger - // network connections. - 'browser.urlbar.suggest.searches': false, - // Disable first run splash page on Windows 10 - 'browser.usedOnWindows10.introURL': '', - // Do not warn on quitting Firefox - 'browser.warnOnQuit': false, - // Defensively disable data reporting systems - 'datareporting.healthreport.documentServerURI': `http://${server}/dummy/healthreport/`, - 'datareporting.healthreport.logging.consoleEnabled': false, - 'datareporting.healthreport.service.enabled': false, - 'datareporting.healthreport.service.firstRun': false, - 'datareporting.healthreport.uploadEnabled': false, - // Do not show datareporting policy notifications which can interfere with tests - 'datareporting.policy.dataSubmissionEnabled': false, - 'datareporting.policy.dataSubmissionPolicyBypassNotification': true, - // DevTools JSONViewer sometimes fails to load dependencies with its require.js. - // This doesn't affect Puppeteer but spams console (Bug 1424372) - 'devtools.jsonview.enabled': false, - // Disable popup-blocker - 'dom.disable_open_during_load': false, - // Enable the support for File object creation in the content process - // Required for |Page.setFileInputFiles| protocol method. - 'dom.file.createInChild': true, - // Disable the ProcessHangMonitor - 'dom.ipc.reportProcessHangs': false, - // Disable slow script dialogues - 'dom.max_chrome_script_run_time': 0, - 'dom.max_script_run_time': 0, - // Only load extensions from the application and user profile - // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION - 'extensions.autoDisableScopes': 0, - 'extensions.enabledScopes': 5, - // Disable metadata caching for installed add-ons by default - 'extensions.getAddons.cache.enabled': false, - // Disable installing any distribution extensions or add-ons. - 'extensions.installDistroAddons': false, - // Turn off extension updates so they do not bother tests - 'extensions.update.enabled': false, - // Turn off extension updates so they do not bother tests - 'extensions.update.notifyUser': false, - // Make sure opening about:addons will not hit the network - 'extensions.webservice.discoverURL': `http://${server}/dummy/discoveryURL`, - // Allow the application to have focus even it runs in the background - 'focusmanager.testmode': true, - // Disable useragent updates - 'general.useragent.updates.enabled': false, - // Always use network provider for geolocation tests so we bypass the - // macOS dialog raised by the corelocation provider - 'geo.provider.testing': true, - // Do not scan Wifi - 'geo.wifi.scan': false, - // No hang monitor - 'hangmonitor.timeout': 0, - // Show chrome errors and warnings in the error console - 'javascript.options.showInConsole': true, - // Disable download and usage of OpenH264: and Widevine plugins - 'media.gmp-manager.updateEnabled': false, - // Disable the GFX sanity window - 'media.sanity-test.disabled': true, - // Disable experimental feature that is only available in Nightly - 'network.cookie.sameSite.laxByDefault': false, - // Do not prompt for temporary redirects - 'network.http.prompt-temp-redirect': false, - // Disable speculative connections so they are not reported as leaking - // when they are hanging around - 'network.http.speculative-parallel-limit': 0, - // Do not automatically switch between offline and online - 'network.manage-offline-status': false, - // Make sure SNTP requests do not hit the network - 'network.sntp.pools': server, - // Disable Flash. - 'plugin.state.flash': 0, - 'privacy.trackingprotection.enabled': false, - // Can be removed once Firefox 89 is no longer supported - // https://bugzilla.mozilla.org/show_bug.cgi?id=1710839 - 'remote.enabled': true, - // Until Bug 1999693 is resolved, this preference needs to be set to allow - // Webdriver BiDi to automatically dismiss file pickers. - 'remote.bidi.dismiss_file_pickers.enabled': true, - // Disabled screenshots component - 'screenshots.browser.component.enabled': false, - // Don't do network connections for mitm priming - 'security.certerrors.mitm.priming.enabled': false, - // Local documents have access to all other local documents, - // including directory listings - 'security.fileuri.strict_origin_policy': false, - // Do not wait for the notification button security delay - 'security.notification_enable_delay': 0, - // Ensure blocklist updates do not hit the network - 'services.settings.server': `http://${server}/dummy/blocklist/`, - // Do not automatically fill sign-in forms with known usernames and - // passwords - 'signon.autofillForms': false, - // Disable password capture, so that tests that include forms are not - // influenced by the presence of the persistent doorhanger notification - 'signon.rememberSignons': false, - // Disable first-run welcome page - 'startup.homepage_welcome_url': 'about:blank', - // Disable first-run welcome page - 'startup.homepage_welcome_url.additional': '', - // Disable browser animations (tabs, fullscreen, sliding alerts) - 'toolkit.cosmeticAnimations.enabled': false, - // Prevent starting into safe mode after application crashes - 'toolkit.startup.max_resumed_crashes': -1, - }; - return Object.assign(defaultPrefs, extraPrefs); -} -async function backupFile(input) { - if (!fs.existsSync(input)) { - return; - } - await fs.promises.copyFile(input, input + '.puppeteer'); -} -/** - * Populates the user.js file with custom preferences as needed to allow - * Firefox's support to properly function. These preferences will be - * automatically copied over to prefs.js during startup of Firefox. To be - * able to restore the original values of preferences a backup of prefs.js - * will be created. - */ -async function syncPreferences(options) { - const prefsPath = path.join(options.path, 'prefs.js'); - const userPath = path.join(options.path, 'user.js'); - const lines = Object.entries(options.preferences).map(([key, value]) => { - return `user_pref(${JSON.stringify(key)}, ${JSON.stringify(value)});`; - }); - // Use allSettled to prevent corruption. - const result = await Promise.allSettled([ - backupFile(userPath).then(async () => { - await fs.promises.writeFile(userPath, lines.join('\n')); - }), - backupFile(prefsPath), - ]); - for (const command of result) { - if (command.status === 'rejected') { - throw command.reason; - } - } -} -export function compareVersions(a, b) { - // TODO: this is a not very reliable check. - return parseInt(a.replace('.', ''), 16) - parseInt(b.replace('.', ''), 16); -} -//# sourceMappingURL=firefox.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js.map deleted file mode 100644 index a93a3b1..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/firefox.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"firefox.js","sourceRoot":"","sources":["../../src/browser-data/firefox.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts b/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts deleted file mode 100644 index a1aaecc..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -/** - * Supported browsers. - * - * @public - */ -export declare enum Browser { - CHROME = "chrome", - CHROMEHEADLESSSHELL = "chrome-headless-shell", - CHROMIUM = "chromium", - FIREFOX = "firefox", - CHROMEDRIVER = "chromedriver" -} -/** - * Platform names used to identify a OS platform x architecture combination in the way - * that is relevant for the browser download. - * - * @public - */ -export declare enum BrowserPlatform { - LINUX = "linux", - LINUX_ARM = "linux_arm", - MAC = "mac", - MAC_ARM = "mac_arm", - WIN32 = "win32", - WIN64 = "win64" -} -/** - * Enum describing a release channel for a browser. - * - * You can use this in combination with {@link resolveBuildId} to resolve - * a build ID based on a release channel. - * - * @public - */ -export declare enum BrowserTag { - CANARY = "canary", - NIGHTLY = "nightly", - BETA = "beta", - DEV = "dev", - DEVEDITION = "devedition", - STABLE = "stable", - ESR = "esr", - LATEST = "latest" -} -/** - * @public - */ -export interface ProfileOptions { - preferences: Record; - path: string; -} -/** - * @public - */ -export declare enum ChromeReleaseChannel { - STABLE = "stable", - DEV = "dev", - CANARY = "canary", - BETA = "beta" -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts.map b/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts.map deleted file mode 100644 index 5bdba82..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/browser-data/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,oBAAY,OAAO;IACjB,MAAM,WAAW;IACjB,mBAAmB,0BAA0B;IAC7C,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,YAAY,iBAAiB;CAC9B;AAED;;;;;GAKG;AACH,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED;;;;;;;GAOG;AACH,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;CACd"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/types.js b/node_modules/@puppeteer/browsers/lib/browser-data/types.js deleted file mode 100644 index d71aae8..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/types.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -/** - * Supported browsers. - * - * @public - */ -export var Browser; -(function (Browser) { - Browser["CHROME"] = "chrome"; - Browser["CHROMEHEADLESSSHELL"] = "chrome-headless-shell"; - Browser["CHROMIUM"] = "chromium"; - Browser["FIREFOX"] = "firefox"; - Browser["CHROMEDRIVER"] = "chromedriver"; -})(Browser || (Browser = {})); -/** - * Platform names used to identify a OS platform x architecture combination in the way - * that is relevant for the browser download. - * - * @public - */ -export var BrowserPlatform; -(function (BrowserPlatform) { - BrowserPlatform["LINUX"] = "linux"; - BrowserPlatform["LINUX_ARM"] = "linux_arm"; - BrowserPlatform["MAC"] = "mac"; - BrowserPlatform["MAC_ARM"] = "mac_arm"; - BrowserPlatform["WIN32"] = "win32"; - BrowserPlatform["WIN64"] = "win64"; -})(BrowserPlatform || (BrowserPlatform = {})); -/** - * Enum describing a release channel for a browser. - * - * You can use this in combination with {@link resolveBuildId} to resolve - * a build ID based on a release channel. - * - * @public - */ -export var BrowserTag; -(function (BrowserTag) { - BrowserTag["CANARY"] = "canary"; - BrowserTag["NIGHTLY"] = "nightly"; - BrowserTag["BETA"] = "beta"; - BrowserTag["DEV"] = "dev"; - BrowserTag["DEVEDITION"] = "devedition"; - BrowserTag["STABLE"] = "stable"; - BrowserTag["ESR"] = "esr"; - BrowserTag["LATEST"] = "latest"; -})(BrowserTag || (BrowserTag = {})); -/** - * @public - */ -export var ChromeReleaseChannel; -(function (ChromeReleaseChannel) { - ChromeReleaseChannel["STABLE"] = "stable"; - ChromeReleaseChannel["DEV"] = "dev"; - ChromeReleaseChannel["CANARY"] = "canary"; - ChromeReleaseChannel["BETA"] = "beta"; -})(ChromeReleaseChannel || (ChromeReleaseChannel = {})); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/browser-data/types.js.map b/node_modules/@puppeteer/browsers/lib/browser-data/types.js.map deleted file mode 100644 index 0273134..0000000 --- a/node_modules/@puppeteer/browsers/lib/browser-data/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/browser-data/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,OAMX;AAND,WAAY,OAAO;IACjB,4BAAiB,CAAA;IACjB,wDAA6C,CAAA;IAC7C,gCAAqB,CAAA;IACrB,8BAAmB,CAAA;IACnB,wCAA6B,CAAA;AAC/B,CAAC,EANW,OAAO,KAAP,OAAO,QAMlB;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,0CAAuB,CAAA;IACvB,8BAAW,CAAA;IACX,sCAAmB,CAAA;IACnB,kCAAe,CAAA;IACf,kCAAe,CAAA;AACjB,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AAED;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,uCAAyB,CAAA;IACzB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACnB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAUD;;GAEG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,mCAAW,CAAA;IACX,yCAAiB,CAAA;IACjB,qCAAa,CAAA;AACf,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/debug.d.ts b/node_modules/@puppeteer/browsers/lib/debug.d.ts deleted file mode 100644 index 21efb9b..0000000 --- a/node_modules/@puppeteer/browsers/lib/debug.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import type { Debugger } from 'debug'; -export declare const debug: (prefix: string) => Debugger | undefined; -//# sourceMappingURL=debug.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/debug.d.ts.map b/node_modules/@puppeteer/browsers/lib/debug.d.ts.map deleted file mode 100644 index c9545ba..0000000 --- a/node_modules/@puppeteer/browsers/lib/debug.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAGpC,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,QAAQ,GAAG,SAGjD,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/debug.js b/node_modules/@puppeteer/browsers/lib/debug.js deleted file mode 100644 index 9ad518c..0000000 --- a/node_modules/@puppeteer/browsers/lib/debug.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import debugModule from 'debug'; -export const debug = (prefix) => { - const log = debugModule(prefix); - return log.enabled ? log : undefined; -}; -//# sourceMappingURL=debug.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/debug.js.map b/node_modules/@puppeteer/browsers/lib/debug.js.map deleted file mode 100644 index ddc4aa5..0000000 --- a/node_modules/@puppeteer/browsers/lib/debug.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAwB,EAAE;IAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts b/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts deleted file mode 100644 index 3ed4758..0000000 --- a/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { BrowserPlatform } from './browser-data/browser-data.js'; -/** - * @public - */ -export declare function detectBrowserPlatform(): BrowserPlatform | undefined; -//# sourceMappingURL=detectPlatform.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts.map b/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts.map deleted file mode 100644 index 5192030..0000000 --- a/node_modules/@puppeteer/browsers/lib/detectPlatform.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detectPlatform.d.ts","sourceRoot":"","sources":["../src/detectPlatform.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,SAAS,CAmBnE"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/detectPlatform.js b/node_modules/@puppeteer/browsers/lib/detectPlatform.js deleted file mode 100644 index 70113d8..0000000 --- a/node_modules/@puppeteer/browsers/lib/detectPlatform.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import os from 'node:os'; -import { BrowserPlatform } from './browser-data/browser-data.js'; -/** - * @public - */ -export function detectBrowserPlatform() { - const platform = os.platform(); - const arch = os.arch(); - switch (platform) { - case 'darwin': - return arch === 'arm64' ? BrowserPlatform.MAC_ARM : BrowserPlatform.MAC; - case 'linux': - return arch === 'arm64' - ? BrowserPlatform.LINUX_ARM - : BrowserPlatform.LINUX; - case 'win32': - return arch === 'x64' || - // Windows 11 for ARM supports x64 emulation - (arch === 'arm64' && isWindows11(os.release())) - ? BrowserPlatform.WIN64 - : BrowserPlatform.WIN32; - default: - return undefined; - } -} -/** - * Windows 11 is identified by the version 10.0.22000 or greater - * @internal - */ -function isWindows11(version) { - const parts = version.split('.'); - if (parts.length > 2) { - const major = parseInt(parts[0], 10); - const minor = parseInt(parts[1], 10); - const patch = parseInt(parts[2], 10); - return (major > 10 || - (major === 10 && minor > 0) || - (major === 10 && minor === 0 && patch >= 22000)); - } - return false; -} -//# sourceMappingURL=detectPlatform.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/detectPlatform.js.map b/node_modules/@puppeteer/browsers/lib/detectPlatform.js.map deleted file mode 100644 index 80c0aa7..0000000 --- a/node_modules/@puppeteer/browsers/lib/detectPlatform.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"detectPlatform.js","sourceRoot":"","sources":["../src/detectPlatform.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACvB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1E,KAAK,OAAO;YACV,OAAO,IAAI,KAAK,OAAO;gBACrB,CAAC,CAAC,eAAe,CAAC,SAAS;gBAC3B,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,IAAI,KAAK,KAAK;gBACnB,4CAA4C;gBAC5C,CAAC,IAAI,KAAK,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/C,CAAC,CAAC,eAAe,CAAC,KAAK;gBACvB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC;QAC5B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,CACL,KAAK,GAAG,EAAE;YACV,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;YAC3B,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAChD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts b/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts deleted file mode 100644 index 63b529c..0000000 --- a/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -/** - * @internal - */ -export declare function unpackArchive(archivePath: string, folderPath: string): Promise; -/** - * @internal - */ -export declare const internalConstantsForTesting: { - xz: string; - bzip2: string; -}; -//# sourceMappingURL=fileUtil.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts.map b/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts.map deleted file mode 100644 index 8ebcc02..0000000 --- a/node_modules/@puppeteer/browsers/lib/fileUtil.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fileUtil.d.ts","sourceRoot":"","sources":["../src/fileUtil.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAgDD;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/fileUtil.js b/node_modules/@puppeteer/browsers/lib/fileUtil.js deleted file mode 100644 index e7d87c9..0000000 --- a/node_modules/@puppeteer/browsers/lib/fileUtil.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { spawnSync, spawn, execFile } from 'node:child_process'; -import { createReadStream } from 'node:fs'; -import { mkdir, readdir } from 'node:fs/promises'; -import * as path from 'node:path'; -import { Stream } from 'node:stream'; -import { promisify } from 'node:util'; -import { debug } from './debug.js'; -const execFileAsync = promisify(execFile); -const debugFileUtil = debug('puppeteer:browsers:fileUtil'); -/** - * @internal - */ -export async function unpackArchive(archivePath, folderPath) { - if (!path.isAbsolute(folderPath)) { - folderPath = path.resolve(process.cwd(), folderPath); - } - if (archivePath.endsWith('.zip')) { - await mkdir(folderPath, { recursive: true }); - await extractZip(archivePath, folderPath); - } - else if (archivePath.endsWith('.tar.bz2')) { - await extractTar(archivePath, folderPath, 'bzip2'); - } - else if (archivePath.endsWith('.dmg')) { - await mkdir(folderPath); - await installDMG(archivePath, folderPath); - } - else if (archivePath.endsWith('.exe')) { - // Firefox on Windows. - const result = spawnSync(archivePath, [`/ExtractDir=${folderPath}`], { - env: { - __compat_layer: 'RunAsInvoker', - }, - }); - if (result.status !== 0) { - throw new Error(`Failed to extract ${archivePath} to ${folderPath}: ${result.output}`); - } - } - else if (archivePath.endsWith('.tar.xz')) { - await extractTar(archivePath, folderPath, 'xz'); - } - else { - throw new Error(`Unsupported archive format: ${archivePath}`); - } -} -function createTransformStream(child) { - const stream = new Stream.Transform({ - transform(chunk, encoding, callback) { - if (!child.stdin.write(chunk, encoding)) { - child.stdin.once('drain', callback); - } - else { - callback(); - } - }, - flush(callback) { - if (child.stdout.destroyed) { - callback(); - } - else { - child.stdin.end(); - child.stdout.on('close', callback); - } - }, - }); - child.stdin.on('error', e => { - if ('code' in e && e.code === 'EPIPE') { - // finished before reading the file finished (i.e. head) - stream.emit('end'); - } - else { - stream.destroy(e); - } - }); - child.stdout - .on('data', data => { - return stream.push(data); - }) - .on('error', e => { - return stream.destroy(e); - }); - child.once('close', () => { - return stream.end(); - }); - return stream; -} -/** - * @internal - */ -export const internalConstantsForTesting = { - xz: 'xz', - bzip2: 'bzip2', -}; -/** - * @internal - */ -async function extractTar(tarPath, folderPath, decompressUtilityName) { - const tarFs = await import('tar-fs'); - return await new Promise((fulfill, reject) => { - function handleError(utilityName) { - return (error) => { - if ('code' in error && error.code === 'ENOENT') { - error = new Error(`\`${utilityName}\` utility is required to unpack this archive`, { - cause: error, - }); - } - reject(error); - }; - } - const unpack = spawn(internalConstantsForTesting[decompressUtilityName], ['-d'], { - stdio: ['pipe', 'pipe', 'inherit'], - }) - .once('error', handleError(decompressUtilityName)) - .once('exit', code => { - debugFileUtil?.(`${decompressUtilityName} exited, code=${code}`); - }); - const tar = tarFs.extract(folderPath); - tar.once('error', handleError('tar')); - tar.once('finish', fulfill); - createReadStream(tarPath).pipe(createTransformStream(unpack)).pipe(tar); - }); -} -/** - * @internal - */ -async function installDMG(dmgPath, folderPath) { - const { stdout } = spawnSync(`hdiutil`, [ - 'attach', - '-nobrowse', - '-noautoopen', - dmgPath, - ]); - const volumes = stdout.toString('utf8').match(/\/Volumes\/(.*)/m); - if (!volumes) { - throw new Error(`Could not find volume path in ${stdout}`); - } - const mountPath = volumes[0]; - try { - const fileNames = await readdir(mountPath); - const appName = fileNames.find(item => { - return typeof item === 'string' && item.endsWith('.app'); - }); - if (!appName) { - throw new Error(`Cannot find app in ${mountPath}`); - } - const mountedPath = path.join(mountPath, appName); - spawnSync('cp', ['-R', mountedPath, folderPath]); - } - finally { - spawnSync('hdiutil', ['detach', mountPath, '-quiet']); - } -} -/** - * @internal - */ -async function extractZip(archivePath, folderPath) { - try { - if (process.platform === 'win32') { - // -x: extract files - // -f: specify the archive file - // -C: extract to the specified directory - const systemRoot = process.env['SystemRoot'] ?? process.env['SYSTEMROOT'] ?? 'C:\\Windows'; - const systemTar = `${systemRoot}\\System32\\tar.exe`; - await execFileAsync(systemTar, ['-xf', archivePath, '-C', folderPath]); - } - else { - // -o: overwrite existing files without prompting - // -d: extract files into the specified directory - await execFileAsync('unzip', ['-o', archivePath, '-d', folderPath]); - } - } - catch (error) { - if (error?.code === 'ENOENT') { - throw new Error(`Extraction failed: Required native binary ('tar.exe' or 'unzip') was not found in the system PATH.`); - } - throw new Error(`Extraction failed: ${error?.stderr?.toString() || error?.message}`); - } -} -//# sourceMappingURL=fileUtil.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/fileUtil.js.map b/node_modules/@puppeteer/browsers/lib/fileUtil.js.map deleted file mode 100644 index 53c7594..0000000 --- a/node_modules/@puppeteer/browsers/lib/fileUtil.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"fileUtil.js","sourceRoot":"","sources":["../src/fileUtil.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts b/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts deleted file mode 100644 index d567a95..0000000 --- a/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import * as http from 'node:http'; -import { URL } from 'node:url'; -export declare function headHttpRequest(url: URL): Promise; -export declare function httpRequest(url: URL, method: string, response: (x: http.IncomingMessage) => void, keepAlive?: boolean): Promise; -/** - * @internal - */ -export declare function downloadFile(url: URL, destinationPath: string, progressCallback?: (downloadedBytes: number, totalBytes: number) => void): Promise; -export declare function getJSON(url: URL): Promise; -export declare function getText(url: URL): Promise; -//# sourceMappingURL=httpUtil.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts.map b/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts.map deleted file mode 100644 index 77f9bbe..0000000 --- a/node_modules/@puppeteer/browsers/lib/httpUtil.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"httpUtil.d.ts","sourceRoot":"","sources":["../src/httpUtil.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAC,GAAG,EAAmB,MAAM,UAAU,CAAC;AAE/C,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAqBhE;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI,EAC3C,SAAS,UAAO,GACf,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAyC7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,eAAe,EAAE,MAAM,EACvB,gBAAgB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GACvE,OAAO,CAAC,IAAI,CAAC,CAiDf;AACD,wBAAsB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCjD"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/httpUtil.js b/node_modules/@puppeteer/browsers/lib/httpUtil.js deleted file mode 100644 index c8bffca..0000000 --- a/node_modules/@puppeteer/browsers/lib/httpUtil.js +++ /dev/null @@ -1,154 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { createWriteStream } from 'node:fs'; -import * as http from 'node:http'; -import * as https from 'node:https'; -import { URL, urlToHttpOptions } from 'node:url'; -export async function headHttpRequest(url) { - return await new Promise(resolve => { - httpRequest(url, 'HEAD', response => { - // consume response data free node process - response.resume(); - resolve(response.statusCode === 200); - }, false) - .then(request => { - request.on('error', () => { - resolve(false); - }); - }) - .catch(() => { - resolve(false); - }); - }); -} -export async function httpRequest(url, method, response, keepAlive = true) { - let agent; - try { - const { ProxyAgent } = await import('proxy-agent'); - agent = new ProxyAgent(); - } - catch { - // Standard Node.js agents will be used. - } - const options = { - protocol: url.protocol, - hostname: url.hostname, - port: url.port, - path: url.pathname + url.search, - method, - headers: keepAlive ? { Connection: 'keep-alive' } : undefined, - auth: urlToHttpOptions(url).auth, - agent, - }; - const requestCallback = (res) => { - if (res.statusCode && - res.statusCode >= 300 && - res.statusCode < 400 && - res.headers.location) { - void httpRequest(new URL(res.headers.location), method, response); - // consume response data to free up memory - // And prevents the connection from being kept alive - res.resume(); - } - else { - response(res); - } - }; - const request = options.protocol === 'https:' - ? https.request(options, requestCallback) - : http.request(options, requestCallback); - request.end(); - return request; -} -/** - * @internal - */ -export function downloadFile(url, destinationPath, progressCallback) { - return new Promise(async (resolve, reject) => { - let downloadedBytes = 0; - let totalBytes = 0; - function onData(chunk) { - downloadedBytes += chunk.length; - progressCallback(downloadedBytes, totalBytes); - } - try { - const request = await httpRequest(url, 'GET', response => { - if (response.statusCode !== 200) { - const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`); - // consume response data to free up memory - response.resume(); - reject(error); - return; - } - const file = createWriteStream(destinationPath); - file.on('close', () => { - // The 'close' event is emitted when the stream and any of its - // underlying resources (a file descriptor, for example) have been - // closed. The event indicates that no more events will be emitted, and - // no further computation will occur. - return resolve(); - }); - file.on('error', error => { - // The 'error' event may be emitted by a Readable implementation at any - // time. Typically, this may occur if the underlying stream is unable to - // generate data due to an underlying internal failure, or when a stream - // implementation attempts to push an invalid chunk of data. - return reject(error); - }); - response.pipe(file); - totalBytes = parseInt(response.headers['content-length'], 10); - if (progressCallback) { - response.on('data', onData); - } - }); - request.on('error', error => { - return reject(error); - }); - } - catch (error) { - reject(error); - } - }); -} -export async function getJSON(url) { - const text = await getText(url); - try { - return JSON.parse(text); - } - catch { - throw new Error('Could not parse JSON from ' + url.toString()); - } -} -export function getText(url) { - return new Promise(async (resolve, reject) => { - try { - const request = await httpRequest(url, 'GET', response => { - let data = ''; - if (response.statusCode && response.statusCode >= 400) { - return reject(new Error(`Got status code ${response.statusCode}`)); - } - response.on('data', chunk => { - data += chunk; - }); - response.on('end', () => { - try { - return resolve(String(data)); - } - catch { - return reject(new Error(`Failed to read text response from ${url}`)); - } - }); - }, false); - request.on('error', err => { - reject(err); - }); - } - catch (err) { - reject(err); - } - }); -} -//# sourceMappingURL=httpUtil.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/httpUtil.js.map b/node_modules/@puppeteer/browsers/lib/httpUtil.js.map deleted file mode 100644 index c476b3e..0000000 --- a/node_modules/@puppeteer/browsers/lib/httpUtil.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"httpUtil.js","sourceRoot":"","sources":["../src/httpUtil.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/install.d.ts b/node_modules/@puppeteer/browsers/lib/install.d.ts deleted file mode 100644 index e23acde..0000000 --- a/node_modules/@puppeteer/browsers/lib/install.d.ts +++ /dev/null @@ -1,195 +0,0 @@ -/** - * @license - * Copyright 2017 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { Browser, BrowserPlatform } from './browser-data/browser-data.js'; -import { InstalledBrowser } from './Cache.js'; -import type { BrowserProvider } from './provider.js'; -/** - * @public - */ -export interface InstallOptions { - /** - * Determines the path to download browsers to. - */ - cacheDir: string; - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to install. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; - /** - * An alias for the provided `buildId`. It will be used to maintain local - * metadata to support aliases in the `launch` command. - * - * @example 'canary' - */ - buildIdAlias?: string; - /** - * Provides information about the progress of the download. If set to - * 'default', the default callback implementing a progress bar will be - * used. - */ - downloadProgressCallback?: 'default' | ((downloadedBytes: number, totalBytes: number) => void); - /** - * Determines the host that will be used for downloading. - * - * @defaultValue Either - * - * - https://storage.googleapis.com/chrome-for-testing-public or - * - https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central - * - */ - baseUrl?: string; - /** - * Whether to unpack and install browser archives. - * - * @defaultValue `true` - */ - unpack?: boolean; - /** - * @internal - * @defaultValue `false` - */ - forceFallbackForTesting?: boolean; - /** - * Whether to attempt to install system-level dependencies required - * for the browser. - * - * Only supported for Chrome on Debian or Ubuntu. - * Requires system-level privileges to run `apt-get`. - * - * @defaultValue `false` - */ - installDeps?: boolean; - /** - * Custom provider implementation for alternative download sources. - * - * If not provided, uses the default provider. - * Multiple providers can be chained - they will be tried in order. - * The default provider is automatically added as the final fallback. - * - * ⚠️ **IMPORTANT**: Custom providers are NOT officially supported by - * Puppeteer. - * - * By using custom providers, you accept full responsibility for: - * - * - **Version compatibility**: Different platforms may receive different - * binary versions - * - **Archive compatibility**: Binary structure must match Puppeteer's expectations - * - **Feature integration**: Browser launch and other Puppeteer features may not work - * - **Testing**: You must validate that downloaded binaries work with Puppeteer - * - * **Puppeteer only tests and guarantees compatibility with default binaries.** - * - * @example - * - * ```typescript - * import {ElectronProvider} from './puppeteer-browser-provider-electron.js'; - * - * await install({ - * browser: Browser.CHROMEDRIVER, - * buildId: '142.0.7444.175', - * cacheDir: './cache', - * providers: [ - * new ElectronProvider(), // Try Electron releases first - * // Falls back to Chrome for Testing automatically - * ], - * }); - * ``` - */ - providers?: BrowserProvider[]; -} -/** - * Downloads and unpacks the browser archive according to the - * {@link InstallOptions}. - * - * @returns a {@link InstalledBrowser} instance. - * - * @public - */ -export declare function install(options: InstallOptions & { - unpack?: true; -}): Promise; -/** - * Downloads the browser archive according to the {@link InstallOptions} without - * unpacking. - * - * @returns the absolute path to the archive. - * - * @public - */ -export declare function install(options: InstallOptions & { - unpack: false; -}): Promise; -/** - * @public - */ -export interface UninstallOptions { - /** - * Determines the platform for the browser binary. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * The path to the root of the cache directory. - */ - cacheDir: string; - /** - * Determines which browser to uninstall. - */ - browser: Browser; - /** - * The browser build to uninstall - */ - buildId: string; -} -/** - * - * @public - */ -export declare function uninstall(options: UninstallOptions): Promise; -/** - * @public - */ -export interface GetInstalledBrowsersOptions { - /** - * The path to the root of the cache directory. - */ - cacheDir: string; -} -/** - * Returns metadata about browsers installed in the cache directory. - * - * @public - */ -export declare function getInstalledBrowsers(options: GetInstalledBrowsersOptions): Promise; -/** - * @public - */ -export declare function canDownload(options: InstallOptions): Promise; -/** - * Retrieves a URL for downloading the binary archive of a given browser. - * - * The archive is bound to the specific platform and build ID specified. - * - * @public - */ -export declare function getDownloadUrl(browser: Browser, platform: BrowserPlatform, buildId: string, baseUrl?: string): URL; -/** - * @internal - */ -export declare function makeProgressCallback(browser: Browser, buildId: string): Promise<(downloadedBytes: number, totalBytes: number) => void>; -//# sourceMappingURL=install.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/install.d.ts.map b/node_modules/@puppeteer/browsers/lib/install.d.ts.map deleted file mode 100644 index 78ff849..0000000 --- a/node_modules/@puppeteer/browsers/lib/install.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EACL,OAAO,EACP,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAQ,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAMnD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAoBnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,wBAAwB,CAAC,EACrB,SAAS,GACT,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAC5D;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;CAC/B;AAmHD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,GAAG;IAAC,MAAM,CAAC,EAAE,IAAI,CAAA;CAAC,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC7B;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,GAAG;IAAC,MAAM,EAAE,KAAK,CAAA;CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,CAAC;AAuNnB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxE;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAE7B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAgC3E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,GAAG,CAEL;AAcD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,CAqBhE"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/install.js b/node_modules/@puppeteer/browsers/lib/install.js deleted file mode 100644 index 4ea5672..0000000 --- a/node_modules/@puppeteer/browsers/lib/install.js +++ /dev/null @@ -1,358 +0,0 @@ -/** - * @license - * Copyright 2017 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import assert from 'node:assert'; -import { spawnSync } from 'node:child_process'; -import { existsSync, readFileSync } from 'node:fs'; -import { mkdir, unlink } from 'node:fs/promises'; -import os from 'node:os'; -import path from 'node:path'; -import { Browser, BrowserPlatform, downloadUrls, } from './browser-data/browser-data.js'; -import { Cache, InstalledBrowser } from './Cache.js'; -import { debug } from './debug.js'; -import { DefaultProvider } from './DefaultProvider.js'; -import { detectBrowserPlatform } from './detectPlatform.js'; -import { unpackArchive } from './fileUtil.js'; -import { downloadFile, headHttpRequest } from './httpUtil.js'; -const debugInstall = debug('puppeteer:browsers:install'); -const times = new Map(); -function debugTime(label) { - times.set(label, process.hrtime()); -} -function debugTimeEnd(label) { - const end = process.hrtime(); - const start = times.get(label); - if (!start) { - return; - } - const duration = end[0] * 1000 + end[1] / 1e6 - (start[0] * 1000 + start[1] / 1e6); // calculate duration in milliseconds - debugInstall?.(`Duration for ${label}: ${duration}ms`); -} -/** - * Install using custom provider plugins. - * Tries each provider in order until one succeeds. - * Falls back to default provider if all custom providers fail. - * - * @internal - */ -async function installWithProviders(options) { - if (!options.platform) { - throw new Error('Platform must be defined'); - } - const cache = new Cache(options.cacheDir); - const browserRoot = cache.browserRoot(options.browser); - // Build provider list with proper fallback behavior - const providers = [...(options.providers || [])]; - // If custom baseUrl is provided, add it as a provider - if (options.baseUrl) { - providers.push(new DefaultProvider(options.baseUrl)); - } - // Always add default provider as final fallback - // (unless custom baseUrl is provided and forceFallbackForTesting is false) - if (!options.baseUrl || options.forceFallbackForTesting) { - providers.push(new DefaultProvider()); - } - const downloadOptions = { - browser: options.browser, - platform: options.platform, - buildId: options.buildId, - progressCallback: options.downloadProgressCallback === 'default' - ? await makeProgressCallback(options.browser, options.buildIdAlias ?? options.buildId) - : options.downloadProgressCallback, - }; - const errors = []; - for (const provider of providers) { - try { - // Check: does this provider support this browser/platform? - if (!(await provider.supports(downloadOptions))) { - debugInstall?.(`Provider ${provider.getName()} does not support ${options.browser} on ${options.platform}`); - continue; - } - // Warn if using non-default provider - if (!(provider instanceof DefaultProvider)) { - debugInstall?.(`⚠️ Using custom downloader: ${provider.getName()}`); - debugInstall?.(`⚠️ Puppeteer does not guarantee compatibility with non-default providers`); - } - debugInstall?.(`Trying provider: ${provider.getName()} for ${options.browser} ${options.buildId}`); - // Get download URL from provider - const url = await provider.getDownloadUrl(downloadOptions); - if (!url) { - debugInstall?.(`Provider ${provider.getName()} returned no URL for ${options.browser} ${options.buildId}`); - continue; - } - debugInstall?.(`Successfully got URL from ${provider.getName()}: ${url}`); - if (!existsSync(browserRoot)) { - await mkdir(browserRoot, { recursive: true }); - } - // Download and install using the URL from the provider - return await installUrl(url, options, provider); - } - catch (err) { - debugInstall?.(`Provider ${provider.getName()} failed: ${err.message}`); - errors.push({ - providerName: provider.getName(), - error: err, - }); - // Continue to next provider - } - } - // All providers failed - const errorDetails = errors - .map(e => { - return ` - ${e.providerName}: ${e.error.message}`; - }) - .join('\n'); - throw new Error(`All providers failed for ${options.browser} ${options.buildId}:\n${errorDetails}`); -} -export async function install(options) { - options.platform ??= detectBrowserPlatform(); - options.unpack ??= true; - if (!options.platform) { - throw new Error(`Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`); - } - // Always use plugin architecture (uses default provider if none specified) - options.providers ??= []; - return await installWithProviders(options); -} -async function installDeps(installedBrowser) { - if (process.platform !== 'linux' || - installedBrowser.platform !== BrowserPlatform.LINUX) { - return; - } - // Currently, only Debian-like deps are supported. - const depsPath = path.join(path.dirname(installedBrowser.executablePath), 'deb.deps'); - if (!existsSync(depsPath)) { - debugInstall?.(`deb.deps file was not found at ${depsPath}`); - return; - } - const data = readFileSync(depsPath, 'utf-8').split('\n').join(','); - if (process.getuid?.() !== 0) { - throw new Error('Installing system dependencies requires root privileges'); - } - let result = spawnSync('apt-get', ['-v']); - if (result.status !== 0) { - throw new Error('Failed to install system dependencies: apt-get does not seem to be available'); - } - debugInstall?.(`Trying to install dependencies: ${data}`); - result = spawnSync('apt-get', [ - 'satisfy', - '-y', - data, - '--no-install-recommends', - ]); - if (result.status !== 0) { - throw new Error(`Failed to install system dependencies: status=${result.status},error=${result.error},stdout=${result.stdout.toString('utf8')},stderr=${result.stderr.toString('utf8')}`); - } - debugInstall?.(`Installed system dependencies ${data}`); -} -async function installUrl(url, options, provider) { - if (!provider) { - throw new Error('Provider is required for installation'); - } - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error(`Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`); - } - let downloadProgressCallback = options.downloadProgressCallback; - if (downloadProgressCallback === 'default') { - downloadProgressCallback = await makeProgressCallback(options.browser, options.buildIdAlias ?? options.buildId); - } - const fileName = decodeURIComponent(url.toString()).split('/').pop(); - assert(fileName, `A malformed download URL was found: ${url}.`); - const cache = new Cache(options.cacheDir); - const browserRoot = cache.browserRoot(options.browser); - const archivePath = path.join(browserRoot, `${options.buildId}-${fileName}`); - if (!existsSync(browserRoot)) { - await mkdir(browserRoot, { recursive: true }); - } - if (!options.unpack) { - if (existsSync(archivePath)) { - return archivePath; - } - debugInstall?.(`Downloading binary from ${url}`); - debugTime('download'); - await downloadFile(url, archivePath, downloadProgressCallback); - debugTimeEnd('download'); - return archivePath; - } - const outputPath = cache.installationDir(options.browser, options.platform, options.buildId); - // Get executable path from provider once (used for both cached and new installations) - const relativeExecutablePath = await provider.getExecutablePath({ - browser: options.browser, - buildId: options.buildId, - platform: options.platform, - }); - debugInstall?.(`Using executable path from provider: ${relativeExecutablePath}`); - const installedBrowser = new InstalledBrowser(cache, options.browser, options.buildId, options.platform); - // Write metadata for the installation (only for non-default providers) - if (!(provider instanceof DefaultProvider)) { - cache.writeExecutablePath(options.browser, options.platform, options.buildId, relativeExecutablePath); - } - try { - if (existsSync(outputPath)) { - if (!existsSync(installedBrowser.executablePath)) { - throw new Error(`The browser folder (${outputPath}) exists but the executable (${installedBrowser.executablePath}) is missing`); - } - await runSetup(installedBrowser); - if (options.installDeps) { - await installDeps(installedBrowser); - } - return installedBrowser; - } - // Check if archive already exists (e.g., from a custom provider) - if (!existsSync(archivePath)) { - debugInstall?.(`Downloading binary from ${url}`); - try { - debugTime('download'); - await downloadFile(url, archivePath, downloadProgressCallback); - } - finally { - debugTimeEnd('download'); - } - } - else { - debugInstall?.(`Using existing archive at ${archivePath}`); - } - debugInstall?.(`Installing ${archivePath} to ${outputPath}`); - try { - debugTime('extract'); - await unpackArchive(archivePath, outputPath); - } - finally { - debugTimeEnd('extract'); - } - if (options.buildIdAlias) { - const metadata = installedBrowser.readMetadata(); - metadata.aliases[options.buildIdAlias] = options.buildId; - installedBrowser.writeMetadata(metadata); - } - await runSetup(installedBrowser); - if (options.installDeps) { - await installDeps(installedBrowser); - } - return installedBrowser; - } - finally { - if (existsSync(archivePath)) { - await unlink(archivePath); - } - } -} -async function runSetup(installedBrowser) { - // On Windows for Chrome invoke setup.exe to configure sandboxes. - if ((installedBrowser.platform === BrowserPlatform.WIN32 || - installedBrowser.platform === BrowserPlatform.WIN64) && - installedBrowser.browser === Browser.CHROME && - installedBrowser.platform === detectBrowserPlatform()) { - try { - debugTime('permissions'); - const browserDir = path.dirname(installedBrowser.executablePath); - const setupExePath = path.join(browserDir, 'setup.exe'); - if (!existsSync(setupExePath)) { - return; - } - spawnSync(path.join(browserDir, 'setup.exe'), [`--configure-browser-in-directory=` + browserDir], { - shell: false, - }); - // TODO: Handle error here. Currently the setup.exe sometimes - // errors although it sets the permissions correctly. - } - finally { - debugTimeEnd('permissions'); - } - } -} -/** - * - * @public - */ -export async function uninstall(options) { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error(`Cannot detect the browser platform for: ${os.platform()} (${os.arch()})`); - } - new Cache(options.cacheDir).uninstall(options.browser, options.platform, options.buildId); -} -/** - * Returns metadata about browsers installed in the cache directory. - * - * @public - */ -export async function getInstalledBrowsers(options) { - return new Cache(options.cacheDir).getInstalledBrowsers(); -} -/** - * @public - */ -export async function canDownload(options) { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error(`Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`); - } - // Always use plugin architecture (uses default provider if none specified) - const providers = [ - ...(options.providers || []), - new DefaultProvider(options.baseUrl), - ]; - const downloadOptions = { - browser: options.browser, - platform: options.platform, - buildId: options.buildId, - }; - // Check if any provider can provide a valid, downloadable URL - for (const provider of providers) { - if (!(await provider.supports(downloadOptions))) { - continue; - } - const url = await provider.getDownloadUrl(downloadOptions); - if (url && (await headHttpRequest(url))) { - return true; - } - } - return false; -} -/** - * Retrieves a URL for downloading the binary archive of a given browser. - * - * The archive is bound to the specific platform and build ID specified. - * - * @public - */ -export function getDownloadUrl(browser, platform, buildId, baseUrl) { - return new URL(downloadUrls[browser](platform, buildId, baseUrl)); -} -let ProgressBarClass; -const importProgressBarIfNeeded = async () => { - if (!ProgressBarClass) { - ProgressBarClass = (await import('progress')).default; - } - return ProgressBarClass; -}; -/** - * @internal - */ -export async function makeProgressCallback(browser, buildId) { - const ProgressBarClass = await importProgressBarIfNeeded(); - let progressBar; - let lastDownloadedBytes = 0; - return (downloadedBytes, totalBytes) => { - if (!progressBar) { - progressBar = new ProgressBarClass(`Downloading ${browser} ${buildId} - ${toMegabytes(totalBytes)} [:bar] :percent :etas `, { - complete: '=', - incomplete: ' ', - width: 20, - total: totalBytes, - }); - } - const delta = downloadedBytes - lastDownloadedBytes; - lastDownloadedBytes = downloadedBytes; - progressBar.tick(delta); - }; -} -function toMegabytes(bytes) { - const mb = bytes / 1000 / 1000; - return `${Math.round(mb * 10) / 10} MB`; -} -//# sourceMappingURL=install.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/install.js.map b/node_modules/@puppeteer/browsers/lib/install.js.map deleted file mode 100644 index 1fc965d..0000000 --- a/node_modules/@puppeteer/browsers/lib/install.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/launch.d.ts b/node_modules/@puppeteer/browsers/lib/launch.d.ts deleted file mode 100644 index d86c1cc..0000000 --- a/node_modules/@puppeteer/browsers/lib/launch.d.ts +++ /dev/null @@ -1,190 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import childProcess from 'node:child_process'; -import { type Browser, type BrowserPlatform, type ChromeReleaseChannel } from './browser-data/browser-data.js'; -/** - * @public - */ -export interface ComputeExecutablePathOptions { - /** - * Root path to the storage directory. - * - * Can be set to `null` if the executable path should be relative - * to the extracted download location. E.g. `./chrome-linux64/chrome`. - */ - cacheDir: string | null; - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; -} -/** - * @public - */ -export declare function computeExecutablePath(options: ComputeExecutablePathOptions): string; -/** - * @public - */ -export interface SystemOptions { - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Release channel to look for on the system. - */ - channel: ChromeReleaseChannel; -} -/** - * Returns a path to a system-wide Chrome installation given a release channel - * name by checking known installation locations (using - * {@link https://pptr.dev/browsers-api/browsers.computesystemexecutablepath}). - * If Chrome instance is not found at the expected path, an error is thrown. - * - * @public - */ -export declare function computeSystemExecutablePath(options: SystemOptions): string; -/** - * @public - */ -export interface LaunchOptions { - /** - * Absolute path to the browser's executable. - */ - executablePath: string; - /** - * Configures stdio streams to open two additional streams for automation over - * those streams instead of WebSocket. - * - * @defaultValue `false`. - */ - pipe?: boolean; - /** - * If true, forwards the browser's process stdout and stderr to the Node's - * process stdout and stderr. - * - * @defaultValue `false`. - */ - dumpio?: boolean; - /** - * Additional arguments to pass to the executable when launching. - */ - args?: string[]; - /** - * Environment variables to set for the browser process. - */ - env?: Record; - /** - * Handles SIGINT in the Node process and tries to kill the browser process. - * - * @defaultValue `true`. - */ - handleSIGINT?: boolean; - /** - * Handles SIGTERM in the Node process and tries to gracefully close the browser - * process. - * - * @defaultValue `true`. - */ - handleSIGTERM?: boolean; - /** - * Handles SIGHUP in the Node process and tries to gracefully close the browser process. - * - * @defaultValue `true`. - */ - handleSIGHUP?: boolean; - /** - * Whether to spawn process in the {@link https://nodejs.org/api/child_process.html#optionsdetached | detached} - * mode. - * - * @defaultValue `true` except on Windows. - */ - detached?: boolean; - /** - * A callback to run after the browser process exits or before the process - * will be closed via the {@link Process.close} call (including when handling - * signals). The callback is only run once. - */ - onExit?: () => Promise; - /** - * If provided, the process will be killed when the signal is aborted. - */ - signal?: AbortSignal; -} -/** - * Launches a browser process according to {@link LaunchOptions}. - * - * @public - */ -export declare function launch(opts: LaunchOptions): Process; -/** - * @public - */ -export declare const CDP_WEBSOCKET_ENDPOINT_REGEX: RegExp; -/** - * @public - */ -export declare const WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX: RegExp; -/** - * @public - */ -export declare class Process { - #private; - constructor(opts: LaunchOptions); - get nodeProcess(): childProcess.ChildProcess; - close(): Promise; - hasClosed(): Promise; - kill(): void; - /** - * Get recent logs (stderr + stdout) emitted by the browser. - * - * @public - */ - getRecentLogs(): string[]; - waitForLineOutput(regex: RegExp, timeout?: number): Promise; -} -/** - * @internal - */ -export interface ErrorLike extends Error { - name: string; - message: string; -} -/** - * @internal - */ -export declare function isErrorLike(obj: unknown): obj is ErrorLike; -/** - * @internal - */ -export declare function isErrnoException(obj: unknown): obj is NodeJS.ErrnoException; -/** - * @public - */ -export declare class TimeoutError extends Error { - /** - * @internal - */ - constructor(message?: string); -} -//# sourceMappingURL=launch.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/launch.d.ts.map b/node_modules/@puppeteer/browsers/lib/launch.d.ts.map deleted file mode 100644 index 3bfbc61..0000000 --- a/node_modules/@puppeteer/browsers/lib/launch.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/launch.js b/node_modules/@puppeteer/browsers/lib/launch.js deleted file mode 100644 index ec929f1..0000000 --- a/node_modules/@puppeteer/browsers/lib/launch.js +++ /dev/null @@ -1,426 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import childProcess from 'node:child_process'; -import { EventEmitter } from 'node:events'; -import { accessSync } from 'node:fs'; -import os from 'node:os'; -import readline from 'node:readline'; -import { executablePathByBrowser, resolveSystemExecutablePaths, } from './browser-data/browser-data.js'; -import { Cache } from './Cache.js'; -import { debug } from './debug.js'; -import { detectBrowserPlatform } from './detectPlatform.js'; -const debugLaunch = debug('puppeteer:browsers:launcher'); -/** - * @public - */ -export function computeExecutablePath(options) { - if (options.cacheDir === null) { - options.platform ??= detectBrowserPlatform(); - if (options.platform === undefined) { - throw new Error(`No platform specified. Couldn't auto-detect browser platform.`); - } - return executablePathByBrowser[options.browser](options.platform, options.buildId); - } - return new Cache(options.cacheDir).computeExecutablePath(options); -} -/** - * Returns a path to a system-wide Chrome installation given a release channel - * name by checking known installation locations (using - * {@link https://pptr.dev/browsers-api/browsers.computesystemexecutablepath}). - * If Chrome instance is not found at the expected path, an error is thrown. - * - * @public - */ -export function computeSystemExecutablePath(options) { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error(`Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`); - } - const paths = resolveSystemExecutablePaths(options.browser, options.platform, options.channel); - for (const path of paths) { - try { - accessSync(path); - return path; - } - catch { } - } - throw new Error(`Could not find Google Chrome executable for channel '${options.channel}' at:${paths.map(path => { - return `\n - ${path}`; - })}.`); -} -/** - * Launches a browser process according to {@link LaunchOptions}. - * - * @public - */ -export function launch(opts) { - return new Process(opts); -} -/** - * @public - */ -export const CDP_WEBSOCKET_ENDPOINT_REGEX = /^DevTools listening on (ws:\/\/.*)$/; -/** - * @public - */ -export const WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX = /^WebDriver BiDi listening on (ws:\/\/.*)$/; -const processListeners = new Map(); -const dispatchers = { - exit: (...args) => { - processListeners.get('exit')?.forEach(handler => { - return handler(...args); - }); - }, - SIGINT: (...args) => { - processListeners.get('SIGINT')?.forEach(handler => { - return handler(...args); - }); - }, - SIGHUP: (...args) => { - processListeners.get('SIGHUP')?.forEach(handler => { - return handler(...args); - }); - }, - SIGTERM: (...args) => { - processListeners.get('SIGTERM')?.forEach(handler => { - return handler(...args); - }); - }, -}; -function subscribeToProcessEvent(event, handler) { - const listeners = processListeners.get(event) || []; - if (listeners.length === 0) { - process.on(event, dispatchers[event]); - } - listeners.push(handler); - processListeners.set(event, listeners); -} -function unsubscribeFromProcessEvent(event, handler) { - const listeners = processListeners.get(event) || []; - const existingListenerIdx = listeners.indexOf(handler); - if (existingListenerIdx === -1) { - return; - } - listeners.splice(existingListenerIdx, 1); - processListeners.set(event, listeners); - if (listeners.length === 0) { - process.off(event, dispatchers[event]); - } -} -/** - * @public - */ -export class Process { - #executablePath; - #args; - #browserProcess; - #exited = false; - // The browser process can be closed externally or from the driver process. We - // need to invoke the hooks only once though but we don't know how many times - // we will be invoked. - #hooksRan = false; - #onExitHook = async () => { }; - #browserProcessExiting; - #logs = []; - #maxLogLinesSize = 1000; - #lineEmitter = new EventEmitter(); - #onAbort = () => { - this.kill(); - }; - #signal; - constructor(opts) { - this.#executablePath = opts.executablePath; - this.#args = opts.args ?? []; - this.#signal = opts.signal; - if (this.#signal?.aborted) { - throw new Error(this.#signal.reason ? this.#signal.reason : 'Launch aborted'); - } - this.#signal?.addEventListener('abort', this.#onAbort, { once: true }); - opts.pipe ??= false; - opts.dumpio ??= false; - opts.handleSIGINT ??= true; - opts.handleSIGTERM ??= true; - opts.handleSIGHUP ??= true; - // On non-windows platforms, `detached: true` makes child process a - // leader of a new process group, making it possible to kill child - // process tree with `.kill(-pid)` command. @see - // https://nodejs.org/api/child_process.html#child_process_options_detached - opts.detached ??= process.platform !== 'win32'; - const stdio = this.#configureStdio({ - pipe: opts.pipe, - }); - const env = opts.env || {}; - debugLaunch?.(`Launching ${this.#executablePath} ${this.#args.join(' ')}`, { - detached: opts.detached, - env: Object.keys(env).reduce((res, key) => { - if (key.toLowerCase().startsWith('puppeteer_')) { - res[key] = env[key]; - } - return res; - }, {}), - stdio, - }); - this.#browserProcess = childProcess.spawn(this.#executablePath, this.#args, { - detached: opts.detached, - env, - stdio, - }); - this.#recordStream(this.#browserProcess.stderr); - this.#recordStream(this.#browserProcess.stdout); - debugLaunch?.(`Launched ${this.#browserProcess.pid}`); - if (opts.dumpio) { - this.#browserProcess.stderr?.pipe(process.stderr); - this.#browserProcess.stdout?.pipe(process.stdout); - } - subscribeToProcessEvent('exit', this.#onDriverProcessExit); - if (opts.handleSIGINT) { - subscribeToProcessEvent('SIGINT', this.#onDriverProcessSignal); - } - if (opts.handleSIGTERM) { - subscribeToProcessEvent('SIGTERM', this.#onDriverProcessSignal); - } - if (opts.handleSIGHUP) { - subscribeToProcessEvent('SIGHUP', this.#onDriverProcessSignal); - } - if (opts.onExit) { - this.#onExitHook = opts.onExit; - } - this.#browserProcessExiting = new Promise((resolve, reject) => { - this.#browserProcess.once('exit', async () => { - debugLaunch?.(`Browser process ${this.#browserProcess.pid} onExit`); - this.#clearListeners(); - this.#exited = true; - try { - await this.#runHooks(); - } - catch (err) { - reject(err); - return; - } - resolve(); - }); - }); - } - async #runHooks() { - if (this.#hooksRan) { - return; - } - this.#hooksRan = true; - await this.#onExitHook(); - } - get nodeProcess() { - return this.#browserProcess; - } - #configureStdio(opts) { - if (opts.pipe) { - return ['pipe', 'pipe', 'pipe', 'pipe', 'pipe']; - } - else { - return ['pipe', 'pipe', 'pipe']; - } - } - #clearListeners() { - unsubscribeFromProcessEvent('exit', this.#onDriverProcessExit); - unsubscribeFromProcessEvent('SIGINT', this.#onDriverProcessSignal); - unsubscribeFromProcessEvent('SIGTERM', this.#onDriverProcessSignal); - unsubscribeFromProcessEvent('SIGHUP', this.#onDriverProcessSignal); - this.#signal?.removeEventListener('abort', this.#onAbort); - } - #onDriverProcessExit = (_code) => { - this.kill(); - }; - #onDriverProcessSignal = (signal) => { - switch (signal) { - case 'SIGINT': - this.kill(); - process.exit(130); - case 'SIGTERM': - case 'SIGHUP': - void this.close(); - break; - } - }; - async close() { - await this.#runHooks(); - if (!this.#exited) { - this.kill(); - } - return await this.#browserProcessExiting; - } - hasClosed() { - return this.#browserProcessExiting; - } - kill() { - debugLaunch?.(`Trying to kill ${this.#browserProcess.pid}`); - // If the process failed to launch (for example if the browser executable path - // is invalid), then the process does not get a pid assigned. A call to - // `proc.kill` would error, as the `pid` to-be-killed can not be found. - if (this.#browserProcess && - this.#browserProcess.pid && - pidExists(this.#browserProcess.pid)) { - try { - debugLaunch?.(`Browser process ${this.#browserProcess.pid} exists`); - if (process.platform === 'win32') { - try { - childProcess.execSync(`taskkill /pid ${this.#browserProcess.pid} /T /F`); - } - catch (error) { - debugLaunch?.(`Killing ${this.#browserProcess.pid} using taskkill failed`, error); - // taskkill can fail to kill the process e.g. due to missing permissions. - // Let's kill the process via Node API. This delays killing of all child - // processes of `this.proc` until the main Node.js process dies. - this.#browserProcess.kill(); - } - } - else { - // on linux the process group can be killed with the group id prefixed with - // a minus sign. The process group id is the group leader's pid. - const processGroupId = -this.#browserProcess.pid; - try { - process.kill(processGroupId, 'SIGKILL'); - } - catch (error) { - debugLaunch?.(`Killing ${this.#browserProcess.pid} using process.kill failed`, error); - // Killing the process group can fail due e.g. to missing permissions. - // Let's kill the process via Node API. This delays killing of all child - // processes of `this.proc` until the main Node.js process dies. - this.#browserProcess.kill('SIGKILL'); - } - } - } - catch (error) { - throw new Error(`${PROCESS_ERROR_EXPLANATION}\nError cause: ${isErrorLike(error) ? error.stack : error}`); - } - } - this.#clearListeners(); - } - #recordStream(stream) { - const rl = readline.createInterface(stream); - const cleanup = () => { - rl.off('line', onLine); - rl.off('close', onClose); - try { - rl.close(); - } - catch { } - }; - const onLine = (line) => { - if (line.trim() === '') { - return; - } - this.#logs.push(line); - const delta = this.#logs.length - this.#maxLogLinesSize; - if (delta) { - this.#logs.splice(0, delta); - } - this.#lineEmitter.emit('line', line); - }; - const onClose = () => { - cleanup(); - }; - rl.on('line', onLine); - rl.on('close', onClose); - } - /** - * Get recent logs (stderr + stdout) emitted by the browser. - * - * @public - */ - getRecentLogs() { - return [...this.#logs]; - } - waitForLineOutput(regex, timeout = 0) { - return new Promise((resolve, reject) => { - const onClose = (errorOrCode) => { - cleanup(); - reject(new Error([ - `Failed to launch the browser process: ${errorOrCode instanceof Error - ? ` ${errorOrCode.message}` - : ` Code: ${errorOrCode}`}`, - '', - `stderr:`, - this.getRecentLogs().join('\n'), - '', - 'TROUBLESHOOTING: https://pptr.dev/troubleshooting', - '', - ].join('\n'))); - }; - this.#browserProcess.on('exit', onClose); - this.#browserProcess.on('error', onClose); - const timeoutId = timeout > 0 ? setTimeout(onTimeout, timeout) : undefined; - this.#lineEmitter.on('line', onLine); - const cleanup = () => { - clearTimeout(timeoutId); - this.#lineEmitter.off('line', onLine); - this.#browserProcess.off('exit', onClose); - this.#browserProcess.off('error', onClose); - }; - function onTimeout() { - cleanup(); - reject(new TimeoutError(`Timed out after ${timeout} ms while waiting for the WS endpoint URL to appear in stdout!`)); - } - for (const line of this.#logs) { - onLine(line); - } - function onLine(line) { - const match = line.match(regex); - if (!match) { - return; - } - cleanup(); - // The RegExp matches, so this will obviously exist. - resolve(match[1]); - } - }); - } -} -const PROCESS_ERROR_EXPLANATION = `Puppeteer was unable to kill the process which ran the browser binary. -This means that, on future Puppeteer launches, Puppeteer might not be able to launch the browser. -Please check your open processes and ensure that the browser processes that Puppeteer launched have been killed. -If you think this is a bug, please report it on the Puppeteer issue tracker.`; -/** - * @internal - */ -function pidExists(pid) { - try { - return process.kill(pid, 0); - } - catch (error) { - if (isErrnoException(error)) { - if (error.code && error.code === 'ESRCH') { - return false; - } - } - throw error; - } -} -/** - * @internal - */ -export function isErrorLike(obj) { - return (typeof obj === 'object' && obj !== null && 'name' in obj && 'message' in obj); -} -/** - * @internal - */ -export function isErrnoException(obj) { - return (isErrorLike(obj) && - ('errno' in obj || 'code' in obj || 'path' in obj || 'syscall' in obj)); -} -/** - * @public - */ -export class TimeoutError extends Error { - /** - * @internal - */ - constructor(message) { - super(message); - this.name = this.constructor.name; - Error.captureStackTrace(this, this.constructor); - } -} -//# sourceMappingURL=launch.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/launch.js.map b/node_modules/@puppeteer/browsers/lib/launch.js.map deleted file mode 100644 index f28a44f..0000000 --- a/node_modules/@puppeteer/browsers/lib/launch.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main-cli.d.ts b/node_modules/@puppeteer/browsers/lib/main-cli.d.ts deleted file mode 100644 index 24f6aa5..0000000 --- a/node_modules/@puppeteer/browsers/lib/main-cli.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -export {}; -//# sourceMappingURL=main-cli.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main-cli.d.ts.map b/node_modules/@puppeteer/browsers/lib/main-cli.d.ts.map deleted file mode 100644 index 55411ef..0000000 --- a/node_modules/@puppeteer/browsers/lib/main-cli.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-cli.d.ts","sourceRoot":"","sources":["../src/main-cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main-cli.js b/node_modules/@puppeteer/browsers/lib/main-cli.js deleted file mode 100755 index 7a9047e..0000000 --- a/node_modules/@puppeteer/browsers/lib/main-cli.js +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env node -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import { CLI } from './CLI.js'; -void new CLI().run(process.argv); -//# sourceMappingURL=main-cli.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main-cli.js.map b/node_modules/@puppeteer/browsers/lib/main-cli.js.map deleted file mode 100644 index 009b97d..0000000 --- a/node_modules/@puppeteer/browsers/lib/main-cli.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-cli.js","sourceRoot":"","sources":["../src/main-cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,KAAK,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main.d.ts b/node_modules/@puppeteer/browsers/lib/main.d.ts deleted file mode 100644 index decaf02..0000000 --- a/node_modules/@puppeteer/browsers/lib/main.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -export type { LaunchOptions, ComputeExecutablePathOptions as Options, SystemOptions, } from './launch.js'; -export { launch, computeExecutablePath, computeSystemExecutablePath, TimeoutError, CDP_WEBSOCKET_ENDPOINT_REGEX, WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, Process, } from './launch.js'; -export type { InstallOptions, GetInstalledBrowsersOptions, UninstallOptions, } from './install.js'; -export { install, getInstalledBrowsers, canDownload, uninstall, getDownloadUrl, } from './install.js'; -export { detectBrowserPlatform } from './detectPlatform.js'; -export type { ProfileOptions } from './browser-data/browser-data.js'; -export { resolveBuildId, Browser, BrowserPlatform, ChromeReleaseChannel, createProfile, getVersionComparator, resolveDefaultUserDataDir, } from './browser-data/browser-data.js'; -export { CLI } from './CLI.js'; -export { Cache, InstalledBrowser, type Metadata, type ComputeExecutablePathOptions, } from './Cache.js'; -export { BrowserTag } from './browser-data/types.js'; -export { DefaultProvider } from './DefaultProvider.js'; -export { type BrowserProvider, buildArchiveFilename, type DownloadOptions, } from './provider.js'; -//# sourceMappingURL=main.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main.d.ts.map b/node_modules/@puppeteer/browsers/lib/main.d.ts.map deleted file mode 100644 index ddc1f81..0000000 --- a/node_modules/@puppeteer/browsers/lib/main.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,aAAa,EACb,4BAA4B,IAAI,OAAO,EACvC,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,4BAA4B,EAC5B,uCAAuC,EACvC,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,cAAc,EACd,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,4BAA4B,GAClC,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main.js b/node_modules/@puppeteer/browsers/lib/main.js deleted file mode 100644 index 5849413..0000000 --- a/node_modules/@puppeteer/browsers/lib/main.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -export { launch, computeExecutablePath, computeSystemExecutablePath, TimeoutError, CDP_WEBSOCKET_ENDPOINT_REGEX, WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, Process, } from './launch.js'; -export { install, getInstalledBrowsers, canDownload, uninstall, getDownloadUrl, } from './install.js'; -export { detectBrowserPlatform } from './detectPlatform.js'; -export { resolveBuildId, Browser, BrowserPlatform, ChromeReleaseChannel, createProfile, getVersionComparator, resolveDefaultUserDataDir, } from './browser-data/browser-data.js'; -export { CLI } from './CLI.js'; -export { Cache, InstalledBrowser, } from './Cache.js'; -export { BrowserTag } from './browser-data/types.js'; -export { DefaultProvider } from './DefaultProvider.js'; -export { buildArchiveFilename, } from './provider.js'; -//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/main.js.map b/node_modules/@puppeteer/browsers/lib/main.js.map deleted file mode 100644 index 3eb2db1..0000000 --- a/node_modules/@puppeteer/browsers/lib/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACZ,4BAA4B,EAC5B,uCAAuC,EACvC,OAAO,GACR,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAC7B,OAAO,EACL,KAAK,EACL,gBAAgB,GAGjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,oBAAoB,GAErB,MAAM,eAAe,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/provider.d.ts b/node_modules/@puppeteer/browsers/lib/provider.d.ts deleted file mode 100644 index a9b9c74..0000000 --- a/node_modules/@puppeteer/browsers/lib/provider.d.ts +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import type { Browser, BrowserPlatform } from './browser-data/browser-data.js'; -/** - * Options passed to a provider. - * @public - */ -export interface DownloadOptions { - browser: Browser; - platform: BrowserPlatform; - buildId: string; -} -/** - * Interface for custom browser provider implementations. - * Allows users to implement alternative download sources for browsers. - * - * ⚠️ **IMPORTANT**: Custom providers are NOT officially supported by - * Puppeteer. - * - * By implementing this interface, you accept full responsibility for: - * - * - Ensuring downloaded binaries are compatible with Puppeteer's expectations - * - Testing that browser launch and other features work with your binaries - * - Maintaining compatibility when Puppeteer or your download source changes - * - Version consistency across platforms if mixing sources - * - * Puppeteer only tests and guarantees Chrome for Testing binaries. - * - * @example - * - * ```typescript - * class ElectronDownloader implements BrowserProvider { - * supports(options: DownloadOptions): boolean { - * return options.browser === Browser.CHROMEDRIVER; - * } - * - * getDownloadUrl(options: DownloadOptions): URL { - * const platform = mapToPlatform(options.platform); - * return new URL( - * `v${options.buildId}/chromedriver-v${options.buildId}-${platform}.zip`, - * 'https://github.com/electron/electron/releases/download/', - * ); - * } - * - * getExecutablePath(options): string { - * const ext = options.platform.includes('win') ? '.exe' : ''; - * return `chromedriver/chromedriver${ext}`; - * } - * } - * ``` - * - * @public - */ -export interface BrowserProvider { - /** - * Check if this provider supports the given browser/platform. - * Used for filtering before attempting downloads. - * - * Can be synchronous for quick checks or asynchronous if version - * resolution/network requests are needed. - * - * @param options - Download options to check - * @returns True if this provider supports the browser/platform combination - */ - supports(options: DownloadOptions): Promise | boolean; - /** - * Get the download URL for the requested browser. - * - * The buildId can be either an exact version (e.g., "131.0.6778.109") - * or an alias (e.g., "latest", "stable"). Custom providers should handle - * version resolution internally if they support aliases. - * - * Returns null if the buildId cannot be resolved to a valid version. - * The URL is not validated - download will fail later if URL doesn't exist. - * - * Can be synchronous for simple URL construction or asynchronous if version - * resolution/network requests are needed. - * - * @param options - Download options (buildId may be alias or exact version) - * @returns Download URL, or null if version cannot be resolved - * @example - * - * ```ts - * // Synchronous example - * getDownloadUrl(options) { - * const platform = mapPlatform(options.platform); - * return new URL(`https://releases.example.com/v${options.buildId}/${platform}.zip`); - * } - * - * // Asynchronous example with version mapping - * async getDownloadUrl(options) { - * const electronVersion = await resolveElectronVersion(options.buildId); - * if (!electronVersion) return null; - * - * const platform = mapPlatform(options.platform); - * return new URL(`https://github.com/electron/electron/releases/download/v${electronVersion}/${platform}.zip`); - * } - * ``` - */ - getDownloadUrl(options: DownloadOptions): Promise | URL | null; - /** - * Get the relative path to the executable within the extracted archive. - * - * @param options - Browser, buildId, and platform - * @returns Relative path to the executable - * @example - * - * ```ts - * // Electron uses simple structure - * getExecutablePath() { - * return 'chromedriver/chromedriver'; - * } - * - * // Custom provider with platform-specific paths - * getExecutablePath(options) { - * return `binaries/${options.browser}-${options.platform}`; - * } - * ``` - */ - getExecutablePath(options: { - browser: Browser; - buildId: string; - platform: BrowserPlatform; - }): Promise | string; - /** - * Get the name of this provider. - * Used for error messages and logging purposes. - * - * @returns The provider name (e.g., "DefaultProvider", "CustomProvider") - * - * @remarks - * This method is used instead of `constructor.name` to avoid issues with - * minification in production builds. - * - * @example - * - * ```ts - * getName() { - * return 'MyCustomProvider'; - * } - * ``` - */ - getName(): string; -} -/** - * Utility function to build a standard archive filename. - * @public - */ -export declare function buildArchiveFilename(browser: Browser, platform: BrowserPlatform, buildId: string, extension?: string): string; -//# sourceMappingURL=provider.d.ts.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/provider.d.ts.map b/node_modules/@puppeteer/browsers/lib/provider.d.ts.map deleted file mode 100644 index bfae094..0000000 --- a/node_modules/@puppeteer/browsers/lib/provider.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,OAAO,EAAE,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAE3E;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,OAAO,EAAE;QACzB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,eAAe,CAAC;KAC3B,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAE7B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,IAAI,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,SAAQ,GAChB,MAAM,CAER"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/provider.js b/node_modules/@puppeteer/browsers/lib/provider.js deleted file mode 100644 index 6e494b3..0000000 --- a/node_modules/@puppeteer/browsers/lib/provider.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -/** - * Utility function to build a standard archive filename. - * @public - */ -export function buildArchiveFilename(browser, platform, buildId, extension = 'zip') { - return `${browser}-${platform}-${buildId}.${extension}`; -} -//# sourceMappingURL=provider.js.map \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/lib/provider.js.map b/node_modules/@puppeteer/browsers/lib/provider.js.map deleted file mode 100644 index 96d3c8b..0000000 --- a/node_modules/@puppeteer/browsers/lib/provider.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsJH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgB,EAChB,QAAyB,EACzB,OAAe,EACf,SAAS,GAAG,KAAK;IAEjB,OAAO,GAAG,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;AAC1D,CAAC"} \ No newline at end of file diff --git a/node_modules/@puppeteer/browsers/package.json b/node_modules/@puppeteer/browsers/package.json deleted file mode 100644 index c6e673c..0000000 --- a/node_modules/@puppeteer/browsers/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "name": "@puppeteer/browsers", - "version": "3.0.3", - "description": "Download and launch browsers", - "scripts": { - "build:docs": "wireit", - "build": "wireit", - "build:test": "wireit", - "clean": "../../tools/clean.mjs", - "test": "wireit" - }, - "type": "module", - "bin": "lib/main-cli.js", - "main": "./lib/main.js", - "module": "./lib/main.js", - "wireit": { - "build": { - "command": "tsc -b && node --experimental-strip-types ../../tools/chmod.ts 755 lib/main-cli.js", - "files": [ - "src/**/*.ts", - "tsconfig.json" - ], - "clean": "if-file-deleted", - "output": [ - "lib/**" - ] - }, - "build:docs": { - "command": "api-extractor run --local --config \"./api-extractor.docs.json\"", - "files": [ - "api-extractor.docs.json", - "lib/main.d.ts", - "tsconfig.json" - ], - "dependencies": [ - "build" - ] - }, - "build:test": { - "command": "tsc -b test/src/tsconfig.json", - "files": [ - "test/**/*.ts", - "test/src/tsconfig.json" - ], - "output": [ - "test/build/**", - "!test/build/package.json" - ], - "dependencies": [ - "build", - "../testserver:build" - ] - }, - "test": { - "command": "node tools/downloadTestBrowsers.mjs && mocha", - "files": [ - ".mocharc.cjs" - ], - "dependencies": [ - "build:test" - ] - } - }, - "keywords": [ - "puppeteer", - "browsers" - ], - "repository": { - "type": "git", - "url": "https://github.com/puppeteer/puppeteer/tree/main/packages/browsers" - }, - "author": "The Chromium Authors", - "license": "Apache-2.0", - "engines": { - "node": ">=22.12.0" - }, - "files": [ - "lib", - "src", - "!*.tsbuildinfo" - ], - "dependencies": { - "debug": "^4.4.3", - "progress": "^2.0.3", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2", - "semver": "^7.7.4" - }, - "peerDependencies": { - "proxy-agent": ">=8.0.1" - }, - "peerDependenciesMeta": { - "proxy-agent": { - "optional": true - } - }, - "devDependencies": { - "proxy-agent": ">=8.0.1", - "@types/debug": "4.1.13", - "@types/progress": "2.0.7", - "@types/tar-fs": "2.0.4", - "@types/yargs": "17.0.33", - "@types/ws": "8.18.1" - } -} diff --git a/node_modules/@puppeteer/browsers/src/CLI.ts b/node_modules/@puppeteer/browsers/src/CLI.ts deleted file mode 100644 index 9f548d5..0000000 --- a/node_modules/@puppeteer/browsers/src/CLI.ts +++ /dev/null @@ -1,665 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import {spawn} from 'node:child_process'; -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; -import {stdin as input, stdout as output} from 'node:process'; -import * as readline from 'node:readline'; - -import type * as Yargs from 'yargs'; - -import { - Browser, - resolveBuildId, - BrowserPlatform, - type ChromeReleaseChannel, -} from './browser-data/browser-data.js'; -import {Cache} from './Cache.js'; -import {detectBrowserPlatform} from './detectPlatform.js'; -import {install} from './install.js'; -import { - computeExecutablePath, - computeSystemExecutablePath, - launch, -} from './launch.js'; - -interface InstallBrowser { - name: Browser; - buildId: string; -} -interface InstallArgs { - browser?: InstallBrowser; - path?: string; - platform?: BrowserPlatform; - baseUrl?: string; - installDeps?: boolean; - format: string; -} - -function isValidBrowser(browser: unknown): browser is Browser { - return Object.values(Browser).includes(browser as Browser); -} - -function isValidPlatform(platform: unknown): platform is BrowserPlatform { - return Object.values(BrowserPlatform).includes(platform as BrowserPlatform); -} - -// If moved update release-please config -// x-release-please-start-version -const packageVersion = '3.0.3'; -// x-release-please-end - -/** - * @public - */ -export class CLI { - #cachePath: string; - #rl?: readline.Interface; - #scriptName: string; - #version: string; - #allowCachePathOverride: boolean; - #pinnedBrowsers?: Partial< - Record< - Browser, - { - buildId: string; - skipDownload: boolean; - } - > - >; - #prefixCommand?: {cmd: string; description: string}; - - constructor( - opts?: - | string - | { - cachePath?: string; - scriptName?: string; - version?: string; - prefixCommand?: {cmd: string; description: string}; - allowCachePathOverride?: boolean; - pinnedBrowsers?: Partial< - Record< - Browser, - { - buildId: string; - skipDownload: boolean; - } - > - >; - }, - rl?: readline.Interface, - ) { - if (!opts) { - opts = {}; - } - if (typeof opts === 'string') { - opts = { - cachePath: opts, - }; - } - this.#cachePath = opts.cachePath ?? process.cwd(); - this.#rl = rl; - this.#scriptName = opts.scriptName ?? '@puppeteer/browsers'; - this.#version = opts.version ?? packageVersion; - this.#allowCachePathOverride = opts.allowCachePathOverride ?? true; - this.#pinnedBrowsers = opts.pinnedBrowsers; - this.#prefixCommand = opts.prefixCommand; - } - - #defineBrowserParameter( - yargs: Yargs.Argv, - required: true, - ): Yargs.Argv; - #defineBrowserParameter( - yargs: Yargs.Argv, - required: boolean, - ): Yargs.Argv; - #defineBrowserParameter(yargs: Yargs.Argv, required: boolean) { - return yargs.positional('browser', { - description: - 'Which browser to install [@]. `latest` will try to find the latest available build. `buildId` is a browser-specific identifier such as a version or a revision.', - type: 'string', - coerce: (opt): InstallBrowser => { - const browser: InstallBrowser = { - name: this.#parseBrowser(opt), - buildId: this.#parseBuildId(opt), - }; - - if (!isValidBrowser(browser.name)) { - throw new Error(`Unsupported browser '${browser.name}'`); - } - - return browser; - }, - demandOption: required, - }); - } - - #definePlatformParameter(yargs: Yargs.Argv) { - return yargs.option('platform', { - type: 'string', - desc: 'Platform that the binary needs to be compatible with.', - choices: Object.values(BrowserPlatform), - default: detectBrowserPlatform(), - coerce: platform => { - if (!isValidPlatform(platform)) { - throw new Error(`Unsupported platform '${platform}'`); - } - - return platform; - }, - defaultDescription: 'Auto-detected', - }); - } - - #definePathParameter(yargs: Yargs.Argv, required = false) { - if (!this.#allowCachePathOverride) { - return yargs as Yargs.Argv; - } - - return yargs.option('path', { - type: 'string', - desc: 'Path to the root folder for the browser downloads and installation. If a relative path is provided, it will be resolved relative to the current working directory. The installation folder structure is compatible with the cache structure used by Puppeteer.', - defaultDescription: 'Current working directory', - ...(required ? {} : {default: process.cwd()}), - demandOption: required, - }); - } - - async run(argv: string[]): Promise { - const {default: yargs} = await import('yargs'); - const {hideBin} = await import('yargs/helpers'); - const yargsInstance = yargs(hideBin(argv)); - let target = yargsInstance - .scriptName(this.#scriptName) - .version(this.#version); - if (this.#prefixCommand) { - target = target.command( - this.#prefixCommand.cmd, - this.#prefixCommand.description, - yargs => { - return this.#build(yargs); - }, - ); - } else { - target = this.#build(target); - } - await target - .demandCommand(1) - .help() - .wrap(Math.min(120, yargsInstance.terminalWidth())) - .parseAsync(); - } - - #build(yargs: Yargs.Argv) { - const latestOrPinned = this.#pinnedBrowsers ? 'pinned' : 'latest'; - // If there are pinned browsers allow the positional arg to be optional - const browserArgType = this.#pinnedBrowsers ? '[browser]' : ''; - return yargs - .command( - `install ${browserArgType}`, - 'Download and install the specified browser. If successful, the command outputs the actual browser buildId that was installed and the absolute path to the browser executable (see --format).', - yargs => { - if (this.#pinnedBrowsers) { - yargs.example('$0 install', 'Install all pinned browsers'); - } - yargs - .example( - '$0 install chrome', - `Install the ${latestOrPinned} available build of the Chrome browser.`, - ) - .example( - '$0 install chrome@latest', - 'Install the latest available build for the Chrome browser.', - ) - .example( - '$0 install chrome@stable', - 'Install the latest available build for the Chrome browser from the stable channel.', - ) - .example( - '$0 install chrome@beta', - 'Install the latest available build for the Chrome browser from the beta channel.', - ) - .example( - '$0 install chrome@dev', - 'Install the latest available build for the Chrome browser from the dev channel.', - ) - .example( - '$0 install chrome@canary', - 'Install the latest available build for the Chrome Canary browser.', - ) - .example( - '$0 install chrome@115', - 'Install the latest available build for Chrome 115.', - ) - .example( - '$0 install chromedriver@canary', - 'Install the latest available build for ChromeDriver Canary.', - ) - .example( - '$0 install chromedriver@115', - 'Install the latest available build for ChromeDriver 115.', - ) - .example( - '$0 install chromedriver@115.0.5790', - 'Install the latest available patch (115.0.5790.X) build for ChromeDriver.', - ) - .example( - '$0 install chrome-headless-shell', - 'Install the latest available chrome-headless-shell build.', - ) - .example( - '$0 install chrome-headless-shell@beta', - 'Install the latest available chrome-headless-shell build corresponding to the Beta channel.', - ) - .example( - '$0 install chrome-headless-shell@118', - 'Install the latest available chrome-headless-shell 118 build.', - ) - .example( - '$0 install chromium@1083080', - 'Install the revision 1083080 of the Chromium browser.', - ) - .example( - '$0 install firefox', - 'Install the latest nightly available build of the Firefox browser.', - ) - .example( - '$0 install firefox@stable', - 'Install the latest stable build of the Firefox browser.', - ) - .example( - '$0 install firefox@beta', - 'Install the latest beta build of the Firefox browser.', - ) - .example( - '$0 install firefox@devedition', - 'Install the latest devedition build of the Firefox browser.', - ) - .example( - '$0 install firefox@esr', - 'Install the latest ESR build of the Firefox browser.', - ) - .example( - '$0 install firefox@nightly', - 'Install the latest nightly build of the Firefox browser.', - ) - .example( - '$0 install firefox@stable_111.0.1', - 'Install a specific version of the Firefox browser.', - ) - .example( - '$0 install firefox --platform mac', - 'Install the latest Mac (Intel) build of the Firefox browser.', - ); - if (this.#allowCachePathOverride) { - yargs.example( - '$0 install firefox --path /tmp/my-browser-cache', - 'Install to the specified cache directory.', - ); - } - - const yargsWithBrowserParam = this.#defineBrowserParameter( - yargs, - !Boolean(this.#pinnedBrowsers), - ); - const yargsWithPlatformParam = this.#definePlatformParameter( - yargsWithBrowserParam, - ); - return this.#definePathParameter(yargsWithPlatformParam, false) - .option('base-url', { - type: 'string', - desc: 'Base URL to download from', - }) - .option('install-deps', { - type: 'boolean', - desc: 'Whether to attempt installing system dependencies (only supported on Linux, requires root privileges).', - default: false, - }) - .option('format', { - type: 'string', - desc: 'Format to use for the output. Supported placeholders: {{browser}}, {{buildId}}, {{path}}, {{platform}}', - default: '{{browser}}@{{buildId}} {{path}}', - }); - }, - async args => { - if (this.#pinnedBrowsers && !args.browser) { - // Use allSettled to avoid scenarios that - // a browser may fail early and leave the other - // installation in a faulty state - const result = await Promise.allSettled( - Object.entries(this.#pinnedBrowsers).map( - async ([browser, options]) => { - if (options.skipDownload) { - return; - } - await this.#install({ - ...args, - browser: { - name: browser as Browser, - buildId: options.buildId, - }, - }); - }, - ), - ); - - for (const install of result) { - if (install.status === 'rejected') { - throw install.reason; - } - } - } else { - await this.#install(args); - } - }, - ) - .command( - 'launch ', - 'Launch the specified browser', - yargs => { - yargs - .example( - '$0 launch chrome@115.0.5790.170', - 'Launch Chrome 115.0.5790.170', - ) - .example( - '$0 launch firefox@112.0a1', - 'Launch the Firefox browser identified by the milestone 112.0a1.', - ) - .example( - '$0 launch chrome@115.0.5790.170 --detached', - 'Launch the browser but detach the sub-processes.', - ) - .example( - '$0 launch chrome@canary --system', - 'Try to locate the Canary build of Chrome installed on the system and launch it.', - ) - .example( - '$0 launch chrome@115.0.5790.170 -- --version', - 'Launch Chrome 115.0.5790.170 and pass custom argument to the binary.', - ); - - const yargsWithExtraAgs = yargs.parserConfiguration({ - 'populate--': true, - // Yargs does not have the correct overload for this. - }) as Yargs.Argv<{'--'?: Array}>; - const yargsWithBrowserParam = this.#defineBrowserParameter( - yargsWithExtraAgs, - true, - ); - const yargsWithPlatformParam = this.#definePlatformParameter( - yargsWithBrowserParam, - ); - return this.#definePathParameter(yargsWithPlatformParam) - .option('detached', { - type: 'boolean', - desc: 'Detach the child process.', - default: false, - }) - .option('system', { - type: 'boolean', - desc: 'Search for a browser installed on the system instead of the cache folder.', - default: false, - }) - .option('dumpio', { - type: 'boolean', - desc: "Forwards the browser's process stdout and stderr", - default: false, - }); - }, - async args => { - const extraArgs = args['--']?.filter(arg => { - return typeof arg === 'string'; - }); - - args.browser.buildId = this.#resolvePinnedBrowserIfNeeded( - args.browser.buildId, - args.browser.name, - ); - - const executablePath = args.system - ? computeSystemExecutablePath({ - browser: args.browser.name, - // TODO: throw an error if not a ChromeReleaseChannel is provided. - channel: args.browser.buildId as ChromeReleaseChannel, - platform: args.platform, - }) - : computeExecutablePath({ - browser: args.browser.name, - buildId: args.browser.buildId, - cacheDir: args.path ?? this.#cachePath, - platform: args.platform, - }); - launch({ - args: extraArgs, - executablePath, - dumpio: args.dumpio, - detached: args.detached, - }); - }, - ) - .command( - 'clear', - this.#allowCachePathOverride - ? 'Removes all installed browsers from the specified cache directory' - : `Removes all installed browsers from ${this.#cachePath}`, - yargs => { - return this.#definePathParameter(yargs, true); - }, - async args => { - const cacheDir = args.path ?? this.#cachePath; - const rl = this.#rl ?? readline.createInterface({input, output}); - rl.question( - `Do you want to permanently and recursively delete the content of ${cacheDir} (yes/No)? `, - answer => { - rl.close(); - if (!['y', 'yes'].includes(answer.toLowerCase().trim())) { - console.log('Cancelled.'); - return; - } - const cache = new Cache(cacheDir); - cache.clear(); - console.log(`${cacheDir} cleared.`); - }, - ); - }, - ) - .command( - 'list', - 'List all installed browsers in the cache directory', - yargs => { - yargs.example( - '$0 list', - 'List all installed browsers in the cache directory', - ); - if (this.#allowCachePathOverride) { - yargs.example( - '$0 list --path /tmp/my-browser-cache', - 'List browsers installed in the specified cache directory', - ); - } - - return this.#definePathParameter(yargs); - }, - async args => { - const cacheDir = args.path ?? this.#cachePath; - const cache = new Cache(cacheDir); - const browsers = cache.getInstalledBrowsers(); - - for (const browser of browsers) { - console.log( - `${browser.browser}@${browser.buildId} (${browser.platform}) ${browser.executablePath}`, - ); - } - }, - ) - .command( - 'bisect ', - '(experimental) Bisect Chrome for Testing using the specified script. Downloads https://chromium.googlesource.com/chromium/src.git/+/main/tools/bisect-builds.py to ~/bisect-builds.py if needed.', - yargs => { - return yargs - .positional('path', { - type: 'string', - description: 'Path to a script or test name to bisect.', - demandOption: true, - }) - .option('good', { - type: 'string', - alias: 'g', - demandOption: true, - desc: 'Last known good version', - }) - .option('bad', { - type: 'string', - alias: 'b', - demandOption: true, - desc: 'First known bad version', - }) - .option('cft', { - type: 'boolean', - desc: 'Use -cft', - default: true, - }); - }, - async args => { - const isScript = - args.path.endsWith('.mjs') || - args.path.endsWith('.cjs') || - args.path.endsWith('.js'); - const testCommand = isScript - ? `PUPPETEER_EXECUTABLE_PATH=%p node ${args.path}` - : `BINARY=%p npm run ${args.path}`; - - const bisectScriptPath = path.join(os.homedir(), 'bisect-builds.py'); - - if (!fs.existsSync(bisectScriptPath)) { - console.log('Downloading bisect-builds.py...'); - const response = await fetch( - 'https://chromium.googlesource.com/chromium/src.git/+/main/tools/bisect-builds.py?format=TEXT', - ); - if (!response.ok) { - throw new Error( - `Failed to download bisect-builds.py: ${response.statusText}`, - ); - } - const base64Text = await response.text(); - const decodedText = Buffer.from(base64Text, 'base64').toString( - 'utf-8', - ); - fs.writeFileSync(bisectScriptPath, decodedText, {mode: 0o755}); - console.log(`Saved bisect-builds.py to ${bisectScriptPath}`); - } - - const pythonExecutable = 'python3'; - const bisectArgs = [ - bisectScriptPath, - '-g', - args.good, - '-b', - args.bad, - args.cft ? '-cft' : '-s', - '-v', - '--verify-range', - '--not-interactive', - '-c', - testCommand, - ]; - - await new Promise((resolve, reject) => { - const createProcess = spawn(pythonExecutable, bisectArgs, { - stdio: 'inherit', - }); - - createProcess.on('error', message => { - reject(message); - }); - - createProcess.on('exit', code => { - if (code !== 0) { - reject(new Error(`Process exited with code ${code}`)); - } else { - resolve(); - } - }); - }); - }, - ) - .demandCommand(1) - .help(); - } - - #parseBrowser(version: string): Browser { - return version.split('@').shift() as Browser; - } - - #parseBuildId(version: string): string { - const parts = version.split('@'); - return parts.length === 2 - ? parts[1]! - : this.#pinnedBrowsers - ? 'pinned' - : 'latest'; - } - - #resolvePinnedBrowserIfNeeded(buildId: string, browserName: Browser): string { - if (buildId === 'pinned') { - const options = this.#pinnedBrowsers?.[browserName]; - if (!options || !options.buildId) { - throw new Error(`No pinned version found for ${browserName}`); - } - return options.buildId; - } - return buildId; - } - - async #install(args: InstallArgs) { - if (!args.browser) { - throw new Error(`No browser arg provided`); - } - if (!args.platform) { - throw new Error(`Could not resolve the current platform`); - } - args.browser.buildId = this.#resolvePinnedBrowserIfNeeded( - args.browser.buildId, - args.browser.name, - ); - const originalBuildId = args.browser.buildId; - args.browser.buildId = await resolveBuildId( - args.browser.name, - args.platform, - args.browser.buildId, - ); - await install({ - browser: args.browser.name, - buildId: args.browser.buildId, - platform: args.platform, - cacheDir: args.path ?? this.#cachePath, - downloadProgressCallback: 'default', - baseUrl: args.baseUrl, - buildIdAlias: - originalBuildId !== args.browser.buildId ? originalBuildId : undefined, - installDeps: args.installDeps, - }); - const executablePath = computeExecutablePath({ - browser: args.browser.name, - buildId: args.browser.buildId, - cacheDir: args.path ?? this.#cachePath, - platform: args.platform, - }); - - console.log( - args.format - .replace(/{{browser}}/g, args.browser.name) - .replace(/{{buildId}}/g, args.browser.buildId) - .replace(/{{path}}/g, executablePath) - .replace(/{{platform}}/g, args.platform), - ); - } -} diff --git a/node_modules/@puppeteer/browsers/src/Cache.ts b/node_modules/@puppeteer/browsers/src/Cache.ts deleted file mode 100644 index b8dbf68..0000000 --- a/node_modules/@puppeteer/browsers/src/Cache.ts +++ /dev/null @@ -1,320 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import fs from 'node:fs'; -import os from 'node:os'; -import path from 'node:path'; - -import { - Browser, - type BrowserPlatform, - executablePathByBrowser, - getVersionComparator, -} from './browser-data/browser-data.js'; -import {debug} from './debug.js'; -import {detectBrowserPlatform} from './detectPlatform.js'; - -const debugCache = debug('puppeteer:browsers:cache'); - -/** - * @public - */ -export class InstalledBrowser { - browser: Browser; - buildId: string; - platform: BrowserPlatform; - readonly executablePath: string; - - #cache: Cache; - - /** - * @internal - */ - constructor( - cache: Cache, - browser: Browser, - buildId: string, - platform: BrowserPlatform, - ) { - this.#cache = cache; - this.browser = browser; - this.buildId = buildId; - this.platform = platform; - this.executablePath = cache.computeExecutablePath({ - browser, - buildId, - platform, - }); - } - - /** - * Path to the root of the installation folder. Use - * {@link computeExecutablePath} to get the path to the executable binary. - */ - get path(): string { - return this.#cache.installationDir( - this.browser, - this.platform, - this.buildId, - ); - } - - readMetadata(): Metadata { - return this.#cache.readMetadata(this.browser); - } - - writeMetadata(metadata: Metadata): void { - this.#cache.writeMetadata(this.browser, metadata); - } -} - -/** - * @internal - */ -export interface ComputeExecutablePathOptions { - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; -} - -/** - * @public - */ -export interface Metadata { - // Maps an alias (canary/latest/dev/etc.) to a buildId. - aliases: Record; - // Maps installation key (platform-buildId) to executable path. - executablePaths?: Record; -} - -/** - * The cache used by Puppeteer relies on the following structure: - * - * - rootDir - * -- | browserRoot(browser1) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * -- | browserRoot(browser2) - * ---- - | installationDir() - * ------ the browser-platform-buildId - * ------ specific structure. - * @internal - */ -export class Cache { - #rootDir: string; - - constructor(rootDir: string) { - this.#rootDir = rootDir; - } - - /** - * @internal - */ - get rootDir(): string { - return this.#rootDir; - } - - browserRoot(browser: Browser): string { - return path.join(this.#rootDir, browser); - } - - metadataFile(browser: Browser): string { - return path.join(this.browserRoot(browser), '.metadata'); - } - - readMetadata(browser: Browser): Metadata { - const metatadaPath = this.metadataFile(browser); - if (!fs.existsSync(metatadaPath)) { - return {aliases: {}}; - } - // TODO: add type-safe parsing. - const data = JSON.parse(fs.readFileSync(metatadaPath, 'utf8')); - if (typeof data !== 'object') { - throw new Error('.metadata is not an object'); - } - return data; - } - - writeMetadata(browser: Browser, metadata: Metadata): void { - const metatadaPath = this.metadataFile(browser); - fs.mkdirSync(path.dirname(metatadaPath), {recursive: true}); - fs.writeFileSync(metatadaPath, JSON.stringify(metadata, null, 2)); - } - - readExecutablePath( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - ): string | null { - const metadata = this.readMetadata(browser); - const key = `${platform}-${buildId}`; - return metadata.executablePaths?.[key] ?? null; - } - - writeExecutablePath( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - executablePath: string, - ): void { - const metadata = this.readMetadata(browser); - if (!metadata.executablePaths) { - metadata.executablePaths = {}; - } - const key = `${platform}-${buildId}`; - metadata.executablePaths[key] = executablePath; - this.writeMetadata(browser, metadata); - } - - resolveAlias(browser: Browser, alias: string): string | undefined { - const metadata = this.readMetadata(browser); - if (alias === 'latest') { - return Object.values(metadata.aliases || {}) - .sort(getVersionComparator(browser)) - .at(-1); - } - return metadata.aliases[alias]; - } - - installationDir( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - ): string { - return path.join(this.browserRoot(browser), `${platform}-${buildId}`); - } - - clear(): void { - fs.rmSync(this.#rootDir, { - force: true, - recursive: true, - maxRetries: 10, - retryDelay: 500, - }); - } - - uninstall( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - ): void { - const metadata = this.readMetadata(browser); - for (const alias of Object.keys(metadata.aliases)) { - if (metadata.aliases[alias] === buildId) { - delete metadata.aliases[alias]; - } - } - // Clean up executable path entry - const key = `${platform}-${buildId}`; - if (metadata.executablePaths?.[key]) { - delete metadata.executablePaths[key]; - this.writeMetadata(browser, metadata); - } - fs.rmSync(this.installationDir(browser, platform, buildId), { - force: true, - recursive: true, - maxRetries: 10, - retryDelay: 500, - }); - } - - getInstalledBrowsers(): InstalledBrowser[] { - if (!fs.existsSync(this.#rootDir)) { - return []; - } - const types = fs.readdirSync(this.#rootDir); - const browsers = types.filter((t): t is Browser => { - return (Object.values(Browser) as string[]).includes(t); - }); - return browsers.flatMap(browser => { - const files = fs.readdirSync(this.browserRoot(browser)); - return files - .map(file => { - const result = parseFolderPath( - path.join(this.browserRoot(browser), file), - ); - if (!result) { - return null; - } - return new InstalledBrowser( - this, - browser, - result.buildId, - result.platform as BrowserPlatform, - ); - }) - .filter((item: InstalledBrowser | null): item is InstalledBrowser => { - return item !== null; - }); - }); - } - - computeExecutablePath(options: ComputeExecutablePathOptions): string { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error( - `Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`, - ); - } - try { - options.buildId = - this.resolveAlias(options.browser, options.buildId) ?? options.buildId; - } catch { - debugCache?.('could not read .metadata file for the browser'); - } - const installationDir = this.installationDir( - options.browser, - options.platform, - options.buildId, - ); - - const storedExecutablePath = this.readExecutablePath( - options.browser, - options.platform, - options.buildId, - ); - if (storedExecutablePath) { - // The metadata contains a resolved relative path from the installation dir - return path.join(installationDir, storedExecutablePath); - } - - return path.join( - installationDir, - executablePathByBrowser[options.browser]( - options.platform, - options.buildId, - ), - ); - } -} - -function parseFolderPath( - folderPath: string, -): {platform: string; buildId: string} | undefined { - const name = path.basename(folderPath); - const splits = name.split('-'); - if (splits.length !== 2) { - return; - } - const [platform, buildId] = splits; - if (!buildId || !platform) { - return; - } - return {platform, buildId}; -} diff --git a/node_modules/@puppeteer/browsers/src/DefaultProvider.spec.ts b/node_modules/@puppeteer/browsers/src/DefaultProvider.spec.ts deleted file mode 100644 index 9c4f597..0000000 --- a/node_modules/@puppeteer/browsers/src/DefaultProvider.spec.ts +++ /dev/null @@ -1,91 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import assert from 'node:assert'; - -import {Browser, BrowserPlatform, DefaultProvider} from './main.js'; - -describe('DefaultProvider', () => { - let provider: DefaultProvider; - - beforeEach(() => { - provider = new DefaultProvider(); - }); - - describe('constructor', () => { - it('should create provider with default base URL', () => { - const defaultProvider = new DefaultProvider(); - assert(defaultProvider instanceof DefaultProvider); - }); - - it('should create provider with custom base URL', () => { - const customBaseUrl = 'https://custom.example.com/'; - const customProvider = new DefaultProvider(customBaseUrl); - assert(customProvider instanceof DefaultProvider); - }); - }); - - describe('BrowserProvider interface compliance', () => { - it('should implement supports method', () => { - assert.strictEqual(typeof provider.supports, 'function'); - }); - - it('should implement getDownloadUrl method', () => { - assert.strictEqual(typeof provider.getDownloadUrl, 'function'); - }); - - it('should implement getExecutablePath method', () => { - assert.strictEqual(typeof provider.getExecutablePath, 'function'); - }); - }); - - describe('basic functionality', () => { - it('should handle different browsers', () => { - // Test with a known build ID that should exist - const result = provider.supports({ - browser: Browser.CHROME, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - - // Chrome for Testing supports all browsers - assert.strictEqual(result, true); - }); - - it('should handle different platforms', () => { - const result = provider.supports({ - browser: Browser.CHROME, - platform: BrowserPlatform.MAC, - buildId: '120.0.6099.109', - }); - - // Chrome for Testing supports all platforms - assert.strictEqual(result, true); - }); - - it('should handle ChromeDriver', () => { - const result = provider.supports({ - browser: Browser.CHROMEDRIVER, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - - // Chrome for Testing supports all browsers - assert.strictEqual(result, true); - }); - - it('should return URL for valid build', () => { - const result = provider.getDownloadUrl({ - browser: Browser.CHROME, - platform: BrowserPlatform.LINUX, - buildId: '120.0.6099.109', - }); - - assert(result instanceof URL); - assert(result.toString().includes('120.0.6099.109')); - }); - }); -}); diff --git a/node_modules/@puppeteer/browsers/src/DefaultProvider.ts b/node_modules/@puppeteer/browsers/src/DefaultProvider.ts deleted file mode 100644 index 4783ed8..0000000 --- a/node_modules/@puppeteer/browsers/src/DefaultProvider.ts +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import type {Browser, BrowserPlatform} from './browser-data/browser-data.js'; -import { - downloadUrls, - executablePathByBrowser, -} from './browser-data/browser-data.js'; -import type {BrowserProvider, DownloadOptions} from './provider.js'; - -/** - * Default provider implementation that uses default sources. - * This is the standard provider used by Puppeteer. - * - * @public - */ -export class DefaultProvider implements BrowserProvider { - #baseUrl?: string; - - constructor(baseUrl?: string) { - this.#baseUrl = baseUrl; - } - - supports(_options: DownloadOptions): boolean { - // Default provider supports all browsers - return true; - } - - getDownloadUrl(options: DownloadOptions): URL { - return this.#getDownloadUrl( - options.browser, - options.platform, - options.buildId, - ); - } - - #getDownloadUrl( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - ): URL { - return new URL(downloadUrls[browser](platform, buildId, this.#baseUrl)); - } - - getExecutablePath(options: { - browser: Browser; - buildId: string; - platform: BrowserPlatform; - }): string { - return executablePathByBrowser[options.browser]( - options.platform, - options.buildId, - ); - } - - getName(): string { - return 'DefaultProvider'; - } -} diff --git a/node_modules/@puppeteer/browsers/src/browser-data/browser-data.ts b/node_modules/@puppeteer/browsers/src/browser-data/browser-data.ts deleted file mode 100644 index 548070f..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/browser-data.ts +++ /dev/null @@ -1,302 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import * as chromeHeadlessShell from './chrome-headless-shell.js'; -import * as chrome from './chrome.js'; -import * as chromedriver from './chromedriver.js'; -import * as chromium from './chromium.js'; -import * as firefox from './firefox.js'; -import { - Browser, - BrowserPlatform, - BrowserTag, - ChromeReleaseChannel, - type ProfileOptions, -} from './types.js'; - -export type {ProfileOptions}; - -export const downloadUrls = { - [Browser.CHROMEDRIVER]: chromedriver.resolveDownloadUrl, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.resolveDownloadUrl, - [Browser.CHROME]: chrome.resolveDownloadUrl, - [Browser.CHROMIUM]: chromium.resolveDownloadUrl, - [Browser.FIREFOX]: firefox.resolveDownloadUrl, -}; - -export const downloadPaths = { - [Browser.CHROMEDRIVER]: chromedriver.resolveDownloadPath, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.resolveDownloadPath, - [Browser.CHROME]: chrome.resolveDownloadPath, - [Browser.CHROMIUM]: chromium.resolveDownloadPath, - [Browser.FIREFOX]: firefox.resolveDownloadPath, -}; - -export const executablePathByBrowser = { - [Browser.CHROMEDRIVER]: chromedriver.relativeExecutablePath, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.relativeExecutablePath, - [Browser.CHROME]: chrome.relativeExecutablePath, - [Browser.CHROMIUM]: chromium.relativeExecutablePath, - [Browser.FIREFOX]: firefox.relativeExecutablePath, -}; - -export const versionComparators = { - [Browser.CHROMEDRIVER]: chromedriver.compareVersions, - [Browser.CHROMEHEADLESSSHELL]: chromeHeadlessShell.compareVersions, - [Browser.CHROME]: chrome.compareVersions, - [Browser.CHROMIUM]: chromium.compareVersions, - [Browser.FIREFOX]: firefox.compareVersions, -}; - -export {Browser, BrowserPlatform, ChromeReleaseChannel}; - -/** - * @internal - */ -async function resolveBuildIdForBrowserTag( - browser: Browser, - platform: BrowserPlatform, - tag: BrowserTag, -): Promise { - switch (browser) { - case Browser.FIREFOX: - switch (tag) { - case BrowserTag.LATEST: - return await firefox.resolveBuildId(firefox.FirefoxChannel.NIGHTLY); - case BrowserTag.BETA: - return await firefox.resolveBuildId(firefox.FirefoxChannel.BETA); - case BrowserTag.NIGHTLY: - return await firefox.resolveBuildId(firefox.FirefoxChannel.NIGHTLY); - case BrowserTag.DEVEDITION: - return await firefox.resolveBuildId( - firefox.FirefoxChannel.DEVEDITION, - ); - case BrowserTag.STABLE: - return await firefox.resolveBuildId(firefox.FirefoxChannel.STABLE); - case BrowserTag.ESR: - return await firefox.resolveBuildId(firefox.FirefoxChannel.ESR); - case BrowserTag.CANARY: - case BrowserTag.DEV: - throw new Error(`${tag.toUpperCase()} is not available for Firefox`); - } - case Browser.CHROME: { - switch (tag) { - case BrowserTag.LATEST: - return await chrome.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.BETA: - return await chrome.resolveBuildId(ChromeReleaseChannel.BETA); - case BrowserTag.CANARY: - return await chrome.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.DEV: - return await chrome.resolveBuildId(ChromeReleaseChannel.DEV); - case BrowserTag.STABLE: - return await chrome.resolveBuildId(ChromeReleaseChannel.STABLE); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error(`${tag.toUpperCase()} is not available for Chrome`); - } - } - case Browser.CHROMEDRIVER: { - switch (tag) { - case BrowserTag.LATEST: - case BrowserTag.CANARY: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.CANARY); - case BrowserTag.BETA: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.BETA); - case BrowserTag.DEV: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.DEV); - case BrowserTag.STABLE: - return await chromedriver.resolveBuildId(ChromeReleaseChannel.STABLE); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error( - `${tag.toUpperCase()} is not available for ChromeDriver`, - ); - } - } - case Browser.CHROMEHEADLESSSHELL: { - switch (tag) { - case BrowserTag.LATEST: - case BrowserTag.CANARY: - return await chromeHeadlessShell.resolveBuildId( - ChromeReleaseChannel.CANARY, - ); - case BrowserTag.BETA: - return await chromeHeadlessShell.resolveBuildId( - ChromeReleaseChannel.BETA, - ); - case BrowserTag.DEV: - return await chromeHeadlessShell.resolveBuildId( - ChromeReleaseChannel.DEV, - ); - case BrowserTag.STABLE: - return await chromeHeadlessShell.resolveBuildId( - ChromeReleaseChannel.STABLE, - ); - case BrowserTag.NIGHTLY: - case BrowserTag.DEVEDITION: - case BrowserTag.ESR: - throw new Error(`${tag} is not available for chrome-headless-shell`); - } - } - case Browser.CHROMIUM: - switch (tag) { - case BrowserTag.LATEST: - return await chromium.resolveBuildId(platform); - case BrowserTag.NIGHTLY: - case BrowserTag.CANARY: - case BrowserTag.DEV: - case BrowserTag.DEVEDITION: - case BrowserTag.BETA: - case BrowserTag.STABLE: - case BrowserTag.ESR: - throw new Error( - `${tag} is not supported for Chromium. Use 'latest' instead.`, - ); - } - } -} - -/** - * @public - */ -export async function resolveBuildId( - browser: Browser, - platform: BrowserPlatform, - tag: string | BrowserTag, -): Promise { - const browserTag = tag as BrowserTag; - if (Object.values(BrowserTag).includes(browserTag)) { - return await resolveBuildIdForBrowserTag(browser, platform, browserTag); - } - - switch (browser) { - case Browser.FIREFOX: - return tag; - case Browser.CHROME: - const chromeResult = await chrome.resolveBuildId(tag); - if (chromeResult) { - return chromeResult; - } - return tag; - case Browser.CHROMEDRIVER: - const chromeDriverResult = await chromedriver.resolveBuildId(tag); - if (chromeDriverResult) { - return chromeDriverResult; - } - return tag; - case Browser.CHROMEHEADLESSSHELL: - const chromeHeadlessShellResult = - await chromeHeadlessShell.resolveBuildId(tag); - if (chromeHeadlessShellResult) { - return chromeHeadlessShellResult; - } - return tag; - case Browser.CHROMIUM: - return tag; - } -} - -/** - * @public - */ -export async function createProfile( - browser: Browser, - opts: ProfileOptions, -): Promise { - switch (browser) { - case Browser.FIREFOX: - return await firefox.createProfile(opts); - case Browser.CHROME: - case Browser.CHROMIUM: - throw new Error(`Profile creation is not support for ${browser} yet`); - } -} - -/** - * @public - * - * Get's the first resolved system path - */ -export function resolveSystemExecutablePath( - browser: Browser, - platform: BrowserPlatform, - channel: ChromeReleaseChannel, -): string { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error( - `System browser detection is not supported for ${browser} yet.`, - ); - case Browser.CHROME: - return chrome.resolveSystemExecutablePaths(platform, channel)[0]; - } -} - -/** - * Returns the expected default user data dir for the given channel. It does not - * check if the dir actually exists. - * - * @public - */ -export function resolveDefaultUserDataDir( - browser: Browser, - platform: BrowserPlatform, - channel: ChromeReleaseChannel, -): string { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error( - `Default user dir detection is not supported for ${browser} yet.`, - ); - case Browser.CHROME: - return chrome.resolveDefaultUserDataDir(platform, channel); - } -} - -/** - * @internal - * - * Returns multiple paths where the executable may be located at on the current system - * ordered by likelihood (based on heuristics). - */ -export function resolveSystemExecutablePaths( - browser: Browser, - platform: BrowserPlatform, - channel: ChromeReleaseChannel, -): [string, ...string[]] { - switch (browser) { - case Browser.CHROMEDRIVER: - case Browser.CHROMEHEADLESSSHELL: - case Browser.FIREFOX: - case Browser.CHROMIUM: - throw new Error( - `System browser detection is not supported for ${browser} yet.`, - ); - case Browser.CHROME: - return chrome.resolveSystemExecutablePaths(platform, channel); - } -} - -/** - * Returns a version comparator for the given browser that can be used to sort - * browser versions. - * - * @public - */ -export function getVersionComparator( - browser: Browser, -): (a: string, b: string) => number { - return versionComparators[browser]; -} diff --git a/node_modules/@puppeteer/browsers/src/browser-data/chrome-headless-shell.ts b/node_modules/@puppeteer/browsers/src/browser-data/chrome-headless-shell.ts deleted file mode 100644 index dda03f5..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/chrome-headless-shell.ts +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import path from 'node:path'; - -import {BrowserPlatform} from './types.js'; - -function folder(platform: BrowserPlatform): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} - -export function resolveDownloadUrl( - platform: BrowserPlatform, - buildId: string, - baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public', -): string { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} - -export function resolveDownloadPath( - platform: BrowserPlatform, - buildId: string, -): string[] { - return [ - buildId, - folder(platform), - `chrome-headless-shell-${folder(platform)}.zip`, - ]; -} - -export function relativeExecutablePath( - platform: BrowserPlatform, - _buildId: string, -): string { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join( - 'chrome-headless-shell-' + folder(platform), - 'chrome-headless-shell', - ); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join( - 'chrome-headless-shell-linux64', - 'chrome-headless-shell', - ); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join( - 'chrome-headless-shell-' + folder(platform), - 'chrome-headless-shell.exe', - ); - } -} - -export {resolveBuildId, compareVersions} from './chrome.js'; diff --git a/node_modules/@puppeteer/browsers/src/browser-data/chrome.ts b/node_modules/@puppeteer/browsers/src/browser-data/chrome.ts deleted file mode 100644 index 5f04751..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/chrome.ts +++ /dev/null @@ -1,422 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import {execSync} from 'node:child_process'; -import os from 'node:os'; -import path from 'node:path'; - -import semver from 'semver'; - -import {getJSON} from '../httpUtil.js'; - -import {BrowserPlatform, ChromeReleaseChannel} from './types.js'; - -function folder(platform: BrowserPlatform): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} - -export function resolveDownloadUrl( - platform: BrowserPlatform, - buildId: string, - baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public', -): string { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} - -export function resolveDownloadPath( - platform: BrowserPlatform, - buildId: string, -): string[] { - return [buildId, folder(platform), `chrome-${folder(platform)}.zip`]; -} - -export function relativeExecutablePath( - platform: BrowserPlatform, - _buildId: string, -): string { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join( - 'chrome-' + folder(platform), - 'Google Chrome for Testing.app', - 'Contents', - 'MacOS', - 'Google Chrome for Testing', - ); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chrome-linux64', 'chrome'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chrome-' + folder(platform), 'chrome.exe'); - } -} - -let baseVersionUrl = 'https://googlechromelabs.github.io/chrome-for-testing'; - -export function changeBaseVersionUrlForTesting(url: string): void { - baseVersionUrl = url; -} -export function resetBaseVersionUrlForTesting(): void { - baseVersionUrl = 'https://googlechromelabs.github.io/chrome-for-testing'; -} - -export async function getLastKnownGoodReleaseForChannel( - channel: ChromeReleaseChannel, -): Promise<{version: string; revision: string}> { - const data = (await getJSON( - new URL(`${baseVersionUrl}/last-known-good-versions.json`), - )) as { - channels: Record; - }; - - for (const channel of Object.keys(data.channels)) { - data.channels[channel.toLowerCase()] = data.channels[channel]!; - delete data.channels[channel]; - } - - return ( - data as { - channels: Record< - ChromeReleaseChannel, - {version: string; revision: string} - >; - } - ).channels[channel]; -} - -export async function getLastKnownGoodReleaseForMilestone( - milestone: string, -): Promise<{version: string; revision: string} | undefined> { - const data = (await getJSON( - new URL(`${baseVersionUrl}/latest-versions-per-milestone.json`), - )) as { - milestones: Record; - }; - return data.milestones[milestone] as - | {version: string; revision: string} - | undefined; -} - -export async function getLastKnownGoodReleaseForBuild( - /** - * @example `112.0.23`, - */ - buildPrefix: string, -): Promise<{version: string; revision: string} | undefined> { - const data = (await getJSON( - new URL(`${baseVersionUrl}/latest-patch-versions-per-build.json`), - )) as { - builds: Record; - }; - return data.builds[buildPrefix] as - | {version: string; revision: string} - | undefined; -} - -export async function resolveBuildId( - channel: ChromeReleaseChannel, -): Promise; -export async function resolveBuildId( - channel: string, -): Promise; -export async function resolveBuildId( - channel: ChromeReleaseChannel | string, -): Promise { - if ( - Object.values(ChromeReleaseChannel).includes( - channel as ChromeReleaseChannel, - ) - ) { - return ( - await getLastKnownGoodReleaseForChannel(channel as ChromeReleaseChannel) - ).version; - } - if (channel.match(/^\d+$/)) { - // Potentially a milestone. - return (await getLastKnownGoodReleaseForMilestone(channel))?.version; - } - if (channel.match(/^\d+\.\d+\.\d+$/)) { - // Potentially a build prefix without the patch version. - return (await getLastKnownGoodReleaseForBuild(channel))?.version; - } - return; -} -const WINDOWS_ENV_PARAM_NAMES = [ - 'PROGRAMFILES', - 'ProgramW6432', - 'ProgramFiles(x86)', - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/installer/mini_installer/README.md - 'LOCALAPPDATA', -]; - -function getChromeWindowsLocation( - channel: ChromeReleaseChannel, - locationsPrefixes: Set, -): [string, ...string[]] { - if (locationsPrefixes.size === 0) { - throw new Error('Non of the common Windows Env variables were set'); - } - - let suffix: string; - switch (channel) { - case ChromeReleaseChannel.STABLE: - suffix = 'Google\\Chrome\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.BETA: - suffix = 'Google\\Chrome Beta\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.CANARY: - suffix = 'Google\\Chrome SxS\\Application\\chrome.exe'; - break; - case ChromeReleaseChannel.DEV: - suffix = 'Google\\Chrome Dev\\Application\\chrome.exe'; - break; - } - - return [...locationsPrefixes.values()].map(l => { - return path.win32.join(l, suffix); - }) as [string, ...string[]]; -} - -function getWslVariable(variable: string): string | undefined { - try { - // The Windows env for the paths are not passed down - // to WSL, so we evoke `cmd.exe` which is usually on the PATH - // from which the env can be access with all uppercase names. - // The return value is a Windows Path - `C:\Program Files`. - - const result = execSync( - `cmd.exe /c echo %${variable.toLocaleUpperCase()}%`, - { - // We need to ignore the stderr as cmd.exe - // prints a message about wrong UNC path not supported. - stdio: ['ignore', 'pipe', 'ignore'], - encoding: 'utf-8', - }, - ).trim(); - if (result) { - return result; - } - } catch {} - return; -} - -function getWslLocation(channel: ChromeReleaseChannel): [string, ...string[]] { - const wslVersion = execSync('wslinfo --version', { - stdio: ['ignore', 'pipe', 'ignore'], - encoding: 'utf-8', - }).trim(); - if (!wslVersion) { - throw new Error('Not in WSL or unsupported version of WSL.'); - } - const wslPrefixes = new Set(); - for (const name of WINDOWS_ENV_PARAM_NAMES) { - const wslPrefix = getWslVariable(name); - if (wslPrefix) { - wslPrefixes.add(wslPrefix); - } - } - const windowsPath = getChromeWindowsLocation(channel, wslPrefixes); - - return windowsPath.map(path => { - // The above command returned the Windows paths `C:\Program Files\...\chrome.exe` - // Use the `wslpath` utility tool to transform into the mounted disk - return execSync(`wslpath "${path}"`).toString().trim(); - }) as [string, ...string[]]; -} - -function getChromeLinuxOrWslLocation( - channel: ChromeReleaseChannel, -): [string, ...string[]] { - const locations: string[] = []; - - switch (channel) { - case ChromeReleaseChannel.STABLE: - locations.push('/opt/google/chrome/chrome'); - break; - case ChromeReleaseChannel.BETA: - locations.push('/opt/google/chrome-beta/chrome'); - break; - case ChromeReleaseChannel.CANARY: - locations.push('/opt/google/chrome-canary/chrome'); - break; - case ChromeReleaseChannel.DEV: - locations.push('/opt/google/chrome-unstable/chrome'); - break; - } - - try { - const wslPath = getWslLocation(channel); - if (wslPath) { - locations.push(...wslPath); - } - } catch { - // Ignore WSL errors - } - - return locations as [string, ...string[]]; -} - -export function resolveSystemExecutablePaths( - platform: BrowserPlatform, - channel: ChromeReleaseChannel, -): [string, ...string[]] { - switch (platform) { - case BrowserPlatform.WIN64: - case BrowserPlatform.WIN32: - const prefixLocation = new Set( - WINDOWS_ENV_PARAM_NAMES.map(name => { - return process.env[name]; - }).filter((l): l is string => { - return !!l; - }), - ); - // Fallbacks in case env vars are misconfigured. - prefixLocation.add('C:\\Program Files'); - prefixLocation.add('C:\\Program Files (x86)'); - prefixLocation.add('D:\\Program Files'); - prefixLocation.add('D:\\Program Files (x86)'); - return getChromeWindowsLocation(channel, prefixLocation); - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - switch (channel) { - case ChromeReleaseChannel.STABLE: - return [ - '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', - ]; - case ChromeReleaseChannel.BETA: - return [ - '/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta', - ]; - case ChromeReleaseChannel.CANARY: - return [ - '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary', - ]; - case ChromeReleaseChannel.DEV: - return [ - '/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev', - ]; - } - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return getChromeLinuxOrWslLocation(channel); - } -} - -export function resolveDefaultUserDataDir( - platform: BrowserPlatform, - channel: ChromeReleaseChannel, -): string { - switch (platform) { - case BrowserPlatform.WIN64: - case BrowserPlatform.WIN32: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_win.cc;l=42;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join( - getLocalAppDataWin(), - 'Google', - 'Chrome', - 'User Data', - ); - case ChromeReleaseChannel.BETA: - return path.join( - getLocalAppDataWin(), - 'Google', - 'Chrome Beta', - 'User Data', - ); - case ChromeReleaseChannel.CANARY: - return path.join( - getLocalAppDataWin(), - 'Google', - 'Chrome SxS', - 'User Data', - ); - case ChromeReleaseChannel.DEV: - return path.join( - getLocalAppDataWin(), - 'Google', - 'Chrome Dev', - 'User Data', - ); - } - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_mac.mm;l=86;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join(getBaseUserDataDirPathMac(), 'Chrome'); - case ChromeReleaseChannel.BETA: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Beta'); - case ChromeReleaseChannel.DEV: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Dev'); - case ChromeReleaseChannel.CANARY: - return path.join(getBaseUserDataDirPathMac(), 'Chrome Canary'); - } - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - // https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_paths_linux.cc;l=80;drc=4c86c7940a47c36b8bf52c134483ef2da86caa62 - switch (channel) { - case ChromeReleaseChannel.STABLE: - return path.join(getConfigHomeLinux(), 'google-chrome'); - case ChromeReleaseChannel.BETA: - return path.join(getConfigHomeLinux(), 'google-chrome-beta'); - case ChromeReleaseChannel.CANARY: - return path.join(getConfigHomeLinux(), 'google-chrome-canary'); - case ChromeReleaseChannel.DEV: - return path.join(getConfigHomeLinux(), 'google-chrome-unstable'); - } - } -} - -function getLocalAppDataWin() { - return ( - process.env['LOCALAPPDATA'] || path.join(os.homedir(), 'AppData', 'Local') - ); -} - -function getConfigHomeLinux() { - return ( - process.env['CHROME_CONFIG_HOME'] || - process.env['XDG_CONFIG_HOME'] || - path.join(os.homedir(), '.config') - ); -} - -function getBaseUserDataDirPathMac() { - return path.join(os.homedir(), 'Library', 'Application Support', 'Google'); -} - -export function compareVersions(a: string, b: string): number { - if (!semver.valid(a)) { - throw new Error(`Version ${a} is not a valid semver version`); - } - if (!semver.valid(b)) { - throw new Error(`Version ${b} is not a valid semver version`); - } - if (semver.gt(a, b)) { - return 1; - } else if (semver.lt(a, b)) { - return -1; - } else { - return 0; - } -} diff --git a/node_modules/@puppeteer/browsers/src/browser-data/chromedriver.ts b/node_modules/@puppeteer/browsers/src/browser-data/chromedriver.ts deleted file mode 100644 index fd7b8bd..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/chromedriver.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ -import path from 'node:path'; - -import {BrowserPlatform} from './types.js'; - -function folder(platform: BrowserPlatform): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'linux64'; - case BrowserPlatform.MAC_ARM: - return 'mac-arm64'; - case BrowserPlatform.MAC: - return 'mac-x64'; - case BrowserPlatform.WIN32: - return 'win32'; - case BrowserPlatform.WIN64: - return 'win64'; - } -} - -export function resolveDownloadUrl( - platform: BrowserPlatform, - buildId: string, - baseUrl = 'https://storage.googleapis.com/chrome-for-testing-public', -): string { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} - -export function resolveDownloadPath( - platform: BrowserPlatform, - buildId: string, -): string[] { - return [buildId, folder(platform), `chromedriver-${folder(platform)}.zip`]; -} - -export function relativeExecutablePath( - platform: BrowserPlatform, - _buildId: string, -): string { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join('chromedriver-' + folder(platform), 'chromedriver'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chromedriver-linux64', 'chromedriver'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chromedriver-' + folder(platform), 'chromedriver.exe'); - } -} - -export {resolveBuildId, compareVersions} from './chrome.js'; diff --git a/node_modules/@puppeteer/browsers/src/browser-data/chromium.ts b/node_modules/@puppeteer/browsers/src/browser-data/chromium.ts deleted file mode 100644 index 9b35110..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/chromium.ts +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import path from 'node:path'; - -import {getText} from '../httpUtil.js'; - -import {BrowserPlatform} from './types.js'; - -function archive(platform: BrowserPlatform, buildId: string): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'chrome-linux'; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return 'chrome-mac'; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - // Windows archive name changed at r591479. - return parseInt(buildId, 10) > 591479 ? 'chrome-win' : 'chrome-win32'; - } -} - -function folder(platform: BrowserPlatform): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return 'Linux_x64'; - case BrowserPlatform.MAC_ARM: - return 'Mac_Arm'; - case BrowserPlatform.MAC: - return 'Mac'; - case BrowserPlatform.WIN32: - return 'Win'; - case BrowserPlatform.WIN64: - return 'Win_x64'; - } -} - -export function resolveDownloadUrl( - platform: BrowserPlatform, - buildId: string, - baseUrl = 'https://storage.googleapis.com/chromium-browser-snapshots', -): string { - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} - -export function resolveDownloadPath( - platform: BrowserPlatform, - buildId: string, -): string[] { - return [folder(platform), buildId, `${archive(platform, buildId)}.zip`]; -} - -export function relativeExecutablePath( - platform: BrowserPlatform, - _buildId: string, -): string { - switch (platform) { - case BrowserPlatform.MAC: - case BrowserPlatform.MAC_ARM: - return path.join( - 'chrome-mac', - 'Chromium.app', - 'Contents', - 'MacOS', - 'Chromium', - ); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('chrome-linux', 'chrome'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('chrome-win', 'chrome.exe'); - } -} -export async function resolveBuildId( - platform: BrowserPlatform, -): Promise { - return await getText( - new URL( - `https://storage.googleapis.com/chromium-browser-snapshots/${folder( - platform, - )}/LAST_CHANGE`, - ), - ); -} - -export function compareVersions(a: string, b: string): number { - return Number(a) - Number(b); -} diff --git a/node_modules/@puppeteer/browsers/src/browser-data/firefox.ts b/node_modules/@puppeteer/browsers/src/browser-data/firefox.ts deleted file mode 100644 index 41922ff..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/firefox.ts +++ /dev/null @@ -1,469 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import fs from 'node:fs'; -import path from 'node:path'; - -import {getJSON} from '../httpUtil.js'; - -import {BrowserPlatform, type ProfileOptions} from './types.js'; - -function getFormat(buildId: string): string { - const majorVersion = Number(buildId.split('.').shift()!); - return majorVersion >= 135 ? 'xz' : 'bz2'; -} - -function archiveNightly(platform: BrowserPlatform, buildId: string): string { - switch (platform) { - case BrowserPlatform.LINUX: - return `firefox-${buildId}.en-US.linux-x86_64.tar.${getFormat(buildId)}`; - case BrowserPlatform.LINUX_ARM: - return `firefox-${buildId}.en-US.linux-aarch64.tar.${getFormat(buildId)}`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `firefox-${buildId}.en-US.mac.dmg`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return `firefox-${buildId}.en-US.${platform}.zip`; - } -} - -function archive(platform: BrowserPlatform, buildId: string): string { - switch (platform) { - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return `firefox-${buildId}.tar.${getFormat(buildId)}`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `Firefox ${buildId}.dmg`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return `Firefox Setup ${buildId}.exe`; - } -} - -function platformName(platform: BrowserPlatform): string { - switch (platform) { - case BrowserPlatform.LINUX: - return `linux-x86_64`; - case BrowserPlatform.LINUX_ARM: - return `linux-aarch64`; - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return `mac`; - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return platform; - } -} - -function parseBuildId(buildId: string): [FirefoxChannel, string] { - for (const value of Object.values(FirefoxChannel)) { - if (buildId.startsWith(value + '_')) { - buildId = buildId.substring(value.length + 1); - return [value, buildId]; - } - } - // Older versions do not have channel as the prefix.« - return [FirefoxChannel.NIGHTLY, buildId]; -} - -export function resolveDownloadUrl( - platform: BrowserPlatform, - buildId: string, - baseUrl?: string, -): string { - const [channel] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - baseUrl ??= - 'https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central'; - break; - case FirefoxChannel.DEVEDITION: - baseUrl ??= 'https://archive.mozilla.org/pub/devedition/releases'; - break; - case FirefoxChannel.BETA: - case FirefoxChannel.STABLE: - case FirefoxChannel.ESR: - baseUrl ??= 'https://archive.mozilla.org/pub/firefox/releases'; - break; - } - return `${baseUrl}/${resolveDownloadPath(platform, buildId).join('/')}`; -} - -export function resolveDownloadPath( - platform: BrowserPlatform, - buildId: string, -): string[] { - const [channel, resolvedBuildId] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - return [archiveNightly(platform, resolvedBuildId)]; - case FirefoxChannel.DEVEDITION: - case FirefoxChannel.BETA: - case FirefoxChannel.STABLE: - case FirefoxChannel.ESR: - return [ - resolvedBuildId, - platformName(platform), - 'en-US', - archive(platform, resolvedBuildId), - ]; - } -} - -export function relativeExecutablePath( - platform: BrowserPlatform, - buildId: string, -): string { - const [channel] = parseBuildId(buildId); - switch (channel) { - case FirefoxChannel.NIGHTLY: - switch (platform) { - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return path.join( - 'Firefox Nightly.app', - 'Contents', - 'MacOS', - 'firefox', - ); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('firefox', 'firefox'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('firefox', 'firefox.exe'); - } - case FirefoxChannel.BETA: - case FirefoxChannel.DEVEDITION: - case FirefoxChannel.ESR: - case FirefoxChannel.STABLE: - switch (platform) { - case BrowserPlatform.MAC_ARM: - case BrowserPlatform.MAC: - return path.join('Firefox.app', 'Contents', 'MacOS', 'firefox'); - case BrowserPlatform.LINUX_ARM: - case BrowserPlatform.LINUX: - return path.join('firefox', 'firefox'); - case BrowserPlatform.WIN32: - case BrowserPlatform.WIN64: - return path.join('core', 'firefox.exe'); - } - } -} - -export enum FirefoxChannel { - STABLE = 'stable', - ESR = 'esr', - DEVEDITION = 'devedition', - BETA = 'beta', - NIGHTLY = 'nightly', -} - -let baseVersionUrl = 'https://product-details.mozilla.org/1.0'; - -export function changeBaseVersionUrlForTesting(url: string): void { - baseVersionUrl = url; -} - -export function resetBaseVersionUrlForTesting(): void { - baseVersionUrl = 'https://product-details.mozilla.org/1.0'; -} - -export async function resolveBuildId( - channel: FirefoxChannel = FirefoxChannel.NIGHTLY, -): Promise { - const channelToVersionKey = { - [FirefoxChannel.ESR]: 'FIREFOX_ESR', - [FirefoxChannel.STABLE]: 'LATEST_FIREFOX_VERSION', - [FirefoxChannel.DEVEDITION]: 'FIREFOX_DEVEDITION', - [FirefoxChannel.BETA]: 'FIREFOX_DEVEDITION', - [FirefoxChannel.NIGHTLY]: 'FIREFOX_NIGHTLY', - }; - const versions = (await getJSON( - new URL(`${baseVersionUrl}/firefox_versions.json`), - )) as Record; - const version = versions[channelToVersionKey[channel]]; - if (!version) { - throw new Error(`Channel ${channel} is not found.`); - } - return channel + '_' + version; -} - -export async function createProfile(options: ProfileOptions): Promise { - if (!fs.existsSync(options.path)) { - await fs.promises.mkdir(options.path, { - recursive: true, - }); - } - await syncPreferences({ - preferences: { - ...defaultProfilePreferences(options.preferences), - ...options.preferences, - }, - path: options.path, - }); -} - -function defaultProfilePreferences( - extraPrefs: Record, -): Record { - const server = 'dummy.test'; - - const defaultPrefs = { - // Make sure Shield doesn't hit the network. - 'app.normandy.api_url': '', - // Disable Firefox old build background check - 'app.update.checkInstallTime': false, - // Disable automatically upgrading Firefox - 'app.update.disabledForTesting': true, - - // Increase the APZ content response timeout to 1 minute - 'apz.content_response_timeout': 60000, - - // Prevent various error message on the console - // jest-puppeteer asserts that no error message is emitted by the console - 'browser.contentblocking.features.standard': - '-tp,tpPrivate,cookieBehavior0,-cryptoTP,-fp', - - // Enable the dump function: which sends messages to the system - // console - // https://bugzilla.mozilla.org/show_bug.cgi?id=1543115 - 'browser.dom.window.dump.enabled': true, - // Disable topstories - 'browser.newtabpage.activity-stream.feeds.system.topstories': false, - // Always display a blank page - 'browser.newtabpage.enabled': false, - // Background thumbnails in particular cause grief: and disabling - // thumbnails in general cannot hurt - 'browser.pagethumbnails.capturing_disabled': true, - - // Disable safebrowsing components. - 'browser.safebrowsing.blockedURIs.enabled': false, - 'browser.safebrowsing.downloads.enabled': false, - 'browser.safebrowsing.malware.enabled': false, - 'browser.safebrowsing.phishing.enabled': false, - - // Disable updates to search engines. - 'browser.search.update': false, - // Do not restore the last open set of tabs if the browser has crashed - 'browser.sessionstore.resume_from_crash': false, - // Skip check for default browser on startup - 'browser.shell.checkDefaultBrowser': false, - - // Disable newtabpage - 'browser.startup.homepage': 'about:blank', - // Do not redirect user when a milstone upgrade of Firefox is detected - 'browser.startup.homepage_override.mstone': 'ignore', - // Start with a blank page about:blank - 'browser.startup.page': 0, - - // Do not allow background tabs to be zombified on Android: otherwise for - // tests that open additional tabs: the test harness tab itself might get - // unloaded - 'browser.tabs.disableBackgroundZombification': false, - // Do not warn when closing all other open tabs - 'browser.tabs.warnOnCloseOtherTabs': false, - // Do not warn when multiple tabs will be opened - 'browser.tabs.warnOnOpen': false, - - // Do not automatically offer translations, as tests do not expect this. - 'browser.translations.automaticallyPopup': false, - - // Disable the UI tour. - 'browser.uitour.enabled': false, - // Turn off search suggestions in the location bar so as not to trigger - // network connections. - 'browser.urlbar.suggest.searches': false, - // Disable first run splash page on Windows 10 - 'browser.usedOnWindows10.introURL': '', - // Do not warn on quitting Firefox - 'browser.warnOnQuit': false, - - // Defensively disable data reporting systems - 'datareporting.healthreport.documentServerURI': `http://${server}/dummy/healthreport/`, - 'datareporting.healthreport.logging.consoleEnabled': false, - 'datareporting.healthreport.service.enabled': false, - 'datareporting.healthreport.service.firstRun': false, - 'datareporting.healthreport.uploadEnabled': false, - - // Do not show datareporting policy notifications which can interfere with tests - 'datareporting.policy.dataSubmissionEnabled': false, - 'datareporting.policy.dataSubmissionPolicyBypassNotification': true, - - // DevTools JSONViewer sometimes fails to load dependencies with its require.js. - // This doesn't affect Puppeteer but spams console (Bug 1424372) - 'devtools.jsonview.enabled': false, - - // Disable popup-blocker - 'dom.disable_open_during_load': false, - - // Enable the support for File object creation in the content process - // Required for |Page.setFileInputFiles| protocol method. - 'dom.file.createInChild': true, - - // Disable the ProcessHangMonitor - 'dom.ipc.reportProcessHangs': false, - - // Disable slow script dialogues - 'dom.max_chrome_script_run_time': 0, - 'dom.max_script_run_time': 0, - - // Only load extensions from the application and user profile - // AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION - 'extensions.autoDisableScopes': 0, - 'extensions.enabledScopes': 5, - - // Disable metadata caching for installed add-ons by default - 'extensions.getAddons.cache.enabled': false, - - // Disable installing any distribution extensions or add-ons. - 'extensions.installDistroAddons': false, - - // Turn off extension updates so they do not bother tests - 'extensions.update.enabled': false, - - // Turn off extension updates so they do not bother tests - 'extensions.update.notifyUser': false, - - // Make sure opening about:addons will not hit the network - 'extensions.webservice.discoverURL': `http://${server}/dummy/discoveryURL`, - - // Allow the application to have focus even it runs in the background - 'focusmanager.testmode': true, - - // Disable useragent updates - 'general.useragent.updates.enabled': false, - - // Always use network provider for geolocation tests so we bypass the - // macOS dialog raised by the corelocation provider - 'geo.provider.testing': true, - - // Do not scan Wifi - 'geo.wifi.scan': false, - - // No hang monitor - 'hangmonitor.timeout': 0, - - // Show chrome errors and warnings in the error console - 'javascript.options.showInConsole': true, - - // Disable download and usage of OpenH264: and Widevine plugins - 'media.gmp-manager.updateEnabled': false, - - // Disable the GFX sanity window - 'media.sanity-test.disabled': true, - - // Disable experimental feature that is only available in Nightly - 'network.cookie.sameSite.laxByDefault': false, - - // Do not prompt for temporary redirects - 'network.http.prompt-temp-redirect': false, - - // Disable speculative connections so they are not reported as leaking - // when they are hanging around - 'network.http.speculative-parallel-limit': 0, - - // Do not automatically switch between offline and online - 'network.manage-offline-status': false, - - // Make sure SNTP requests do not hit the network - 'network.sntp.pools': server, - - // Disable Flash. - 'plugin.state.flash': 0, - - 'privacy.trackingprotection.enabled': false, - - // Can be removed once Firefox 89 is no longer supported - // https://bugzilla.mozilla.org/show_bug.cgi?id=1710839 - 'remote.enabled': true, - - // Until Bug 1999693 is resolved, this preference needs to be set to allow - // Webdriver BiDi to automatically dismiss file pickers. - 'remote.bidi.dismiss_file_pickers.enabled': true, - - // Disabled screenshots component - 'screenshots.browser.component.enabled': false, - - // Don't do network connections for mitm priming - 'security.certerrors.mitm.priming.enabled': false, - - // Local documents have access to all other local documents, - // including directory listings - 'security.fileuri.strict_origin_policy': false, - - // Do not wait for the notification button security delay - 'security.notification_enable_delay': 0, - - // Ensure blocklist updates do not hit the network - 'services.settings.server': `http://${server}/dummy/blocklist/`, - - // Do not automatically fill sign-in forms with known usernames and - // passwords - 'signon.autofillForms': false, - - // Disable password capture, so that tests that include forms are not - // influenced by the presence of the persistent doorhanger notification - 'signon.rememberSignons': false, - - // Disable first-run welcome page - 'startup.homepage_welcome_url': 'about:blank', - - // Disable first-run welcome page - 'startup.homepage_welcome_url.additional': '', - - // Disable browser animations (tabs, fullscreen, sliding alerts) - 'toolkit.cosmeticAnimations.enabled': false, - - // Prevent starting into safe mode after application crashes - 'toolkit.startup.max_resumed_crashes': -1, - }; - - return Object.assign(defaultPrefs, extraPrefs); -} - -async function backupFile(input: string): Promise { - if (!fs.existsSync(input)) { - return; - } - await fs.promises.copyFile(input, input + '.puppeteer'); -} - -/** - * Populates the user.js file with custom preferences as needed to allow - * Firefox's support to properly function. These preferences will be - * automatically copied over to prefs.js during startup of Firefox. To be - * able to restore the original values of preferences a backup of prefs.js - * will be created. - */ -async function syncPreferences(options: ProfileOptions): Promise { - const prefsPath = path.join(options.path, 'prefs.js'); - const userPath = path.join(options.path, 'user.js'); - - const lines = Object.entries(options.preferences).map(([key, value]) => { - return `user_pref(${JSON.stringify(key)}, ${JSON.stringify(value)});`; - }); - - // Use allSettled to prevent corruption. - const result = await Promise.allSettled([ - backupFile(userPath).then(async () => { - await fs.promises.writeFile(userPath, lines.join('\n')); - }), - backupFile(prefsPath), - ]); - for (const command of result) { - if (command.status === 'rejected') { - throw command.reason; - } - } -} - -export function compareVersions(a: string, b: string): number { - // TODO: this is a not very reliable check. - return parseInt(a.replace('.', ''), 16) - parseInt(b.replace('.', ''), 16); -} diff --git a/node_modules/@puppeteer/browsers/src/browser-data/types.ts b/node_modules/@puppeteer/browsers/src/browser-data/types.ts deleted file mode 100644 index ee4f2a9..0000000 --- a/node_modules/@puppeteer/browsers/src/browser-data/types.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -/** - * Supported browsers. - * - * @public - */ -export enum Browser { - CHROME = 'chrome', - CHROMEHEADLESSSHELL = 'chrome-headless-shell', - CHROMIUM = 'chromium', - FIREFOX = 'firefox', - CHROMEDRIVER = 'chromedriver', -} - -/** - * Platform names used to identify a OS platform x architecture combination in the way - * that is relevant for the browser download. - * - * @public - */ -export enum BrowserPlatform { - LINUX = 'linux', - LINUX_ARM = 'linux_arm', - MAC = 'mac', - MAC_ARM = 'mac_arm', - WIN32 = 'win32', - WIN64 = 'win64', -} - -/** - * Enum describing a release channel for a browser. - * - * You can use this in combination with {@link resolveBuildId} to resolve - * a build ID based on a release channel. - * - * @public - */ -export enum BrowserTag { - CANARY = 'canary', - NIGHTLY = 'nightly', - BETA = 'beta', - DEV = 'dev', - DEVEDITION = 'devedition', - STABLE = 'stable', - ESR = 'esr', - LATEST = 'latest', -} - -/** - * @public - */ -export interface ProfileOptions { - preferences: Record; - path: string; -} - -/** - * @public - */ -export enum ChromeReleaseChannel { - STABLE = 'stable', - DEV = 'dev', - CANARY = 'canary', - BETA = 'beta', -} diff --git a/node_modules/@puppeteer/browsers/src/debug.ts b/node_modules/@puppeteer/browsers/src/debug.ts deleted file mode 100644 index 8f8db34..0000000 --- a/node_modules/@puppeteer/browsers/src/debug.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import type {Debugger} from 'debug'; -import debugModule from 'debug'; - -export const debug = (prefix: string): Debugger | undefined => { - const log = debugModule(prefix); - return log.enabled ? log : undefined; -}; diff --git a/node_modules/@puppeteer/browsers/src/detectPlatform.ts b/node_modules/@puppeteer/browsers/src/detectPlatform.ts deleted file mode 100644 index 1a87c20..0000000 --- a/node_modules/@puppeteer/browsers/src/detectPlatform.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import os from 'node:os'; - -import {BrowserPlatform} from './browser-data/browser-data.js'; - -/** - * @public - */ -export function detectBrowserPlatform(): BrowserPlatform | undefined { - const platform = os.platform(); - const arch = os.arch(); - switch (platform) { - case 'darwin': - return arch === 'arm64' ? BrowserPlatform.MAC_ARM : BrowserPlatform.MAC; - case 'linux': - return arch === 'arm64' - ? BrowserPlatform.LINUX_ARM - : BrowserPlatform.LINUX; - case 'win32': - return arch === 'x64' || - // Windows 11 for ARM supports x64 emulation - (arch === 'arm64' && isWindows11(os.release())) - ? BrowserPlatform.WIN64 - : BrowserPlatform.WIN32; - default: - return undefined; - } -} - -/** - * Windows 11 is identified by the version 10.0.22000 or greater - * @internal - */ -function isWindows11(version: string): boolean { - const parts = version.split('.'); - if (parts.length > 2) { - const major = parseInt(parts[0] as string, 10); - const minor = parseInt(parts[1] as string, 10); - const patch = parseInt(parts[2] as string, 10); - return ( - major > 10 || - (major === 10 && minor > 0) || - (major === 10 && minor === 0 && patch >= 22000) - ); - } - return false; -} diff --git a/node_modules/@puppeteer/browsers/src/fileUtil.ts b/node_modules/@puppeteer/browsers/src/fileUtil.ts deleted file mode 100644 index 4103c9d..0000000 --- a/node_modules/@puppeteer/browsers/src/fileUtil.ts +++ /dev/null @@ -1,218 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import type {ChildProcessByStdio} from 'node:child_process'; -import {spawnSync, spawn, execFile} from 'node:child_process'; -import {createReadStream} from 'node:fs'; -import {mkdir, readdir} from 'node:fs/promises'; -import * as path from 'node:path'; -import type {Readable, Transform, Writable} from 'node:stream'; -import {Stream} from 'node:stream'; -import {promisify} from 'node:util'; - -import {debug} from './debug.js'; - -const execFileAsync = promisify(execFile); -const debugFileUtil = debug('puppeteer:browsers:fileUtil'); - -/** - * @internal - */ -export async function unpackArchive( - archivePath: string, - folderPath: string, -): Promise { - if (!path.isAbsolute(folderPath)) { - folderPath = path.resolve(process.cwd(), folderPath); - } - if (archivePath.endsWith('.zip')) { - await mkdir(folderPath, {recursive: true}); - await extractZip(archivePath, folderPath); - } else if (archivePath.endsWith('.tar.bz2')) { - await extractTar(archivePath, folderPath, 'bzip2'); - } else if (archivePath.endsWith('.dmg')) { - await mkdir(folderPath); - await installDMG(archivePath, folderPath); - } else if (archivePath.endsWith('.exe')) { - // Firefox on Windows. - const result = spawnSync(archivePath, [`/ExtractDir=${folderPath}`], { - env: { - __compat_layer: 'RunAsInvoker', - }, - }); - if (result.status !== 0) { - throw new Error( - `Failed to extract ${archivePath} to ${folderPath}: ${result.output}`, - ); - } - } else if (archivePath.endsWith('.tar.xz')) { - await extractTar(archivePath, folderPath, 'xz'); - } else { - throw new Error(`Unsupported archive format: ${archivePath}`); - } -} - -function createTransformStream( - child: ChildProcessByStdio, -): Transform { - const stream = new Stream.Transform({ - transform(chunk, encoding, callback) { - if (!child.stdin.write(chunk, encoding)) { - child.stdin.once('drain', callback); - } else { - callback(); - } - }, - - flush(callback) { - if (child.stdout.destroyed) { - callback(); - } else { - child.stdin.end(); - child.stdout.on('close', callback); - } - }, - }); - - child.stdin.on('error', e => { - if ('code' in e && e.code === 'EPIPE') { - // finished before reading the file finished (i.e. head) - stream.emit('end'); - } else { - stream.destroy(e); - } - }); - - child.stdout - .on('data', data => { - return stream.push(data); - }) - .on('error', e => { - return stream.destroy(e); - }); - - child.once('close', () => { - return stream.end(); - }); - - return stream; -} - -/** - * @internal - */ -export const internalConstantsForTesting = { - xz: 'xz', - bzip2: 'bzip2', -}; - -/** - * @internal - */ -async function extractTar( - tarPath: string, - folderPath: string, - decompressUtilityName: keyof typeof internalConstantsForTesting, -): Promise { - const tarFs = await import('tar-fs'); - return await new Promise((fulfill, reject) => { - function handleError(utilityName: string) { - return (error: Error) => { - if ('code' in error && error.code === 'ENOENT') { - error = new Error( - `\`${utilityName}\` utility is required to unpack this archive`, - { - cause: error, - }, - ); - } - reject(error); - }; - } - const unpack = spawn( - internalConstantsForTesting[decompressUtilityName], - ['-d'], - { - stdio: ['pipe', 'pipe', 'inherit'], - }, - ) - .once('error', handleError(decompressUtilityName)) - .once('exit', code => { - debugFileUtil?.(`${decompressUtilityName} exited, code=${code}`); - }); - - const tar = tarFs.extract(folderPath); - tar.once('error', handleError('tar')); - tar.once('finish', fulfill); - createReadStream(tarPath).pipe(createTransformStream(unpack)).pipe(tar); - }); -} - -/** - * @internal - */ -async function installDMG(dmgPath: string, folderPath: string): Promise { - const {stdout} = spawnSync(`hdiutil`, [ - 'attach', - '-nobrowse', - '-noautoopen', - dmgPath, - ]); - - const volumes = stdout.toString('utf8').match(/\/Volumes\/(.*)/m); - if (!volumes) { - throw new Error(`Could not find volume path in ${stdout}`); - } - const mountPath = volumes[0]!; - - try { - const fileNames = await readdir(mountPath); - const appName = fileNames.find(item => { - return typeof item === 'string' && item.endsWith('.app'); - }); - if (!appName) { - throw new Error(`Cannot find app in ${mountPath}`); - } - const mountedPath = path.join(mountPath!, appName); - - spawnSync('cp', ['-R', mountedPath, folderPath]); - } finally { - spawnSync('hdiutil', ['detach', mountPath, '-quiet']); - } -} - -/** - * @internal - */ -async function extractZip( - archivePath: string, - folderPath: string, -): Promise { - try { - if (process.platform === 'win32') { - // -x: extract files - // -f: specify the archive file - // -C: extract to the specified directory - const systemRoot = - process.env['SystemRoot'] ?? process.env['SYSTEMROOT'] ?? 'C:\\Windows'; - const systemTar = `${systemRoot}\\System32\\tar.exe`; - await execFileAsync(systemTar, ['-xf', archivePath, '-C', folderPath]); - } else { - // -o: overwrite existing files without prompting - // -d: extract files into the specified directory - await execFileAsync('unzip', ['-o', archivePath, '-d', folderPath]); - } - } catch (error: any) { - if (error?.code === 'ENOENT') { - throw new Error( - `Extraction failed: Required native binary ('tar.exe' or 'unzip') was not found in the system PATH.`, - ); - } - throw new Error( - `Extraction failed: ${error?.stderr?.toString() || error?.message}`, - ); - } -} diff --git a/node_modules/@puppeteer/browsers/src/httpUtil.ts b/node_modules/@puppeteer/browsers/src/httpUtil.ts deleted file mode 100644 index 050ffec..0000000 --- a/node_modules/@puppeteer/browsers/src/httpUtil.ts +++ /dev/null @@ -1,182 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import {createWriteStream} from 'node:fs'; -import * as http from 'node:http'; -import * as https from 'node:https'; -import {URL, urlToHttpOptions} from 'node:url'; - -export async function headHttpRequest(url: URL): Promise { - return await new Promise(resolve => { - httpRequest( - url, - 'HEAD', - response => { - // consume response data free node process - response.resume(); - resolve(response.statusCode === 200); - }, - false, - ) - .then(request => { - request.on('error', () => { - resolve(false); - }); - }) - .catch(() => { - resolve(false); - }); - }); -} - -export async function httpRequest( - url: URL, - method: string, - response: (x: http.IncomingMessage) => void, - keepAlive = true, -): Promise { - let agent: http.Agent | undefined; - try { - const {ProxyAgent} = await import('proxy-agent'); - agent = new ProxyAgent(); - } catch { - // Standard Node.js agents will be used. - } - - const options: http.RequestOptions = { - protocol: url.protocol, - hostname: url.hostname, - port: url.port, - path: url.pathname + url.search, - method, - headers: keepAlive ? {Connection: 'keep-alive'} : undefined, - auth: urlToHttpOptions(url).auth, - agent, - }; - - const requestCallback = (res: http.IncomingMessage): void => { - if ( - res.statusCode && - res.statusCode >= 300 && - res.statusCode < 400 && - res.headers.location - ) { - void httpRequest(new URL(res.headers.location), method, response); - // consume response data to free up memory - // And prevents the connection from being kept alive - res.resume(); - } else { - response(res); - } - }; - const request = - options.protocol === 'https:' - ? https.request(options, requestCallback) - : http.request(options, requestCallback); - request.end(); - return request; -} - -/** - * @internal - */ -export function downloadFile( - url: URL, - destinationPath: string, - progressCallback?: (downloadedBytes: number, totalBytes: number) => void, -): Promise { - return new Promise(async (resolve, reject) => { - let downloadedBytes = 0; - let totalBytes = 0; - - function onData(chunk: string): void { - downloadedBytes += chunk.length; - progressCallback!(downloadedBytes, totalBytes); - } - - try { - const request = await httpRequest(url, 'GET', response => { - if (response.statusCode !== 200) { - const error = new Error( - `Download failed: server returned code ${response.statusCode}. URL: ${url}`, - ); - // consume response data to free up memory - response.resume(); - reject(error); - return; - } - const file = createWriteStream(destinationPath); - file.on('close', () => { - // The 'close' event is emitted when the stream and any of its - // underlying resources (a file descriptor, for example) have been - // closed. The event indicates that no more events will be emitted, and - // no further computation will occur. - return resolve(); - }); - file.on('error', error => { - // The 'error' event may be emitted by a Readable implementation at any - // time. Typically, this may occur if the underlying stream is unable to - // generate data due to an underlying internal failure, or when a stream - // implementation attempts to push an invalid chunk of data. - return reject(error); - }); - response.pipe(file); - totalBytes = parseInt(response.headers['content-length']!, 10); - if (progressCallback) { - response.on('data', onData); - } - }); - request.on('error', error => { - return reject(error); - }); - } catch (error) { - reject(error); - } - }); -} -export async function getJSON(url: URL): Promise { - const text = await getText(url); - try { - return JSON.parse(text); - } catch { - throw new Error('Could not parse JSON from ' + url.toString()); - } -} - -export function getText(url: URL): Promise { - return new Promise(async (resolve, reject) => { - try { - const request = await httpRequest( - url, - 'GET', - response => { - let data = ''; - if (response.statusCode && response.statusCode >= 400) { - return reject(new Error(`Got status code ${response.statusCode}`)); - } - response.on('data', chunk => { - data += chunk; - }); - response.on('end', () => { - try { - return resolve(String(data)); - } catch { - return reject( - new Error(`Failed to read text response from ${url}`), - ); - } - }); - }, - false, - ); - request.on('error', err => { - reject(err); - }); - } catch (err) { - reject(err); - } - }); -} diff --git a/node_modules/@puppeteer/browsers/src/install.ts b/node_modules/@puppeteer/browsers/src/install.ts deleted file mode 100644 index cbf51e1..0000000 --- a/node_modules/@puppeteer/browsers/src/install.ts +++ /dev/null @@ -1,666 +0,0 @@ -/** - * @license - * Copyright 2017 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import assert from 'node:assert'; -import {spawnSync} from 'node:child_process'; -import {existsSync, readFileSync} from 'node:fs'; -import {mkdir, unlink} from 'node:fs/promises'; -import os from 'node:os'; -import path from 'node:path'; - -import type * as ProgressBar from 'progress'; - -import { - Browser, - BrowserPlatform, - downloadUrls, -} from './browser-data/browser-data.js'; -import {Cache, InstalledBrowser} from './Cache.js'; -import {debug} from './debug.js'; -import {DefaultProvider} from './DefaultProvider.js'; -import {detectBrowserPlatform} from './detectPlatform.js'; -import {unpackArchive} from './fileUtil.js'; -import {downloadFile, headHttpRequest} from './httpUtil.js'; -import type {BrowserProvider} from './provider.js'; - -const debugInstall = debug('puppeteer:browsers:install'); - -const times = new Map(); -function debugTime(label: string) { - times.set(label, process.hrtime()); -} - -function debugTimeEnd(label: string) { - const end = process.hrtime(); - const start = times.get(label); - if (!start) { - return; - } - const duration = - end[0] * 1000 + end[1] / 1e6 - (start[0] * 1000 + start[1] / 1e6); // calculate duration in milliseconds - debugInstall?.(`Duration for ${label}: ${duration}ms`); -} - -/** - * @public - */ -export interface InstallOptions { - /** - * Determines the path to download browsers to. - */ - cacheDir: string; - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to install. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; - /** - * An alias for the provided `buildId`. It will be used to maintain local - * metadata to support aliases in the `launch` command. - * - * @example 'canary' - */ - buildIdAlias?: string; - /** - * Provides information about the progress of the download. If set to - * 'default', the default callback implementing a progress bar will be - * used. - */ - downloadProgressCallback?: - | 'default' - | ((downloadedBytes: number, totalBytes: number) => void); - /** - * Determines the host that will be used for downloading. - * - * @defaultValue Either - * - * - https://storage.googleapis.com/chrome-for-testing-public or - * - https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central - * - */ - baseUrl?: string; - /** - * Whether to unpack and install browser archives. - * - * @defaultValue `true` - */ - unpack?: boolean; - /** - * @internal - * @defaultValue `false` - */ - forceFallbackForTesting?: boolean; - - /** - * Whether to attempt to install system-level dependencies required - * for the browser. - * - * Only supported for Chrome on Debian or Ubuntu. - * Requires system-level privileges to run `apt-get`. - * - * @defaultValue `false` - */ - installDeps?: boolean; - /** - * Custom provider implementation for alternative download sources. - * - * If not provided, uses the default provider. - * Multiple providers can be chained - they will be tried in order. - * The default provider is automatically added as the final fallback. - * - * ⚠️ **IMPORTANT**: Custom providers are NOT officially supported by - * Puppeteer. - * - * By using custom providers, you accept full responsibility for: - * - * - **Version compatibility**: Different platforms may receive different - * binary versions - * - **Archive compatibility**: Binary structure must match Puppeteer's expectations - * - **Feature integration**: Browser launch and other Puppeteer features may not work - * - **Testing**: You must validate that downloaded binaries work with Puppeteer - * - * **Puppeteer only tests and guarantees compatibility with default binaries.** - * - * @example - * - * ```typescript - * import {ElectronProvider} from './puppeteer-browser-provider-electron.js'; - * - * await install({ - * browser: Browser.CHROMEDRIVER, - * buildId: '142.0.7444.175', - * cacheDir: './cache', - * providers: [ - * new ElectronProvider(), // Try Electron releases first - * // Falls back to Chrome for Testing automatically - * ], - * }); - * ``` - */ - providers?: BrowserProvider[]; -} - -/** - * Install using custom provider plugins. - * Tries each provider in order until one succeeds. - * Falls back to default provider if all custom providers fail. - * - * @internal - */ -async function installWithProviders( - options: InstallOptions, -): Promise { - if (!options.platform) { - throw new Error('Platform must be defined'); - } - - const cache = new Cache(options.cacheDir); - const browserRoot = cache.browserRoot(options.browser); - - // Build provider list with proper fallback behavior - const providers = [...(options.providers || [])]; - - // If custom baseUrl is provided, add it as a provider - if (options.baseUrl) { - providers.push(new DefaultProvider(options.baseUrl)); - } - - // Always add default provider as final fallback - // (unless custom baseUrl is provided and forceFallbackForTesting is false) - if (!options.baseUrl || options.forceFallbackForTesting) { - providers.push(new DefaultProvider()); - } - - const downloadOptions = { - browser: options.browser, - platform: options.platform, - buildId: options.buildId, - progressCallback: - options.downloadProgressCallback === 'default' - ? await makeProgressCallback( - options.browser, - options.buildIdAlias ?? options.buildId, - ) - : options.downloadProgressCallback, - }; - - interface ProviderError { - providerName: string; - error: Error; - } - - const errors: ProviderError[] = []; - - for (const provider of providers) { - try { - // Check: does this provider support this browser/platform? - if (!(await provider.supports(downloadOptions))) { - debugInstall?.( - `Provider ${provider.getName()} does not support ${options.browser} on ${options.platform}`, - ); - continue; - } - - // Warn if using non-default provider - if (!(provider instanceof DefaultProvider)) { - debugInstall?.(`⚠️ Using custom downloader: ${provider.getName()}`); - debugInstall?.( - `⚠️ Puppeteer does not guarantee compatibility with non-default providers`, - ); - } - - debugInstall?.( - `Trying provider: ${provider.getName()} for ${options.browser} ${options.buildId}`, - ); - - // Get download URL from provider - const url = await provider.getDownloadUrl(downloadOptions); - if (!url) { - debugInstall?.( - `Provider ${provider.getName()} returned no URL for ${options.browser} ${options.buildId}`, - ); - continue; - } - - debugInstall?.(`Successfully got URL from ${provider.getName()}: ${url}`); - - if (!existsSync(browserRoot)) { - await mkdir(browserRoot, {recursive: true}); - } - - // Download and install using the URL from the provider - return await installUrl(url, options, provider); - } catch (err) { - debugInstall?.( - `Provider ${provider.getName()} failed: ${(err as Error).message}`, - ); - errors.push({ - providerName: provider.getName(), - error: err as Error, - }); - // Continue to next provider - } - } - - // All providers failed - const errorDetails = errors - .map(e => { - return ` - ${e.providerName}: ${e.error.message}`; - }) - .join('\n'); - throw new Error( - `All providers failed for ${options.browser} ${options.buildId}:\n${errorDetails}`, - ); -} - -/** - * Downloads and unpacks the browser archive according to the - * {@link InstallOptions}. - * - * @returns a {@link InstalledBrowser} instance. - * - * @public - */ -export function install( - options: InstallOptions & {unpack?: true}, -): Promise; -/** - * Downloads the browser archive according to the {@link InstallOptions} without - * unpacking. - * - * @returns the absolute path to the archive. - * - * @public - */ -export function install( - options: InstallOptions & {unpack: false}, -): Promise; -export async function install( - options: InstallOptions, -): Promise { - options.platform ??= detectBrowserPlatform(); - options.unpack ??= true; - if (!options.platform) { - throw new Error( - `Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`, - ); - } - - // Always use plugin architecture (uses default provider if none specified) - options.providers ??= []; - return await installWithProviders(options); -} - -async function installDeps(installedBrowser: InstalledBrowser) { - if ( - process.platform !== 'linux' || - installedBrowser.platform !== BrowserPlatform.LINUX - ) { - return; - } - // Currently, only Debian-like deps are supported. - const depsPath = path.join( - path.dirname(installedBrowser.executablePath), - 'deb.deps', - ); - if (!existsSync(depsPath)) { - debugInstall?.(`deb.deps file was not found at ${depsPath}`); - return; - } - const data = readFileSync(depsPath, 'utf-8').split('\n').join(','); - if (process.getuid?.() !== 0) { - throw new Error('Installing system dependencies requires root privileges'); - } - let result = spawnSync('apt-get', ['-v']); - if (result.status !== 0) { - throw new Error( - 'Failed to install system dependencies: apt-get does not seem to be available', - ); - } - debugInstall?.(`Trying to install dependencies: ${data}`); - result = spawnSync('apt-get', [ - 'satisfy', - '-y', - data, - '--no-install-recommends', - ]); - if (result.status !== 0) { - throw new Error( - `Failed to install system dependencies: status=${result.status},error=${result.error},stdout=${result.stdout.toString('utf8')},stderr=${result.stderr.toString('utf8')}`, - ); - } - debugInstall?.(`Installed system dependencies ${data}`); -} - -async function installUrl( - url: URL, - options: InstallOptions, - provider: BrowserProvider, -): Promise { - if (!provider) { - throw new Error('Provider is required for installation'); - } - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error( - `Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`, - ); - } - let downloadProgressCallback = options.downloadProgressCallback; - if (downloadProgressCallback === 'default') { - downloadProgressCallback = await makeProgressCallback( - options.browser, - options.buildIdAlias ?? options.buildId, - ); - } - const fileName = decodeURIComponent(url.toString()).split('/').pop(); - assert(fileName, `A malformed download URL was found: ${url}.`); - const cache = new Cache(options.cacheDir); - const browserRoot = cache.browserRoot(options.browser); - const archivePath = path.join(browserRoot, `${options.buildId}-${fileName}`); - if (!existsSync(browserRoot)) { - await mkdir(browserRoot, {recursive: true}); - } - - if (!options.unpack) { - if (existsSync(archivePath)) { - return archivePath; - } - debugInstall?.(`Downloading binary from ${url}`); - debugTime('download'); - await downloadFile(url, archivePath, downloadProgressCallback); - debugTimeEnd('download'); - return archivePath; - } - - const outputPath = cache.installationDir( - options.browser, - options.platform, - options.buildId, - ); - - // Get executable path from provider once (used for both cached and new installations) - const relativeExecutablePath = await provider.getExecutablePath({ - browser: options.browser, - buildId: options.buildId, - platform: options.platform, - }); - debugInstall?.( - `Using executable path from provider: ${relativeExecutablePath}`, - ); - - const installedBrowser = new InstalledBrowser( - cache, - options.browser, - options.buildId, - options.platform, - ); - - // Write metadata for the installation (only for non-default providers) - if (!(provider instanceof DefaultProvider)) { - cache.writeExecutablePath( - options.browser, - options.platform, - options.buildId, - relativeExecutablePath, - ); - } - - try { - if (existsSync(outputPath)) { - if (!existsSync(installedBrowser.executablePath)) { - throw new Error( - `The browser folder (${outputPath}) exists but the executable (${installedBrowser.executablePath}) is missing`, - ); - } - await runSetup(installedBrowser); - if (options.installDeps) { - await installDeps(installedBrowser); - } - return installedBrowser; - } - - // Check if archive already exists (e.g., from a custom provider) - if (!existsSync(archivePath)) { - debugInstall?.(`Downloading binary from ${url}`); - try { - debugTime('download'); - await downloadFile(url, archivePath, downloadProgressCallback); - } finally { - debugTimeEnd('download'); - } - } else { - debugInstall?.(`Using existing archive at ${archivePath}`); - } - - debugInstall?.(`Installing ${archivePath} to ${outputPath}`); - try { - debugTime('extract'); - await unpackArchive(archivePath, outputPath); - } finally { - debugTimeEnd('extract'); - } - - if (options.buildIdAlias) { - const metadata = installedBrowser.readMetadata(); - metadata.aliases[options.buildIdAlias] = options.buildId; - installedBrowser.writeMetadata(metadata); - } - - await runSetup(installedBrowser); - if (options.installDeps) { - await installDeps(installedBrowser); - } - return installedBrowser; - } finally { - if (existsSync(archivePath)) { - await unlink(archivePath); - } - } -} - -async function runSetup(installedBrowser: InstalledBrowser): Promise { - // On Windows for Chrome invoke setup.exe to configure sandboxes. - if ( - (installedBrowser.platform === BrowserPlatform.WIN32 || - installedBrowser.platform === BrowserPlatform.WIN64) && - installedBrowser.browser === Browser.CHROME && - installedBrowser.platform === detectBrowserPlatform() - ) { - try { - debugTime('permissions'); - const browserDir = path.dirname(installedBrowser.executablePath); - const setupExePath = path.join(browserDir, 'setup.exe'); - if (!existsSync(setupExePath)) { - return; - } - spawnSync( - path.join(browserDir, 'setup.exe'), - [`--configure-browser-in-directory=` + browserDir], - { - shell: false, - }, - ); - // TODO: Handle error here. Currently the setup.exe sometimes - // errors although it sets the permissions correctly. - } finally { - debugTimeEnd('permissions'); - } - } -} - -/** - * @public - */ -export interface UninstallOptions { - /** - * Determines the platform for the browser binary. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * The path to the root of the cache directory. - */ - cacheDir: string; - /** - * Determines which browser to uninstall. - */ - browser: Browser; - /** - * The browser build to uninstall - */ - buildId: string; -} - -/** - * - * @public - */ -export async function uninstall(options: UninstallOptions): Promise { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error( - `Cannot detect the browser platform for: ${os.platform()} (${os.arch()})`, - ); - } - - new Cache(options.cacheDir).uninstall( - options.browser, - options.platform, - options.buildId, - ); -} - -/** - * @public - */ -export interface GetInstalledBrowsersOptions { - /** - * The path to the root of the cache directory. - */ - cacheDir: string; -} - -/** - * Returns metadata about browsers installed in the cache directory. - * - * @public - */ -export async function getInstalledBrowsers( - options: GetInstalledBrowsersOptions, -): Promise { - return new Cache(options.cacheDir).getInstalledBrowsers(); -} - -/** - * @public - */ -export async function canDownload(options: InstallOptions): Promise { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error( - `Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`, - ); - } - - // Always use plugin architecture (uses default provider if none specified) - const providers = [ - ...(options.providers || []), - new DefaultProvider(options.baseUrl), - ]; - - const downloadOptions = { - browser: options.browser, - platform: options.platform, - buildId: options.buildId, - }; - - // Check if any provider can provide a valid, downloadable URL - for (const provider of providers) { - if (!(await provider.supports(downloadOptions))) { - continue; - } - const url = await provider.getDownloadUrl(downloadOptions); - if (url && (await headHttpRequest(url))) { - return true; - } - } - - return false; -} - -/** - * Retrieves a URL for downloading the binary archive of a given browser. - * - * The archive is bound to the specific platform and build ID specified. - * - * @public - */ -export function getDownloadUrl( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - baseUrl?: string, -): URL { - return new URL(downloadUrls[browser](platform, buildId, baseUrl)); -} - -let ProgressBarClass: new ( - format: string, - options: ProgressBar.ProgressBarOptions, -) => ProgressBar; -const importProgressBarIfNeeded = async () => { - if (!ProgressBarClass) { - ProgressBarClass = (await import('progress')).default; - } - - return ProgressBarClass; -}; - -/** - * @internal - */ -export async function makeProgressCallback( - browser: Browser, - buildId: string, -): Promise<(downloadedBytes: number, totalBytes: number) => void> { - const ProgressBarClass = await importProgressBarIfNeeded(); - let progressBar: ProgressBar; - - let lastDownloadedBytes = 0; - return (downloadedBytes: number, totalBytes: number) => { - if (!progressBar) { - progressBar = new ProgressBarClass( - `Downloading ${browser} ${buildId} - ${toMegabytes(totalBytes)} [:bar] :percent :etas `, - { - complete: '=', - incomplete: ' ', - width: 20, - total: totalBytes, - }, - ); - } - const delta = downloadedBytes - lastDownloadedBytes; - lastDownloadedBytes = downloadedBytes; - progressBar.tick(delta); - }; -} - -function toMegabytes(bytes: number) { - const mb = bytes / 1000 / 1000; - return `${Math.round(mb * 10) / 10} MB`; -} diff --git a/node_modules/@puppeteer/browsers/src/launch.ts b/node_modules/@puppeteer/browsers/src/launch.ts deleted file mode 100644 index 7e160f1..0000000 --- a/node_modules/@puppeteer/browsers/src/launch.ts +++ /dev/null @@ -1,653 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import childProcess from 'node:child_process'; -import {EventEmitter} from 'node:events'; -import {accessSync} from 'node:fs'; -import os from 'node:os'; -import readline from 'node:readline'; -import type Stream from 'node:stream'; - -import { - type Browser, - type BrowserPlatform, - type ChromeReleaseChannel, - executablePathByBrowser, - resolveSystemExecutablePaths, -} from './browser-data/browser-data.js'; -import {Cache} from './Cache.js'; -import {debug} from './debug.js'; -import {detectBrowserPlatform} from './detectPlatform.js'; - -const debugLaunch = debug('puppeteer:browsers:launcher'); - -/** - * @public - */ -export interface ComputeExecutablePathOptions { - /** - * Root path to the storage directory. - * - * Can be set to `null` if the executable path should be relative - * to the extracted download location. E.g. `./chrome-linux64/chrome`. - */ - cacheDir: string | null; - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Determines which buildId to download. BuildId should uniquely identify - * binaries and they are used for caching. - */ - buildId: string; -} - -/** - * @public - */ -export function computeExecutablePath( - options: ComputeExecutablePathOptions, -): string { - if (options.cacheDir === null) { - options.platform ??= detectBrowserPlatform(); - if (options.platform === undefined) { - throw new Error( - `No platform specified. Couldn't auto-detect browser platform.`, - ); - } - return executablePathByBrowser[options.browser]( - options.platform, - options.buildId, - ); - } - - return new Cache(options.cacheDir).computeExecutablePath(options); -} - -/** - * @public - */ -export interface SystemOptions { - /** - * Determines which platform the browser will be suited for. - * - * @defaultValue **Auto-detected.** - */ - platform?: BrowserPlatform; - /** - * Determines which browser to launch. - */ - browser: Browser; - /** - * Release channel to look for on the system. - */ - channel: ChromeReleaseChannel; -} - -/** - * Returns a path to a system-wide Chrome installation given a release channel - * name by checking known installation locations (using - * {@link https://pptr.dev/browsers-api/browsers.computesystemexecutablepath}). - * If Chrome instance is not found at the expected path, an error is thrown. - * - * @public - */ -export function computeSystemExecutablePath(options: SystemOptions): string { - options.platform ??= detectBrowserPlatform(); - if (!options.platform) { - throw new Error( - `Cannot download a binary for the provided platform: ${os.platform()} (${os.arch()})`, - ); - } - const paths = resolveSystemExecutablePaths( - options.browser, - options.platform, - options.channel, - ); - for (const path of paths) { - try { - accessSync(path); - return path; - } catch {} - } - throw new Error( - `Could not find Google Chrome executable for channel '${options.channel}' at:${paths.map( - path => { - return `\n - ${path}`; - }, - )}.`, - ); -} - -/** - * @public - */ -export interface LaunchOptions { - /** - * Absolute path to the browser's executable. - */ - executablePath: string; - /** - * Configures stdio streams to open two additional streams for automation over - * those streams instead of WebSocket. - * - * @defaultValue `false`. - */ - pipe?: boolean; - /** - * If true, forwards the browser's process stdout and stderr to the Node's - * process stdout and stderr. - * - * @defaultValue `false`. - */ - dumpio?: boolean; - /** - * Additional arguments to pass to the executable when launching. - */ - args?: string[]; - /** - * Environment variables to set for the browser process. - */ - env?: Record; - /** - * Handles SIGINT in the Node process and tries to kill the browser process. - * - * @defaultValue `true`. - */ - handleSIGINT?: boolean; - /** - * Handles SIGTERM in the Node process and tries to gracefully close the browser - * process. - * - * @defaultValue `true`. - */ - handleSIGTERM?: boolean; - /** - * Handles SIGHUP in the Node process and tries to gracefully close the browser process. - * - * @defaultValue `true`. - */ - handleSIGHUP?: boolean; - /** - * Whether to spawn process in the {@link https://nodejs.org/api/child_process.html#optionsdetached | detached} - * mode. - * - * @defaultValue `true` except on Windows. - */ - detached?: boolean; - /** - * A callback to run after the browser process exits or before the process - * will be closed via the {@link Process.close} call (including when handling - * signals). The callback is only run once. - */ - onExit?: () => Promise; - /** - * If provided, the process will be killed when the signal is aborted. - */ - signal?: AbortSignal; -} - -/** - * Launches a browser process according to {@link LaunchOptions}. - * - * @public - */ -export function launch(opts: LaunchOptions): Process { - return new Process(opts); -} - -/** - * @public - */ -export const CDP_WEBSOCKET_ENDPOINT_REGEX = - /^DevTools listening on (ws:\/\/.*)$/; - -/** - * @public - */ -export const WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX = - /^WebDriver BiDi listening on (ws:\/\/.*)$/; - -type EventHandler = (...args: any[]) => void; -const processListeners = new Map(); -const dispatchers = { - exit: (...args: any[]) => { - processListeners.get('exit')?.forEach(handler => { - return handler(...args); - }); - }, - SIGINT: (...args: any[]) => { - processListeners.get('SIGINT')?.forEach(handler => { - return handler(...args); - }); - }, - SIGHUP: (...args: any[]) => { - processListeners.get('SIGHUP')?.forEach(handler => { - return handler(...args); - }); - }, - SIGTERM: (...args: any[]) => { - processListeners.get('SIGTERM')?.forEach(handler => { - return handler(...args); - }); - }, -}; - -function subscribeToProcessEvent( - event: 'exit' | 'SIGINT' | 'SIGHUP' | 'SIGTERM', - handler: EventHandler, -): void { - const listeners = processListeners.get(event) || []; - if (listeners.length === 0) { - process.on(event, dispatchers[event]); - } - listeners.push(handler); - processListeners.set(event, listeners); -} - -function unsubscribeFromProcessEvent( - event: 'exit' | 'SIGINT' | 'SIGHUP' | 'SIGTERM', - handler: EventHandler, -): void { - const listeners = processListeners.get(event) || []; - const existingListenerIdx = listeners.indexOf(handler); - if (existingListenerIdx === -1) { - return; - } - listeners.splice(existingListenerIdx, 1); - processListeners.set(event, listeners); - if (listeners.length === 0) { - process.off(event, dispatchers[event]); - } -} - -/** - * @public - */ -export class Process { - #executablePath; - #args: string[]; - #browserProcess: childProcess.ChildProcess; - #exited = false; - // The browser process can be closed externally or from the driver process. We - // need to invoke the hooks only once though but we don't know how many times - // we will be invoked. - #hooksRan = false; - #onExitHook = async () => {}; - #browserProcessExiting: Promise; - #logs: string[] = []; - #maxLogLinesSize = 1000; - #lineEmitter = new EventEmitter(); - #onAbort = (): void => { - this.kill(); - }; - #signal?: AbortSignal; - - constructor(opts: LaunchOptions) { - this.#executablePath = opts.executablePath; - this.#args = opts.args ?? []; - - this.#signal = opts.signal; - if (this.#signal?.aborted) { - throw new Error( - this.#signal.reason ? this.#signal.reason : 'Launch aborted', - ); - } - this.#signal?.addEventListener('abort', this.#onAbort, {once: true}); - - opts.pipe ??= false; - opts.dumpio ??= false; - opts.handleSIGINT ??= true; - opts.handleSIGTERM ??= true; - opts.handleSIGHUP ??= true; - // On non-windows platforms, `detached: true` makes child process a - // leader of a new process group, making it possible to kill child - // process tree with `.kill(-pid)` command. @see - // https://nodejs.org/api/child_process.html#child_process_options_detached - opts.detached ??= process.platform !== 'win32'; - const stdio = this.#configureStdio({ - pipe: opts.pipe, - }); - - const env = opts.env || {}; - - debugLaunch?.(`Launching ${this.#executablePath} ${this.#args.join(' ')}`, { - detached: opts.detached, - env: Object.keys(env).reduce>( - (res, key) => { - if (key.toLowerCase().startsWith('puppeteer_')) { - res[key] = env[key]; - } - return res; - }, - {}, - ), - stdio, - }); - - this.#browserProcess = childProcess.spawn( - this.#executablePath, - this.#args, - { - detached: opts.detached, - env, - stdio, - }, - ); - this.#recordStream(this.#browserProcess.stderr!); - this.#recordStream(this.#browserProcess.stdout!); - - debugLaunch?.(`Launched ${this.#browserProcess.pid}`); - if (opts.dumpio) { - this.#browserProcess.stderr?.pipe(process.stderr); - this.#browserProcess.stdout?.pipe(process.stdout); - } - subscribeToProcessEvent('exit', this.#onDriverProcessExit); - if (opts.handleSIGINT) { - subscribeToProcessEvent('SIGINT', this.#onDriverProcessSignal); - } - if (opts.handleSIGTERM) { - subscribeToProcessEvent('SIGTERM', this.#onDriverProcessSignal); - } - if (opts.handleSIGHUP) { - subscribeToProcessEvent('SIGHUP', this.#onDriverProcessSignal); - } - if (opts.onExit) { - this.#onExitHook = opts.onExit; - } - this.#browserProcessExiting = new Promise((resolve, reject) => { - this.#browserProcess.once('exit', async () => { - debugLaunch?.(`Browser process ${this.#browserProcess.pid} onExit`); - this.#clearListeners(); - this.#exited = true; - try { - await this.#runHooks(); - } catch (err) { - reject(err); - return; - } - resolve(); - }); - }); - } - - async #runHooks() { - if (this.#hooksRan) { - return; - } - this.#hooksRan = true; - await this.#onExitHook(); - } - - get nodeProcess(): childProcess.ChildProcess { - return this.#browserProcess; - } - - #configureStdio(opts: {pipe: boolean}): Array<'ignore' | 'pipe'> { - if (opts.pipe) { - return ['pipe', 'pipe', 'pipe', 'pipe', 'pipe']; - } else { - return ['pipe', 'pipe', 'pipe']; - } - } - - #clearListeners(): void { - unsubscribeFromProcessEvent('exit', this.#onDriverProcessExit); - unsubscribeFromProcessEvent('SIGINT', this.#onDriverProcessSignal); - unsubscribeFromProcessEvent('SIGTERM', this.#onDriverProcessSignal); - unsubscribeFromProcessEvent('SIGHUP', this.#onDriverProcessSignal); - this.#signal?.removeEventListener('abort', this.#onAbort); - } - - #onDriverProcessExit = (_code: number) => { - this.kill(); - }; - - #onDriverProcessSignal = (signal: string): void => { - switch (signal) { - case 'SIGINT': - this.kill(); - process.exit(130); - case 'SIGTERM': - case 'SIGHUP': - void this.close(); - break; - } - }; - - async close(): Promise { - await this.#runHooks(); - if (!this.#exited) { - this.kill(); - } - return await this.#browserProcessExiting; - } - - hasClosed(): Promise { - return this.#browserProcessExiting; - } - - kill(): void { - debugLaunch?.(`Trying to kill ${this.#browserProcess.pid}`); - // If the process failed to launch (for example if the browser executable path - // is invalid), then the process does not get a pid assigned. A call to - // `proc.kill` would error, as the `pid` to-be-killed can not be found. - if ( - this.#browserProcess && - this.#browserProcess.pid && - pidExists(this.#browserProcess.pid) - ) { - try { - debugLaunch?.(`Browser process ${this.#browserProcess.pid} exists`); - if (process.platform === 'win32') { - try { - childProcess.execSync( - `taskkill /pid ${this.#browserProcess.pid} /T /F`, - ); - } catch (error) { - debugLaunch?.( - `Killing ${this.#browserProcess.pid} using taskkill failed`, - error, - ); - // taskkill can fail to kill the process e.g. due to missing permissions. - // Let's kill the process via Node API. This delays killing of all child - // processes of `this.proc` until the main Node.js process dies. - this.#browserProcess.kill(); - } - } else { - // on linux the process group can be killed with the group id prefixed with - // a minus sign. The process group id is the group leader's pid. - const processGroupId = -this.#browserProcess.pid; - - try { - process.kill(processGroupId, 'SIGKILL'); - } catch (error) { - debugLaunch?.( - `Killing ${this.#browserProcess.pid} using process.kill failed`, - error, - ); - // Killing the process group can fail due e.g. to missing permissions. - // Let's kill the process via Node API. This delays killing of all child - // processes of `this.proc` until the main Node.js process dies. - this.#browserProcess.kill('SIGKILL'); - } - } - } catch (error) { - throw new Error( - `${PROCESS_ERROR_EXPLANATION}\nError cause: ${ - isErrorLike(error) ? error.stack : error - }`, - ); - } - } - this.#clearListeners(); - } - - #recordStream(stream: Stream.Readable): void { - const rl = readline.createInterface(stream); - const cleanup = (): void => { - rl.off('line', onLine); - rl.off('close', onClose); - try { - rl.close(); - } catch {} - }; - const onLine = (line: string) => { - if (line.trim() === '') { - return; - } - this.#logs.push(line); - const delta = this.#logs.length - this.#maxLogLinesSize; - if (delta) { - this.#logs.splice(0, delta); - } - this.#lineEmitter.emit('line', line); - }; - const onClose = (): void => { - cleanup(); - }; - rl.on('line', onLine); - rl.on('close', onClose); - } - - /** - * Get recent logs (stderr + stdout) emitted by the browser. - * - * @public - */ - getRecentLogs(): string[] { - return [...this.#logs]; - } - - waitForLineOutput(regex: RegExp, timeout = 0): Promise { - return new Promise((resolve, reject) => { - const onClose = (errorOrCode?: Error | number): void => { - cleanup(); - reject( - new Error( - [ - `Failed to launch the browser process: ${ - errorOrCode instanceof Error - ? ` ${errorOrCode.message}` - : ` Code: ${errorOrCode}` - }`, - '', - `stderr:`, - this.getRecentLogs().join('\n'), - '', - 'TROUBLESHOOTING: https://pptr.dev/troubleshooting', - '', - ].join('\n'), - ), - ); - }; - - this.#browserProcess.on('exit', onClose); - this.#browserProcess.on('error', onClose); - const timeoutId = - timeout > 0 ? setTimeout(onTimeout, timeout) : undefined; - - this.#lineEmitter.on('line', onLine); - const cleanup = (): void => { - clearTimeout(timeoutId); - this.#lineEmitter.off('line', onLine); - this.#browserProcess.off('exit', onClose); - this.#browserProcess.off('error', onClose); - }; - - function onTimeout(): void { - cleanup(); - reject( - new TimeoutError( - `Timed out after ${timeout} ms while waiting for the WS endpoint URL to appear in stdout!`, - ), - ); - } - - for (const line of this.#logs) { - onLine(line); - } - - function onLine(line: string): void { - const match = line.match(regex); - if (!match) { - return; - } - cleanup(); - // The RegExp matches, so this will obviously exist. - resolve(match[1]!); - } - }); - } -} - -const PROCESS_ERROR_EXPLANATION = `Puppeteer was unable to kill the process which ran the browser binary. -This means that, on future Puppeteer launches, Puppeteer might not be able to launch the browser. -Please check your open processes and ensure that the browser processes that Puppeteer launched have been killed. -If you think this is a bug, please report it on the Puppeteer issue tracker.`; - -/** - * @internal - */ -function pidExists(pid: number): boolean { - try { - return process.kill(pid, 0); - } catch (error) { - if (isErrnoException(error)) { - if (error.code && error.code === 'ESRCH') { - return false; - } - } - throw error; - } -} - -/** - * @internal - */ -export interface ErrorLike extends Error { - name: string; - message: string; -} - -/** - * @internal - */ -export function isErrorLike(obj: unknown): obj is ErrorLike { - return ( - typeof obj === 'object' && obj !== null && 'name' in obj && 'message' in obj - ); -} -/** - * @internal - */ -export function isErrnoException(obj: unknown): obj is NodeJS.ErrnoException { - return ( - isErrorLike(obj) && - ('errno' in obj || 'code' in obj || 'path' in obj || 'syscall' in obj) - ); -} - -/** - * @public - */ -export class TimeoutError extends Error { - /** - * @internal - */ - constructor(message?: string) { - super(message); - this.name = this.constructor.name; - Error.captureStackTrace(this, this.constructor); - } -} diff --git a/node_modules/@puppeteer/browsers/src/main-cli.ts b/node_modules/@puppeteer/browsers/src/main-cli.ts deleted file mode 100644 index 9919a4d..0000000 --- a/node_modules/@puppeteer/browsers/src/main-cli.ts +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env node - -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import {CLI} from './CLI.js'; - -void new CLI().run(process.argv); diff --git a/node_modules/@puppeteer/browsers/src/main.ts b/node_modules/@puppeteer/browsers/src/main.ts deleted file mode 100644 index ae47422..0000000 --- a/node_modules/@puppeteer/browsers/src/main.ts +++ /dev/null @@ -1,57 +0,0 @@ -/** - * @license - * Copyright 2023 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -export type { - LaunchOptions, - ComputeExecutablePathOptions as Options, - SystemOptions, -} from './launch.js'; -export { - launch, - computeExecutablePath, - computeSystemExecutablePath, - TimeoutError, - CDP_WEBSOCKET_ENDPOINT_REGEX, - WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, - Process, -} from './launch.js'; -export type { - InstallOptions, - GetInstalledBrowsersOptions, - UninstallOptions, -} from './install.js'; -export { - install, - getInstalledBrowsers, - canDownload, - uninstall, - getDownloadUrl, -} from './install.js'; -export {detectBrowserPlatform} from './detectPlatform.js'; -export type {ProfileOptions} from './browser-data/browser-data.js'; -export { - resolveBuildId, - Browser, - BrowserPlatform, - ChromeReleaseChannel, - createProfile, - getVersionComparator, - resolveDefaultUserDataDir, -} from './browser-data/browser-data.js'; -export {CLI} from './CLI.js'; -export { - Cache, - InstalledBrowser, - type Metadata, - type ComputeExecutablePathOptions, -} from './Cache.js'; -export {BrowserTag} from './browser-data/types.js'; -export {DefaultProvider} from './DefaultProvider.js'; -export { - type BrowserProvider, - buildArchiveFilename, - type DownloadOptions, -} from './provider.js'; diff --git a/node_modules/@puppeteer/browsers/src/provider.ts b/node_modules/@puppeteer/browsers/src/provider.ts deleted file mode 100644 index 4002a23..0000000 --- a/node_modules/@puppeteer/browsers/src/provider.ts +++ /dev/null @@ -1,166 +0,0 @@ -/** - * @license - * Copyright 2026 Google Inc. - * SPDX-License-Identifier: Apache-2.0 - */ - -import type {Browser, BrowserPlatform} from './browser-data/browser-data.js'; - -/** - * Options passed to a provider. - * @public - */ -export interface DownloadOptions { - browser: Browser; - platform: BrowserPlatform; - buildId: string; -} - -/** - * Interface for custom browser provider implementations. - * Allows users to implement alternative download sources for browsers. - * - * ⚠️ **IMPORTANT**: Custom providers are NOT officially supported by - * Puppeteer. - * - * By implementing this interface, you accept full responsibility for: - * - * - Ensuring downloaded binaries are compatible with Puppeteer's expectations - * - Testing that browser launch and other features work with your binaries - * - Maintaining compatibility when Puppeteer or your download source changes - * - Version consistency across platforms if mixing sources - * - * Puppeteer only tests and guarantees Chrome for Testing binaries. - * - * @example - * - * ```typescript - * class ElectronDownloader implements BrowserProvider { - * supports(options: DownloadOptions): boolean { - * return options.browser === Browser.CHROMEDRIVER; - * } - * - * getDownloadUrl(options: DownloadOptions): URL { - * const platform = mapToPlatform(options.platform); - * return new URL( - * `v${options.buildId}/chromedriver-v${options.buildId}-${platform}.zip`, - * 'https://github.com/electron/electron/releases/download/', - * ); - * } - * - * getExecutablePath(options): string { - * const ext = options.platform.includes('win') ? '.exe' : ''; - * return `chromedriver/chromedriver${ext}`; - * } - * } - * ``` - * - * @public - */ -export interface BrowserProvider { - /** - * Check if this provider supports the given browser/platform. - * Used for filtering before attempting downloads. - * - * Can be synchronous for quick checks or asynchronous if version - * resolution/network requests are needed. - * - * @param options - Download options to check - * @returns True if this provider supports the browser/platform combination - */ - supports(options: DownloadOptions): Promise | boolean; - - /** - * Get the download URL for the requested browser. - * - * The buildId can be either an exact version (e.g., "131.0.6778.109") - * or an alias (e.g., "latest", "stable"). Custom providers should handle - * version resolution internally if they support aliases. - * - * Returns null if the buildId cannot be resolved to a valid version. - * The URL is not validated - download will fail later if URL doesn't exist. - * - * Can be synchronous for simple URL construction or asynchronous if version - * resolution/network requests are needed. - * - * @param options - Download options (buildId may be alias or exact version) - * @returns Download URL, or null if version cannot be resolved - * @example - * - * ```ts - * // Synchronous example - * getDownloadUrl(options) { - * const platform = mapPlatform(options.platform); - * return new URL(`https://releases.example.com/v${options.buildId}/${platform}.zip`); - * } - * - * // Asynchronous example with version mapping - * async getDownloadUrl(options) { - * const electronVersion = await resolveElectronVersion(options.buildId); - * if (!electronVersion) return null; - * - * const platform = mapPlatform(options.platform); - * return new URL(`https://github.com/electron/electron/releases/download/v${electronVersion}/${platform}.zip`); - * } - * ``` - */ - getDownloadUrl(options: DownloadOptions): Promise | URL | null; - - /** - * Get the relative path to the executable within the extracted archive. - * - * @param options - Browser, buildId, and platform - * @returns Relative path to the executable - * @example - * - * ```ts - * // Electron uses simple structure - * getExecutablePath() { - * return 'chromedriver/chromedriver'; - * } - * - * // Custom provider with platform-specific paths - * getExecutablePath(options) { - * return `binaries/${options.browser}-${options.platform}`; - * } - * ``` - */ - getExecutablePath(options: { - browser: Browser; - buildId: string; - platform: BrowserPlatform; - }): Promise | string; - - /** - * Get the name of this provider. - * Used for error messages and logging purposes. - * - * @returns The provider name (e.g., "DefaultProvider", "CustomProvider") - * - * @remarks - * This method is used instead of `constructor.name` to avoid issues with - * minification in production builds. - * - * @example - * - * ```ts - * getName() { - * return 'MyCustomProvider'; - * } - * ``` - */ - getName(): string; -} - -/** - * Utility function to build a standard archive filename. - * @public - */ -export function buildArchiveFilename( - browser: Browser, - platform: BrowserPlatform, - buildId: string, - extension = 'zip', -): string { - return `${browser}-${platform}-${buildId}.${extension}`; -} diff --git a/node_modules/@types/debug/LICENSE b/node_modules/@types/debug/LICENSE deleted file mode 100644 index 9e841e7..0000000 --- a/node_modules/@types/debug/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - MIT License - - Copyright (c) Microsoft Corporation. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE diff --git a/node_modules/@types/debug/README.md b/node_modules/@types/debug/README.md deleted file mode 100644 index c62700a..0000000 --- a/node_modules/@types/debug/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Installation -> `npm install --save @types/debug` - -# Summary -This package contains type definitions for debug (https://github.com/debug-js/debug). - -# Details -Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug. -## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug/index.d.ts) -````ts -declare var debug: debug.Debug & { debug: debug.Debug; default: debug.Debug }; - -export = debug; -export as namespace debug; - -declare namespace debug { - interface Debug { - (namespace: string): Debugger; - coerce: (val: any) => any; - disable: () => string; - enable: (namespaces: string) => void; - enabled: (namespaces: string) => boolean; - formatArgs: (this: Debugger, args: any[]) => void; - log: (...args: any[]) => any; - selectColor: (namespace: string) => string | number; - humanize: typeof import("ms"); - - names: string[]; - skips: string[]; - - formatters: Formatters; - - inspectOpts?: { - hideDate?: boolean | number | null; - colors?: boolean | number | null; - depth?: boolean | number | null; - showHidden?: boolean | number | null; - }; - } - - type IDebug = Debug; - - interface Formatters { - [formatter: string]: (v: any) => string; - } - - type IDebugger = Debugger; - - interface Debugger { - (formatter: any, ...args: any[]): void; - - color: string; - diff: number; - enabled: boolean; - log: (...args: any[]) => any; - namespace: string; - destroy: () => boolean; - extend: (namespace: string, delimiter?: string) => Debugger; - } -} - -```` - -### Additional Details - * Last updated: Thu, 19 Mar 2026 06:47:22 GMT - * Dependencies: [@types/ms](https://npmjs.com/package/@types/ms) - -# Credits -These definitions were written by [Seon-Wook Park](https://github.com/swook), [Gal Talmor](https://github.com/galtalmor), [John McLaughlin](https://github.com/zamb3zi), [Brasten Sager](https://github.com/brasten), [Nicolas Penin](https://github.com/npenin), [Kristian Brünn](https://github.com/kristianmitk), and [Caleb Gregory](https://github.com/calebgregory). diff --git a/node_modules/@types/debug/index.d.ts b/node_modules/@types/debug/index.d.ts deleted file mode 100644 index 38bef7b..0000000 --- a/node_modules/@types/debug/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -declare var debug: debug.Debug & { debug: debug.Debug; default: debug.Debug }; - -export = debug; -export as namespace debug; - -declare namespace debug { - interface Debug { - (namespace: string): Debugger; - coerce: (val: any) => any; - disable: () => string; - enable: (namespaces: string) => void; - enabled: (namespaces: string) => boolean; - formatArgs: (this: Debugger, args: any[]) => void; - log: (...args: any[]) => any; - selectColor: (namespace: string) => string | number; - humanize: typeof import("ms"); - - names: string[]; - skips: string[]; - - formatters: Formatters; - - inspectOpts?: { - hideDate?: boolean | number | null; - colors?: boolean | number | null; - depth?: boolean | number | null; - showHidden?: boolean | number | null; - }; - } - - type IDebug = Debug; - - interface Formatters { - [formatter: string]: (v: any) => string; - } - - type IDebugger = Debugger; - - interface Debugger { - (formatter: any, ...args: any[]): void; - - color: string; - diff: number; - enabled: boolean; - log: (...args: any[]) => any; - namespace: string; - destroy: () => boolean; - extend: (namespace: string, delimiter?: string) => Debugger; - } -} diff --git a/node_modules/@types/debug/package.json b/node_modules/@types/debug/package.json deleted file mode 100644 index 0dacd20..0000000 --- a/node_modules/@types/debug/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "@types/debug", - "version": "4.1.13", - "description": "TypeScript definitions for debug", - "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug", - "license": "MIT", - "contributors": [ - { - "name": "Seon-Wook Park", - "githubUsername": "swook", - "url": "https://github.com/swook" - }, - { - "name": "Gal Talmor", - "githubUsername": "galtalmor", - "url": "https://github.com/galtalmor" - }, - { - "name": "John McLaughlin", - "githubUsername": "zamb3zi", - "url": "https://github.com/zamb3zi" - }, - { - "name": "Brasten Sager", - "githubUsername": "brasten", - "url": "https://github.com/brasten" - }, - { - "name": "Nicolas Penin", - "githubUsername": "npenin", - "url": "https://github.com/npenin" - }, - { - "name": "Kristian Brünn", - "githubUsername": "kristianmitk", - "url": "https://github.com/kristianmitk" - }, - { - "name": "Caleb Gregory", - "githubUsername": "calebgregory", - "url": "https://github.com/calebgregory" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/debug" - }, - "scripts": {}, - "dependencies": { - "@types/ms": "*" - }, - "peerDependencies": {}, - "typesPublisherContentHash": "1c506e100366b85350ff1c28c9cf4cc09e9a07275546bb050993c241c9821cd9", - "typeScriptVersion": "5.2" -} \ No newline at end of file diff --git a/node_modules/@types/ms/LICENSE b/node_modules/@types/ms/LICENSE deleted file mode 100644 index 9e841e7..0000000 --- a/node_modules/@types/ms/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - MIT License - - Copyright (c) Microsoft Corporation. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE diff --git a/node_modules/@types/ms/README.md b/node_modules/@types/ms/README.md deleted file mode 100644 index 1152869..0000000 --- a/node_modules/@types/ms/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# Installation -> `npm install --save @types/ms` - -# Summary -This package contains type definitions for ms (https://github.com/vercel/ms). - -# Details -Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ms. -## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ms/index.d.ts) -````ts -/** - * Short/Long format for `value`. - * - * @param {Number} value - * @param {{long: boolean}} options - * @return {String} - */ -declare function ms(value: number, options?: { long: boolean }): string; - -/** - * Parse the given `value` and return milliseconds. - * - * @param {ms.StringValue} value - * @return {Number} - */ -declare function ms(value: ms.StringValue): number; - -declare namespace ms { - // Unit, UnitAnyCase, and StringValue are backported from ms@3 - // https://github.com/vercel/ms/blob/8b5923d1d86c84a9f6aba8022d416dcf2361aa8d/src/index.ts - - type Unit = - | "Years" - | "Year" - | "Yrs" - | "Yr" - | "Y" - | "Weeks" - | "Week" - | "W" - | "Days" - | "Day" - | "D" - | "Hours" - | "Hour" - | "Hrs" - | "Hr" - | "H" - | "Minutes" - | "Minute" - | "Mins" - | "Min" - | "M" - | "Seconds" - | "Second" - | "Secs" - | "Sec" - | "s" - | "Milliseconds" - | "Millisecond" - | "Msecs" - | "Msec" - | "Ms"; - - type UnitAnyCase = Unit | Uppercase | Lowercase; - - type StringValue = - | `${number}` - | `${number}${UnitAnyCase}` - | `${number} ${UnitAnyCase}`; -} - -export = ms; - -```` - -### Additional Details - * Last updated: Thu, 16 Jan 2025 21:02:45 GMT - * Dependencies: none - -# Credits -These definitions were written by [Zhiyuan Wang](https://github.com/danny8002). diff --git a/node_modules/@types/ms/index.d.ts b/node_modules/@types/ms/index.d.ts deleted file mode 100644 index b1b1f51..0000000 --- a/node_modules/@types/ms/index.d.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Short/Long format for `value`. - * - * @param {Number} value - * @param {{long: boolean}} options - * @return {String} - */ -declare function ms(value: number, options?: { long: boolean }): string; - -/** - * Parse the given `value` and return milliseconds. - * - * @param {ms.StringValue} value - * @return {Number} - */ -declare function ms(value: ms.StringValue): number; - -declare namespace ms { - // Unit, UnitAnyCase, and StringValue are backported from ms@3 - // https://github.com/vercel/ms/blob/8b5923d1d86c84a9f6aba8022d416dcf2361aa8d/src/index.ts - - type Unit = - | "Years" - | "Year" - | "Yrs" - | "Yr" - | "Y" - | "Weeks" - | "Week" - | "W" - | "Days" - | "Day" - | "D" - | "Hours" - | "Hour" - | "Hrs" - | "Hr" - | "H" - | "Minutes" - | "Minute" - | "Mins" - | "Min" - | "M" - | "Seconds" - | "Second" - | "Secs" - | "Sec" - | "s" - | "Milliseconds" - | "Millisecond" - | "Msecs" - | "Msec" - | "Ms"; - - type UnitAnyCase = Unit | Uppercase | Lowercase; - - type StringValue = - | `${number}` - | `${number}${UnitAnyCase}` - | `${number} ${UnitAnyCase}`; -} - -export = ms; diff --git a/node_modules/@types/ms/package.json b/node_modules/@types/ms/package.json deleted file mode 100644 index 0f547d0..0000000 --- a/node_modules/@types/ms/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@types/ms", - "version": "2.1.0", - "description": "TypeScript definitions for ms", - "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ms", - "license": "MIT", - "contributors": [ - { - "name": "Zhiyuan Wang", - "githubUsername": "danny8002", - "url": "https://github.com/danny8002" - } - ], - "main": "", - "types": "index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", - "directory": "types/ms" - }, - "scripts": {}, - "dependencies": {}, - "peerDependencies": {}, - "typesPublisherContentHash": "2c8651ce1714fdc6bcbc0f262c93a790f1d127fb1c2dc8edbb583decef56fd39", - "typeScriptVersion": "5.0" -} \ No newline at end of file diff --git a/node_modules/agent-base/README.md b/node_modules/agent-base/README.md deleted file mode 100644 index 256f1f3..0000000 --- a/node_modules/agent-base/README.md +++ /dev/null @@ -1,145 +0,0 @@ -agent-base -========== -### Turn a function into an [`http.Agent`][http.Agent] instance -[![Build Status](https://github.com/TooTallNate/node-agent-base/workflows/Node%20CI/badge.svg)](https://github.com/TooTallNate/node-agent-base/actions?workflow=Node+CI) - -This module provides an `http.Agent` generator. That is, you pass it an async -callback function, and it returns a new `http.Agent` instance that will invoke the -given callback function when sending outbound HTTP requests. - -#### Some subclasses: - -Here's some more interesting uses of `agent-base`. -Send a pull request to list yours! - - * [`http-proxy-agent`][http-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTP endpoints - * [`https-proxy-agent`][https-proxy-agent]: An HTTP(s) proxy `http.Agent` implementation for HTTPS endpoints - * [`pac-proxy-agent`][pac-proxy-agent]: A PAC file proxy `http.Agent` implementation for HTTP and HTTPS - * [`socks-proxy-agent`][socks-proxy-agent]: A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS - - -Installation ------------- - -Install with `npm`: - -``` bash -$ npm install agent-base -``` - - -Example -------- - -Here's a minimal example that creates a new `net.Socket` connection to the server -for every HTTP request (i.e. the equivalent of `agent: false` option): - -```js -var net = require('net'); -var tls = require('tls'); -var url = require('url'); -var http = require('http'); -var agent = require('agent-base'); - -var endpoint = 'http://nodejs.org/api/'; -var parsed = url.parse(endpoint); - -// This is the important part! -parsed.agent = agent(function (req, opts) { - var socket; - // `secureEndpoint` is true when using the https module - if (opts.secureEndpoint) { - socket = tls.connect(opts); - } else { - socket = net.connect(opts); - } - return socket; -}); - -// Everything else works just like normal... -http.get(parsed, function (res) { - console.log('"response" event!', res.headers); - res.pipe(process.stdout); -}); -``` - -Returning a Promise or using an `async` function is also supported: - -```js -agent(async function (req, opts) { - await sleep(1000); - // etc… -}); -``` - -Return another `http.Agent` instance to "pass through" the responsibility -for that HTTP request to that agent: - -```js -agent(function (req, opts) { - return opts.secureEndpoint ? https.globalAgent : http.globalAgent; -}); -``` - - -API ---- - -## Agent(Function callback[, Object options]) → [http.Agent][] - -Creates a base `http.Agent` that will execute the callback function `callback` -for every HTTP request that it is used as the `agent` for. The callback function -is responsible for creating a `stream.Duplex` instance of some kind that will be -used as the underlying socket in the HTTP request. - -The `options` object accepts the following properties: - - * `timeout` - Number - Timeout for the `callback()` function in milliseconds. Defaults to Infinity (optional). - -The callback function should have the following signature: - -### callback(http.ClientRequest req, Object options, Function cb) → undefined - -The ClientRequest `req` can be accessed to read request headers and -and the path, etc. The `options` object contains the options passed -to the `http.request()`/`https.request()` function call, and is formatted -to be directly passed to `net.connect()`/`tls.connect()`, or however -else you want a Socket to be created. Pass the created socket to -the callback function `cb` once created, and the HTTP request will -continue to proceed. - -If the `https` module is used to invoke the HTTP request, then the -`secureEndpoint` property on `options` _will be set to `true`_. - - -License -------- - -(The MIT License) - -Copyright (c) 2013 Nathan Rajlich <nathan@tootallnate.net> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -[http-proxy-agent]: https://github.com/TooTallNate/node-http-proxy-agent -[https-proxy-agent]: https://github.com/TooTallNate/node-https-proxy-agent -[pac-proxy-agent]: https://github.com/TooTallNate/node-pac-proxy-agent -[socks-proxy-agent]: https://github.com/TooTallNate/node-socks-proxy-agent -[http.Agent]: https://nodejs.org/api/http.html#http_class_http_agent diff --git a/node_modules/agent-base/dist/src/index.d.ts b/node_modules/agent-base/dist/src/index.d.ts deleted file mode 100644 index bc4ab74..0000000 --- a/node_modules/agent-base/dist/src/index.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/// -import net from 'net'; -import http from 'http'; -import https from 'https'; -import { Duplex } from 'stream'; -import { EventEmitter } from 'events'; -declare function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent; -declare function createAgent(callback: createAgent.AgentCallback, opts?: createAgent.AgentOptions): createAgent.Agent; -declare namespace createAgent { - interface ClientRequest extends http.ClientRequest { - _last?: boolean; - _hadError?: boolean; - method: string; - } - interface AgentRequestOptions { - host?: string; - path?: string; - port: number; - } - interface HttpRequestOptions extends AgentRequestOptions, Omit { - secureEndpoint: false; - } - interface HttpsRequestOptions extends AgentRequestOptions, Omit { - secureEndpoint: true; - } - type RequestOptions = HttpRequestOptions | HttpsRequestOptions; - type AgentLike = Pick | http.Agent; - type AgentCallbackReturn = Duplex | AgentLike; - type AgentCallbackCallback = (err?: Error | null, socket?: createAgent.AgentCallbackReturn) => void; - type AgentCallbackPromise = (req: createAgent.ClientRequest, opts: createAgent.RequestOptions) => createAgent.AgentCallbackReturn | Promise; - type AgentCallback = typeof Agent.prototype.callback; - type AgentOptions = { - timeout?: number; - }; - /** - * Base `http.Agent` implementation. - * No pooling/keep-alive is implemented by default. - * - * @param {Function} callback - * @api public - */ - class Agent extends EventEmitter { - timeout: number | null; - maxFreeSockets: number; - maxTotalSockets: number; - maxSockets: number; - sockets: { - [key: string]: net.Socket[]; - }; - freeSockets: { - [key: string]: net.Socket[]; - }; - requests: { - [key: string]: http.IncomingMessage[]; - }; - options: https.AgentOptions; - private promisifiedCallback?; - private explicitDefaultPort?; - private explicitProtocol?; - constructor(callback?: createAgent.AgentCallback | createAgent.AgentOptions, _opts?: createAgent.AgentOptions); - get defaultPort(): number; - set defaultPort(v: number); - get protocol(): string; - set protocol(v: string); - callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions, fn: createAgent.AgentCallbackCallback): void; - callback(req: createAgent.ClientRequest, opts: createAgent.RequestOptions): createAgent.AgentCallbackReturn | Promise; - /** - * Called by node-core's "_http_client.js" module when creating - * a new HTTP request with this Agent instance. - * - * @api public - */ - addRequest(req: ClientRequest, _opts: RequestOptions): void; - freeSocket(socket: net.Socket, opts: AgentOptions): void; - destroy(): void; - } -} -export = createAgent; diff --git a/node_modules/agent-base/dist/src/index.js b/node_modules/agent-base/dist/src/index.js deleted file mode 100644 index bfd9e22..0000000 --- a/node_modules/agent-base/dist/src/index.js +++ /dev/null @@ -1,203 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const events_1 = require("events"); -const debug_1 = __importDefault(require("debug")); -const promisify_1 = __importDefault(require("./promisify")); -const debug = debug_1.default('agent-base'); -function isAgent(v) { - return Boolean(v) && typeof v.addRequest === 'function'; -} -function isSecureEndpoint() { - const { stack } = new Error(); - if (typeof stack !== 'string') - return false; - return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); -} -function createAgent(callback, opts) { - return new createAgent.Agent(callback, opts); -} -(function (createAgent) { - /** - * Base `http.Agent` implementation. - * No pooling/keep-alive is implemented by default. - * - * @param {Function} callback - * @api public - */ - class Agent extends events_1.EventEmitter { - constructor(callback, _opts) { - super(); - let opts = _opts; - if (typeof callback === 'function') { - this.callback = callback; - } - else if (callback) { - opts = callback; - } - // Timeout for the socket to be returned from the callback - this.timeout = null; - if (opts && typeof opts.timeout === 'number') { - this.timeout = opts.timeout; - } - // These aren't actually used by `agent-base`, but are required - // for the TypeScript definition files in `@types/node` :/ - this.maxFreeSockets = 1; - this.maxSockets = 1; - this.maxTotalSockets = Infinity; - this.sockets = {}; - this.freeSockets = {}; - this.requests = {}; - this.options = {}; - } - get defaultPort() { - if (typeof this.explicitDefaultPort === 'number') { - return this.explicitDefaultPort; - } - return isSecureEndpoint() ? 443 : 80; - } - set defaultPort(v) { - this.explicitDefaultPort = v; - } - get protocol() { - if (typeof this.explicitProtocol === 'string') { - return this.explicitProtocol; - } - return isSecureEndpoint() ? 'https:' : 'http:'; - } - set protocol(v) { - this.explicitProtocol = v; - } - callback(req, opts, fn) { - throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); - } - /** - * Called by node-core's "_http_client.js" module when creating - * a new HTTP request with this Agent instance. - * - * @api public - */ - addRequest(req, _opts) { - const opts = Object.assign({}, _opts); - if (typeof opts.secureEndpoint !== 'boolean') { - opts.secureEndpoint = isSecureEndpoint(); - } - if (opts.host == null) { - opts.host = 'localhost'; - } - if (opts.port == null) { - opts.port = opts.secureEndpoint ? 443 : 80; - } - if (opts.protocol == null) { - opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; - } - if (opts.host && opts.path) { - // If both a `host` and `path` are specified then it's most - // likely the result of a `url.parse()` call... we need to - // remove the `path` portion so that `net.connect()` doesn't - // attempt to open that as a unix socket file. - delete opts.path; - } - delete opts.agent; - delete opts.hostname; - delete opts._defaultAgent; - delete opts.defaultPort; - delete opts.createConnection; - // Hint to use "Connection: close" - // XXX: non-documented `http` module API :( - req._last = true; - req.shouldKeepAlive = false; - let timedOut = false; - let timeoutId = null; - const timeoutMs = opts.timeout || this.timeout; - const onerror = (err) => { - if (req._hadError) - return; - req.emit('error', err); - // For Safety. Some additional errors might fire later on - // and we need to make sure we don't double-fire the error event. - req._hadError = true; - }; - const ontimeout = () => { - timeoutId = null; - timedOut = true; - const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); - err.code = 'ETIMEOUT'; - onerror(err); - }; - const callbackError = (err) => { - if (timedOut) - return; - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - onerror(err); - }; - const onsocket = (socket) => { - if (timedOut) - return; - if (timeoutId != null) { - clearTimeout(timeoutId); - timeoutId = null; - } - if (isAgent(socket)) { - // `socket` is actually an `http.Agent` instance, so - // relinquish responsibility for this `req` to the Agent - // from here on - debug('Callback returned another Agent instance %o', socket.constructor.name); - socket.addRequest(req, opts); - return; - } - if (socket) { - socket.once('free', () => { - this.freeSocket(socket, opts); - }); - req.onSocket(socket); - return; - } - const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); - onerror(err); - }; - if (typeof this.callback !== 'function') { - onerror(new Error('`callback` is not defined')); - return; - } - if (!this.promisifiedCallback) { - if (this.callback.length >= 3) { - debug('Converting legacy callback function to promise'); - this.promisifiedCallback = promisify_1.default(this.callback); - } - else { - this.promisifiedCallback = this.callback; - } - } - if (typeof timeoutMs === 'number' && timeoutMs > 0) { - timeoutId = setTimeout(ontimeout, timeoutMs); - } - if ('port' in opts && typeof opts.port !== 'number') { - opts.port = Number(opts.port); - } - try { - debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); - Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); - } - catch (err) { - Promise.reject(err).catch(callbackError); - } - } - freeSocket(socket, opts) { - debug('Freeing socket %o %o', socket.constructor.name, opts); - socket.destroy(); - } - destroy() { - debug('Destroying agent %o', this.constructor.name); - } - } - createAgent.Agent = Agent; - // So that `instanceof` works correctly - createAgent.prototype = createAgent.Agent.prototype; -})(createAgent || (createAgent = {})); -module.exports = createAgent; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/agent-base/dist/src/index.js.map b/node_modules/agent-base/dist/src/index.js.map deleted file mode 100644 index bd118ab..0000000 --- a/node_modules/agent-base/dist/src/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/agent-base/dist/src/promisify.d.ts b/node_modules/agent-base/dist/src/promisify.d.ts deleted file mode 100644 index 0268869..0000000 --- a/node_modules/agent-base/dist/src/promisify.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ClientRequest, RequestOptions, AgentCallbackCallback, AgentCallbackPromise } from './index'; -declare type LegacyCallback = (req: ClientRequest, opts: RequestOptions, fn: AgentCallbackCallback) => void; -export default function promisify(fn: LegacyCallback): AgentCallbackPromise; -export {}; diff --git a/node_modules/agent-base/dist/src/promisify.js b/node_modules/agent-base/dist/src/promisify.js deleted file mode 100644 index b2f6132..0000000 --- a/node_modules/agent-base/dist/src/promisify.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function promisify(fn) { - return function (req, opts) { - return new Promise((resolve, reject) => { - fn.call(this, req, opts, (err, rtn) => { - if (err) { - reject(err); - } - else { - resolve(rtn); - } - }); - }); - }; -} -exports.default = promisify; -//# sourceMappingURL=promisify.js.map \ No newline at end of file diff --git a/node_modules/agent-base/dist/src/promisify.js.map b/node_modules/agent-base/dist/src/promisify.js.map deleted file mode 100644 index 4bff9bf..0000000 --- a/node_modules/agent-base/dist/src/promisify.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"promisify.js","sourceRoot":"","sources":["../../src/promisify.ts"],"names":[],"mappings":";;AAeA,SAAwB,SAAS,CAAC,EAAkB;IACnD,OAAO,UAAsB,GAAkB,EAAE,IAAoB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,EAAE,CAAC,IAAI,CACN,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,CAAC,GAA6B,EAAE,GAAyB,EAAE,EAAE;gBAC5D,IAAI,GAAG,EAAE;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;iBACZ;qBAAM;oBACN,OAAO,CAAC,GAAG,CAAC,CAAC;iBACb;YACF,CAAC,CACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAjBD,4BAiBC"} \ No newline at end of file diff --git a/node_modules/agent-base/package.json b/node_modules/agent-base/package.json deleted file mode 100644 index fadce3a..0000000 --- a/node_modules/agent-base/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "agent-base", - "version": "6.0.2", - "description": "Turn a function into an `http.Agent` instance", - "main": "dist/src/index", - "typings": "dist/src/index", - "files": [ - "dist/src", - "src" - ], - "scripts": { - "prebuild": "rimraf dist", - "build": "tsc", - "postbuild": "cpy --parents src test '!**/*.ts' dist", - "test": "mocha --reporter spec dist/test/*.js", - "test-lint": "eslint src --ext .js,.ts", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git://github.com/TooTallNate/node-agent-base.git" - }, - "keywords": [ - "http", - "agent", - "base", - "barebones", - "https" - ], - "author": "Nathan Rajlich (http://n8.io/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/TooTallNate/node-agent-base/issues" - }, - "dependencies": { - "debug": "4" - }, - "devDependencies": { - "@types/debug": "4", - "@types/mocha": "^5.2.7", - "@types/node": "^14.0.20", - "@types/semver": "^7.1.0", - "@types/ws": "^6.0.3", - "@typescript-eslint/eslint-plugin": "1.6.0", - "@typescript-eslint/parser": "1.1.0", - "async-listen": "^1.2.0", - "cpy-cli": "^2.0.0", - "eslint": "5.16.0", - "eslint-config-airbnb": "17.1.0", - "eslint-config-prettier": "4.1.0", - "eslint-import-resolver-typescript": "1.1.1", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-jsx-a11y": "6.2.1", - "eslint-plugin-react": "7.12.4", - "mocha": "^6.2.0", - "rimraf": "^3.0.0", - "semver": "^7.1.2", - "typescript": "^3.5.3", - "ws": "^3.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } -} diff --git a/node_modules/agent-base/src/index.ts b/node_modules/agent-base/src/index.ts deleted file mode 100644 index a47ccd4..0000000 --- a/node_modules/agent-base/src/index.ts +++ /dev/null @@ -1,345 +0,0 @@ -import net from 'net'; -import http from 'http'; -import https from 'https'; -import { Duplex } from 'stream'; -import { EventEmitter } from 'events'; -import createDebug from 'debug'; -import promisify from './promisify'; - -const debug = createDebug('agent-base'); - -function isAgent(v: any): v is createAgent.AgentLike { - return Boolean(v) && typeof v.addRequest === 'function'; -} - -function isSecureEndpoint(): boolean { - const { stack } = new Error(); - if (typeof stack !== 'string') return false; - return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); -} - -function createAgent(opts?: createAgent.AgentOptions): createAgent.Agent; -function createAgent( - callback: createAgent.AgentCallback, - opts?: createAgent.AgentOptions -): createAgent.Agent; -function createAgent( - callback?: createAgent.AgentCallback | createAgent.AgentOptions, - opts?: createAgent.AgentOptions -) { - return new createAgent.Agent(callback, opts); -} - -namespace createAgent { - export interface ClientRequest extends http.ClientRequest { - _last?: boolean; - _hadError?: boolean; - method: string; - } - - export interface AgentRequestOptions { - host?: string; - path?: string; - // `port` on `http.RequestOptions` can be a string or undefined, - // but `net.TcpNetConnectOpts` expects only a number - port: number; - } - - export interface HttpRequestOptions - extends AgentRequestOptions, - Omit { - secureEndpoint: false; - } - - export interface HttpsRequestOptions - extends AgentRequestOptions, - Omit { - secureEndpoint: true; - } - - export type RequestOptions = HttpRequestOptions | HttpsRequestOptions; - - export type AgentLike = Pick | http.Agent; - - export type AgentCallbackReturn = Duplex | AgentLike; - - export type AgentCallbackCallback = ( - err?: Error | null, - socket?: createAgent.AgentCallbackReturn - ) => void; - - export type AgentCallbackPromise = ( - req: createAgent.ClientRequest, - opts: createAgent.RequestOptions - ) => - | createAgent.AgentCallbackReturn - | Promise; - - export type AgentCallback = typeof Agent.prototype.callback; - - export type AgentOptions = { - timeout?: number; - }; - - /** - * Base `http.Agent` implementation. - * No pooling/keep-alive is implemented by default. - * - * @param {Function} callback - * @api public - */ - export class Agent extends EventEmitter { - public timeout: number | null; - public maxFreeSockets: number; - public maxTotalSockets: number; - public maxSockets: number; - public sockets: { - [key: string]: net.Socket[]; - }; - public freeSockets: { - [key: string]: net.Socket[]; - }; - public requests: { - [key: string]: http.IncomingMessage[]; - }; - public options: https.AgentOptions; - private promisifiedCallback?: createAgent.AgentCallbackPromise; - private explicitDefaultPort?: number; - private explicitProtocol?: string; - - constructor( - callback?: createAgent.AgentCallback | createAgent.AgentOptions, - _opts?: createAgent.AgentOptions - ) { - super(); - - let opts = _opts; - if (typeof callback === 'function') { - this.callback = callback; - } else if (callback) { - opts = callback; - } - - // Timeout for the socket to be returned from the callback - this.timeout = null; - if (opts && typeof opts.timeout === 'number') { - this.timeout = opts.timeout; - } - - // These aren't actually used by `agent-base`, but are required - // for the TypeScript definition files in `@types/node` :/ - this.maxFreeSockets = 1; - this.maxSockets = 1; - this.maxTotalSockets = Infinity; - this.sockets = {}; - this.freeSockets = {}; - this.requests = {}; - this.options = {}; - } - - get defaultPort(): number { - if (typeof this.explicitDefaultPort === 'number') { - return this.explicitDefaultPort; - } - return isSecureEndpoint() ? 443 : 80; - } - - set defaultPort(v: number) { - this.explicitDefaultPort = v; - } - - get protocol(): string { - if (typeof this.explicitProtocol === 'string') { - return this.explicitProtocol; - } - return isSecureEndpoint() ? 'https:' : 'http:'; - } - - set protocol(v: string) { - this.explicitProtocol = v; - } - - callback( - req: createAgent.ClientRequest, - opts: createAgent.RequestOptions, - fn: createAgent.AgentCallbackCallback - ): void; - callback( - req: createAgent.ClientRequest, - opts: createAgent.RequestOptions - ): - | createAgent.AgentCallbackReturn - | Promise; - callback( - req: createAgent.ClientRequest, - opts: createAgent.AgentOptions, - fn?: createAgent.AgentCallbackCallback - ): - | createAgent.AgentCallbackReturn - | Promise - | void { - throw new Error( - '"agent-base" has no default implementation, you must subclass and override `callback()`' - ); - } - - /** - * Called by node-core's "_http_client.js" module when creating - * a new HTTP request with this Agent instance. - * - * @api public - */ - addRequest(req: ClientRequest, _opts: RequestOptions): void { - const opts: RequestOptions = { ..._opts }; - - if (typeof opts.secureEndpoint !== 'boolean') { - opts.secureEndpoint = isSecureEndpoint(); - } - - if (opts.host == null) { - opts.host = 'localhost'; - } - - if (opts.port == null) { - opts.port = opts.secureEndpoint ? 443 : 80; - } - - if (opts.protocol == null) { - opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; - } - - if (opts.host && opts.path) { - // If both a `host` and `path` are specified then it's most - // likely the result of a `url.parse()` call... we need to - // remove the `path` portion so that `net.connect()` doesn't - // attempt to open that as a unix socket file. - delete opts.path; - } - - delete opts.agent; - delete opts.hostname; - delete opts._defaultAgent; - delete opts.defaultPort; - delete opts.createConnection; - - // Hint to use "Connection: close" - // XXX: non-documented `http` module API :( - req._last = true; - req.shouldKeepAlive = false; - - let timedOut = false; - let timeoutId: ReturnType | null = null; - const timeoutMs = opts.timeout || this.timeout; - - const onerror = (err: NodeJS.ErrnoException) => { - if (req._hadError) return; - req.emit('error', err); - // For Safety. Some additional errors might fire later on - // and we need to make sure we don't double-fire the error event. - req._hadError = true; - }; - - const ontimeout = () => { - timeoutId = null; - timedOut = true; - const err: NodeJS.ErrnoException = new Error( - `A "socket" was not created for HTTP request before ${timeoutMs}ms` - ); - err.code = 'ETIMEOUT'; - onerror(err); - }; - - const callbackError = (err: NodeJS.ErrnoException) => { - if (timedOut) return; - if (timeoutId !== null) { - clearTimeout(timeoutId); - timeoutId = null; - } - onerror(err); - }; - - const onsocket = (socket: AgentCallbackReturn) => { - if (timedOut) return; - if (timeoutId != null) { - clearTimeout(timeoutId); - timeoutId = null; - } - - if (isAgent(socket)) { - // `socket` is actually an `http.Agent` instance, so - // relinquish responsibility for this `req` to the Agent - // from here on - debug( - 'Callback returned another Agent instance %o', - socket.constructor.name - ); - (socket as createAgent.Agent).addRequest(req, opts); - return; - } - - if (socket) { - socket.once('free', () => { - this.freeSocket(socket as net.Socket, opts); - }); - req.onSocket(socket as net.Socket); - return; - } - - const err = new Error( - `no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\`` - ); - onerror(err); - }; - - if (typeof this.callback !== 'function') { - onerror(new Error('`callback` is not defined')); - return; - } - - if (!this.promisifiedCallback) { - if (this.callback.length >= 3) { - debug('Converting legacy callback function to promise'); - this.promisifiedCallback = promisify(this.callback); - } else { - this.promisifiedCallback = this.callback; - } - } - - if (typeof timeoutMs === 'number' && timeoutMs > 0) { - timeoutId = setTimeout(ontimeout, timeoutMs); - } - - if ('port' in opts && typeof opts.port !== 'number') { - opts.port = Number(opts.port); - } - - try { - debug( - 'Resolving socket for %o request: %o', - opts.protocol, - `${req.method} ${req.path}` - ); - Promise.resolve(this.promisifiedCallback(req, opts)).then( - onsocket, - callbackError - ); - } catch (err) { - Promise.reject(err).catch(callbackError); - } - } - - freeSocket(socket: net.Socket, opts: AgentOptions) { - debug('Freeing socket %o %o', socket.constructor.name, opts); - socket.destroy(); - } - - destroy() { - debug('Destroying agent %o', this.constructor.name); - } - } - - // So that `instanceof` works correctly - createAgent.prototype = createAgent.Agent.prototype; -} - -export = createAgent; diff --git a/node_modules/agent-base/src/promisify.ts b/node_modules/agent-base/src/promisify.ts deleted file mode 100644 index 60cc662..0000000 --- a/node_modules/agent-base/src/promisify.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - Agent, - ClientRequest, - RequestOptions, - AgentCallbackCallback, - AgentCallbackPromise, - AgentCallbackReturn -} from './index'; - -type LegacyCallback = ( - req: ClientRequest, - opts: RequestOptions, - fn: AgentCallbackCallback -) => void; - -export default function promisify(fn: LegacyCallback): AgentCallbackPromise { - return function(this: Agent, req: ClientRequest, opts: RequestOptions) { - return new Promise((resolve, reject) => { - fn.call( - this, - req, - opts, - (err: Error | null | undefined, rtn?: AgentCallbackReturn) => { - if (err) { - reject(err); - } else { - resolve(rtn); - } - } - ); - }); - }; -} diff --git a/node_modules/ansi-regex/index.d.ts b/node_modules/ansi-regex/index.d.ts deleted file mode 100644 index 2dbf6af..0000000 --- a/node_modules/ansi-regex/index.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -declare namespace ansiRegex { - interface Options { - /** - Match only the first ANSI escape. - - @default false - */ - onlyFirst: boolean; - } -} - -/** -Regular expression for matching ANSI escape codes. - -@example -``` -import ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001B[4mcake\u001B[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001B[4mcake\u001B[0m'.match(ansiRegex()); -//=> ['\u001B[4m', '\u001B[0m'] - -'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); -//=> ['\u001B[4m'] - -'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); -//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] -``` -*/ -declare function ansiRegex(options?: ansiRegex.Options): RegExp; - -export = ansiRegex; diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js deleted file mode 100644 index 616ff83..0000000 --- a/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = ({onlyFirst = false} = {}) => { - const pattern = [ - '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', - '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' - ].join('|'); - - return new RegExp(pattern, onlyFirst ? undefined : 'g'); -}; diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license deleted file mode 100644 index e7af2f7..0000000 --- a/node_modules/ansi-regex/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json deleted file mode 100644 index 017f531..0000000 --- a/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "ansi-regex", - "version": "5.0.1", - "description": "Regular expression for matching ANSI escape codes", - "license": "MIT", - "repository": "chalk/ansi-regex", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "view-supported": "node fixtures/view-codes.js" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "devDependencies": { - "ava": "^2.4.0", - "tsd": "^0.9.0", - "xo": "^0.25.3" - } -} diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md deleted file mode 100644 index 4d848bc..0000000 --- a/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,78 +0,0 @@ -# ansi-regex - -> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install ansi-regex -``` - - -## Usage - -```js -const ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001B[4mcake\u001B[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001B[4mcake\u001B[0m'.match(ansiRegex()); -//=> ['\u001B[4m', '\u001B[0m'] - -'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); -//=> ['\u001B[4m'] - -'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); -//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] -``` - - -## API - -### ansiRegex(options?) - -Returns a regex for matching ANSI escape codes. - -#### options - -Type: `object` - -##### onlyFirst - -Type: `boolean`
-Default: `false` *(Matches any ANSI escape codes in a string)* - -Match only the first ANSI escape. - - -## FAQ - -### Why do you test for codes not in the ECMA 48 standard? - -Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. - -On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. - - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/node_modules/ansi-styles/index.d.ts b/node_modules/ansi-styles/index.d.ts deleted file mode 100644 index 44a907e..0000000 --- a/node_modules/ansi-styles/index.d.ts +++ /dev/null @@ -1,345 +0,0 @@ -declare type CSSColor = - | 'aliceblue' - | 'antiquewhite' - | 'aqua' - | 'aquamarine' - | 'azure' - | 'beige' - | 'bisque' - | 'black' - | 'blanchedalmond' - | 'blue' - | 'blueviolet' - | 'brown' - | 'burlywood' - | 'cadetblue' - | 'chartreuse' - | 'chocolate' - | 'coral' - | 'cornflowerblue' - | 'cornsilk' - | 'crimson' - | 'cyan' - | 'darkblue' - | 'darkcyan' - | 'darkgoldenrod' - | 'darkgray' - | 'darkgreen' - | 'darkgrey' - | 'darkkhaki' - | 'darkmagenta' - | 'darkolivegreen' - | 'darkorange' - | 'darkorchid' - | 'darkred' - | 'darksalmon' - | 'darkseagreen' - | 'darkslateblue' - | 'darkslategray' - | 'darkslategrey' - | 'darkturquoise' - | 'darkviolet' - | 'deeppink' - | 'deepskyblue' - | 'dimgray' - | 'dimgrey' - | 'dodgerblue' - | 'firebrick' - | 'floralwhite' - | 'forestgreen' - | 'fuchsia' - | 'gainsboro' - | 'ghostwhite' - | 'gold' - | 'goldenrod' - | 'gray' - | 'green' - | 'greenyellow' - | 'grey' - | 'honeydew' - | 'hotpink' - | 'indianred' - | 'indigo' - | 'ivory' - | 'khaki' - | 'lavender' - | 'lavenderblush' - | 'lawngreen' - | 'lemonchiffon' - | 'lightblue' - | 'lightcoral' - | 'lightcyan' - | 'lightgoldenrodyellow' - | 'lightgray' - | 'lightgreen' - | 'lightgrey' - | 'lightpink' - | 'lightsalmon' - | 'lightseagreen' - | 'lightskyblue' - | 'lightslategray' - | 'lightslategrey' - | 'lightsteelblue' - | 'lightyellow' - | 'lime' - | 'limegreen' - | 'linen' - | 'magenta' - | 'maroon' - | 'mediumaquamarine' - | 'mediumblue' - | 'mediumorchid' - | 'mediumpurple' - | 'mediumseagreen' - | 'mediumslateblue' - | 'mediumspringgreen' - | 'mediumturquoise' - | 'mediumvioletred' - | 'midnightblue' - | 'mintcream' - | 'mistyrose' - | 'moccasin' - | 'navajowhite' - | 'navy' - | 'oldlace' - | 'olive' - | 'olivedrab' - | 'orange' - | 'orangered' - | 'orchid' - | 'palegoldenrod' - | 'palegreen' - | 'paleturquoise' - | 'palevioletred' - | 'papayawhip' - | 'peachpuff' - | 'peru' - | 'pink' - | 'plum' - | 'powderblue' - | 'purple' - | 'rebeccapurple' - | 'red' - | 'rosybrown' - | 'royalblue' - | 'saddlebrown' - | 'salmon' - | 'sandybrown' - | 'seagreen' - | 'seashell' - | 'sienna' - | 'silver' - | 'skyblue' - | 'slateblue' - | 'slategray' - | 'slategrey' - | 'snow' - | 'springgreen' - | 'steelblue' - | 'tan' - | 'teal' - | 'thistle' - | 'tomato' - | 'turquoise' - | 'violet' - | 'wheat' - | 'white' - | 'whitesmoke' - | 'yellow' - | 'yellowgreen'; - -declare namespace ansiStyles { - interface ColorConvert { - /** - The RGB color space. - - @param red - (`0`-`255`) - @param green - (`0`-`255`) - @param blue - (`0`-`255`) - */ - rgb(red: number, green: number, blue: number): string; - - /** - The RGB HEX color space. - - @param hex - A hexadecimal string containing RGB data. - */ - hex(hex: string): string; - - /** - @param keyword - A CSS color name. - */ - keyword(keyword: CSSColor): string; - - /** - The HSL color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param lightness - (`0`-`100`) - */ - hsl(hue: number, saturation: number, lightness: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param saturation - (`0`-`100`) - @param value - (`0`-`100`) - */ - hsv(hue: number, saturation: number, value: number): string; - - /** - The HSV color space. - - @param hue - (`0`-`360`) - @param whiteness - (`0`-`100`) - @param blackness - (`0`-`100`) - */ - hwb(hue: number, whiteness: number, blackness: number): string; - - /** - Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. - */ - ansi(ansi: number): string; - - /** - Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. - */ - ansi256(ansi: number): string; - } - - interface CSPair { - /** - The ANSI terminal control sequence for starting this style. - */ - readonly open: string; - - /** - The ANSI terminal control sequence for ending this style. - */ - readonly close: string; - } - - interface ColorBase { - readonly ansi: ColorConvert; - readonly ansi256: ColorConvert; - readonly ansi16m: ColorConvert; - - /** - The ANSI terminal control sequence for ending this color. - */ - readonly close: string; - } - - interface Modifier { - /** - Resets the current color chain. - */ - readonly reset: CSPair; - - /** - Make text bold. - */ - readonly bold: CSPair; - - /** - Emitting only a small amount of light. - */ - readonly dim: CSPair; - - /** - Make text italic. (Not widely supported) - */ - readonly italic: CSPair; - - /** - Make text underline. (Not widely supported) - */ - readonly underline: CSPair; - - /** - Inverse background and foreground colors. - */ - readonly inverse: CSPair; - - /** - Prints the text, but makes it invisible. - */ - readonly hidden: CSPair; - - /** - Puts a horizontal line through the center of the text. (Not widely supported) - */ - readonly strikethrough: CSPair; - } - - interface ForegroundColor { - readonly black: CSPair; - readonly red: CSPair; - readonly green: CSPair; - readonly yellow: CSPair; - readonly blue: CSPair; - readonly cyan: CSPair; - readonly magenta: CSPair; - readonly white: CSPair; - - /** - Alias for `blackBright`. - */ - readonly gray: CSPair; - - /** - Alias for `blackBright`. - */ - readonly grey: CSPair; - - readonly blackBright: CSPair; - readonly redBright: CSPair; - readonly greenBright: CSPair; - readonly yellowBright: CSPair; - readonly blueBright: CSPair; - readonly cyanBright: CSPair; - readonly magentaBright: CSPair; - readonly whiteBright: CSPair; - } - - interface BackgroundColor { - readonly bgBlack: CSPair; - readonly bgRed: CSPair; - readonly bgGreen: CSPair; - readonly bgYellow: CSPair; - readonly bgBlue: CSPair; - readonly bgCyan: CSPair; - readonly bgMagenta: CSPair; - readonly bgWhite: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGray: CSPair; - - /** - Alias for `bgBlackBright`. - */ - readonly bgGrey: CSPair; - - readonly bgBlackBright: CSPair; - readonly bgRedBright: CSPair; - readonly bgGreenBright: CSPair; - readonly bgYellowBright: CSPair; - readonly bgBlueBright: CSPair; - readonly bgCyanBright: CSPair; - readonly bgMagentaBright: CSPair; - readonly bgWhiteBright: CSPair; - } -} - -declare const ansiStyles: { - readonly modifier: ansiStyles.Modifier; - readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; - readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; - readonly codes: ReadonlyMap; -} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; - -export = ansiStyles; diff --git a/node_modules/ansi-styles/index.js b/node_modules/ansi-styles/index.js deleted file mode 100644 index 5d82581..0000000 --- a/node_modules/ansi-styles/index.js +++ /dev/null @@ -1,163 +0,0 @@ -'use strict'; - -const wrapAnsi16 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${code + offset}m`; -}; - -const wrapAnsi256 = (fn, offset) => (...args) => { - const code = fn(...args); - return `\u001B[${38 + offset};5;${code}m`; -}; - -const wrapAnsi16m = (fn, offset) => (...args) => { - const rgb = fn(...args); - return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; -}; - -const ansi2ansi = n => n; -const rgb2rgb = (r, g, b) => [r, g, b]; - -const setLazyProperty = (object, property, get) => { - Object.defineProperty(object, property, { - get: () => { - const value = get(); - - Object.defineProperty(object, property, { - value, - enumerable: true, - configurable: true - }); - - return value; - }, - enumerable: true, - configurable: true - }); -}; - -/** @type {typeof import('color-convert')} */ -let colorConvert; -const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { - if (colorConvert === undefined) { - colorConvert = require('color-convert'); - } - - const offset = isBackground ? 10 : 0; - const styles = {}; - - for (const [sourceSpace, suite] of Object.entries(colorConvert)) { - const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; - if (sourceSpace === targetSpace) { - styles[name] = wrap(identity, offset); - } else if (typeof suite === 'object') { - styles[name] = wrap(suite[targetSpace], offset); - } - } - - return styles; -}; - -function assembleStyles() { - const codes = new Map(); - const styles = { - modifier: { - reset: [0, 0], - // 21 isn't widely supported and 22 does the same thing - bold: [1, 22], - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - color: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - - // Bright color - blackBright: [90, 39], - redBright: [91, 39], - greenBright: [92, 39], - yellowBright: [93, 39], - blueBright: [94, 39], - magentaBright: [95, 39], - cyanBright: [96, 39], - whiteBright: [97, 39] - }, - bgColor: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49], - - // Bright color - bgBlackBright: [100, 49], - bgRedBright: [101, 49], - bgGreenBright: [102, 49], - bgYellowBright: [103, 49], - bgBlueBright: [104, 49], - bgMagentaBright: [105, 49], - bgCyanBright: [106, 49], - bgWhiteBright: [107, 49] - } - }; - - // Alias bright black as gray (and grey) - styles.color.gray = styles.color.blackBright; - styles.bgColor.bgGray = styles.bgColor.bgBlackBright; - styles.color.grey = styles.color.blackBright; - styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; - - for (const [groupName, group] of Object.entries(styles)) { - for (const [styleName, style] of Object.entries(group)) { - styles[styleName] = { - open: `\u001B[${style[0]}m`, - close: `\u001B[${style[1]}m` - }; - - group[styleName] = styles[styleName]; - - codes.set(style[0], style[1]); - } - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - } - - Object.defineProperty(styles, 'codes', { - value: codes, - enumerable: false - }); - - styles.color.close = '\u001B[39m'; - styles.bgColor.close = '\u001B[49m'; - - setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); - setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); - setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); - setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); - - return styles; -} - -// Make the export immutable -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); diff --git a/node_modules/ansi-styles/license b/node_modules/ansi-styles/license deleted file mode 100644 index e7af2f7..0000000 --- a/node_modules/ansi-styles/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json deleted file mode 100644 index 7539328..0000000 --- a/node_modules/ansi-styles/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "ansi-styles", - "version": "4.3.0", - "description": "ANSI escape codes for styling strings in the terminal", - "license": "MIT", - "repository": "chalk/ansi-styles", - "funding": "https://github.com/chalk/ansi-styles?sponsor=1", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && ava && tsd", - "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "dependencies": { - "color-convert": "^2.0.1" - }, - "devDependencies": { - "@types/color-convert": "^1.9.0", - "ava": "^2.3.0", - "svg-term-cli": "^2.1.1", - "tsd": "^0.11.0", - "xo": "^0.25.3" - } -} diff --git a/node_modules/ansi-styles/readme.md b/node_modules/ansi-styles/readme.md deleted file mode 100644 index 24883de..0000000 --- a/node_modules/ansi-styles/readme.md +++ /dev/null @@ -1,152 +0,0 @@ -# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) - -> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal - -You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. - - - -## Install - -``` -$ npm install ansi-styles -``` - -## Usage - -```js -const style = require('ansi-styles'); - -console.log(`${style.green.open}Hello world!${style.green.close}`); - - -// Color conversion between 16/256/truecolor -// NOTE: If conversion goes to 16 colors or 256 colors, the original color -// may be degraded to fit that color palette. This means terminals -// that do not support 16 million colors will best-match the -// original color. -console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); -console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); -console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); -``` - -## API - -Each style has an `open` and `close` property. - -## Styles - -### Modifiers - -- `reset` -- `bold` -- `dim` -- `italic` *(Not widely supported)* -- `underline` -- `inverse` -- `hidden` -- `strikethrough` *(Not widely supported)* - -### Colors - -- `black` -- `red` -- `green` -- `yellow` -- `blue` -- `magenta` -- `cyan` -- `white` -- `blackBright` (alias: `gray`, `grey`) -- `redBright` -- `greenBright` -- `yellowBright` -- `blueBright` -- `magentaBright` -- `cyanBright` -- `whiteBright` - -### Background colors - -- `bgBlack` -- `bgRed` -- `bgGreen` -- `bgYellow` -- `bgBlue` -- `bgMagenta` -- `bgCyan` -- `bgWhite` -- `bgBlackBright` (alias: `bgGray`, `bgGrey`) -- `bgRedBright` -- `bgGreenBright` -- `bgYellowBright` -- `bgBlueBright` -- `bgMagentaBright` -- `bgCyanBright` -- `bgWhiteBright` - -## Advanced usage - -By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. - -- `style.modifier` -- `style.color` -- `style.bgColor` - -###### Example - -```js -console.log(style.color.green.open); -``` - -Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. - -###### Example - -```js -console.log(style.codes.get(36)); -//=> 39 -``` - -## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) - -`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. - -The following color spaces from `color-convert` are supported: - -- `rgb` -- `hex` -- `keyword` -- `hsl` -- `hsv` -- `hwb` -- `ansi` -- `ansi256` - -To use these, call the associated conversion function with the intended output, for example: - -```js -style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code -style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code - -style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code -style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code - -style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code -style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code -``` - -## Related - -- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [Josh Junon](https://github.com/qix-) - -## For enterprise - -Available as part of the Tidelift Subscription. - -The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/argparse/CHANGELOG.md b/node_modules/argparse/CHANGELOG.md deleted file mode 100644 index dc39ed6..0000000 --- a/node_modules/argparse/CHANGELOG.md +++ /dev/null @@ -1,216 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - - -## [2.0.1] - 2020-08-29 -### Fixed -- Fix issue with `process.argv` when used with interpreters (`coffee`, `ts-node`, etc.), #150. - - -## [2.0.0] - 2020-08-14 -### Changed -- Full rewrite. Now port from python 3.9.0 & more precise following. - See [doc](./doc) for difference and migration info. -- node.js 10+ required -- Removed most of local docs in favour of original ones. - - -## [1.0.10] - 2018-02-15 -### Fixed -- Use .concat instead of + for arrays, #122. - - -## [1.0.9] - 2016-09-29 -### Changed -- Rerelease after 1.0.8 - deps cleanup. - - -## [1.0.8] - 2016-09-29 -### Changed -- Maintenance (deps bump, fix node 6.5+ tests, coverage report). - - -## [1.0.7] - 2016-03-17 -### Changed -- Teach `addArgument` to accept string arg names. #97, @tomxtobin. - - -## [1.0.6] - 2016-02-06 -### Changed -- Maintenance: moved to eslint & updated CS. - - -## [1.0.5] - 2016-02-05 -### Changed -- Removed lodash dependency to significantly reduce install size. - Thanks to @mourner. - - -## [1.0.4] - 2016-01-17 -### Changed -- Maintenance: lodash update to 4.0.0. - - -## [1.0.3] - 2015-10-27 -### Fixed -- Fix parse `=` in args: `--examplepath="C:\myfolder\env=x64"`. #84, @CatWithApple. - - -## [1.0.2] - 2015-03-22 -### Changed -- Relaxed lodash version dependency. - - -## [1.0.1] - 2015-02-20 -### Changed -- Changed dependencies to be compatible with ancient nodejs. - - -## [1.0.0] - 2015-02-19 -### Changed -- Maintenance release. -- Replaced `underscore` with `lodash`. -- Bumped version to 1.0.0 to better reflect semver meaning. -- HISTORY.md -> CHANGELOG.md - - -## [0.1.16] - 2013-12-01 -### Changed -- Maintenance release. Updated dependencies and docs. - - -## [0.1.15] - 2013-05-13 -### Fixed -- Fixed #55, @trebor89 - - -## [0.1.14] - 2013-05-12 -### Fixed -- Fixed #62, @maxtaco - - -## [0.1.13] - 2013-04-08 -### Changed -- Added `.npmignore` to reduce package size - - -## [0.1.12] - 2013-02-10 -### Fixed -- Fixed conflictHandler (#46), @hpaulj - - -## [0.1.11] - 2013-02-07 -### Added -- Added 70+ tests (ported from python), @hpaulj -- Added conflictHandler, @applepicke -- Added fromfilePrefixChar, @hpaulj - -### Fixed -- Multiple bugfixes, @hpaulj - - -## [0.1.10] - 2012-12-30 -### Added -- Added [mutual exclusion](http://docs.python.org/dev/library/argparse.html#mutual-exclusion) - support, thanks to @hpaulj - -### Fixed -- Fixed options check for `storeConst` & `appendConst` actions, thanks to @hpaulj - - -## [0.1.9] - 2012-12-27 -### Fixed -- Fixed option dest interferens with other options (issue #23), thanks to @hpaulj -- Fixed default value behavior with `*` positionals, thanks to @hpaulj -- Improve `getDefault()` behavior, thanks to @hpaulj -- Improve negative argument parsing, thanks to @hpaulj - - -## [0.1.8] - 2012-12-01 -### Fixed -- Fixed parser parents (issue #19), thanks to @hpaulj -- Fixed negative argument parse (issue #20), thanks to @hpaulj - - -## [0.1.7] - 2012-10-14 -### Fixed -- Fixed 'choices' argument parse (issue #16) -- Fixed stderr output (issue #15) - - -## [0.1.6] - 2012-09-09 -### Fixed -- Fixed check for conflict of options (thanks to @tomxtobin) - - -## [0.1.5] - 2012-09-03 -### Fixed -- Fix parser #setDefaults method (thanks to @tomxtobin) - - -## [0.1.4] - 2012-07-30 -### Fixed -- Fixed pseudo-argument support (thanks to @CGamesPlay) -- Fixed addHelp default (should be true), if not set (thanks to @benblank) - - -## [0.1.3] - 2012-06-27 -### Fixed -- Fixed formatter api name: Formatter -> HelpFormatter - - -## [0.1.2] - 2012-05-29 -### Fixed -- Removed excess whitespace in help -- Fixed error reporting, when parcer with subcommands - called with empty arguments - -### Added -- Added basic tests - - -## [0.1.1] - 2012-05-23 -### Fixed -- Fixed line wrapping in help formatter -- Added better error reporting on invalid arguments - - -## [0.1.0] - 2012-05-16 -### Added -- First release. - - -[2.0.1]: https://github.com/nodeca/argparse/compare/2.0.0...2.0.1 -[2.0.0]: https://github.com/nodeca/argparse/compare/1.0.10...2.0.0 -[1.0.10]: https://github.com/nodeca/argparse/compare/1.0.9...1.0.10 -[1.0.9]: https://github.com/nodeca/argparse/compare/1.0.8...1.0.9 -[1.0.8]: https://github.com/nodeca/argparse/compare/1.0.7...1.0.8 -[1.0.7]: https://github.com/nodeca/argparse/compare/1.0.6...1.0.7 -[1.0.6]: https://github.com/nodeca/argparse/compare/1.0.5...1.0.6 -[1.0.5]: https://github.com/nodeca/argparse/compare/1.0.4...1.0.5 -[1.0.4]: https://github.com/nodeca/argparse/compare/1.0.3...1.0.4 -[1.0.3]: https://github.com/nodeca/argparse/compare/1.0.2...1.0.3 -[1.0.2]: https://github.com/nodeca/argparse/compare/1.0.1...1.0.2 -[1.0.1]: https://github.com/nodeca/argparse/compare/1.0.0...1.0.1 -[1.0.0]: https://github.com/nodeca/argparse/compare/0.1.16...1.0.0 -[0.1.16]: https://github.com/nodeca/argparse/compare/0.1.15...0.1.16 -[0.1.15]: https://github.com/nodeca/argparse/compare/0.1.14...0.1.15 -[0.1.14]: https://github.com/nodeca/argparse/compare/0.1.13...0.1.14 -[0.1.13]: https://github.com/nodeca/argparse/compare/0.1.12...0.1.13 -[0.1.12]: https://github.com/nodeca/argparse/compare/0.1.11...0.1.12 -[0.1.11]: https://github.com/nodeca/argparse/compare/0.1.10...0.1.11 -[0.1.10]: https://github.com/nodeca/argparse/compare/0.1.9...0.1.10 -[0.1.9]: https://github.com/nodeca/argparse/compare/0.1.8...0.1.9 -[0.1.8]: https://github.com/nodeca/argparse/compare/0.1.7...0.1.8 -[0.1.7]: https://github.com/nodeca/argparse/compare/0.1.6...0.1.7 -[0.1.6]: https://github.com/nodeca/argparse/compare/0.1.5...0.1.6 -[0.1.5]: https://github.com/nodeca/argparse/compare/0.1.4...0.1.5 -[0.1.4]: https://github.com/nodeca/argparse/compare/0.1.3...0.1.4 -[0.1.3]: https://github.com/nodeca/argparse/compare/0.1.2...0.1.3 -[0.1.2]: https://github.com/nodeca/argparse/compare/0.1.1...0.1.2 -[0.1.1]: https://github.com/nodeca/argparse/compare/0.1.0...0.1.1 -[0.1.0]: https://github.com/nodeca/argparse/releases/tag/0.1.0 diff --git a/node_modules/argparse/LICENSE b/node_modules/argparse/LICENSE deleted file mode 100644 index 66a3ac8..0000000 --- a/node_modules/argparse/LICENSE +++ /dev/null @@ -1,254 +0,0 @@ -A. HISTORY OF THE SOFTWARE -========================== - -Python was created in the early 1990s by Guido van Rossum at Stichting -Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands -as a successor of a language called ABC. Guido remains Python's -principal author, although it includes many contributions from others. - -In 1995, Guido continued his work on Python at the Corporation for -National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) -in Reston, Virginia where he released several versions of the -software. - -In May 2000, Guido and the Python core development team moved to -BeOpen.com to form the BeOpen PythonLabs team. In October of the same -year, the PythonLabs team moved to Digital Creations, which became -Zope Corporation. In 2001, the Python Software Foundation (PSF, see -https://www.python.org/psf/) was formed, a non-profit organization -created specifically to own Python-related Intellectual Property. -Zope Corporation was a sponsoring member of the PSF. - -All Python releases are Open Source (see http://www.opensource.org for -the Open Source Definition). Historically, most, but not all, Python -releases have also been GPL-compatible; the table below summarizes -the various releases. - - Release Derived Year Owner GPL- - from compatible? (1) - - 0.9.0 thru 1.2 1991-1995 CWI yes - 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes - 1.6 1.5.2 2000 CNRI no - 2.0 1.6 2000 BeOpen.com no - 1.6.1 1.6 2001 CNRI yes (2) - 2.1 2.0+1.6.1 2001 PSF no - 2.0.1 2.0+1.6.1 2001 PSF yes - 2.1.1 2.1+2.0.1 2001 PSF yes - 2.1.2 2.1.1 2002 PSF yes - 2.1.3 2.1.2 2002 PSF yes - 2.2 and above 2.1.1 2001-now PSF yes - -Footnotes: - -(1) GPL-compatible doesn't mean that we're distributing Python under - the GPL. All Python licenses, unlike the GPL, let you distribute - a modified version without making your changes open source. The - GPL-compatible licenses make it possible to combine Python with - other software that is released under the GPL; the others don't. - -(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, - because its license has a choice of law clause. According to - CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 - is "not incompatible" with the GPL. - -Thanks to the many outside volunteers who have worked under Guido's -direction to make these releases possible. - - -B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON -=============================================================== - -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation; -All Rights Reserved" are retained in Python alone or in any derivative version -prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 -------------------------------------------- - -BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 - -1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an -office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the -Individual or Organization ("Licensee") accessing and otherwise using -this software in source or binary form and its associated -documentation ("the Software"). - -2. Subject to the terms and conditions of this BeOpen Python License -Agreement, BeOpen hereby grants Licensee a non-exclusive, -royalty-free, world-wide license to reproduce, analyze, test, perform -and/or display publicly, prepare derivative works, distribute, and -otherwise use the Software alone or in any derivative version, -provided, however, that the BeOpen Python License is retained in the -Software, alone or in any derivative version prepared by Licensee. - -3. BeOpen is making the Software available to Licensee on an "AS IS" -basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE -SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS -AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY -DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -5. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -6. This License Agreement shall be governed by and interpreted in all -respects by the law of the State of California, excluding conflict of -law provisions. Nothing in this License Agreement shall be deemed to -create any relationship of agency, partnership, or joint venture -between BeOpen and Licensee. This License Agreement does not grant -permission to use BeOpen trademarks or trade names in a trademark -sense to endorse or promote products or services of Licensee, or any -third party. As an exception, the "BeOpen Python" logos available at -http://www.pythonlabs.com/logos.html may be used according to the -permissions granted on that web page. - -7. By copying, installing or otherwise using the software, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 ---------------------------------------- - -1. This LICENSE AGREEMENT is between the Corporation for National -Research Initiatives, having an office at 1895 Preston White Drive, -Reston, VA 20191 ("CNRI"), and the Individual or Organization -("Licensee") accessing and otherwise using Python 1.6.1 software in -source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, CNRI -hereby grants Licensee a nonexclusive, royalty-free, world-wide -license to reproduce, analyze, test, perform and/or display publicly, -prepare derivative works, distribute, and otherwise use Python 1.6.1 -alone or in any derivative version, provided, however, that CNRI's -License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) -1995-2001 Corporation for National Research Initiatives; All Rights -Reserved" are retained in Python 1.6.1 alone or in any derivative -version prepared by Licensee. Alternately, in lieu of CNRI's License -Agreement, Licensee may substitute the following text (omitting the -quotes): "Python 1.6.1 is made available subject to the terms and -conditions in CNRI's License Agreement. This Agreement together with -Python 1.6.1 may be located on the Internet using the following -unique, persistent identifier (known as a handle): 1895.22/1013. This -Agreement may also be obtained from a proxy server on the Internet -using the following URL: http://hdl.handle.net/1895.22/1013". - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python 1.6.1 or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python 1.6.1. - -4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" -basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. This License Agreement shall be governed by the federal -intellectual property law of the United States, including without -limitation the federal copyright law, and, to the extent such -U.S. federal law does not apply, by the law of the Commonwealth of -Virginia, excluding Virginia's conflict of law provisions. -Notwithstanding the foregoing, with regard to derivative works based -on Python 1.6.1 that incorporate non-separable material that was -previously distributed under the GNU General Public License (GPL), the -law of the Commonwealth of Virginia shall govern this License -Agreement only as to issues arising under or with respect to -Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this -License Agreement shall be deemed to create any relationship of -agency, partnership, or joint venture between CNRI and Licensee. This -License Agreement does not grant permission to use CNRI trademarks or -trade name in a trademark sense to endorse or promote products or -services of Licensee, or any third party. - -8. By clicking on the "ACCEPT" button where indicated, or by copying, -installing or otherwise using Python 1.6.1, Licensee agrees to be -bound by the terms and conditions of this License Agreement. - - ACCEPT - - -CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 --------------------------------------------------- - -Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, -The Netherlands. All rights reserved. - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Stichting Mathematisch -Centrum or CWI not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE -FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/argparse/README.md b/node_modules/argparse/README.md deleted file mode 100644 index 550b5c9..0000000 --- a/node_modules/argparse/README.md +++ /dev/null @@ -1,84 +0,0 @@ -argparse -======== - -[![Build Status](https://secure.travis-ci.org/nodeca/argparse.svg?branch=master)](http://travis-ci.org/nodeca/argparse) -[![NPM version](https://img.shields.io/npm/v/argparse.svg)](https://www.npmjs.org/package/argparse) - -CLI arguments parser for node.js, with [sub-commands](https://docs.python.org/3.9/library/argparse.html#sub-commands) support. Port of python's [argparse](http://docs.python.org/dev/library/argparse.html) (version [3.9.0](https://github.com/python/cpython/blob/v3.9.0rc1/Lib/argparse.py)). - -**Difference with original.** - -- JS has no keyword arguments support. - - Pass options instead: `new ArgumentParser({ description: 'example', add_help: true })`. -- JS has no python's types `int`, `float`, ... - - Use string-typed names: `.add_argument('-b', { type: 'int', help: 'help' })`. -- `%r` format specifier uses `require('util').inspect()`. - -More details in [doc](./doc). - - -Example -------- - -`test.js` file: - -```javascript -#!/usr/bin/env node -'use strict'; - -const { ArgumentParser } = require('argparse'); -const { version } = require('./package.json'); - -const parser = new ArgumentParser({ - description: 'Argparse example' -}); - -parser.add_argument('-v', '--version', { action: 'version', version }); -parser.add_argument('-f', '--foo', { help: 'foo bar' }); -parser.add_argument('-b', '--bar', { help: 'bar foo' }); -parser.add_argument('--baz', { help: 'baz bar' }); - -console.dir(parser.parse_args()); -``` - -Display help: - -``` -$ ./test.js -h -usage: test.js [-h] [-v] [-f FOO] [-b BAR] [--baz BAZ] - -Argparse example - -optional arguments: - -h, --help show this help message and exit - -v, --version show program's version number and exit - -f FOO, --foo FOO foo bar - -b BAR, --bar BAR bar foo - --baz BAZ baz bar -``` - -Parse arguments: - -``` -$ ./test.js -f=3 --bar=4 --baz 5 -{ foo: '3', bar: '4', baz: '5' } -``` - - -API docs --------- - -Since this is a port with minimal divergence, there's no separate documentation. -Use original one instead, with notes about difference. - -1. [Original doc](https://docs.python.org/3.9/library/argparse.html). -2. [Original tutorial](https://docs.python.org/3.9/howto/argparse.html). -3. [Difference with python](./doc). - - -argparse for enterprise ------------------------ - -Available as part of the Tidelift Subscription - -The maintainers of argparse and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-argparse?utm_source=npm-argparse&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/argparse/argparse.js b/node_modules/argparse/argparse.js deleted file mode 100644 index 2b8c8c6..0000000 --- a/node_modules/argparse/argparse.js +++ /dev/null @@ -1,3707 +0,0 @@ -// Port of python's argparse module, version 3.9.0: -// https://github.com/python/cpython/blob/v3.9.0rc1/Lib/argparse.py - -'use strict' - -// Copyright (C) 2010-2020 Python Software Foundation. -// Copyright (C) 2020 argparse.js authors - -/* - * Command-line parsing library - * - * This module is an optparse-inspired command-line parsing library that: - * - * - handles both optional and positional arguments - * - produces highly informative usage messages - * - supports parsers that dispatch to sub-parsers - * - * The following is a simple usage example that sums integers from the - * command-line and writes the result to a file:: - * - * parser = argparse.ArgumentParser( - * description='sum the integers at the command line') - * parser.add_argument( - * 'integers', metavar='int', nargs='+', type=int, - * help='an integer to be summed') - * parser.add_argument( - * '--log', default=sys.stdout, type=argparse.FileType('w'), - * help='the file where the sum should be written') - * args = parser.parse_args() - * args.log.write('%s' % sum(args.integers)) - * args.log.close() - * - * The module contains the following public classes: - * - * - ArgumentParser -- The main entry point for command-line parsing. As the - * example above shows, the add_argument() method is used to populate - * the parser with actions for optional and positional arguments. Then - * the parse_args() method is invoked to convert the args at the - * command-line into an object with attributes. - * - * - ArgumentError -- The exception raised by ArgumentParser objects when - * there are errors with the parser's actions. Errors raised while - * parsing the command-line are caught by ArgumentParser and emitted - * as command-line messages. - * - * - FileType -- A factory for defining types of files to be created. As the - * example above shows, instances of FileType are typically passed as - * the type= argument of add_argument() calls. - * - * - Action -- The base class for parser actions. Typically actions are - * selected by passing strings like 'store_true' or 'append_const' to - * the action= argument of add_argument(). However, for greater - * customization of ArgumentParser actions, subclasses of Action may - * be defined and passed as the action= argument. - * - * - HelpFormatter, RawDescriptionHelpFormatter, RawTextHelpFormatter, - * ArgumentDefaultsHelpFormatter -- Formatter classes which - * may be passed as the formatter_class= argument to the - * ArgumentParser constructor. HelpFormatter is the default, - * RawDescriptionHelpFormatter and RawTextHelpFormatter tell the parser - * not to change the formatting for help text, and - * ArgumentDefaultsHelpFormatter adds information about argument defaults - * to the help. - * - * All other classes in this module are considered implementation details. - * (Also note that HelpFormatter and RawDescriptionHelpFormatter are only - * considered public as object names -- the API of the formatter objects is - * still considered an implementation detail.) - */ - -const SUPPRESS = '==SUPPRESS==' - -const OPTIONAL = '?' -const ZERO_OR_MORE = '*' -const ONE_OR_MORE = '+' -const PARSER = 'A...' -const REMAINDER = '...' -const _UNRECOGNIZED_ARGS_ATTR = '_unrecognized_args' - - -// ================================== -// Utility functions used for porting -// ================================== -const assert = require('assert') -const util = require('util') -const fs = require('fs') -const sub = require('./lib/sub') -const path = require('path') -const repr = util.inspect - -function get_argv() { - // omit first argument (which is assumed to be interpreter - `node`, `coffee`, `ts-node`, etc.) - return process.argv.slice(1) -} - -function get_terminal_size() { - return { - columns: +process.env.COLUMNS || process.stdout.columns || 80 - } -} - -function hasattr(object, name) { - return Object.prototype.hasOwnProperty.call(object, name) -} - -function getattr(object, name, value) { - return hasattr(object, name) ? object[name] : value -} - -function setattr(object, name, value) { - object[name] = value -} - -function setdefault(object, name, value) { - if (!hasattr(object, name)) object[name] = value - return object[name] -} - -function delattr(object, name) { - delete object[name] -} - -function range(from, to, step=1) { - // range(10) is equivalent to range(0, 10) - if (arguments.length === 1) [ to, from ] = [ from, 0 ] - if (typeof from !== 'number' || typeof to !== 'number' || typeof step !== 'number') { - throw new TypeError('argument cannot be interpreted as an integer') - } - if (step === 0) throw new TypeError('range() arg 3 must not be zero') - - let result = [] - if (step > 0) { - for (let i = from; i < to; i += step) result.push(i) - } else { - for (let i = from; i > to; i += step) result.push(i) - } - return result -} - -function splitlines(str, keepends = false) { - let result - if (!keepends) { - result = str.split(/\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029]/) - } else { - result = [] - let parts = str.split(/(\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029])/) - for (let i = 0; i < parts.length; i += 2) { - result.push(parts[i] + (i + 1 < parts.length ? parts[i + 1] : '')) - } - } - if (!result[result.length - 1]) result.pop() - return result -} - -function _string_lstrip(string, prefix_chars) { - let idx = 0 - while (idx < string.length && prefix_chars.includes(string[idx])) idx++ - return idx ? string.slice(idx) : string -} - -function _string_split(string, sep, maxsplit) { - let result = string.split(sep) - if (result.length > maxsplit) { - result = result.slice(0, maxsplit).concat([ result.slice(maxsplit).join(sep) ]) - } - return result -} - -function _array_equal(array1, array2) { - if (array1.length !== array2.length) return false - for (let i = 0; i < array1.length; i++) { - if (array1[i] !== array2[i]) return false - } - return true -} - -function _array_remove(array, item) { - let idx = array.indexOf(item) - if (idx === -1) throw new TypeError(sub('%r not in list', item)) - array.splice(idx, 1) -} - -// normalize choices to array; -// this isn't required in python because `in` and `map` operators work with anything, -// but in js dealing with multiple types here is too clunky -function _choices_to_array(choices) { - if (choices === undefined) { - return [] - } else if (Array.isArray(choices)) { - return choices - } else if (choices !== null && typeof choices[Symbol.iterator] === 'function') { - return Array.from(choices) - } else if (typeof choices === 'object' && choices !== null) { - return Object.keys(choices) - } else { - throw new Error(sub('invalid choices value: %r', choices)) - } -} - -// decorator that allows a class to be called without new -function _callable(cls) { - let result = { // object is needed for inferred class name - [cls.name]: function (...args) { - let this_class = new.target === result || !new.target - return Reflect.construct(cls, args, this_class ? cls : new.target) - } - } - result[cls.name].prototype = cls.prototype - // fix default tag for toString, e.g. [object Action] instead of [object Object] - cls.prototype[Symbol.toStringTag] = cls.name - return result[cls.name] -} - -function _alias(object, from, to) { - try { - let name = object.constructor.name - Object.defineProperty(object, from, { - value: util.deprecate(object[to], sub('%s.%s() is renamed to %s.%s()', - name, from, name, to)), - enumerable: false - }) - } catch {} -} - -// decorator that allows snake_case class methods to be called with camelCase and vice versa -function _camelcase_alias(_class) { - for (let name of Object.getOwnPropertyNames(_class.prototype)) { - let camelcase = name.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase()) - if (camelcase !== name) _alias(_class.prototype, camelcase, name) - } - return _class -} - -function _to_legacy_name(key) { - key = key.replace(/\w_[a-z]/g, s => s[0] + s[2].toUpperCase()) - if (key === 'default') key = 'defaultValue' - if (key === 'const') key = 'constant' - return key -} - -function _to_new_name(key) { - if (key === 'defaultValue') key = 'default' - if (key === 'constant') key = 'const' - key = key.replace(/[A-Z]/g, c => '_' + c.toLowerCase()) - return key -} - -// parse options -let no_default = Symbol('no_default_value') -function _parse_opts(args, descriptor) { - function get_name() { - let stack = new Error().stack.split('\n') - .map(x => x.match(/^ at (.*) \(.*\)$/)) - .filter(Boolean) - .map(m => m[1]) - .map(fn => fn.match(/[^ .]*$/)[0]) - - if (stack.length && stack[0] === get_name.name) stack.shift() - if (stack.length && stack[0] === _parse_opts.name) stack.shift() - return stack.length ? stack[0] : '' - } - - args = Array.from(args) - let kwargs = {} - let result = [] - let last_opt = args.length && args[args.length - 1] - - if (typeof last_opt === 'object' && last_opt !== null && !Array.isArray(last_opt) && - (!last_opt.constructor || last_opt.constructor.name === 'Object')) { - kwargs = Object.assign({}, args.pop()) - } - - // LEGACY (v1 compatibility): camelcase - let renames = [] - for (let key of Object.keys(descriptor)) { - let old_name = _to_legacy_name(key) - if (old_name !== key && (old_name in kwargs)) { - if (key in kwargs) { - // default and defaultValue specified at the same time, happens often in old tests - //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key)) - } else { - kwargs[key] = kwargs[old_name] - } - renames.push([ old_name, key ]) - delete kwargs[old_name] - } - } - if (renames.length) { - let name = get_name() - deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s', - name, renames.map(([ a, b ]) => sub('%r -> %r', a, b)))) - } - // end - - let missing_positionals = [] - let positional_count = args.length - - for (let [ key, def ] of Object.entries(descriptor)) { - if (key[0] === '*') { - if (key.length > 0 && key[1] === '*') { - // LEGACY (v1 compatibility): camelcase - let renames = [] - for (let key of Object.keys(kwargs)) { - let new_name = _to_new_name(key) - if (new_name !== key && (key in kwargs)) { - if (new_name in kwargs) { - // default and defaultValue specified at the same time, happens often in old tests - //throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), new_name)) - } else { - kwargs[new_name] = kwargs[key] - } - renames.push([ key, new_name ]) - delete kwargs[key] - } - } - if (renames.length) { - let name = get_name() - deprecate('camelcase_' + name, sub('%s(): following options are renamed: %s', - name, renames.map(([ a, b ]) => sub('%r -> %r', a, b)))) - } - // end - result.push(kwargs) - kwargs = {} - } else { - result.push(args) - args = [] - } - } else if (key in kwargs && args.length > 0) { - throw new TypeError(sub('%s() got multiple values for argument %r', get_name(), key)) - } else if (key in kwargs) { - result.push(kwargs[key]) - delete kwargs[key] - } else if (args.length > 0) { - result.push(args.shift()) - } else if (def !== no_default) { - result.push(def) - } else { - missing_positionals.push(key) - } - } - - if (Object.keys(kwargs).length) { - throw new TypeError(sub('%s() got an unexpected keyword argument %r', - get_name(), Object.keys(kwargs)[0])) - } - - if (args.length) { - let from = Object.entries(descriptor).filter(([ k, v ]) => k[0] !== '*' && v !== no_default).length - let to = Object.entries(descriptor).filter(([ k ]) => k[0] !== '*').length - throw new TypeError(sub('%s() takes %s positional argument%s but %s %s given', - get_name(), - from === to ? sub('from %s to %s', from, to) : to, - from === to && to === 1 ? '' : 's', - positional_count, - positional_count === 1 ? 'was' : 'were')) - } - - if (missing_positionals.length) { - let strs = missing_positionals.map(repr) - if (strs.length > 1) strs[strs.length - 1] = 'and ' + strs[strs.length - 1] - let str_joined = strs.join(strs.length === 2 ? '' : ', ') - throw new TypeError(sub('%s() missing %i required positional argument%s: %s', - get_name(), strs.length, strs.length === 1 ? '' : 's', str_joined)) - } - - return result -} - -let _deprecations = {} -function deprecate(id, string) { - _deprecations[id] = _deprecations[id] || util.deprecate(() => {}, string) - _deprecations[id]() -} - - -// ============================= -// Utility functions and classes -// ============================= -function _AttributeHolder(cls = Object) { - /* - * Abstract base class that provides __repr__. - * - * The __repr__ method returns a string in the format:: - * ClassName(attr=name, attr=name, ...) - * The attributes are determined either by a class-level attribute, - * '_kwarg_names', or by inspecting the instance __dict__. - */ - - return class _AttributeHolder extends cls { - [util.inspect.custom]() { - let type_name = this.constructor.name - let arg_strings = [] - let star_args = {} - for (let arg of this._get_args()) { - arg_strings.push(repr(arg)) - } - for (let [ name, value ] of this._get_kwargs()) { - if (/^[a-z_][a-z0-9_$]*$/i.test(name)) { - arg_strings.push(sub('%s=%r', name, value)) - } else { - star_args[name] = value - } - } - if (Object.keys(star_args).length) { - arg_strings.push(sub('**%s', repr(star_args))) - } - return sub('%s(%s)', type_name, arg_strings.join(', ')) - } - - toString() { - return this[util.inspect.custom]() - } - - _get_kwargs() { - return Object.entries(this) - } - - _get_args() { - return [] - } - } -} - - -function _copy_items(items) { - if (items === undefined) { - return [] - } - return items.slice(0) -} - - -// =============== -// Formatting Help -// =============== -const HelpFormatter = _camelcase_alias(_callable(class HelpFormatter { - /* - * Formatter for generating usage messages and argument help strings. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - constructor() { - let [ - prog, - indent_increment, - max_help_position, - width - ] = _parse_opts(arguments, { - prog: no_default, - indent_increment: 2, - max_help_position: 24, - width: undefined - }) - - // default setting for width - if (width === undefined) { - width = get_terminal_size().columns - width -= 2 - } - - this._prog = prog - this._indent_increment = indent_increment - this._max_help_position = Math.min(max_help_position, - Math.max(width - 20, indent_increment * 2)) - this._width = width - - this._current_indent = 0 - this._level = 0 - this._action_max_length = 0 - - this._root_section = this._Section(this, undefined) - this._current_section = this._root_section - - this._whitespace_matcher = /[ \t\n\r\f\v]+/g // equivalent to python /\s+/ with ASCII flag - this._long_break_matcher = /\n\n\n+/g - } - - // =============================== - // Section and indentation methods - // =============================== - _indent() { - this._current_indent += this._indent_increment - this._level += 1 - } - - _dedent() { - this._current_indent -= this._indent_increment - assert(this._current_indent >= 0, 'Indent decreased below 0.') - this._level -= 1 - } - - _add_item(func, args) { - this._current_section.items.push([ func, args ]) - } - - // ======================== - // Message building methods - // ======================== - start_section(heading) { - this._indent() - let section = this._Section(this, this._current_section, heading) - this._add_item(section.format_help.bind(section), []) - this._current_section = section - } - - end_section() { - this._current_section = this._current_section.parent - this._dedent() - } - - add_text(text) { - if (text !== SUPPRESS && text !== undefined) { - this._add_item(this._format_text.bind(this), [text]) - } - } - - add_usage(usage, actions, groups, prefix = undefined) { - if (usage !== SUPPRESS) { - let args = [ usage, actions, groups, prefix ] - this._add_item(this._format_usage.bind(this), args) - } - } - - add_argument(action) { - if (action.help !== SUPPRESS) { - - // find all invocations - let invocations = [this._format_action_invocation(action)] - for (let subaction of this._iter_indented_subactions(action)) { - invocations.push(this._format_action_invocation(subaction)) - } - - // update the maximum item length - let invocation_length = Math.max(...invocations.map(invocation => invocation.length)) - let action_length = invocation_length + this._current_indent - this._action_max_length = Math.max(this._action_max_length, - action_length) - - // add the item to the list - this._add_item(this._format_action.bind(this), [action]) - } - } - - add_arguments(actions) { - for (let action of actions) { - this.add_argument(action) - } - } - - // ======================= - // Help-formatting methods - // ======================= - format_help() { - let help = this._root_section.format_help() - if (help) { - help = help.replace(this._long_break_matcher, '\n\n') - help = help.replace(/^\n+|\n+$/g, '') + '\n' - } - return help - } - - _join_parts(part_strings) { - return part_strings.filter(part => part && part !== SUPPRESS).join('') - } - - _format_usage(usage, actions, groups, prefix) { - if (prefix === undefined) { - prefix = 'usage: ' - } - - // if usage is specified, use that - if (usage !== undefined) { - usage = sub(usage, { prog: this._prog }) - - // if no optionals or positionals are available, usage is just prog - } else if (usage === undefined && !actions.length) { - usage = sub('%(prog)s', { prog: this._prog }) - - // if optionals and positionals are available, calculate usage - } else if (usage === undefined) { - let prog = sub('%(prog)s', { prog: this._prog }) - - // split optionals from positionals - let optionals = [] - let positionals = [] - for (let action of actions) { - if (action.option_strings.length) { - optionals.push(action) - } else { - positionals.push(action) - } - } - - // build full usage string - let action_usage = this._format_actions_usage([].concat(optionals).concat(positionals), groups) - usage = [ prog, action_usage ].map(String).join(' ') - - // wrap the usage parts if it's too long - let text_width = this._width - this._current_indent - if (prefix.length + usage.length > text_width) { - - // break usage into wrappable parts - let part_regexp = /\(.*?\)+(?=\s|$)|\[.*?\]+(?=\s|$)|\S+/g - let opt_usage = this._format_actions_usage(optionals, groups) - let pos_usage = this._format_actions_usage(positionals, groups) - let opt_parts = opt_usage.match(part_regexp) || [] - let pos_parts = pos_usage.match(part_regexp) || [] - assert(opt_parts.join(' ') === opt_usage) - assert(pos_parts.join(' ') === pos_usage) - - // helper for wrapping lines - let get_lines = (parts, indent, prefix = undefined) => { - let lines = [] - let line = [] - let line_len - if (prefix !== undefined) { - line_len = prefix.length - 1 - } else { - line_len = indent.length - 1 - } - for (let part of parts) { - if (line_len + 1 + part.length > text_width && line) { - lines.push(indent + line.join(' ')) - line = [] - line_len = indent.length - 1 - } - line.push(part) - line_len += part.length + 1 - } - if (line.length) { - lines.push(indent + line.join(' ')) - } - if (prefix !== undefined) { - lines[0] = lines[0].slice(indent.length) - } - return lines - } - - let lines - - // if prog is short, follow it with optionals or positionals - if (prefix.length + prog.length <= 0.75 * text_width) { - let indent = ' '.repeat(prefix.length + prog.length + 1) - if (opt_parts.length) { - lines = get_lines([prog].concat(opt_parts), indent, prefix) - lines = lines.concat(get_lines(pos_parts, indent)) - } else if (pos_parts.length) { - lines = get_lines([prog].concat(pos_parts), indent, prefix) - } else { - lines = [prog] - } - - // if prog is long, put it on its own line - } else { - let indent = ' '.repeat(prefix.length) - let parts = [].concat(opt_parts).concat(pos_parts) - lines = get_lines(parts, indent) - if (lines.length > 1) { - lines = [] - lines = lines.concat(get_lines(opt_parts, indent)) - lines = lines.concat(get_lines(pos_parts, indent)) - } - lines = [prog].concat(lines) - } - - // join lines into usage - usage = lines.join('\n') - } - } - - // prefix with 'usage:' - return sub('%s%s\n\n', prefix, usage) - } - - _format_actions_usage(actions, groups) { - // find group indices and identify actions in groups - let group_actions = new Set() - let inserts = {} - for (let group of groups) { - let start = actions.indexOf(group._group_actions[0]) - if (start === -1) { - continue - } else { - let end = start + group._group_actions.length - if (_array_equal(actions.slice(start, end), group._group_actions)) { - for (let action of group._group_actions) { - group_actions.add(action) - } - if (!group.required) { - if (start in inserts) { - inserts[start] += ' [' - } else { - inserts[start] = '[' - } - if (end in inserts) { - inserts[end] += ']' - } else { - inserts[end] = ']' - } - } else { - if (start in inserts) { - inserts[start] += ' (' - } else { - inserts[start] = '(' - } - if (end in inserts) { - inserts[end] += ')' - } else { - inserts[end] = ')' - } - } - for (let i of range(start + 1, end)) { - inserts[i] = '|' - } - } - } - } - - // collect all actions format strings - let parts = [] - for (let [ i, action ] of Object.entries(actions)) { - - // suppressed arguments are marked with None - // remove | separators for suppressed arguments - if (action.help === SUPPRESS) { - parts.push(undefined) - if (inserts[+i] === '|') { - delete inserts[+i] - } else if (inserts[+i + 1] === '|') { - delete inserts[+i + 1] - } - - // produce all arg strings - } else if (!action.option_strings.length) { - let default_value = this._get_default_metavar_for_positional(action) - let part = this._format_args(action, default_value) - - // if it's in a group, strip the outer [] - if (group_actions.has(action)) { - if (part[0] === '[' && part[part.length - 1] === ']') { - part = part.slice(1, -1) - } - } - - // add the action string to the list - parts.push(part) - - // produce the first way to invoke the option in brackets - } else { - let option_string = action.option_strings[0] - let part - - // if the Optional doesn't take a value, format is: - // -s or --long - if (action.nargs === 0) { - part = action.format_usage() - - // if the Optional takes a value, format is: - // -s ARGS or --long ARGS - } else { - let default_value = this._get_default_metavar_for_optional(action) - let args_string = this._format_args(action, default_value) - part = sub('%s %s', option_string, args_string) - } - - // make it look optional if it's not required or in a group - if (!action.required && !group_actions.has(action)) { - part = sub('[%s]', part) - } - - // add the action string to the list - parts.push(part) - } - } - - // insert things at the necessary indices - for (let i of Object.keys(inserts).map(Number).sort((a, b) => b - a)) { - parts.splice(+i, 0, inserts[+i]) - } - - // join all the action items with spaces - let text = parts.filter(Boolean).join(' ') - - // clean up separators for mutually exclusive groups - text = text.replace(/([\[(]) /g, '$1') - text = text.replace(/ ([\])])/g, '$1') - text = text.replace(/[\[(] *[\])]/g, '') - text = text.replace(/\(([^|]*)\)/g, '$1', text) - text = text.trim() - - // return the text - return text - } - - _format_text(text) { - if (text.includes('%(prog)')) { - text = sub(text, { prog: this._prog }) - } - let text_width = Math.max(this._width - this._current_indent, 11) - let indent = ' '.repeat(this._current_indent) - return this._fill_text(text, text_width, indent) + '\n\n' - } - - _format_action(action) { - // determine the required width and the entry label - let help_position = Math.min(this._action_max_length + 2, - this._max_help_position) - let help_width = Math.max(this._width - help_position, 11) - let action_width = help_position - this._current_indent - 2 - let action_header = this._format_action_invocation(action) - let indent_first - - // no help; start on same line and add a final newline - if (!action.help) { - let tup = [ this._current_indent, '', action_header ] - action_header = sub('%*s%s\n', ...tup) - - // short action name; start on the same line and pad two spaces - } else if (action_header.length <= action_width) { - let tup = [ this._current_indent, '', action_width, action_header ] - action_header = sub('%*s%-*s ', ...tup) - indent_first = 0 - - // long action name; start on the next line - } else { - let tup = [ this._current_indent, '', action_header ] - action_header = sub('%*s%s\n', ...tup) - indent_first = help_position - } - - // collect the pieces of the action help - let parts = [action_header] - - // if there was help for the action, add lines of help text - if (action.help) { - let help_text = this._expand_help(action) - let help_lines = this._split_lines(help_text, help_width) - parts.push(sub('%*s%s\n', indent_first, '', help_lines[0])) - for (let line of help_lines.slice(1)) { - parts.push(sub('%*s%s\n', help_position, '', line)) - } - - // or add a newline if the description doesn't end with one - } else if (!action_header.endsWith('\n')) { - parts.push('\n') - } - - // if there are any sub-actions, add their help as well - for (let subaction of this._iter_indented_subactions(action)) { - parts.push(this._format_action(subaction)) - } - - // return a single string - return this._join_parts(parts) - } - - _format_action_invocation(action) { - if (!action.option_strings.length) { - let default_value = this._get_default_metavar_for_positional(action) - let metavar = this._metavar_formatter(action, default_value)(1)[0] - return metavar - - } else { - let parts = [] - - // if the Optional doesn't take a value, format is: - // -s, --long - if (action.nargs === 0) { - parts = parts.concat(action.option_strings) - - // if the Optional takes a value, format is: - // -s ARGS, --long ARGS - } else { - let default_value = this._get_default_metavar_for_optional(action) - let args_string = this._format_args(action, default_value) - for (let option_string of action.option_strings) { - parts.push(sub('%s %s', option_string, args_string)) - } - } - - return parts.join(', ') - } - } - - _metavar_formatter(action, default_metavar) { - let result - if (action.metavar !== undefined) { - result = action.metavar - } else if (action.choices !== undefined) { - let choice_strs = _choices_to_array(action.choices).map(String) - result = sub('{%s}', choice_strs.join(',')) - } else { - result = default_metavar - } - - function format(tuple_size) { - if (Array.isArray(result)) { - return result - } else { - return Array(tuple_size).fill(result) - } - } - return format - } - - _format_args(action, default_metavar) { - let get_metavar = this._metavar_formatter(action, default_metavar) - let result - if (action.nargs === undefined) { - result = sub('%s', ...get_metavar(1)) - } else if (action.nargs === OPTIONAL) { - result = sub('[%s]', ...get_metavar(1)) - } else if (action.nargs === ZERO_OR_MORE) { - let metavar = get_metavar(1) - if (metavar.length === 2) { - result = sub('[%s [%s ...]]', ...metavar) - } else { - result = sub('[%s ...]', ...metavar) - } - } else if (action.nargs === ONE_OR_MORE) { - result = sub('%s [%s ...]', ...get_metavar(2)) - } else if (action.nargs === REMAINDER) { - result = '...' - } else if (action.nargs === PARSER) { - result = sub('%s ...', ...get_metavar(1)) - } else if (action.nargs === SUPPRESS) { - result = '' - } else { - let formats - try { - formats = range(action.nargs).map(() => '%s') - } catch (err) { - throw new TypeError('invalid nargs value') - } - result = sub(formats.join(' '), ...get_metavar(action.nargs)) - } - return result - } - - _expand_help(action) { - let params = Object.assign({ prog: this._prog }, action) - for (let name of Object.keys(params)) { - if (params[name] === SUPPRESS) { - delete params[name] - } - } - for (let name of Object.keys(params)) { - if (params[name] && params[name].name) { - params[name] = params[name].name - } - } - if (params.choices !== undefined) { - let choices_str = _choices_to_array(params.choices).map(String).join(', ') - params.choices = choices_str - } - // LEGACY (v1 compatibility): camelcase - for (let key of Object.keys(params)) { - let old_name = _to_legacy_name(key) - if (old_name !== key) { - params[old_name] = params[key] - } - } - // end - return sub(this._get_help_string(action), params) - } - - * _iter_indented_subactions(action) { - if (typeof action._get_subactions === 'function') { - this._indent() - yield* action._get_subactions() - this._dedent() - } - } - - _split_lines(text, width) { - text = text.replace(this._whitespace_matcher, ' ').trim() - // The textwrap module is used only for formatting help. - // Delay its import for speeding up the common usage of argparse. - let textwrap = require('./lib/textwrap') - return textwrap.wrap(text, { width }) - } - - _fill_text(text, width, indent) { - text = text.replace(this._whitespace_matcher, ' ').trim() - let textwrap = require('./lib/textwrap') - return textwrap.fill(text, { width, - initial_indent: indent, - subsequent_indent: indent }) - } - - _get_help_string(action) { - return action.help - } - - _get_default_metavar_for_optional(action) { - return action.dest.toUpperCase() - } - - _get_default_metavar_for_positional(action) { - return action.dest - } -})) - -HelpFormatter.prototype._Section = _callable(class _Section { - - constructor(formatter, parent, heading = undefined) { - this.formatter = formatter - this.parent = parent - this.heading = heading - this.items = [] - } - - format_help() { - // format the indented section - if (this.parent !== undefined) { - this.formatter._indent() - } - let item_help = this.formatter._join_parts(this.items.map(([ func, args ]) => func.apply(null, args))) - if (this.parent !== undefined) { - this.formatter._dedent() - } - - // return nothing if the section was empty - if (!item_help) { - return '' - } - - // add the heading if the section was non-empty - let heading - if (this.heading !== SUPPRESS && this.heading !== undefined) { - let current_indent = this.formatter._current_indent - heading = sub('%*s%s:\n', current_indent, '', this.heading) - } else { - heading = '' - } - - // join the section-initial newline, the heading and the help - return this.formatter._join_parts(['\n', heading, item_help, '\n']) - } -}) - - -const RawDescriptionHelpFormatter = _camelcase_alias(_callable(class RawDescriptionHelpFormatter extends HelpFormatter { - /* - * Help message formatter which retains any formatting in descriptions. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _fill_text(text, width, indent) { - return splitlines(text, true).map(line => indent + line).join('') - } -})) - - -const RawTextHelpFormatter = _camelcase_alias(_callable(class RawTextHelpFormatter extends RawDescriptionHelpFormatter { - /* - * Help message formatter which retains formatting of all help text. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _split_lines(text/*, width*/) { - return splitlines(text) - } -})) - - -const ArgumentDefaultsHelpFormatter = _camelcase_alias(_callable(class ArgumentDefaultsHelpFormatter extends HelpFormatter { - /* - * Help message formatter which adds default values to argument help. - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _get_help_string(action) { - let help = action.help - // LEGACY (v1 compatibility): additional check for defaultValue needed - if (!action.help.includes('%(default)') && !action.help.includes('%(defaultValue)')) { - if (action.default !== SUPPRESS) { - let defaulting_nargs = [OPTIONAL, ZERO_OR_MORE] - if (action.option_strings.length || defaulting_nargs.includes(action.nargs)) { - help += ' (default: %(default)s)' - } - } - } - return help - } -})) - - -const MetavarTypeHelpFormatter = _camelcase_alias(_callable(class MetavarTypeHelpFormatter extends HelpFormatter { - /* - * Help message formatter which uses the argument 'type' as the default - * metavar value (instead of the argument 'dest') - * - * Only the name of this class is considered a public API. All the methods - * provided by the class are considered an implementation detail. - */ - - _get_default_metavar_for_optional(action) { - return typeof action.type === 'function' ? action.type.name : action.type - } - - _get_default_metavar_for_positional(action) { - return typeof action.type === 'function' ? action.type.name : action.type - } -})) - - -// ===================== -// Options and Arguments -// ===================== -function _get_action_name(argument) { - if (argument === undefined) { - return undefined - } else if (argument.option_strings.length) { - return argument.option_strings.join('/') - } else if (![ undefined, SUPPRESS ].includes(argument.metavar)) { - return argument.metavar - } else if (![ undefined, SUPPRESS ].includes(argument.dest)) { - return argument.dest - } else { - return undefined - } -} - - -const ArgumentError = _callable(class ArgumentError extends Error { - /* - * An error from creating or using an argument (optional or positional). - * - * The string value of this exception is the message, augmented with - * information about the argument that caused it. - */ - - constructor(argument, message) { - super() - this.name = 'ArgumentError' - this._argument_name = _get_action_name(argument) - this._message = message - this.message = this.str() - } - - str() { - let format - if (this._argument_name === undefined) { - format = '%(message)s' - } else { - format = 'argument %(argument_name)s: %(message)s' - } - return sub(format, { message: this._message, - argument_name: this._argument_name }) - } -}) - - -const ArgumentTypeError = _callable(class ArgumentTypeError extends Error { - /* - * An error from trying to convert a command line string to a type. - */ - - constructor(message) { - super(message) - this.name = 'ArgumentTypeError' - } -}) - - -// ============== -// Action classes -// ============== -const Action = _camelcase_alias(_callable(class Action extends _AttributeHolder(Function) { - /* - * Information about how to convert command line strings to Python objects. - * - * Action objects are used by an ArgumentParser to represent the information - * needed to parse a single argument from one or more strings from the - * command line. The keyword arguments to the Action constructor are also - * all attributes of Action instances. - * - * Keyword Arguments: - * - * - option_strings -- A list of command-line option strings which - * should be associated with this action. - * - * - dest -- The name of the attribute to hold the created object(s) - * - * - nargs -- The number of command-line arguments that should be - * consumed. By default, one argument will be consumed and a single - * value will be produced. Other values include: - * - N (an integer) consumes N arguments (and produces a list) - * - '?' consumes zero or one arguments - * - '*' consumes zero or more arguments (and produces a list) - * - '+' consumes one or more arguments (and produces a list) - * Note that the difference between the default and nargs=1 is that - * with the default, a single value will be produced, while with - * nargs=1, a list containing a single value will be produced. - * - * - const -- The value to be produced if the option is specified and the - * option uses an action that takes no values. - * - * - default -- The value to be produced if the option is not specified. - * - * - type -- A callable that accepts a single string argument, and - * returns the converted value. The standard Python types str, int, - * float, and complex are useful examples of such callables. If None, - * str is used. - * - * - choices -- A container of values that should be allowed. If not None, - * after a command-line argument has been converted to the appropriate - * type, an exception will be raised if it is not a member of this - * collection. - * - * - required -- True if the action must always be specified at the - * command line. This is only meaningful for optional command-line - * arguments. - * - * - help -- The help string describing the argument. - * - * - metavar -- The name to be used for the option's argument with the - * help string. If None, the 'dest' value will be used as the name. - */ - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - // when this class is called as a function, redirect it to .call() method of itself - super('return arguments.callee.call.apply(arguments.callee, arguments)') - - this.option_strings = option_strings - this.dest = dest - this.nargs = nargs - this.const = const_value - this.default = default_value - this.type = type - this.choices = choices - this.required = required - this.help = help - this.metavar = metavar - } - - _get_kwargs() { - let names = [ - 'option_strings', - 'dest', - 'nargs', - 'const', - 'default', - 'type', - 'choices', - 'help', - 'metavar' - ] - return names.map(name => [ name, getattr(this, name) ]) - } - - format_usage() { - return this.option_strings[0] - } - - call(/*parser, namespace, values, option_string = undefined*/) { - throw new Error('.call() not defined') - } -})) - - -const BooleanOptionalAction = _camelcase_alias(_callable(class BooleanOptionalAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - let _option_strings = [] - for (let option_string of option_strings) { - _option_strings.push(option_string) - - if (option_string.startsWith('--')) { - option_string = '--no-' + option_string.slice(2) - _option_strings.push(option_string) - } - } - - if (help !== undefined && default_value !== undefined) { - help += ` (default: ${default_value})` - } - - super({ - option_strings: _option_strings, - dest, - nargs: 0, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values, option_string = undefined) { - if (this.option_strings.includes(option_string)) { - setattr(namespace, this.dest, !option_string.startsWith('--no-')) - } - } - - format_usage() { - return this.option_strings.join(' | ') - } -})) - - -const _StoreAction = _callable(class _StoreAction extends Action { - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - if (nargs === 0) { - throw new TypeError('nargs for store actions must be != 0; if you ' + - 'have nothing to store, actions such as store ' + - 'true or store const may be more appropriate') - } - if (const_value !== undefined && nargs !== OPTIONAL) { - throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL)) - } - super({ - option_strings, - dest, - nargs, - const: const_value, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values/*, option_string = undefined*/) { - setattr(namespace, this.dest, values) - } -}) - - -const _StoreConstAction = _callable(class _StoreConstAction extends Action { - - constructor() { - let [ - option_strings, - dest, - const_value, - default_value, - required, - help - //, metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - const: no_default, - default: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - const: const_value, - default: default_value, - required, - help - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - setattr(namespace, this.dest, this.const) - } -}) - - -const _StoreTrueAction = _callable(class _StoreTrueAction extends _StoreConstAction { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: false, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - const: true, - default: default_value, - required, - help - }) - } -}) - - -const _StoreFalseAction = _callable(class _StoreFalseAction extends _StoreConstAction { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: true, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - const: false, - default: default_value, - required, - help - }) - } -}) - - -const _AppendAction = _callable(class _AppendAction extends Action { - - constructor() { - let [ - option_strings, - dest, - nargs, - const_value, - default_value, - type, - choices, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - nargs: undefined, - const: undefined, - default: undefined, - type: undefined, - choices: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - if (nargs === 0) { - throw new TypeError('nargs for append actions must be != 0; if arg ' + - 'strings are not supplying the value to append, ' + - 'the append const action may be more appropriate') - } - if (const_value !== undefined && nargs !== OPTIONAL) { - throw new TypeError(sub('nargs must be %r to supply const', OPTIONAL)) - } - super({ - option_strings, - dest, - nargs, - const: const_value, - default: default_value, - type, - choices, - required, - help, - metavar - }) - } - - call(parser, namespace, values/*, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items.push(values) - setattr(namespace, this.dest, items) - } -}) - - -const _AppendConstAction = _callable(class _AppendConstAction extends Action { - - constructor() { - let [ - option_strings, - dest, - const_value, - default_value, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - const: no_default, - default: undefined, - required: false, - help: undefined, - metavar: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - const: const_value, - default: default_value, - required, - help, - metavar - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items.push(this.const) - setattr(namespace, this.dest, items) - } -}) - - -const _CountAction = _callable(class _CountAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - required, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: no_default, - default: undefined, - required: false, - help: undefined - }) - - super({ - option_strings, - dest, - nargs: 0, - default: default_value, - required, - help - }) - } - - call(parser, namespace/*, values, option_string = undefined*/) { - let count = getattr(namespace, this.dest, undefined) - if (count === undefined) { - count = 0 - } - setattr(namespace, this.dest, count + 1) - } -}) - - -const _HelpAction = _callable(class _HelpAction extends Action { - - constructor() { - let [ - option_strings, - dest, - default_value, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - dest: SUPPRESS, - default: SUPPRESS, - help: undefined - }) - - super({ - option_strings, - dest, - default: default_value, - nargs: 0, - help - }) - } - - call(parser/*, namespace, values, option_string = undefined*/) { - parser.print_help() - parser.exit() - } -}) - - -const _VersionAction = _callable(class _VersionAction extends Action { - - constructor() { - let [ - option_strings, - version, - dest, - default_value, - help - ] = _parse_opts(arguments, { - option_strings: no_default, - version: undefined, - dest: SUPPRESS, - default: SUPPRESS, - help: "show program's version number and exit" - }) - - super({ - option_strings, - dest, - default: default_value, - nargs: 0, - help - }) - this.version = version - } - - call(parser/*, namespace, values, option_string = undefined*/) { - let version = this.version - if (version === undefined) { - version = parser.version - } - let formatter = parser._get_formatter() - formatter.add_text(version) - parser._print_message(formatter.format_help(), process.stdout) - parser.exit() - } -}) - - -const _SubParsersAction = _camelcase_alias(_callable(class _SubParsersAction extends Action { - - constructor() { - let [ - option_strings, - prog, - parser_class, - dest, - required, - help, - metavar - ] = _parse_opts(arguments, { - option_strings: no_default, - prog: no_default, - parser_class: no_default, - dest: SUPPRESS, - required: false, - help: undefined, - metavar: undefined - }) - - let name_parser_map = {} - - super({ - option_strings, - dest, - nargs: PARSER, - choices: name_parser_map, - required, - help, - metavar - }) - - this._prog_prefix = prog - this._parser_class = parser_class - this._name_parser_map = name_parser_map - this._choices_actions = [] - } - - add_parser() { - let [ - name, - kwargs - ] = _parse_opts(arguments, { - name: no_default, - '**kwargs': no_default - }) - - // set prog from the existing prefix - if (kwargs.prog === undefined) { - kwargs.prog = sub('%s %s', this._prog_prefix, name) - } - - let aliases = getattr(kwargs, 'aliases', []) - delete kwargs.aliases - - // create a pseudo-action to hold the choice help - if ('help' in kwargs) { - let help = kwargs.help - delete kwargs.help - let choice_action = this._ChoicesPseudoAction(name, aliases, help) - this._choices_actions.push(choice_action) - } - - // create the parser and add it to the map - let parser = new this._parser_class(kwargs) - this._name_parser_map[name] = parser - - // make parser available under aliases also - for (let alias of aliases) { - this._name_parser_map[alias] = parser - } - - return parser - } - - _get_subactions() { - return this._choices_actions - } - - call(parser, namespace, values/*, option_string = undefined*/) { - let parser_name = values[0] - let arg_strings = values.slice(1) - - // set the parser name if requested - if (this.dest !== SUPPRESS) { - setattr(namespace, this.dest, parser_name) - } - - // select the parser - if (hasattr(this._name_parser_map, parser_name)) { - parser = this._name_parser_map[parser_name] - } else { - let args = {parser_name, - choices: this._name_parser_map.join(', ')} - let msg = sub('unknown parser %(parser_name)r (choices: %(choices)s)', args) - throw new ArgumentError(this, msg) - } - - // parse all the remaining options into the namespace - // store any unrecognized options on the object, so that the top - // level parser can decide what to do with them - - // In case this subparser defines new defaults, we parse them - // in a new namespace object and then update the original - // namespace for the relevant parts. - let subnamespace - [ subnamespace, arg_strings ] = parser.parse_known_args(arg_strings, undefined) - for (let [ key, value ] of Object.entries(subnamespace)) { - setattr(namespace, key, value) - } - - if (arg_strings.length) { - setdefault(namespace, _UNRECOGNIZED_ARGS_ATTR, []) - getattr(namespace, _UNRECOGNIZED_ARGS_ATTR).push(...arg_strings) - } - } -})) - - -_SubParsersAction.prototype._ChoicesPseudoAction = _callable(class _ChoicesPseudoAction extends Action { - constructor(name, aliases, help) { - let metavar = name, dest = name - if (aliases.length) { - metavar += sub(' (%s)', aliases.join(', ')) - } - super({ option_strings: [], dest, help, metavar }) - } -}) - - -const _ExtendAction = _callable(class _ExtendAction extends _AppendAction { - call(parser, namespace, values/*, option_string = undefined*/) { - let items = getattr(namespace, this.dest, undefined) - items = _copy_items(items) - items = items.concat(values) - setattr(namespace, this.dest, items) - } -}) - - -// ============== -// Type classes -// ============== -const FileType = _callable(class FileType extends Function { - /* - * Factory for creating file object types - * - * Instances of FileType are typically passed as type= arguments to the - * ArgumentParser add_argument() method. - * - * Keyword Arguments: - * - mode -- A string indicating how the file is to be opened. Accepts the - * same values as the builtin open() function. - * - bufsize -- The file's desired buffer size. Accepts the same values as - * the builtin open() function. - * - encoding -- The file's encoding. Accepts the same values as the - * builtin open() function. - * - errors -- A string indicating how encoding and decoding errors are to - * be handled. Accepts the same value as the builtin open() function. - */ - - constructor() { - let [ - flags, - encoding, - mode, - autoClose, - emitClose, - start, - end, - highWaterMark, - fs - ] = _parse_opts(arguments, { - flags: 'r', - encoding: undefined, - mode: undefined, // 0o666 - autoClose: undefined, // true - emitClose: undefined, // false - start: undefined, // 0 - end: undefined, // Infinity - highWaterMark: undefined, // 64 * 1024 - fs: undefined - }) - - // when this class is called as a function, redirect it to .call() method of itself - super('return arguments.callee.call.apply(arguments.callee, arguments)') - - Object.defineProperty(this, 'name', { - get() { - return sub('FileType(%r)', flags) - } - }) - this._flags = flags - this._options = {} - if (encoding !== undefined) this._options.encoding = encoding - if (mode !== undefined) this._options.mode = mode - if (autoClose !== undefined) this._options.autoClose = autoClose - if (emitClose !== undefined) this._options.emitClose = emitClose - if (start !== undefined) this._options.start = start - if (end !== undefined) this._options.end = end - if (highWaterMark !== undefined) this._options.highWaterMark = highWaterMark - if (fs !== undefined) this._options.fs = fs - } - - call(string) { - // the special argument "-" means sys.std{in,out} - if (string === '-') { - if (this._flags.includes('r')) { - return process.stdin - } else if (this._flags.includes('w')) { - return process.stdout - } else { - let msg = sub('argument "-" with mode %r', this._flags) - throw new TypeError(msg) - } - } - - // all other arguments are used as file names - let fd - try { - fd = fs.openSync(string, this._flags, this._options.mode) - } catch (e) { - let args = { filename: string, error: e.message } - let message = "can't open '%(filename)s': %(error)s" - throw new ArgumentTypeError(sub(message, args)) - } - - let options = Object.assign({ fd, flags: this._flags }, this._options) - if (this._flags.includes('r')) { - return fs.createReadStream(undefined, options) - } else if (this._flags.includes('w')) { - return fs.createWriteStream(undefined, options) - } else { - let msg = sub('argument "%s" with mode %r', string, this._flags) - throw new TypeError(msg) - } - } - - [util.inspect.custom]() { - let args = [ this._flags ] - let kwargs = Object.entries(this._options).map(([ k, v ]) => { - if (k === 'mode') v = { value: v, [util.inspect.custom]() { return '0o' + this.value.toString(8) } } - return [ k, v ] - }) - let args_str = [] - .concat(args.filter(arg => arg !== -1).map(repr)) - .concat(kwargs.filter(([/*kw*/, arg]) => arg !== undefined) - .map(([kw, arg]) => sub('%s=%r', kw, arg))) - .join(', ') - return sub('%s(%s)', this.constructor.name, args_str) - } - - toString() { - return this[util.inspect.custom]() - } -}) - -// =========================== -// Optional and Positional Parsing -// =========================== -const Namespace = _callable(class Namespace extends _AttributeHolder() { - /* - * Simple object for storing attributes. - * - * Implements equality by attribute names and values, and provides a simple - * string representation. - */ - - constructor(options = {}) { - super() - Object.assign(this, options) - } -}) - -// unset string tag to mimic plain object -Namespace.prototype[Symbol.toStringTag] = undefined - - -const _ActionsContainer = _camelcase_alias(_callable(class _ActionsContainer { - - constructor() { - let [ - description, - prefix_chars, - argument_default, - conflict_handler - ] = _parse_opts(arguments, { - description: no_default, - prefix_chars: no_default, - argument_default: no_default, - conflict_handler: no_default - }) - - this.description = description - this.argument_default = argument_default - this.prefix_chars = prefix_chars - this.conflict_handler = conflict_handler - - // set up registries - this._registries = {} - - // register actions - this.register('action', undefined, _StoreAction) - this.register('action', 'store', _StoreAction) - this.register('action', 'store_const', _StoreConstAction) - this.register('action', 'store_true', _StoreTrueAction) - this.register('action', 'store_false', _StoreFalseAction) - this.register('action', 'append', _AppendAction) - this.register('action', 'append_const', _AppendConstAction) - this.register('action', 'count', _CountAction) - this.register('action', 'help', _HelpAction) - this.register('action', 'version', _VersionAction) - this.register('action', 'parsers', _SubParsersAction) - this.register('action', 'extend', _ExtendAction) - // LEGACY (v1 compatibility): camelcase variants - ;[ 'storeConst', 'storeTrue', 'storeFalse', 'appendConst' ].forEach(old_name => { - let new_name = _to_new_name(old_name) - this.register('action', old_name, util.deprecate(this._registry_get('action', new_name), - sub('{action: "%s"} is renamed to {action: "%s"}', old_name, new_name))) - }) - // end - - // raise an exception if the conflict handler is invalid - this._get_handler() - - // action storage - this._actions = [] - this._option_string_actions = {} - - // groups - this._action_groups = [] - this._mutually_exclusive_groups = [] - - // defaults storage - this._defaults = {} - - // determines whether an "option" looks like a negative number - this._negative_number_matcher = /^-\d+$|^-\d*\.\d+$/ - - // whether or not there are any optionals that look like negative - // numbers -- uses a list so it can be shared and edited - this._has_negative_number_optionals = [] - } - - // ==================== - // Registration methods - // ==================== - register(registry_name, value, object) { - let registry = setdefault(this._registries, registry_name, {}) - registry[value] = object - } - - _registry_get(registry_name, value, default_value = undefined) { - return getattr(this._registries[registry_name], value, default_value) - } - - // ================================== - // Namespace default accessor methods - // ================================== - set_defaults(kwargs) { - Object.assign(this._defaults, kwargs) - - // if these defaults match any existing arguments, replace - // the previous default on the object with the new one - for (let action of this._actions) { - if (action.dest in kwargs) { - action.default = kwargs[action.dest] - } - } - } - - get_default(dest) { - for (let action of this._actions) { - if (action.dest === dest && action.default !== undefined) { - return action.default - } - } - return this._defaults[dest] - } - - - // ======================= - // Adding argument actions - // ======================= - add_argument() { - /* - * add_argument(dest, ..., name=value, ...) - * add_argument(option_string, option_string, ..., name=value, ...) - */ - let [ - args, - kwargs - ] = _parse_opts(arguments, { - '*args': no_default, - '**kwargs': no_default - }) - // LEGACY (v1 compatibility), old-style add_argument([ args ], { options }) - if (args.length === 1 && Array.isArray(args[0])) { - args = args[0] - deprecate('argument-array', - sub('use add_argument(%(args)s, {...}) instead of add_argument([ %(args)s ], { ... })', { - args: args.map(repr).join(', ') - })) - } - // end - - // if no positional args are supplied or only one is supplied and - // it doesn't look like an option string, parse a positional - // argument - let chars = this.prefix_chars - if (!args.length || args.length === 1 && !chars.includes(args[0][0])) { - if (args.length && 'dest' in kwargs) { - throw new TypeError('dest supplied twice for positional argument') - } - kwargs = this._get_positional_kwargs(...args, kwargs) - - // otherwise, we're adding an optional argument - } else { - kwargs = this._get_optional_kwargs(...args, kwargs) - } - - // if no default was supplied, use the parser-level default - if (!('default' in kwargs)) { - let dest = kwargs.dest - if (dest in this._defaults) { - kwargs.default = this._defaults[dest] - } else if (this.argument_default !== undefined) { - kwargs.default = this.argument_default - } - } - - // create the action object, and add it to the parser - let action_class = this._pop_action_class(kwargs) - if (typeof action_class !== 'function') { - throw new TypeError(sub('unknown action "%s"', action_class)) - } - // eslint-disable-next-line new-cap - let action = new action_class(kwargs) - - // raise an error if the action type is not callable - let type_func = this._registry_get('type', action.type, action.type) - if (typeof type_func !== 'function') { - throw new TypeError(sub('%r is not callable', type_func)) - } - - if (type_func === FileType) { - throw new TypeError(sub('%r is a FileType class object, instance of it' + - ' must be passed', type_func)) - } - - // raise an error if the metavar does not match the type - if ('_get_formatter' in this) { - try { - this._get_formatter()._format_args(action, undefined) - } catch (err) { - // check for 'invalid nargs value' is an artifact of TypeError and ValueError in js being the same - if (err instanceof TypeError && err.message !== 'invalid nargs value') { - throw new TypeError('length of metavar tuple does not match nargs') - } else { - throw err - } - } - } - - return this._add_action(action) - } - - add_argument_group() { - let group = _ArgumentGroup(this, ...arguments) - this._action_groups.push(group) - return group - } - - add_mutually_exclusive_group() { - // eslint-disable-next-line no-use-before-define - let group = _MutuallyExclusiveGroup(this, ...arguments) - this._mutually_exclusive_groups.push(group) - return group - } - - _add_action(action) { - // resolve any conflicts - this._check_conflict(action) - - // add to actions list - this._actions.push(action) - action.container = this - - // index the action by any option strings it has - for (let option_string of action.option_strings) { - this._option_string_actions[option_string] = action - } - - // set the flag if any option strings look like negative numbers - for (let option_string of action.option_strings) { - if (this._negative_number_matcher.test(option_string)) { - if (!this._has_negative_number_optionals.length) { - this._has_negative_number_optionals.push(true) - } - } - } - - // return the created action - return action - } - - _remove_action(action) { - _array_remove(this._actions, action) - } - - _add_container_actions(container) { - // collect groups by titles - let title_group_map = {} - for (let group of this._action_groups) { - if (group.title in title_group_map) { - let msg = 'cannot merge actions - two groups are named %r' - throw new TypeError(sub(msg, group.title)) - } - title_group_map[group.title] = group - } - - // map each action to its group - let group_map = new Map() - for (let group of container._action_groups) { - - // if a group with the title exists, use that, otherwise - // create a new group matching the container's group - if (!(group.title in title_group_map)) { - title_group_map[group.title] = this.add_argument_group({ - title: group.title, - description: group.description, - conflict_handler: group.conflict_handler - }) - } - - // map the actions to their new group - for (let action of group._group_actions) { - group_map.set(action, title_group_map[group.title]) - } - } - - // add container's mutually exclusive groups - // NOTE: if add_mutually_exclusive_group ever gains title= and - // description= then this code will need to be expanded as above - for (let group of container._mutually_exclusive_groups) { - let mutex_group = this.add_mutually_exclusive_group({ - required: group.required - }) - - // map the actions to their new mutex group - for (let action of group._group_actions) { - group_map.set(action, mutex_group) - } - } - - // add all actions to this container or their group - for (let action of container._actions) { - group_map.get(action)._add_action(action) - } - } - - _get_positional_kwargs() { - let [ - dest, - kwargs - ] = _parse_opts(arguments, { - dest: no_default, - '**kwargs': no_default - }) - - // make sure required is not specified - if ('required' in kwargs) { - let msg = "'required' is an invalid argument for positionals" - throw new TypeError(msg) - } - - // mark positional arguments as required if at least one is - // always required - if (![OPTIONAL, ZERO_OR_MORE].includes(kwargs.nargs)) { - kwargs.required = true - } - if (kwargs.nargs === ZERO_OR_MORE && !('default' in kwargs)) { - kwargs.required = true - } - - // return the keyword arguments with no option strings - return Object.assign(kwargs, { dest, option_strings: [] }) - } - - _get_optional_kwargs() { - let [ - args, - kwargs - ] = _parse_opts(arguments, { - '*args': no_default, - '**kwargs': no_default - }) - - // determine short and long option strings - let option_strings = [] - let long_option_strings = [] - let option_string - for (option_string of args) { - // error on strings that don't start with an appropriate prefix - if (!this.prefix_chars.includes(option_string[0])) { - let args = {option: option_string, - prefix_chars: this.prefix_chars} - let msg = 'invalid option string %(option)r: ' + - 'must start with a character %(prefix_chars)r' - throw new TypeError(sub(msg, args)) - } - - // strings starting with two prefix characters are long options - option_strings.push(option_string) - if (option_string.length > 1 && this.prefix_chars.includes(option_string[1])) { - long_option_strings.push(option_string) - } - } - - // infer destination, '--foo-bar' -> 'foo_bar' and '-x' -> 'x' - let dest = kwargs.dest - delete kwargs.dest - if (dest === undefined) { - let dest_option_string - if (long_option_strings.length) { - dest_option_string = long_option_strings[0] - } else { - dest_option_string = option_strings[0] - } - dest = _string_lstrip(dest_option_string, this.prefix_chars) - if (!dest) { - let msg = 'dest= is required for options like %r' - throw new TypeError(sub(msg, option_string)) - } - dest = dest.replace(/-/g, '_') - } - - // return the updated keyword arguments - return Object.assign(kwargs, { dest, option_strings }) - } - - _pop_action_class(kwargs, default_value = undefined) { - let action = getattr(kwargs, 'action', default_value) - delete kwargs.action - return this._registry_get('action', action, action) - } - - _get_handler() { - // determine function from conflict handler string - let handler_func_name = sub('_handle_conflict_%s', this.conflict_handler) - if (typeof this[handler_func_name] === 'function') { - return this[handler_func_name] - } else { - let msg = 'invalid conflict_resolution value: %r' - throw new TypeError(sub(msg, this.conflict_handler)) - } - } - - _check_conflict(action) { - - // find all options that conflict with this option - let confl_optionals = [] - for (let option_string of action.option_strings) { - if (hasattr(this._option_string_actions, option_string)) { - let confl_optional = this._option_string_actions[option_string] - confl_optionals.push([ option_string, confl_optional ]) - } - } - - // resolve any conflicts - if (confl_optionals.length) { - let conflict_handler = this._get_handler() - conflict_handler.call(this, action, confl_optionals) - } - } - - _handle_conflict_error(action, conflicting_actions) { - let message = conflicting_actions.length === 1 ? - 'conflicting option string: %s' : - 'conflicting option strings: %s' - let conflict_string = conflicting_actions.map(([ option_string/*, action*/ ]) => option_string).join(', ') - throw new ArgumentError(action, sub(message, conflict_string)) - } - - _handle_conflict_resolve(action, conflicting_actions) { - - // remove all conflicting options - for (let [ option_string, action ] of conflicting_actions) { - - // remove the conflicting option - _array_remove(action.option_strings, option_string) - delete this._option_string_actions[option_string] - - // if the option now has no option string, remove it from the - // container holding it - if (!action.option_strings.length) { - action.container._remove_action(action) - } - } - } -})) - - -const _ArgumentGroup = _callable(class _ArgumentGroup extends _ActionsContainer { - - constructor() { - let [ - container, - title, - description, - kwargs - ] = _parse_opts(arguments, { - container: no_default, - title: undefined, - description: undefined, - '**kwargs': no_default - }) - - // add any missing keyword arguments by checking the container - setdefault(kwargs, 'conflict_handler', container.conflict_handler) - setdefault(kwargs, 'prefix_chars', container.prefix_chars) - setdefault(kwargs, 'argument_default', container.argument_default) - super(Object.assign({ description }, kwargs)) - - // group attributes - this.title = title - this._group_actions = [] - - // share most attributes with the container - this._registries = container._registries - this._actions = container._actions - this._option_string_actions = container._option_string_actions - this._defaults = container._defaults - this._has_negative_number_optionals = - container._has_negative_number_optionals - this._mutually_exclusive_groups = container._mutually_exclusive_groups - } - - _add_action(action) { - action = super._add_action(action) - this._group_actions.push(action) - return action - } - - _remove_action(action) { - super._remove_action(action) - _array_remove(this._group_actions, action) - } -}) - - -const _MutuallyExclusiveGroup = _callable(class _MutuallyExclusiveGroup extends _ArgumentGroup { - - constructor() { - let [ - container, - required - ] = _parse_opts(arguments, { - container: no_default, - required: false - }) - - super(container) - this.required = required - this._container = container - } - - _add_action(action) { - if (action.required) { - let msg = 'mutually exclusive arguments must be optional' - throw new TypeError(msg) - } - action = this._container._add_action(action) - this._group_actions.push(action) - return action - } - - _remove_action(action) { - this._container._remove_action(action) - _array_remove(this._group_actions, action) - } -}) - - -const ArgumentParser = _camelcase_alias(_callable(class ArgumentParser extends _AttributeHolder(_ActionsContainer) { - /* - * Object for parsing command line strings into Python objects. - * - * Keyword Arguments: - * - prog -- The name of the program (default: sys.argv[0]) - * - usage -- A usage message (default: auto-generated from arguments) - * - description -- A description of what the program does - * - epilog -- Text following the argument descriptions - * - parents -- Parsers whose arguments should be copied into this one - * - formatter_class -- HelpFormatter class for printing help messages - * - prefix_chars -- Characters that prefix optional arguments - * - fromfile_prefix_chars -- Characters that prefix files containing - * additional arguments - * - argument_default -- The default value for all arguments - * - conflict_handler -- String indicating how to handle conflicts - * - add_help -- Add a -h/-help option - * - allow_abbrev -- Allow long options to be abbreviated unambiguously - * - exit_on_error -- Determines whether or not ArgumentParser exits with - * error info when an error occurs - */ - - constructor() { - let [ - prog, - usage, - description, - epilog, - parents, - formatter_class, - prefix_chars, - fromfile_prefix_chars, - argument_default, - conflict_handler, - add_help, - allow_abbrev, - exit_on_error, - debug, // LEGACY (v1 compatibility), debug mode - version // LEGACY (v1 compatibility), version - ] = _parse_opts(arguments, { - prog: undefined, - usage: undefined, - description: undefined, - epilog: undefined, - parents: [], - formatter_class: HelpFormatter, - prefix_chars: '-', - fromfile_prefix_chars: undefined, - argument_default: undefined, - conflict_handler: 'error', - add_help: true, - allow_abbrev: true, - exit_on_error: true, - debug: undefined, // LEGACY (v1 compatibility), debug mode - version: undefined // LEGACY (v1 compatibility), version - }) - - // LEGACY (v1 compatibility) - if (debug !== undefined) { - deprecate('debug', - 'The "debug" argument to ArgumentParser is deprecated. Please ' + - 'override ArgumentParser.exit function instead.' - ) - } - - if (version !== undefined) { - deprecate('version', - 'The "version" argument to ArgumentParser is deprecated. Please use ' + - "add_argument(..., { action: 'version', version: 'N', ... }) instead." - ) - } - // end - - super({ - description, - prefix_chars, - argument_default, - conflict_handler - }) - - // default setting for prog - if (prog === undefined) { - prog = path.basename(get_argv()[0] || '') - } - - this.prog = prog - this.usage = usage - this.epilog = epilog - this.formatter_class = formatter_class - this.fromfile_prefix_chars = fromfile_prefix_chars - this.add_help = add_help - this.allow_abbrev = allow_abbrev - this.exit_on_error = exit_on_error - // LEGACY (v1 compatibility), debug mode - this.debug = debug - // end - - this._positionals = this.add_argument_group('positional arguments') - this._optionals = this.add_argument_group('optional arguments') - this._subparsers = undefined - - // register types - function identity(string) { - return string - } - this.register('type', undefined, identity) - this.register('type', null, identity) - this.register('type', 'auto', identity) - this.register('type', 'int', function (x) { - let result = Number(x) - if (!Number.isInteger(result)) { - throw new TypeError(sub('could not convert string to int: %r', x)) - } - return result - }) - this.register('type', 'float', function (x) { - let result = Number(x) - if (isNaN(result)) { - throw new TypeError(sub('could not convert string to float: %r', x)) - } - return result - }) - this.register('type', 'str', String) - // LEGACY (v1 compatibility): custom types - this.register('type', 'string', - util.deprecate(String, 'use {type:"str"} or {type:String} instead of {type:"string"}')) - // end - - // add help argument if necessary - // (using explicit default to override global argument_default) - let default_prefix = prefix_chars.includes('-') ? '-' : prefix_chars[0] - if (this.add_help) { - this.add_argument( - default_prefix + 'h', - default_prefix.repeat(2) + 'help', - { - action: 'help', - default: SUPPRESS, - help: 'show this help message and exit' - } - ) - } - // LEGACY (v1 compatibility), version - if (version) { - this.add_argument( - default_prefix + 'v', - default_prefix.repeat(2) + 'version', - { - action: 'version', - default: SUPPRESS, - version: this.version, - help: "show program's version number and exit" - } - ) - } - // end - - // add parent arguments and defaults - for (let parent of parents) { - this._add_container_actions(parent) - Object.assign(this._defaults, parent._defaults) - } - } - - // ======================= - // Pretty __repr__ methods - // ======================= - _get_kwargs() { - let names = [ - 'prog', - 'usage', - 'description', - 'formatter_class', - 'conflict_handler', - 'add_help' - ] - return names.map(name => [ name, getattr(this, name) ]) - } - - // ================================== - // Optional/Positional adding methods - // ================================== - add_subparsers() { - let [ - kwargs - ] = _parse_opts(arguments, { - '**kwargs': no_default - }) - - if (this._subparsers !== undefined) { - this.error('cannot have multiple subparser arguments') - } - - // add the parser class to the arguments if it's not present - setdefault(kwargs, 'parser_class', this.constructor) - - if ('title' in kwargs || 'description' in kwargs) { - let title = getattr(kwargs, 'title', 'subcommands') - let description = getattr(kwargs, 'description', undefined) - delete kwargs.title - delete kwargs.description - this._subparsers = this.add_argument_group(title, description) - } else { - this._subparsers = this._positionals - } - - // prog defaults to the usage message of this parser, skipping - // optional arguments and with no "usage:" prefix - if (kwargs.prog === undefined) { - let formatter = this._get_formatter() - let positionals = this._get_positional_actions() - let groups = this._mutually_exclusive_groups - formatter.add_usage(this.usage, positionals, groups, '') - kwargs.prog = formatter.format_help().trim() - } - - // create the parsers action and add it to the positionals list - let parsers_class = this._pop_action_class(kwargs, 'parsers') - // eslint-disable-next-line new-cap - let action = new parsers_class(Object.assign({ option_strings: [] }, kwargs)) - this._subparsers._add_action(action) - - // return the created parsers action - return action - } - - _add_action(action) { - if (action.option_strings.length) { - this._optionals._add_action(action) - } else { - this._positionals._add_action(action) - } - return action - } - - _get_optional_actions() { - return this._actions.filter(action => action.option_strings.length) - } - - _get_positional_actions() { - return this._actions.filter(action => !action.option_strings.length) - } - - // ===================================== - // Command line argument parsing methods - // ===================================== - parse_args(args = undefined, namespace = undefined) { - let argv - [ args, argv ] = this.parse_known_args(args, namespace) - if (argv && argv.length > 0) { - let msg = 'unrecognized arguments: %s' - this.error(sub(msg, argv.join(' '))) - } - return args - } - - parse_known_args(args = undefined, namespace = undefined) { - if (args === undefined) { - args = get_argv().slice(1) - } - - // default Namespace built from parser defaults - if (namespace === undefined) { - namespace = new Namespace() - } - - // add any action defaults that aren't present - for (let action of this._actions) { - if (action.dest !== SUPPRESS) { - if (!hasattr(namespace, action.dest)) { - if (action.default !== SUPPRESS) { - setattr(namespace, action.dest, action.default) - } - } - } - } - - // add any parser defaults that aren't present - for (let dest of Object.keys(this._defaults)) { - if (!hasattr(namespace, dest)) { - setattr(namespace, dest, this._defaults[dest]) - } - } - - // parse the arguments and exit if there are any errors - if (this.exit_on_error) { - try { - [ namespace, args ] = this._parse_known_args(args, namespace) - } catch (err) { - if (err instanceof ArgumentError) { - this.error(err.message) - } else { - throw err - } - } - } else { - [ namespace, args ] = this._parse_known_args(args, namespace) - } - - if (hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR)) { - args = args.concat(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR)) - delattr(namespace, _UNRECOGNIZED_ARGS_ATTR) - } - - return [ namespace, args ] - } - - _parse_known_args(arg_strings, namespace) { - // replace arg strings that are file references - if (this.fromfile_prefix_chars !== undefined) { - arg_strings = this._read_args_from_files(arg_strings) - } - - // map all mutually exclusive arguments to the other arguments - // they can't occur with - let action_conflicts = new Map() - for (let mutex_group of this._mutually_exclusive_groups) { - let group_actions = mutex_group._group_actions - for (let [ i, mutex_action ] of Object.entries(mutex_group._group_actions)) { - let conflicts = action_conflicts.get(mutex_action) || [] - conflicts = conflicts.concat(group_actions.slice(0, +i)) - conflicts = conflicts.concat(group_actions.slice(+i + 1)) - action_conflicts.set(mutex_action, conflicts) - } - } - - // find all option indices, and determine the arg_string_pattern - // which has an 'O' if there is an option at an index, - // an 'A' if there is an argument, or a '-' if there is a '--' - let option_string_indices = {} - let arg_string_pattern_parts = [] - let arg_strings_iter = Object.entries(arg_strings)[Symbol.iterator]() - for (let [ i, arg_string ] of arg_strings_iter) { - - // all args after -- are non-options - if (arg_string === '--') { - arg_string_pattern_parts.push('-') - for ([ i, arg_string ] of arg_strings_iter) { - arg_string_pattern_parts.push('A') - } - - // otherwise, add the arg to the arg strings - // and note the index if it was an option - } else { - let option_tuple = this._parse_optional(arg_string) - let pattern - if (option_tuple === undefined) { - pattern = 'A' - } else { - option_string_indices[i] = option_tuple - pattern = 'O' - } - arg_string_pattern_parts.push(pattern) - } - } - - // join the pieces together to form the pattern - let arg_strings_pattern = arg_string_pattern_parts.join('') - - // converts arg strings to the appropriate and then takes the action - let seen_actions = new Set() - let seen_non_default_actions = new Set() - let extras - - let take_action = (action, argument_strings, option_string = undefined) => { - seen_actions.add(action) - let argument_values = this._get_values(action, argument_strings) - - // error if this argument is not allowed with other previously - // seen arguments, assuming that actions that use the default - // value don't really count as "present" - if (argument_values !== action.default) { - seen_non_default_actions.add(action) - for (let conflict_action of action_conflicts.get(action) || []) { - if (seen_non_default_actions.has(conflict_action)) { - let msg = 'not allowed with argument %s' - let action_name = _get_action_name(conflict_action) - throw new ArgumentError(action, sub(msg, action_name)) - } - } - } - - // take the action if we didn't receive a SUPPRESS value - // (e.g. from a default) - if (argument_values !== SUPPRESS) { - action(this, namespace, argument_values, option_string) - } - } - - // function to convert arg_strings into an optional action - let consume_optional = start_index => { - - // get the optional identified at this index - let option_tuple = option_string_indices[start_index] - let [ action, option_string, explicit_arg ] = option_tuple - - // identify additional optionals in the same arg string - // (e.g. -xyz is the same as -x -y -z if no args are required) - let action_tuples = [] - let stop - for (;;) { - - // if we found no optional action, skip it - if (action === undefined) { - extras.push(arg_strings[start_index]) - return start_index + 1 - } - - // if there is an explicit argument, try to match the - // optional's string arguments to only this - if (explicit_arg !== undefined) { - let arg_count = this._match_argument(action, 'A') - - // if the action is a single-dash option and takes no - // arguments, try to parse more single-dash options out - // of the tail of the option string - let chars = this.prefix_chars - if (arg_count === 0 && !chars.includes(option_string[1])) { - action_tuples.push([ action, [], option_string ]) - let char = option_string[0] - option_string = char + explicit_arg[0] - let new_explicit_arg = explicit_arg.slice(1) || undefined - let optionals_map = this._option_string_actions - if (hasattr(optionals_map, option_string)) { - action = optionals_map[option_string] - explicit_arg = new_explicit_arg - } else { - let msg = 'ignored explicit argument %r' - throw new ArgumentError(action, sub(msg, explicit_arg)) - } - - // if the action expect exactly one argument, we've - // successfully matched the option; exit the loop - } else if (arg_count === 1) { - stop = start_index + 1 - let args = [ explicit_arg ] - action_tuples.push([ action, args, option_string ]) - break - - // error if a double-dash option did not use the - // explicit argument - } else { - let msg = 'ignored explicit argument %r' - throw new ArgumentError(action, sub(msg, explicit_arg)) - } - - // if there is no explicit argument, try to match the - // optional's string arguments with the following strings - // if successful, exit the loop - } else { - let start = start_index + 1 - let selected_patterns = arg_strings_pattern.slice(start) - let arg_count = this._match_argument(action, selected_patterns) - stop = start + arg_count - let args = arg_strings.slice(start, stop) - action_tuples.push([ action, args, option_string ]) - break - } - } - - // add the Optional to the list and return the index at which - // the Optional's string args stopped - assert(action_tuples.length) - for (let [ action, args, option_string ] of action_tuples) { - take_action(action, args, option_string) - } - return stop - } - - // the list of Positionals left to be parsed; this is modified - // by consume_positionals() - let positionals = this._get_positional_actions() - - // function to convert arg_strings into positional actions - let consume_positionals = start_index => { - // match as many Positionals as possible - let selected_pattern = arg_strings_pattern.slice(start_index) - let arg_counts = this._match_arguments_partial(positionals, selected_pattern) - - // slice off the appropriate arg strings for each Positional - // and add the Positional and its args to the list - for (let i = 0; i < positionals.length && i < arg_counts.length; i++) { - let action = positionals[i] - let arg_count = arg_counts[i] - let args = arg_strings.slice(start_index, start_index + arg_count) - start_index += arg_count - take_action(action, args) - } - - // slice off the Positionals that we just parsed and return the - // index at which the Positionals' string args stopped - positionals = positionals.slice(arg_counts.length) - return start_index - } - - // consume Positionals and Optionals alternately, until we have - // passed the last option string - extras = [] - let start_index = 0 - let max_option_string_index = Math.max(-1, ...Object.keys(option_string_indices).map(Number)) - while (start_index <= max_option_string_index) { - - // consume any Positionals preceding the next option - let next_option_string_index = Math.min( - // eslint-disable-next-line no-loop-func - ...Object.keys(option_string_indices).map(Number).filter(index => index >= start_index) - ) - if (start_index !== next_option_string_index) { - let positionals_end_index = consume_positionals(start_index) - - // only try to parse the next optional if we didn't consume - // the option string during the positionals parsing - if (positionals_end_index > start_index) { - start_index = positionals_end_index - continue - } else { - start_index = positionals_end_index - } - } - - // if we consumed all the positionals we could and we're not - // at the index of an option string, there were extra arguments - if (!(start_index in option_string_indices)) { - let strings = arg_strings.slice(start_index, next_option_string_index) - extras = extras.concat(strings) - start_index = next_option_string_index - } - - // consume the next optional and any arguments for it - start_index = consume_optional(start_index) - } - - // consume any positionals following the last Optional - let stop_index = consume_positionals(start_index) - - // if we didn't consume all the argument strings, there were extras - extras = extras.concat(arg_strings.slice(stop_index)) - - // make sure all required actions were present and also convert - // action defaults which were not given as arguments - let required_actions = [] - for (let action of this._actions) { - if (!seen_actions.has(action)) { - if (action.required) { - required_actions.push(_get_action_name(action)) - } else { - // Convert action default now instead of doing it before - // parsing arguments to avoid calling convert functions - // twice (which may fail) if the argument was given, but - // only if it was defined already in the namespace - if (action.default !== undefined && - typeof action.default === 'string' && - hasattr(namespace, action.dest) && - action.default === getattr(namespace, action.dest)) { - setattr(namespace, action.dest, - this._get_value(action, action.default)) - } - } - } - } - - if (required_actions.length) { - this.error(sub('the following arguments are required: %s', - required_actions.join(', '))) - } - - // make sure all required groups had one option present - for (let group of this._mutually_exclusive_groups) { - if (group.required) { - let no_actions_used = true - for (let action of group._group_actions) { - if (seen_non_default_actions.has(action)) { - no_actions_used = false - break - } - } - - // if no actions were used, report the error - if (no_actions_used) { - let names = group._group_actions - .filter(action => action.help !== SUPPRESS) - .map(action => _get_action_name(action)) - let msg = 'one of the arguments %s is required' - this.error(sub(msg, names.join(' '))) - } - } - } - - // return the updated namespace and the extra arguments - return [ namespace, extras ] - } - - _read_args_from_files(arg_strings) { - // expand arguments referencing files - let new_arg_strings = [] - for (let arg_string of arg_strings) { - - // for regular arguments, just add them back into the list - if (!arg_string || !this.fromfile_prefix_chars.includes(arg_string[0])) { - new_arg_strings.push(arg_string) - - // replace arguments referencing files with the file content - } else { - try { - let args_file = fs.readFileSync(arg_string.slice(1), 'utf8') - let arg_strings = [] - for (let arg_line of splitlines(args_file)) { - for (let arg of this.convert_arg_line_to_args(arg_line)) { - arg_strings.push(arg) - } - } - arg_strings = this._read_args_from_files(arg_strings) - new_arg_strings = new_arg_strings.concat(arg_strings) - } catch (err) { - this.error(err.message) - } - } - } - - // return the modified argument list - return new_arg_strings - } - - convert_arg_line_to_args(arg_line) { - return [arg_line] - } - - _match_argument(action, arg_strings_pattern) { - // match the pattern for this action to the arg strings - let nargs_pattern = this._get_nargs_pattern(action) - let match = arg_strings_pattern.match(new RegExp('^' + nargs_pattern)) - - // raise an exception if we weren't able to find a match - if (match === null) { - let nargs_errors = { - undefined: 'expected one argument', - [OPTIONAL]: 'expected at most one argument', - [ONE_OR_MORE]: 'expected at least one argument' - } - let msg = nargs_errors[action.nargs] - if (msg === undefined) { - msg = sub(action.nargs === 1 ? 'expected %s argument' : 'expected %s arguments', action.nargs) - } - throw new ArgumentError(action, msg) - } - - // return the number of arguments matched - return match[1].length - } - - _match_arguments_partial(actions, arg_strings_pattern) { - // progressively shorten the actions list by slicing off the - // final actions until we find a match - let result = [] - for (let i of range(actions.length, 0, -1)) { - let actions_slice = actions.slice(0, i) - let pattern = actions_slice.map(action => this._get_nargs_pattern(action)).join('') - let match = arg_strings_pattern.match(new RegExp('^' + pattern)) - if (match !== null) { - result = result.concat(match.slice(1).map(string => string.length)) - break - } - } - - // return the list of arg string counts - return result - } - - _parse_optional(arg_string) { - // if it's an empty string, it was meant to be a positional - if (!arg_string) { - return undefined - } - - // if it doesn't start with a prefix, it was meant to be positional - if (!this.prefix_chars.includes(arg_string[0])) { - return undefined - } - - // if the option string is present in the parser, return the action - if (arg_string in this._option_string_actions) { - let action = this._option_string_actions[arg_string] - return [ action, arg_string, undefined ] - } - - // if it's just a single character, it was meant to be positional - if (arg_string.length === 1) { - return undefined - } - - // if the option string before the "=" is present, return the action - if (arg_string.includes('=')) { - let [ option_string, explicit_arg ] = _string_split(arg_string, '=', 1) - if (option_string in this._option_string_actions) { - let action = this._option_string_actions[option_string] - return [ action, option_string, explicit_arg ] - } - } - - // search through all possible prefixes of the option string - // and all actions in the parser for possible interpretations - let option_tuples = this._get_option_tuples(arg_string) - - // if multiple actions match, the option string was ambiguous - if (option_tuples.length > 1) { - let options = option_tuples.map(([ /*action*/, option_string/*, explicit_arg*/ ]) => option_string).join(', ') - let args = {option: arg_string, matches: options} - let msg = 'ambiguous option: %(option)s could match %(matches)s' - this.error(sub(msg, args)) - - // if exactly one action matched, this segmentation is good, - // so return the parsed action - } else if (option_tuples.length === 1) { - let [ option_tuple ] = option_tuples - return option_tuple - } - - // if it was not found as an option, but it looks like a negative - // number, it was meant to be positional - // unless there are negative-number-like options - if (this._negative_number_matcher.test(arg_string)) { - if (!this._has_negative_number_optionals.length) { - return undefined - } - } - - // if it contains a space, it was meant to be a positional - if (arg_string.includes(' ')) { - return undefined - } - - // it was meant to be an optional but there is no such option - // in this parser (though it might be a valid option in a subparser) - return [ undefined, arg_string, undefined ] - } - - _get_option_tuples(option_string) { - let result = [] - - // option strings starting with two prefix characters are only - // split at the '=' - let chars = this.prefix_chars - if (chars.includes(option_string[0]) && chars.includes(option_string[1])) { - if (this.allow_abbrev) { - let option_prefix, explicit_arg - if (option_string.includes('=')) { - [ option_prefix, explicit_arg ] = _string_split(option_string, '=', 1) - } else { - option_prefix = option_string - explicit_arg = undefined - } - for (let option_string of Object.keys(this._option_string_actions)) { - if (option_string.startsWith(option_prefix)) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, explicit_arg ] - result.push(tup) - } - } - } - - // single character options can be concatenated with their arguments - // but multiple character options always have to have their argument - // separate - } else if (chars.includes(option_string[0]) && !chars.includes(option_string[1])) { - let option_prefix = option_string - let explicit_arg = undefined - let short_option_prefix = option_string.slice(0, 2) - let short_explicit_arg = option_string.slice(2) - - for (let option_string of Object.keys(this._option_string_actions)) { - if (option_string === short_option_prefix) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, short_explicit_arg ] - result.push(tup) - } else if (option_string.startsWith(option_prefix)) { - let action = this._option_string_actions[option_string] - let tup = [ action, option_string, explicit_arg ] - result.push(tup) - } - } - - // shouldn't ever get here - } else { - this.error(sub('unexpected option string: %s', option_string)) - } - - // return the collected option tuples - return result - } - - _get_nargs_pattern(action) { - // in all examples below, we have to allow for '--' args - // which are represented as '-' in the pattern - let nargs = action.nargs - let nargs_pattern - - // the default (None) is assumed to be a single argument - if (nargs === undefined) { - nargs_pattern = '(-*A-*)' - - // allow zero or one arguments - } else if (nargs === OPTIONAL) { - nargs_pattern = '(-*A?-*)' - - // allow zero or more arguments - } else if (nargs === ZERO_OR_MORE) { - nargs_pattern = '(-*[A-]*)' - - // allow one or more arguments - } else if (nargs === ONE_OR_MORE) { - nargs_pattern = '(-*A[A-]*)' - - // allow any number of options or arguments - } else if (nargs === REMAINDER) { - nargs_pattern = '([-AO]*)' - - // allow one argument followed by any number of options or arguments - } else if (nargs === PARSER) { - nargs_pattern = '(-*A[-AO]*)' - - // suppress action, like nargs=0 - } else if (nargs === SUPPRESS) { - nargs_pattern = '(-*-*)' - - // all others should be integers - } else { - nargs_pattern = sub('(-*%s-*)', 'A'.repeat(nargs).split('').join('-*')) - } - - // if this is an optional action, -- is not allowed - if (action.option_strings.length) { - nargs_pattern = nargs_pattern.replace(/-\*/g, '') - nargs_pattern = nargs_pattern.replace(/-/g, '') - } - - // return the pattern - return nargs_pattern - } - - // ======================== - // Alt command line argument parsing, allowing free intermix - // ======================== - - parse_intermixed_args(args = undefined, namespace = undefined) { - let argv - [ args, argv ] = this.parse_known_intermixed_args(args, namespace) - if (argv.length) { - let msg = 'unrecognized arguments: %s' - this.error(sub(msg, argv.join(' '))) - } - return args - } - - parse_known_intermixed_args(args = undefined, namespace = undefined) { - // returns a namespace and list of extras - // - // positional can be freely intermixed with optionals. optionals are - // first parsed with all positional arguments deactivated. The 'extras' - // are then parsed. If the parser definition is incompatible with the - // intermixed assumptions (e.g. use of REMAINDER, subparsers) a - // TypeError is raised. - // - // positionals are 'deactivated' by setting nargs and default to - // SUPPRESS. This blocks the addition of that positional to the - // namespace - - let extras - let positionals = this._get_positional_actions() - let a = positionals.filter(action => [ PARSER, REMAINDER ].includes(action.nargs)) - if (a.length) { - throw new TypeError(sub('parse_intermixed_args: positional arg' + - ' with nargs=%s', a[0].nargs)) - } - - for (let group of this._mutually_exclusive_groups) { - for (let action of group._group_actions) { - if (positionals.includes(action)) { - throw new TypeError('parse_intermixed_args: positional in' + - ' mutuallyExclusiveGroup') - } - } - } - - let save_usage - try { - save_usage = this.usage - let remaining_args - try { - if (this.usage === undefined) { - // capture the full usage for use in error messages - this.usage = this.format_usage().slice(7) - } - for (let action of positionals) { - // deactivate positionals - action.save_nargs = action.nargs - // action.nargs = 0 - action.nargs = SUPPRESS - action.save_default = action.default - action.default = SUPPRESS - } - [ namespace, remaining_args ] = this.parse_known_args(args, - namespace) - for (let action of positionals) { - // remove the empty positional values from namespace - let attr = getattr(namespace, action.dest) - if (Array.isArray(attr) && attr.length === 0) { - // eslint-disable-next-line no-console - console.warn(sub('Do not expect %s in %s', action.dest, namespace)) - delattr(namespace, action.dest) - } - } - } finally { - // restore nargs and usage before exiting - for (let action of positionals) { - action.nargs = action.save_nargs - action.default = action.save_default - } - } - let optionals = this._get_optional_actions() - try { - // parse positionals. optionals aren't normally required, but - // they could be, so make sure they aren't. - for (let action of optionals) { - action.save_required = action.required - action.required = false - } - for (let group of this._mutually_exclusive_groups) { - group.save_required = group.required - group.required = false - } - [ namespace, extras ] = this.parse_known_args(remaining_args, - namespace) - } finally { - // restore parser values before exiting - for (let action of optionals) { - action.required = action.save_required - } - for (let group of this._mutually_exclusive_groups) { - group.required = group.save_required - } - } - } finally { - this.usage = save_usage - } - return [ namespace, extras ] - } - - // ======================== - // Value conversion methods - // ======================== - _get_values(action, arg_strings) { - // for everything but PARSER, REMAINDER args, strip out first '--' - if (![PARSER, REMAINDER].includes(action.nargs)) { - try { - _array_remove(arg_strings, '--') - } catch (err) {} - } - - let value - // optional argument produces a default when not present - if (!arg_strings.length && action.nargs === OPTIONAL) { - if (action.option_strings.length) { - value = action.const - } else { - value = action.default - } - if (typeof value === 'string') { - value = this._get_value(action, value) - this._check_value(action, value) - } - - // when nargs='*' on a positional, if there were no command-line - // args, use the default if it is anything other than None - } else if (!arg_strings.length && action.nargs === ZERO_OR_MORE && - !action.option_strings.length) { - if (action.default !== undefined) { - value = action.default - } else { - value = arg_strings - } - this._check_value(action, value) - - // single argument or optional argument produces a single value - } else if (arg_strings.length === 1 && [undefined, OPTIONAL].includes(action.nargs)) { - let arg_string = arg_strings[0] - value = this._get_value(action, arg_string) - this._check_value(action, value) - - // REMAINDER arguments convert all values, checking none - } else if (action.nargs === REMAINDER) { - value = arg_strings.map(v => this._get_value(action, v)) - - // PARSER arguments convert all values, but check only the first - } else if (action.nargs === PARSER) { - value = arg_strings.map(v => this._get_value(action, v)) - this._check_value(action, value[0]) - - // SUPPRESS argument does not put anything in the namespace - } else if (action.nargs === SUPPRESS) { - value = SUPPRESS - - // all other types of nargs produce a list - } else { - value = arg_strings.map(v => this._get_value(action, v)) - for (let v of value) { - this._check_value(action, v) - } - } - - // return the converted value - return value - } - - _get_value(action, arg_string) { - let type_func = this._registry_get('type', action.type, action.type) - if (typeof type_func !== 'function') { - let msg = '%r is not callable' - throw new ArgumentError(action, sub(msg, type_func)) - } - - // convert the value to the appropriate type - let result - try { - try { - result = type_func(arg_string) - } catch (err) { - // Dear TC39, why would you ever consider making es6 classes not callable? - // We had one universal interface, [[Call]], which worked for anything - // (with familiar this-instanceof guard for classes). Now we have two. - if (err instanceof TypeError && - /Class constructor .* cannot be invoked without 'new'/.test(err.message)) { - // eslint-disable-next-line new-cap - result = new type_func(arg_string) - } else { - throw err - } - } - - } catch (err) { - // ArgumentTypeErrors indicate errors - if (err instanceof ArgumentTypeError) { - //let name = getattr(action.type, 'name', repr(action.type)) - let msg = err.message - throw new ArgumentError(action, msg) - - // TypeErrors or ValueErrors also indicate errors - } else if (err instanceof TypeError) { - let name = getattr(action.type, 'name', repr(action.type)) - let args = {type: name, value: arg_string} - let msg = 'invalid %(type)s value: %(value)r' - throw new ArgumentError(action, sub(msg, args)) - } else { - throw err - } - } - - // return the converted value - return result - } - - _check_value(action, value) { - // converted value must be one of the choices (if specified) - if (action.choices !== undefined && !_choices_to_array(action.choices).includes(value)) { - let args = {value, - choices: _choices_to_array(action.choices).map(repr).join(', ')} - let msg = 'invalid choice: %(value)r (choose from %(choices)s)' - throw new ArgumentError(action, sub(msg, args)) - } - } - - // ======================= - // Help-formatting methods - // ======================= - format_usage() { - let formatter = this._get_formatter() - formatter.add_usage(this.usage, this._actions, - this._mutually_exclusive_groups) - return formatter.format_help() - } - - format_help() { - let formatter = this._get_formatter() - - // usage - formatter.add_usage(this.usage, this._actions, - this._mutually_exclusive_groups) - - // description - formatter.add_text(this.description) - - // positionals, optionals and user-defined groups - for (let action_group of this._action_groups) { - formatter.start_section(action_group.title) - formatter.add_text(action_group.description) - formatter.add_arguments(action_group._group_actions) - formatter.end_section() - } - - // epilog - formatter.add_text(this.epilog) - - // determine help from format above - return formatter.format_help() - } - - _get_formatter() { - // eslint-disable-next-line new-cap - return new this.formatter_class({ prog: this.prog }) - } - - // ===================== - // Help-printing methods - // ===================== - print_usage(file = undefined) { - if (file === undefined) file = process.stdout - this._print_message(this.format_usage(), file) - } - - print_help(file = undefined) { - if (file === undefined) file = process.stdout - this._print_message(this.format_help(), file) - } - - _print_message(message, file = undefined) { - if (message) { - if (file === undefined) file = process.stderr - file.write(message) - } - } - - // =============== - // Exiting methods - // =============== - exit(status = 0, message = undefined) { - if (message) { - this._print_message(message, process.stderr) - } - process.exit(status) - } - - error(message) { - /* - * error(message: string) - * - * Prints a usage message incorporating the message to stderr and - * exits. - * - * If you override this in a subclass, it should not return -- it - * should either exit or raise an exception. - */ - - // LEGACY (v1 compatibility), debug mode - if (this.debug === true) throw new Error(message) - // end - this.print_usage(process.stderr) - let args = {prog: this.prog, message: message} - this.exit(2, sub('%(prog)s: error: %(message)s\n', args)) - } -})) - - -module.exports = { - ArgumentParser, - ArgumentError, - ArgumentTypeError, - BooleanOptionalAction, - FileType, - HelpFormatter, - ArgumentDefaultsHelpFormatter, - RawDescriptionHelpFormatter, - RawTextHelpFormatter, - MetavarTypeHelpFormatter, - Namespace, - Action, - ONE_OR_MORE, - OPTIONAL, - PARSER, - REMAINDER, - SUPPRESS, - ZERO_OR_MORE -} - -// LEGACY (v1 compatibility), Const alias -Object.defineProperty(module.exports, 'Const', { - get() { - let result = {} - Object.entries({ ONE_OR_MORE, OPTIONAL, PARSER, REMAINDER, SUPPRESS, ZERO_OR_MORE }).forEach(([ n, v ]) => { - Object.defineProperty(result, n, { - get() { - deprecate(n, sub('use argparse.%s instead of argparse.Const.%s', n, n)) - return v - } - }) - }) - Object.entries({ _UNRECOGNIZED_ARGS_ATTR }).forEach(([ n, v ]) => { - Object.defineProperty(result, n, { - get() { - deprecate(n, sub('argparse.Const.%s is an internal symbol and will no longer be available', n)) - return v - } - }) - }) - return result - }, - enumerable: false -}) -// end diff --git a/node_modules/argparse/lib/sub.js b/node_modules/argparse/lib/sub.js deleted file mode 100644 index e3eb321..0000000 --- a/node_modules/argparse/lib/sub.js +++ /dev/null @@ -1,67 +0,0 @@ -// Limited implementation of python % string operator, supports only %s and %r for now -// (other formats are not used here, but may appear in custom templates) - -'use strict' - -const { inspect } = require('util') - - -module.exports = function sub(pattern, ...values) { - let regex = /%(?:(%)|(-)?(\*)?(?:\((\w+)\))?([A-Za-z]))/g - - let result = pattern.replace(regex, function (_, is_literal, is_left_align, is_padded, name, format) { - if (is_literal) return '%' - - let padded_count = 0 - if (is_padded) { - if (values.length === 0) throw new TypeError('not enough arguments for format string') - padded_count = values.shift() - if (!Number.isInteger(padded_count)) throw new TypeError('* wants int') - } - - let str - if (name !== undefined) { - let dict = values[0] - if (typeof dict !== 'object' || dict === null) throw new TypeError('format requires a mapping') - if (!(name in dict)) throw new TypeError(`no such key: '${name}'`) - str = dict[name] - } else { - if (values.length === 0) throw new TypeError('not enough arguments for format string') - str = values.shift() - } - - switch (format) { - case 's': - str = String(str) - break - case 'r': - str = inspect(str) - break - case 'd': - case 'i': - if (typeof str !== 'number') { - throw new TypeError(`%${format} format: a number is required, not ${typeof str}`) - } - str = String(str.toFixed(0)) - break - default: - throw new TypeError(`unsupported format character '${format}'`) - } - - if (padded_count > 0) { - return is_left_align ? str.padEnd(padded_count) : str.padStart(padded_count) - } else { - return str - } - }) - - if (values.length) { - if (values.length === 1 && typeof values[0] === 'object' && values[0] !== null) { - // mapping - } else { - throw new TypeError('not all arguments converted during string formatting') - } - } - - return result -} diff --git a/node_modules/argparse/lib/textwrap.js b/node_modules/argparse/lib/textwrap.js deleted file mode 100644 index 23d51cd..0000000 --- a/node_modules/argparse/lib/textwrap.js +++ /dev/null @@ -1,440 +0,0 @@ -// Partial port of python's argparse module, version 3.9.0 (only wrap and fill functions): -// https://github.com/python/cpython/blob/v3.9.0b4/Lib/textwrap.py - -'use strict' - -/* - * Text wrapping and filling. - */ - -// Copyright (C) 1999-2001 Gregory P. Ward. -// Copyright (C) 2002, 2003 Python Software Foundation. -// Copyright (C) 2020 argparse.js authors -// Originally written by Greg Ward - -// Hardcode the recognized whitespace characters to the US-ASCII -// whitespace characters. The main reason for doing this is that -// some Unicode spaces (like \u00a0) are non-breaking whitespaces. -// -// This less funky little regex just split on recognized spaces. E.g. -// "Hello there -- you goof-ball, use the -b option!" -// splits into -// Hello/ /there/ /--/ /you/ /goof-ball,/ /use/ /the/ /-b/ /option!/ -const wordsep_simple_re = /([\t\n\x0b\x0c\r ]+)/ - -class TextWrapper { - /* - * Object for wrapping/filling text. The public interface consists of - * the wrap() and fill() methods; the other methods are just there for - * subclasses to override in order to tweak the default behaviour. - * If you want to completely replace the main wrapping algorithm, - * you'll probably have to override _wrap_chunks(). - * - * Several instance attributes control various aspects of wrapping: - * width (default: 70) - * the maximum width of wrapped lines (unless break_long_words - * is false) - * initial_indent (default: "") - * string that will be prepended to the first line of wrapped - * output. Counts towards the line's width. - * subsequent_indent (default: "") - * string that will be prepended to all lines save the first - * of wrapped output; also counts towards each line's width. - * expand_tabs (default: true) - * Expand tabs in input text to spaces before further processing. - * Each tab will become 0 .. 'tabsize' spaces, depending on its position - * in its line. If false, each tab is treated as a single character. - * tabsize (default: 8) - * Expand tabs in input text to 0 .. 'tabsize' spaces, unless - * 'expand_tabs' is false. - * replace_whitespace (default: true) - * Replace all whitespace characters in the input text by spaces - * after tab expansion. Note that if expand_tabs is false and - * replace_whitespace is true, every tab will be converted to a - * single space! - * fix_sentence_endings (default: false) - * Ensure that sentence-ending punctuation is always followed - * by two spaces. Off by default because the algorithm is - * (unavoidably) imperfect. - * break_long_words (default: true) - * Break words longer than 'width'. If false, those words will not - * be broken, and some lines might be longer than 'width'. - * break_on_hyphens (default: true) - * Allow breaking hyphenated words. If true, wrapping will occur - * preferably on whitespaces and right after hyphens part of - * compound words. - * drop_whitespace (default: true) - * Drop leading and trailing whitespace from lines. - * max_lines (default: None) - * Truncate wrapped lines. - * placeholder (default: ' [...]') - * Append to the last line of truncated text. - */ - - constructor(options = {}) { - let { - width = 70, - initial_indent = '', - subsequent_indent = '', - expand_tabs = true, - replace_whitespace = true, - fix_sentence_endings = false, - break_long_words = true, - drop_whitespace = true, - break_on_hyphens = true, - tabsize = 8, - max_lines = undefined, - placeholder=' [...]' - } = options - - this.width = width - this.initial_indent = initial_indent - this.subsequent_indent = subsequent_indent - this.expand_tabs = expand_tabs - this.replace_whitespace = replace_whitespace - this.fix_sentence_endings = fix_sentence_endings - this.break_long_words = break_long_words - this.drop_whitespace = drop_whitespace - this.break_on_hyphens = break_on_hyphens - this.tabsize = tabsize - this.max_lines = max_lines - this.placeholder = placeholder - } - - - // -- Private methods ----------------------------------------------- - // (possibly useful for subclasses to override) - - _munge_whitespace(text) { - /* - * _munge_whitespace(text : string) -> string - * - * Munge whitespace in text: expand tabs and convert all other - * whitespace characters to spaces. Eg. " foo\\tbar\\n\\nbaz" - * becomes " foo bar baz". - */ - if (this.expand_tabs) { - text = text.replace(/\t/g, ' '.repeat(this.tabsize)) // not strictly correct in js - } - if (this.replace_whitespace) { - text = text.replace(/[\t\n\x0b\x0c\r]/g, ' ') - } - return text - } - - _split(text) { - /* - * _split(text : string) -> [string] - * - * Split the text to wrap into indivisible chunks. Chunks are - * not quite the same as words; see _wrap_chunks() for full - * details. As an example, the text - * Look, goof-ball -- use the -b option! - * breaks into the following chunks: - * 'Look,', ' ', 'goof-', 'ball', ' ', '--', ' ', - * 'use', ' ', 'the', ' ', '-b', ' ', 'option!' - * if break_on_hyphens is True, or in: - * 'Look,', ' ', 'goof-ball', ' ', '--', ' ', - * 'use', ' ', 'the', ' ', '-b', ' ', option!' - * otherwise. - */ - let chunks = text.split(wordsep_simple_re) - chunks = chunks.filter(Boolean) - return chunks - } - - _handle_long_word(reversed_chunks, cur_line, cur_len, width) { - /* - * _handle_long_word(chunks : [string], - * cur_line : [string], - * cur_len : int, width : int) - * - * Handle a chunk of text (most likely a word, not whitespace) that - * is too long to fit in any line. - */ - // Figure out when indent is larger than the specified width, and make - // sure at least one character is stripped off on every pass - let space_left - if (width < 1) { - space_left = 1 - } else { - space_left = width - cur_len - } - - // If we're allowed to break long words, then do so: put as much - // of the next chunk onto the current line as will fit. - if (this.break_long_words) { - cur_line.push(reversed_chunks[reversed_chunks.length - 1].slice(0, space_left)) - reversed_chunks[reversed_chunks.length - 1] = reversed_chunks[reversed_chunks.length - 1].slice(space_left) - - // Otherwise, we have to preserve the long word intact. Only add - // it to the current line if there's nothing already there -- - // that minimizes how much we violate the width constraint. - } else if (!cur_line) { - cur_line.push(...reversed_chunks.pop()) - } - - // If we're not allowed to break long words, and there's already - // text on the current line, do nothing. Next time through the - // main loop of _wrap_chunks(), we'll wind up here again, but - // cur_len will be zero, so the next line will be entirely - // devoted to the long word that we can't handle right now. - } - - _wrap_chunks(chunks) { - /* - * _wrap_chunks(chunks : [string]) -> [string] - * - * Wrap a sequence of text chunks and return a list of lines of - * length 'self.width' or less. (If 'break_long_words' is false, - * some lines may be longer than this.) Chunks correspond roughly - * to words and the whitespace between them: each chunk is - * indivisible (modulo 'break_long_words'), but a line break can - * come between any two chunks. Chunks should not have internal - * whitespace; ie. a chunk is either all whitespace or a "word". - * Whitespace chunks will be removed from the beginning and end of - * lines, but apart from that whitespace is preserved. - */ - let lines = [] - let indent - if (this.width <= 0) { - throw Error(`invalid width ${this.width} (must be > 0)`) - } - if (this.max_lines !== undefined) { - if (this.max_lines > 1) { - indent = this.subsequent_indent - } else { - indent = this.initial_indent - } - if (indent.length + this.placeholder.trimStart().length > this.width) { - throw Error('placeholder too large for max width') - } - } - - // Arrange in reverse order so items can be efficiently popped - // from a stack of chucks. - chunks = chunks.reverse() - - while (chunks.length > 0) { - - // Start the list of chunks that will make up the current line. - // cur_len is just the length of all the chunks in cur_line. - let cur_line = [] - let cur_len = 0 - - // Figure out which static string will prefix this line. - let indent - if (lines) { - indent = this.subsequent_indent - } else { - indent = this.initial_indent - } - - // Maximum width for this line. - let width = this.width - indent.length - - // First chunk on line is whitespace -- drop it, unless this - // is the very beginning of the text (ie. no lines started yet). - if (this.drop_whitespace && chunks[chunks.length - 1].trim() === '' && lines.length > 0) { - chunks.pop() - } - - while (chunks.length > 0) { - let l = chunks[chunks.length - 1].length - - // Can at least squeeze this chunk onto the current line. - if (cur_len + l <= width) { - cur_line.push(chunks.pop()) - cur_len += l - - // Nope, this line is full. - } else { - break - } - } - - // The current line is full, and the next chunk is too big to - // fit on *any* line (not just this one). - if (chunks.length && chunks[chunks.length - 1].length > width) { - this._handle_long_word(chunks, cur_line, cur_len, width) - cur_len = cur_line.map(l => l.length).reduce((a, b) => a + b, 0) - } - - // If the last chunk on this line is all whitespace, drop it. - if (this.drop_whitespace && cur_line.length > 0 && cur_line[cur_line.length - 1].trim() === '') { - cur_len -= cur_line[cur_line.length - 1].length - cur_line.pop() - } - - if (cur_line) { - if (this.max_lines === undefined || - lines.length + 1 < this.max_lines || - (chunks.length === 0 || - this.drop_whitespace && - chunks.length === 1 && - !chunks[0].trim()) && cur_len <= width) { - // Convert current line back to a string and store it in - // list of all lines (return value). - lines.push(indent + cur_line.join('')) - } else { - let had_break = false - while (cur_line) { - if (cur_line[cur_line.length - 1].trim() && - cur_len + this.placeholder.length <= width) { - cur_line.push(this.placeholder) - lines.push(indent + cur_line.join('')) - had_break = true - break - } - cur_len -= cur_line[-1].length - cur_line.pop() - } - if (!had_break) { - if (lines) { - let prev_line = lines[lines.length - 1].trimEnd() - if (prev_line.length + this.placeholder.length <= - this.width) { - lines[lines.length - 1] = prev_line + this.placeholder - break - } - } - lines.push(indent + this.placeholder.lstrip()) - } - break - } - } - } - - return lines - } - - _split_chunks(text) { - text = this._munge_whitespace(text) - return this._split(text) - } - - // -- Public interface ---------------------------------------------- - - wrap(text) { - /* - * wrap(text : string) -> [string] - * - * Reformat the single paragraph in 'text' so it fits in lines of - * no more than 'self.width' columns, and return a list of wrapped - * lines. Tabs in 'text' are expanded with string.expandtabs(), - * and all other whitespace characters (including newline) are - * converted to space. - */ - let chunks = this._split_chunks(text) - // not implemented in js - //if (this.fix_sentence_endings) { - // this._fix_sentence_endings(chunks) - //} - return this._wrap_chunks(chunks) - } - - fill(text) { - /* - * fill(text : string) -> string - * - * Reformat the single paragraph in 'text' to fit in lines of no - * more than 'self.width' columns, and return a new string - * containing the entire wrapped paragraph. - */ - return this.wrap(text).join('\n') - } -} - - -// -- Convenience interface --------------------------------------------- - -function wrap(text, options = {}) { - /* - * Wrap a single paragraph of text, returning a list of wrapped lines. - * - * Reformat the single paragraph in 'text' so it fits in lines of no - * more than 'width' columns, and return a list of wrapped lines. By - * default, tabs in 'text' are expanded with string.expandtabs(), and - * all other whitespace characters (including newline) are converted to - * space. See TextWrapper class for available keyword args to customize - * wrapping behaviour. - */ - let { width = 70, ...kwargs } = options - let w = new TextWrapper(Object.assign({ width }, kwargs)) - return w.wrap(text) -} - -function fill(text, options = {}) { - /* - * Fill a single paragraph of text, returning a new string. - * - * Reformat the single paragraph in 'text' to fit in lines of no more - * than 'width' columns, and return a new string containing the entire - * wrapped paragraph. As with wrap(), tabs are expanded and other - * whitespace characters converted to space. See TextWrapper class for - * available keyword args to customize wrapping behaviour. - */ - let { width = 70, ...kwargs } = options - let w = new TextWrapper(Object.assign({ width }, kwargs)) - return w.fill(text) -} - -// -- Loosely related functionality ------------------------------------- - -let _whitespace_only_re = /^[ \t]+$/mg -let _leading_whitespace_re = /(^[ \t]*)(?:[^ \t\n])/mg - -function dedent(text) { - /* - * Remove any common leading whitespace from every line in `text`. - * - * This can be used to make triple-quoted strings line up with the left - * edge of the display, while still presenting them in the source code - * in indented form. - * - * Note that tabs and spaces are both treated as whitespace, but they - * are not equal: the lines " hello" and "\\thello" are - * considered to have no common leading whitespace. - * - * Entirely blank lines are normalized to a newline character. - */ - // Look for the longest leading string of spaces and tabs common to - // all lines. - let margin = undefined - text = text.replace(_whitespace_only_re, '') - let indents = text.match(_leading_whitespace_re) || [] - for (let indent of indents) { - indent = indent.slice(0, -1) - - if (margin === undefined) { - margin = indent - - // Current line more deeply indented than previous winner: - // no change (previous winner is still on top). - } else if (indent.startsWith(margin)) { - // pass - - // Current line consistent with and no deeper than previous winner: - // it's the new winner. - } else if (margin.startsWith(indent)) { - margin = indent - - // Find the largest common whitespace between current line and previous - // winner. - } else { - for (let i = 0; i < margin.length && i < indent.length; i++) { - if (margin[i] !== indent[i]) { - margin = margin.slice(0, i) - break - } - } - } - } - - if (margin) { - text = text.replace(new RegExp('^' + margin, 'mg'), '') - } - return text -} - -module.exports = { wrap, fill, dedent } diff --git a/node_modules/argparse/package.json b/node_modules/argparse/package.json deleted file mode 100644 index 647d2af..0000000 --- a/node_modules/argparse/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "argparse", - "description": "CLI arguments parser. Native port of python's argparse.", - "version": "2.0.1", - "keywords": [ - "cli", - "parser", - "argparse", - "option", - "args" - ], - "main": "argparse.js", - "files": [ - "argparse.js", - "lib/" - ], - "license": "Python-2.0", - "repository": "nodeca/argparse", - "scripts": { - "lint": "eslint .", - "test": "npm run lint && nyc mocha", - "coverage": "npm run test && nyc report --reporter html" - }, - "devDependencies": { - "@babel/eslint-parser": "^7.11.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "eslint": "^7.5.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0" - } -} diff --git a/node_modules/arr-union/LICENSE b/node_modules/arr-union/LICENSE deleted file mode 100644 index 39245ac..0000000 --- a/node_modules/arr-union/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2016, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/arr-union/README.md b/node_modules/arr-union/README.md deleted file mode 100644 index b3cd4f4..0000000 --- a/node_modules/arr-union/README.md +++ /dev/null @@ -1,99 +0,0 @@ -# arr-union [![NPM version](https://img.shields.io/npm/v/arr-union.svg)](https://www.npmjs.com/package/arr-union) [![Build Status](https://img.shields.io/travis/jonschlinkert/arr-union.svg)](https://travis-ci.org/jonschlinkert/arr-union) - -> Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons. - -## Install - -Install with [npm](https://www.npmjs.com/): - -```sh -$ npm i arr-union --save -``` - -## Benchmarks - -This library is **10-20 times faster** and more performant than [array-union](https://github.com/sindresorhus/array-union). - -See the [benchmarks](./benchmark). - -```sh -#1: five-arrays - array-union x 511,121 ops/sec ±0.80% (96 runs sampled) - arr-union x 5,716,039 ops/sec ±0.86% (93 runs sampled) - -#2: ten-arrays - array-union x 245,196 ops/sec ±0.69% (94 runs sampled) - arr-union x 1,850,786 ops/sec ±0.84% (97 runs sampled) - -#3: two-arrays - array-union x 563,869 ops/sec ±0.97% (94 runs sampled) - arr-union x 9,602,852 ops/sec ±0.87% (92 runs sampled) -``` - -## Usage - -```js -var union = require('arr-union'); - -union(['a'], ['b', 'c'], ['d', 'e', 'f']); -//=> ['a', 'b', 'c', 'd', 'e', 'f'] -``` - -Returns only unique elements: - -```js -union(['a', 'a'], ['b', 'c']); -//=> ['a', 'b', 'c'] -``` - -## Related projects - -* [arr-diff](https://www.npmjs.com/package/arr-diff): Returns an array with only the unique values from the first array, by excluding all… [more](https://www.npmjs.com/package/arr-diff) | [homepage](https://github.com/jonschlinkert/arr-diff) -* [arr-filter](https://www.npmjs.com/package/arr-filter): Faster alternative to javascript's native filter method. | [homepage](https://github.com/jonschlinkert/arr-filter) -* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten) -* [arr-map](https://www.npmjs.com/package/arr-map): Faster, node.js focused alternative to JavaScript's native array map. | [homepage](https://github.com/jonschlinkert/arr-map) -* [arr-pluck](https://www.npmjs.com/package/arr-pluck): Retrieves the value of a specified property from all elements in the collection. | [homepage](https://github.com/jonschlinkert/arr-pluck) -* [arr-reduce](https://www.npmjs.com/package/arr-reduce): Fast array reduce that also loops over sparse elements. | [homepage](https://github.com/jonschlinkert/arr-reduce) -* [array-unique](https://www.npmjs.com/package/array-unique): Return an array free of duplicate values. Fastest ES5 implementation. | [homepage](https://github.com/jonschlinkert/array-unique) - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/arr-union/issues/new). - -## Building docs - -Generate readme and API documentation with [verb](https://github.com/verbose/verb): - -```sh -$ npm i verb && npm run docs -``` - -Or, if [verb](https://github.com/verbose/verb) is installed globally: - -```sh -$ verb -``` - -## Running tests - -Install dev dependencies: - -```sh -$ npm i -d && npm test -``` - -## Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -## License - -Copyright © 2016 [Jon Schlinkert](https://github.com/jonschlinkert) -Released under the [MIT license](https://github.com/jonschlinkert/arr-union/blob/master/LICENSE). - -*** - -_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on February 23, 2016._ \ No newline at end of file diff --git a/node_modules/arr-union/index.js b/node_modules/arr-union/index.js deleted file mode 100644 index 5ae6c4a..0000000 --- a/node_modules/arr-union/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -module.exports = function union(init) { - if (!Array.isArray(init)) { - throw new TypeError('arr-union expects the first argument to be an array.'); - } - - var len = arguments.length; - var i = 0; - - while (++i < len) { - var arg = arguments[i]; - if (!arg) continue; - - if (!Array.isArray(arg)) { - arg = [arg]; - } - - for (var j = 0; j < arg.length; j++) { - var ele = arg[j]; - - if (init.indexOf(ele) >= 0) { - continue; - } - init.push(ele); - } - } - return init; -}; diff --git a/node_modules/arr-union/package.json b/node_modules/arr-union/package.json deleted file mode 100644 index 5ee87fd..0000000 --- a/node_modules/arr-union/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "arr-union", - "description": "Combines a list of arrays, returning a single array with unique values, using strict equality for comparisons.", - "version": "3.1.0", - "homepage": "https://github.com/jonschlinkert/arr-union", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/arr-union", - "bugs": { - "url": "https://github.com/jonschlinkert/arr-union/issues" - }, - "license": "MIT", - "files": [ - "index.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "devDependencies": { - "ansi-bold": "^0.1.1", - "array-union": "^1.0.1", - "array-unique": "^0.2.1", - "benchmarked": "^0.1.4", - "gulp-format-md": "^0.1.7", - "minimist": "^1.1.1", - "mocha": "*", - "should": "*" - }, - "keywords": [ - "add", - "append", - "array", - "arrays", - "combine", - "concat", - "extend", - "union", - "uniq", - "unique", - "util", - "utility", - "utils" - ], - "verb": { - "run": true, - "toc": false, - "layout": "default", - "tasks": [ - "readme" - ], - "plugins": [ - "gulp-format-md" - ], - "related": { - "list": [ - "arr-diff", - "arr-flatten", - "arr-filter", - "arr-map", - "arr-pluck", - "arr-reduce", - "array-unique" - ] - }, - "reflinks": [ - "verb", - "array-union" - ], - "lint": { - "reflinks": true - } - } -} diff --git a/node_modules/asynckit/LICENSE b/node_modules/asynckit/LICENSE deleted file mode 100644 index c9eca5d..0000000 --- a/node_modules/asynckit/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Alex Indigo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/asynckit/README.md b/node_modules/asynckit/README.md deleted file mode 100644 index ddcc7e6..0000000 --- a/node_modules/asynckit/README.md +++ /dev/null @@ -1,233 +0,0 @@ -# asynckit [![NPM Module](https://img.shields.io/npm/v/asynckit.svg?style=flat)](https://www.npmjs.com/package/asynckit) - -Minimal async jobs utility library, with streams support. - -[![PhantomJS Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=browser&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Linux Build](https://img.shields.io/travis/alexindigo/asynckit/v0.4.0.svg?label=linux:0.12-6.x&style=flat)](https://travis-ci.org/alexindigo/asynckit) -[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/asynckit/v0.4.0.svg?label=windows:0.12-6.x&style=flat)](https://ci.appveyor.com/project/alexindigo/asynckit) - -[![Coverage Status](https://img.shields.io/coveralls/alexindigo/asynckit/v0.4.0.svg?label=code+coverage&style=flat)](https://coveralls.io/github/alexindigo/asynckit?branch=master) -[![Dependency Status](https://img.shields.io/david/alexindigo/asynckit/v0.4.0.svg?style=flat)](https://david-dm.org/alexindigo/asynckit) -[![bitHound Overall Score](https://www.bithound.io/github/alexindigo/asynckit/badges/score.svg)](https://www.bithound.io/github/alexindigo/asynckit) - - - -AsyncKit provides harness for `parallel` and `serial` iterators over list of items represented by arrays or objects. -Optionally it accepts abort function (should be synchronously return by iterator for each item), and terminates left over jobs upon an error event. For specific iteration order built-in (`ascending` and `descending`) and custom sort helpers also supported, via `asynckit.serialOrdered` method. - -It ensures async operations to keep behavior more stable and prevent `Maximum call stack size exceeded` errors, from sync iterators. - -| compression | size | -| :----------------- | -------: | -| asynckit.js | 12.34 kB | -| asynckit.min.js | 4.11 kB | -| asynckit.min.js.gz | 1.47 kB | - - -## Install - -```sh -$ npm install --save asynckit -``` - -## Examples - -### Parallel Jobs - -Runs iterator over provided array in parallel. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will terminate rest of the active jobs (if abort function is provided) -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var parallel = require('asynckit').parallel - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , target = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// async job accepts one element from the array -// and a callback function -function asyncJob(item, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-array.js](test/test-parallel-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var parallel = require('asynckit/parallel') - , assert = require('assert') - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 2, 4, 8, 16, 32, 64 ] - , expectedKeys = [ 'first', 'one', 'two', 'four', 'eight', 'sixteen', 'thirtyTwo', 'sixtyFour' ] - , target = [] - , keys = [] - ; - -parallel(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); - assert.deepEqual(keys, expectedKeys); -}); - -// supports full value, key, callback (shortcut) interface -function asyncJob(item, key, cb) -{ - // different delays (in ms) per item - var delay = item * 25; - - // pretend different jobs take different time to finish - // and not in consequential order - var timeoutId = setTimeout(function() { - keys.push(key); - target.push(item); - cb(null, item * 2); - }, delay); - - // allow to cancel "leftover" jobs upon error - // return function, invoking of which will abort this job - return clearTimeout.bind(null, timeoutId); -} -``` - -More examples could be found in [test/test-parallel-object.js](test/test-parallel-object.js). - -### Serial Jobs - -Runs iterator over provided array sequentially. Stores output in the `result` array, -on the matching positions. In unlikely event of an error from one of the jobs, -will not proceed to the rest of the items in the list -and return error along with salvaged data to the main callback function. - -#### Input Array - -```javascript -var serial = require('asynckit/serial') - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// extended interface (item, key, callback) -// also supported for arrays -function asyncJob(item, key, cb) -{ - target.push(key); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-array.js](test/test-serial-array.js). - -#### Input Object - -Also it supports named jobs, listed via object. - -```javascript -var serial = require('asynckit').serial - , assert = require('assert') - ; - -var source = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , expectedResult = [ 2, 2, 8, 32, 128, 64, 16, 4 ] - , expectedTarget = [ 0, 1, 2, 3, 4, 5, 6, 7 ] - , target = [] - ; - -var source = { first: 1, one: 1, four: 4, sixteen: 16, sixtyFour: 64, thirtyTwo: 32, eight: 8, two: 2 } - , expectedResult = { first: 2, one: 2, four: 8, sixteen: 32, sixtyFour: 128, thirtyTwo: 64, eight: 16, two: 4 } - , expectedTarget = [ 1, 1, 4, 16, 64, 32, 8, 2 ] - , target = [] - ; - - -serial(source, asyncJob, function(err, result) -{ - assert.deepEqual(result, expectedResult); - assert.deepEqual(target, expectedTarget); -}); - -// shortcut interface (item, callback) -// works for object as well as for the arrays -function asyncJob(item, cb) -{ - target.push(item); - - // it will be automatically made async - // even it iterator "returns" in the same event loop - cb(null, item * 2); -} -``` - -More examples could be found in [test/test-serial-object.js](test/test-serial-object.js). - -_Note: Since _object_ is an _unordered_ collection of properties, -it may produce unexpected results with sequential iterations. -Whenever order of the jobs' execution is important please use `serialOrdered` method._ - -### Ordered Serial Iterations - -TBD - -For example [compare-property](compare-property) package. - -### Streaming interface - -TBD - -## Want to Know More? - -More examples can be found in [test folder](test/). - -Or open an [issue](https://github.com/alexindigo/asynckit/issues) with questions and/or suggestions. - -## License - -AsyncKit is licensed under the MIT license. diff --git a/node_modules/asynckit/bench.js b/node_modules/asynckit/bench.js deleted file mode 100644 index c612f1a..0000000 --- a/node_modules/asynckit/bench.js +++ /dev/null @@ -1,76 +0,0 @@ -/* eslint no-console: "off" */ - -var asynckit = require('./') - , async = require('async') - , assert = require('assert') - , expected = 0 - ; - -var Benchmark = require('benchmark'); -var suite = new Benchmark.Suite; - -var source = []; -for (var z = 1; z < 100; z++) -{ - source.push(z); - expected += z; -} - -suite -// add tests - -.add('async.map', function(deferred) -{ - var total = 0; - - async.map(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -.add('asynckit.parallel', function(deferred) -{ - var total = 0; - - asynckit.parallel(source, - function(i, cb) - { - setImmediate(function() - { - total += i; - cb(null, total); - }); - }, - function(err, result) - { - assert.ifError(err); - assert.equal(result[result.length - 1], expected); - deferred.resolve(); - }); -}, {'defer': true}) - - -// add listeners -.on('cycle', function(ev) -{ - console.log(String(ev.target)); -}) -.on('complete', function() -{ - console.log('Fastest is ' + this.filter('fastest').map('name')); -}) -// run async -.run({ 'async': true }); diff --git a/node_modules/asynckit/index.js b/node_modules/asynckit/index.js deleted file mode 100644 index 455f945..0000000 --- a/node_modules/asynckit/index.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = -{ - parallel : require('./parallel.js'), - serial : require('./serial.js'), - serialOrdered : require('./serialOrdered.js') -}; diff --git a/node_modules/asynckit/lib/abort.js b/node_modules/asynckit/lib/abort.js deleted file mode 100644 index 114367e..0000000 --- a/node_modules/asynckit/lib/abort.js +++ /dev/null @@ -1,29 +0,0 @@ -// API -module.exports = abort; - -/** - * Aborts leftover active jobs - * - * @param {object} state - current state object - */ -function abort(state) -{ - Object.keys(state.jobs).forEach(clean.bind(state)); - - // reset leftover jobs - state.jobs = {}; -} - -/** - * Cleans up leftover job by invoking abort function for the provided job id - * - * @this state - * @param {string|number} key - job id to abort - */ -function clean(key) -{ - if (typeof this.jobs[key] == 'function') - { - this.jobs[key](); - } -} diff --git a/node_modules/asynckit/lib/async.js b/node_modules/asynckit/lib/async.js deleted file mode 100644 index 7f1288a..0000000 --- a/node_modules/asynckit/lib/async.js +++ /dev/null @@ -1,34 +0,0 @@ -var defer = require('./defer.js'); - -// API -module.exports = async; - -/** - * Runs provided callback asynchronously - * even if callback itself is not - * - * @param {function} callback - callback to invoke - * @returns {function} - augmented callback - */ -function async(callback) -{ - var isAsync = false; - - // check if async happened - defer(function() { isAsync = true; }); - - return function async_callback(err, result) - { - if (isAsync) - { - callback(err, result); - } - else - { - defer(function nextTick_callback() - { - callback(err, result); - }); - } - }; -} diff --git a/node_modules/asynckit/lib/defer.js b/node_modules/asynckit/lib/defer.js deleted file mode 100644 index b67110c..0000000 --- a/node_modules/asynckit/lib/defer.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = defer; - -/** - * Runs provided function on next iteration of the event loop - * - * @param {function} fn - function to run - */ -function defer(fn) -{ - var nextTick = typeof setImmediate == 'function' - ? setImmediate - : ( - typeof process == 'object' && typeof process.nextTick == 'function' - ? process.nextTick - : null - ); - - if (nextTick) - { - nextTick(fn); - } - else - { - setTimeout(fn, 0); - } -} diff --git a/node_modules/asynckit/lib/iterate.js b/node_modules/asynckit/lib/iterate.js deleted file mode 100644 index 5d2839a..0000000 --- a/node_modules/asynckit/lib/iterate.js +++ /dev/null @@ -1,75 +0,0 @@ -var async = require('./async.js') - , abort = require('./abort.js') - ; - -// API -module.exports = iterate; - -/** - * Iterates over each job object - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {object} state - current job status - * @param {function} callback - invoked when all elements processed - */ -function iterate(list, iterator, state, callback) -{ - // store current index - var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; - - state.jobs[key] = runJob(iterator, key, list[key], function(error, output) - { - // don't repeat yourself - // skip secondary callbacks - if (!(key in state.jobs)) - { - return; - } - - // clean up jobs - delete state.jobs[key]; - - if (error) - { - // don't process rest of the results - // stop still active jobs - // and reset the list - abort(state); - } - else - { - state.results[key] = output; - } - - // return salvaged results - callback(error, state.results); - }); -} - -/** - * Runs iterator over provided job element - * - * @param {function} iterator - iterator to invoke - * @param {string|number} key - key/index of the element in the list of jobs - * @param {mixed} item - job description - * @param {function} callback - invoked after iterator is done with the job - * @returns {function|mixed} - job abort function or something else - */ -function runJob(iterator, key, item, callback) -{ - var aborter; - - // allow shortcut if iterator expects only two arguments - if (iterator.length == 2) - { - aborter = iterator(item, async(callback)); - } - // otherwise go with full three arguments - else - { - aborter = iterator(item, key, async(callback)); - } - - return aborter; -} diff --git a/node_modules/asynckit/lib/readable_asynckit.js b/node_modules/asynckit/lib/readable_asynckit.js deleted file mode 100644 index 78ad240..0000000 --- a/node_modules/asynckit/lib/readable_asynckit.js +++ /dev/null @@ -1,91 +0,0 @@ -var streamify = require('./streamify.js') - , defer = require('./defer.js') - ; - -// API -module.exports = ReadableAsyncKit; - -/** - * Base constructor for all streams - * used to hold properties/methods - */ -function ReadableAsyncKit() -{ - ReadableAsyncKit.super_.apply(this, arguments); - - // list of active jobs - this.jobs = {}; - - // add stream methods - this.destroy = destroy; - this._start = _start; - this._read = _read; -} - -/** - * Destroys readable stream, - * by aborting outstanding jobs - * - * @returns {void} - */ -function destroy() -{ - if (this.destroyed) - { - return; - } - - this.destroyed = true; - - if (typeof this.terminator == 'function') - { - this.terminator(); - } -} - -/** - * Starts provided jobs in async manner - * - * @private - */ -function _start() -{ - // first argument – runner function - var runner = arguments[0] - // take away first argument - , args = Array.prototype.slice.call(arguments, 1) - // second argument - input data - , input = args[0] - // last argument - result callback - , endCb = streamify.callback.call(this, args[args.length - 1]) - ; - - args[args.length - 1] = endCb; - // third argument - iterator - args[1] = streamify.iterator.call(this, args[1]); - - // allow time for proper setup - defer(function() - { - if (!this.destroyed) - { - this.terminator = runner.apply(null, args); - } - else - { - endCb(null, Array.isArray(input) ? [] : {}); - } - }.bind(this)); -} - - -/** - * Implement _read to comply with Readable streams - * Doesn't really make sense for flowing object mode - * - * @private - */ -function _read() -{ - -} diff --git a/node_modules/asynckit/lib/readable_parallel.js b/node_modules/asynckit/lib/readable_parallel.js deleted file mode 100644 index 5d2929f..0000000 --- a/node_modules/asynckit/lib/readable_parallel.js +++ /dev/null @@ -1,25 +0,0 @@ -var parallel = require('../parallel.js'); - -// API -module.exports = ReadableParallel; - -/** - * Streaming wrapper to `asynckit.parallel` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableParallel(list, iterator, callback) -{ - if (!(this instanceof ReadableParallel)) - { - return new ReadableParallel(list, iterator, callback); - } - - // turn on object mode - ReadableParallel.super_.call(this, {objectMode: true}); - - this._start(parallel, list, iterator, callback); -} diff --git a/node_modules/asynckit/lib/readable_serial.js b/node_modules/asynckit/lib/readable_serial.js deleted file mode 100644 index 7822698..0000000 --- a/node_modules/asynckit/lib/readable_serial.js +++ /dev/null @@ -1,25 +0,0 @@ -var serial = require('../serial.js'); - -// API -module.exports = ReadableSerial; - -/** - * Streaming wrapper to `asynckit.serial` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableSerial(list, iterator, callback) -{ - if (!(this instanceof ReadableSerial)) - { - return new ReadableSerial(list, iterator, callback); - } - - // turn on object mode - ReadableSerial.super_.call(this, {objectMode: true}); - - this._start(serial, list, iterator, callback); -} diff --git a/node_modules/asynckit/lib/readable_serial_ordered.js b/node_modules/asynckit/lib/readable_serial_ordered.js deleted file mode 100644 index 3de89c4..0000000 --- a/node_modules/asynckit/lib/readable_serial_ordered.js +++ /dev/null @@ -1,29 +0,0 @@ -var serialOrdered = require('../serialOrdered.js'); - -// API -module.exports = ReadableSerialOrdered; -// expose sort helpers -module.exports.ascending = serialOrdered.ascending; -module.exports.descending = serialOrdered.descending; - -/** - * Streaming wrapper to `asynckit.serialOrdered` - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {stream.Readable#} - */ -function ReadableSerialOrdered(list, iterator, sortMethod, callback) -{ - if (!(this instanceof ReadableSerialOrdered)) - { - return new ReadableSerialOrdered(list, iterator, sortMethod, callback); - } - - // turn on object mode - ReadableSerialOrdered.super_.call(this, {objectMode: true}); - - this._start(serialOrdered, list, iterator, sortMethod, callback); -} diff --git a/node_modules/asynckit/lib/state.js b/node_modules/asynckit/lib/state.js deleted file mode 100644 index cbea7ad..0000000 --- a/node_modules/asynckit/lib/state.js +++ /dev/null @@ -1,37 +0,0 @@ -// API -module.exports = state; - -/** - * Creates initial state object - * for iteration over list - * - * @param {array|object} list - list to iterate over - * @param {function|null} sortMethod - function to use for keys sort, - * or `null` to keep them as is - * @returns {object} - initial state object - */ -function state(list, sortMethod) -{ - var isNamedList = !Array.isArray(list) - , initState = - { - index : 0, - keyedList: isNamedList || sortMethod ? Object.keys(list) : null, - jobs : {}, - results : isNamedList ? {} : [], - size : isNamedList ? Object.keys(list).length : list.length - } - ; - - if (sortMethod) - { - // sort array keys based on it's values - // sort object's keys just on own merit - initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) - { - return sortMethod(list[a], list[b]); - }); - } - - return initState; -} diff --git a/node_modules/asynckit/lib/streamify.js b/node_modules/asynckit/lib/streamify.js deleted file mode 100644 index f56a1c9..0000000 --- a/node_modules/asynckit/lib/streamify.js +++ /dev/null @@ -1,141 +0,0 @@ -var async = require('./async.js'); - -// API -module.exports = { - iterator: wrapIterator, - callback: wrapCallback -}; - -/** - * Wraps iterators with long signature - * - * @this ReadableAsyncKit# - * @param {function} iterator - function to wrap - * @returns {function} - wrapped function - */ -function wrapIterator(iterator) -{ - var stream = this; - - return function(item, key, cb) - { - var aborter - , wrappedCb = async(wrapIteratorCallback.call(stream, cb, key)) - ; - - stream.jobs[key] = wrappedCb; - - // it's either shortcut (item, cb) - if (iterator.length == 2) - { - aborter = iterator(item, wrappedCb); - } - // or long format (item, key, cb) - else - { - aborter = iterator(item, key, wrappedCb); - } - - return aborter; - }; -} - -/** - * Wraps provided callback function - * allowing to execute snitch function before - * real callback - * - * @this ReadableAsyncKit# - * @param {function} callback - function to wrap - * @returns {function} - wrapped function - */ -function wrapCallback(callback) -{ - var stream = this; - - var wrapped = function(error, result) - { - return finisher.call(stream, error, result, callback); - }; - - return wrapped; -} - -/** - * Wraps provided iterator callback function - * makes sure snitch only called once, - * but passes secondary calls to the original callback - * - * @this ReadableAsyncKit# - * @param {function} callback - callback to wrap - * @param {number|string} key - iteration key - * @returns {function} wrapped callback - */ -function wrapIteratorCallback(callback, key) -{ - var stream = this; - - return function(error, output) - { - // don't repeat yourself - if (!(key in stream.jobs)) - { - callback(error, output); - return; - } - - // clean up jobs - delete stream.jobs[key]; - - return streamer.call(stream, error, {key: key, value: output}, callback); - }; -} - -/** - * Stream wrapper for iterator callback - * - * @this ReadableAsyncKit# - * @param {mixed} error - error response - * @param {mixed} output - iterator output - * @param {function} callback - callback that expects iterator results - */ -function streamer(error, output, callback) -{ - if (error && !this.error) - { - this.error = error; - this.pause(); - this.emit('error', error); - // send back value only, as expected - callback(error, output && output.value); - return; - } - - // stream stuff - this.push(output); - - // back to original track - // send back value only, as expected - callback(error, output && output.value); -} - -/** - * Stream wrapper for finishing callback - * - * @this ReadableAsyncKit# - * @param {mixed} error - error response - * @param {mixed} output - iterator output - * @param {function} callback - callback that expects final results - */ -function finisher(error, output, callback) -{ - // signal end of the stream - // only for successfully finished streams - if (!error) - { - this.push(null); - } - - // back to original track - callback(error, output); -} diff --git a/node_modules/asynckit/lib/terminator.js b/node_modules/asynckit/lib/terminator.js deleted file mode 100644 index d6eb992..0000000 --- a/node_modules/asynckit/lib/terminator.js +++ /dev/null @@ -1,29 +0,0 @@ -var abort = require('./abort.js') - , async = require('./async.js') - ; - -// API -module.exports = terminator; - -/** - * Terminates jobs in the attached state context - * - * @this AsyncKitState# - * @param {function} callback - final callback to invoke after termination - */ -function terminator(callback) -{ - if (!Object.keys(this.jobs).length) - { - return; - } - - // fast forward iteration index - this.index = this.size; - - // abort jobs - abort(this); - - // send back results we have so far - async(callback)(null, this.results); -} diff --git a/node_modules/asynckit/package.json b/node_modules/asynckit/package.json deleted file mode 100644 index 51147d6..0000000 --- a/node_modules/asynckit/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "asynckit", - "version": "0.4.0", - "description": "Minimal async jobs utility library, with streams support", - "main": "index.js", - "scripts": { - "clean": "rimraf coverage", - "lint": "eslint *.js lib/*.js test/*.js", - "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec", - "win-test": "tape test/test-*.js", - "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec", - "report": "istanbul report", - "size": "browserify index.js | size-table asynckit", - "debug": "tape test/test-*.js" - }, - "pre-commit": [ - "clean", - "lint", - "test", - "browser", - "report", - "size" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/alexindigo/asynckit.git" - }, - "keywords": [ - "async", - "jobs", - "parallel", - "serial", - "iterator", - "array", - "object", - "stream", - "destroy", - "terminate", - "abort" - ], - "author": "Alex Indigo ", - "license": "MIT", - "bugs": { - "url": "https://github.com/alexindigo/asynckit/issues" - }, - "homepage": "https://github.com/alexindigo/asynckit#readme", - "devDependencies": { - "browserify": "^13.0.0", - "browserify-istanbul": "^2.0.0", - "coveralls": "^2.11.9", - "eslint": "^2.9.0", - "istanbul": "^0.4.3", - "obake": "^0.1.2", - "phantomjs-prebuilt": "^2.1.7", - "pre-commit": "^1.1.3", - "reamde": "^1.1.0", - "rimraf": "^2.5.2", - "size-table": "^0.2.0", - "tap-spec": "^4.1.1", - "tape": "^4.5.1" - }, - "dependencies": {} -} diff --git a/node_modules/asynckit/parallel.js b/node_modules/asynckit/parallel.js deleted file mode 100644 index 3c50344..0000000 --- a/node_modules/asynckit/parallel.js +++ /dev/null @@ -1,43 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = parallel; - -/** - * Runs iterator over provided array elements in parallel - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function parallel(list, iterator, callback) -{ - var state = initState(list); - - while (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, function(error, result) - { - if (error) - { - callback(error, result); - return; - } - - // looks like it's the last one - if (Object.keys(state.jobs).length === 0) - { - callback(null, state.results); - return; - } - }); - - state.index++; - } - - return terminator.bind(state, callback); -} diff --git a/node_modules/asynckit/serial.js b/node_modules/asynckit/serial.js deleted file mode 100644 index 6cd949a..0000000 --- a/node_modules/asynckit/serial.js +++ /dev/null @@ -1,17 +0,0 @@ -var serialOrdered = require('./serialOrdered.js'); - -// Public API -module.exports = serial; - -/** - * Runs iterator over provided array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serial(list, iterator, callback) -{ - return serialOrdered(list, iterator, null, callback); -} diff --git a/node_modules/asynckit/serialOrdered.js b/node_modules/asynckit/serialOrdered.js deleted file mode 100644 index 607eafe..0000000 --- a/node_modules/asynckit/serialOrdered.js +++ /dev/null @@ -1,75 +0,0 @@ -var iterate = require('./lib/iterate.js') - , initState = require('./lib/state.js') - , terminator = require('./lib/terminator.js') - ; - -// Public API -module.exports = serialOrdered; -// sorting helpers -module.exports.ascending = ascending; -module.exports.descending = descending; - -/** - * Runs iterator over provided sorted array elements in series - * - * @param {array|object} list - array or object (named list) to iterate over - * @param {function} iterator - iterator to run - * @param {function} sortMethod - custom sort function - * @param {function} callback - invoked when all elements processed - * @returns {function} - jobs terminator - */ -function serialOrdered(list, iterator, sortMethod, callback) -{ - var state = initState(list, sortMethod); - - iterate(list, iterator, state, function iteratorHandler(error, result) - { - if (error) - { - callback(error, result); - return; - } - - state.index++; - - // are we there yet? - if (state.index < (state['keyedList'] || list).length) - { - iterate(list, iterator, state, iteratorHandler); - return; - } - - // done here - callback(null, state.results); - }); - - return terminator.bind(state, callback); -} - -/* - * -- Sort methods - */ - -/** - * sort helper to sort array elements in ascending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function ascending(a, b) -{ - return a < b ? -1 : a > b ? 1 : 0; -} - -/** - * sort helper to sort array elements in descending order - * - * @param {mixed} a - an item to compare - * @param {mixed} b - an item to compare - * @returns {number} - comparison result - */ -function descending(a, b) -{ - return -1 * ascending(a, b); -} diff --git a/node_modules/asynckit/stream.js b/node_modules/asynckit/stream.js deleted file mode 100644 index d43465f..0000000 --- a/node_modules/asynckit/stream.js +++ /dev/null @@ -1,21 +0,0 @@ -var inherits = require('util').inherits - , Readable = require('stream').Readable - , ReadableAsyncKit = require('./lib/readable_asynckit.js') - , ReadableParallel = require('./lib/readable_parallel.js') - , ReadableSerial = require('./lib/readable_serial.js') - , ReadableSerialOrdered = require('./lib/readable_serial_ordered.js') - ; - -// API -module.exports = -{ - parallel : ReadableParallel, - serial : ReadableSerial, - serialOrdered : ReadableSerialOrdered, -}; - -inherits(ReadableAsyncKit, Readable); - -inherits(ReadableParallel, ReadableAsyncKit); -inherits(ReadableSerial, ReadableAsyncKit); -inherits(ReadableSerialOrdered, ReadableAsyncKit); diff --git a/node_modules/axios/CHANGELOG.md b/node_modules/axios/CHANGELOG.md deleted file mode 100644 index 488ed84..0000000 --- a/node_modules/axios/CHANGELOG.md +++ /dev/null @@ -1,1747 +0,0 @@ -# Changelog - -## v1.16.0 — May 2, 2026 - -This release adds support for the QUERY HTTP method and a new `ECONNREFUSED` error constant, lands a substantial wave of HTTP, fetch, and XHR adapter bug fixes around redirects, aborts, headers, and timeouts, and welcomes 23 new contributors. - -## ⚠️ Notable Changes - -A handful of fixes in this release are either security-adjacent or change observable behaviour. Please review before upgrading: - -- **Fetch adapter now enforces `maxBodyLength` and `maxContentLength`.** These limits were silently ignored on the fetch adapter prior to 1.16.0 — anyone relying on them as a safety net (DoS protection, accidental large uploads) had no protection. (**#10795**) -- **Proxy requests now preserve user-supplied `Host` headers.** Previously, the proxy path could overwrite a custom `Host`. Virtual-host-style routing through a proxy will now behave correctly. (**#10822**) -- **Basic auth credentials embedded in URLs are now URL-decoded.** If you have percent-encoded credentials in a URL (e.g. `https://user:p%40ss@host`), the decoded value is what now goes on the wire. (**#10825**) -- **`parseProtocol` now strictly requires a colon in the protocol separator.** Strings that loosely parsed as protocols before may no longer match. (**#10729**) -- **Deprecated `unescape()` replaced with modern UTF-8 encoding.** Non-ASCII URL handling is now spec-correct; consumers depending on legacy `unescape()` quirks may see different output bytes. (**#7378**) -- **`transformRequest` input typing change was reverted.** The typing change introduced in #10745 was reverted in #10810 after follow-up review — net behavior is unchanged from 1.15.2. (**#10745**, **#10810**) - -## 🚀 New Features - -- **QUERY HTTP Method:** Added support for the QUERY HTTP method across adapters and type definitions. (**#10802**) -- **ECONNREFUSED Error Constant:** Exposed `ECONNREFUSED` as a constant on `AxiosError` so callers can match connection-refused failures without comparing string literals (closes #6485). (**#10680**) -- **Encode Helper Export:** Exported the internal `encode` helper from `buildURL` so userland param serializers can reuse the same encoding logic that axios uses internally. (**#6897**) - -## 🐛 Bug Fixes - -- **HTTP Adapter — Redirects & Headers:** Cleared stale headers when a redirect targets a no-proxy host, fixed the redirect listener chain so listeners no longer stack across hops, restored the missing `requestDetails` argument on `beforeRedirect`, preserved user-supplied `Host` headers when forwarding through a proxy, and properly URL-decoded basic auth credentials. (**#10794**, **#10800**, **#6241**, **#10822**, **#10825**) -- **HTTP Adapter — Streams & Timeouts:** Preserved the partial response object on `AxiosError` when a stream is aborted after headers arrive, honoured the `timeout` option during the connect phase when redirects are disabled, and resolved an unsettled-promise hang when an aborted request was combined with compression and `maxRedirects: 0`. (**#10708**, **#10819**, **#7149**) -- **Fetch Adapter:** Enforced `maxBodyLength` / `maxContentLength` in the fetch adapter, set the `User-Agent` header to match the HTTP adapter, preserved the original abort reason instead of replacing it with a generic error, and deferred global access so importing the module no longer throws a `TypeError` in restricted environments. (**#10795**, **#10772**, **#10806**, **#7260**) -- **XHR Adapter:** Unsubscribed the `cancelToken` and `AbortSignal` listeners on the error, timeout, and abort code paths to prevent leaked subscriptions. (**#10787**) -- **Error Handling:** Attached the parsed response to `AxiosError` when `JSON.parse` fails inside `dispatchRequest`, prevented `settle` from emitting `undefined` error codes, and tightened the `parseProtocol` regex to require a colon in the protocol separator. (**#10724**, **#7276**, **#10729**) -- **Types & Exports:** Aligned the CommonJS `CancelToken` typings with the ESM build, fixed a compiler error caused by `RawAxiosHeaders`, and re-exported `create` from the package index. (**#7414**, **#6389**, **#6460**) -- **UTF-8 Encoding:** Replaced the deprecated `unescape()` call with a modern UTF-8 encoding implementation. (**#7378**) -- **Misc Cleanup:** Resolved a batch of small inconsistencies and gadget-level issues across the codebase. (**#10833**) - -## 🔧 Maintenance & Chores - -- **Refactor — ES6 Modernisation:** Modernised the `utils` module and XHR adapter to use ES6 features, and tidied the multipart boundary error message. (**#10588**, **#7419**) -- **Tests:** Hardened the HTTP test server lifecycle to fix flaky `FormData` EPIPE failures, fixed Win32 platform support for the pipe tests, and corrected an incorrect test assumption. (**#10820**, **#10791**, **#10796**) -- **Docs:** Documented `paramsSerializer.encode` for strict RFC 3986 query encoding, updated the `parseReviver` TypeScript definitions and configuration docs for ES2023, added timeout guidance to the README's first async example, and expanded notes around the recent type changes. (**#10821**, **#10782**, **#10759**, **#10804**) -- **Reverted:** Reverted the `transformRequest` input typing change from #10745 after follow-up review. (**#10745**, **#10810**) -- **Dependencies:** Bumped `actions/setup-node`, the `github-actions` group, and `postcss` (in `/docs`) to their latest versions. (**#10785**, **#10813**, **#10814**) -- **Release:** Updated changelog and packages, and prepared the 1.16.0 release. (**#10790**, **#10834**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@singhankit001** (**#10588**) -- **@cuiweixie** (**#7419**) -- **@iruizsalinas** (**#10787**) -- **@MarcosNocetti** (**#10680**) -- **@deepview-autofix** (**#10729**) -- **@atharvasingh7007** (**#10745**) -- **@OfekDanny** (**#10772**) -- **@mnahkies** (**#7414**) -- **@tboyila** (**#10759**) -- **@Kingo64** (**#6897**) -- **@ramram1048** (**#6389**) -- **@FLNacif** (**#6460**) -- **@zozo123** (**#10806**) -- **@pierluigilenoci** (**#10802**) -- **@afurm** (**#10708**) -- **@karan-lrn** (**#7378**) -- **@ebeigarts** (**#7149**) -- **@Raymondo97** (**#10782**) -- **@mixelburg** (**#10821**) -- **@ashishkr96** (**#10822**) -- **@cyphercodes** (**#10819**) -- **@Jye10032** (**#7260**) -- **@VeerShah41** (**#7276**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.15.2...v1.16.0) - -## v1.15.2 - April 21, 2026 - -This release delivers prototype-pollution hardening for the Node HTTP adapter, adds an opt-in `allowedSocketPaths` allowlist to mitigate SSRF via Unix domain sockets, fixes a keep-alive socket memory leak, and ships supply-chain hardening across CI and security docs. - -## 🔒 Security Fixes - -- **Prototype Pollution Hardening (HTTP Adapter):** Hardened the Node HTTP adapter and `resolveConfig`/`mergeConfig`/validator paths to read only own properties and use null-prototype config objects, preventing polluted `auth`, `baseURL`, `socketPath`, `beforeRedirect`, and `insecureHTTPParser` from influencing requests. (**#10779**) -- **SSRF via `socketPath`:** Rejects non-string `socketPath` values and adds an opt-in `allowedSocketPaths` config option to restrict permitted Unix domain socket paths, returning `AxiosError` `ERR_BAD_OPTION_VALUE` on mismatch. (**#10777**) -- **Supply-chain Hardening:** Added `.npmrc` with `ignore-scripts=true`, lockfile lint CI, non-blocking reproducible build diff, scoped CODEOWNERS, expanded `SECURITY.md`/`THREATMODEL.md` with provenance verification (`npm audit signatures`), 60-day resolution policy, and maintainer incident-response runbook. (**#10776**) - -## 🚀 New Features - -- **`allowedSocketPaths` Config Option:** New request config option (and TypeScript types) to allowlist Unix domain socket paths used by the Node http adapter; backwards compatible when unset. (**#10777**) - -## 🐛 Bug Fixes - -- **Keep-alive Socket Memory Leak:** Installs a single per-socket `error` listener tracking the active request via `kAxiosSocketListener`/`kAxiosCurrentReq`, eliminating per-request listener accumulation, `MaxListenersExceededWarning`, and linear heap growth under concurrent or long-running keep-alive workloads (fixes #10780). (**#10788**) - -## 🔧 Maintenance & Chores - -- **Changelog:** Updated `CHANGELOG.md` with v1.15.1 release notes. (**#10781**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.15.1...v1.15.2) - ---- - -## v1.15.1 - April 19, 2026 - -This release ships a coordinated set of security hardening fixes across headers, body/redirect limits, multipart handling, and XSRF/prototype-pollution vectors, alongside a broad sweep of bug fixes, test migrations, and threat-model documentation updates. - -## 🔒 Security Fixes - -- **Header Injection Hardening:** Tightened validation and sanitisation across request header construction to close the header-injection attack surface. (**#10749**) - -- **CRLF Stripping in Multipart Headers:** Correctly strips CR/LF from multipart header values to prevent injection via field names and filenames. (**#10758**) - -- **Prototype Pollution / Auth Bypass:** Replaced unsafe `in` checks with `hasOwnProperty` to prevent authentication bypass via prototype pollution on config objects, with additional regression tests. (**#10761**, **#10760**) - -- **`withXSRFToken` Truthy Bypass:** Short-circuits on any truthy non-boolean value, so an ambiguous config no longer silently leaks the XSRF token cross-origin. (**#10762**) - -- **`maxBodyLength` With Zero Redirects:** Enforces `maxBodyLength` even when `maxRedirects` is set to `0`, closing a bypass path for oversized request bodies. (**#10753**) - -- **Streamed Response `maxContentLength` Bypass:** Applies `maxContentLength` to streamed responses that previously bypassed the cap. (**#10754**) - -- **Follow-up CVE Completion:** Completes an earlier incomplete CVE fix to fully close the regression window. (**#10755**) - -## 🚀 New Features - -- **AI-Based Docs Translations:** Initial scaffold for AI-assisted translations of the documentation site. (**#10705**) - -- **`Location` Request Header Type:** Adds `Location` to `CommonRequestHeadersList` for accurate typing of redirect-aware requests. (**#7528**) - -## 🐛 Bug Fixes - -- **FormData Handling:** Removes `Content-Type` when no boundary is present on `FormData` fetch requests, supports multi-select fields, cancels `request.body` instead of the source stream on fetch abort, and fixes a recursion bug in form-data serialisation. (**#7314**, **#10676**, **#10702**, **#10726**) - -- **HTTP Adapter:** Handles socket-only request errors without leaking keep-alive listeners. (**#10576**) - -- **Progress Events:** Clamps `loaded` to `total` for computable upload/download progress events. (**#7458**) - -- **Types:** Aligns `runWhen` type with the runtime behaviour in `InterceptorManager` and makes response header keys case-insensitive. (**#7529**, **#10677**) - -- **`buildFullPath`:** Uses strict equality in the base/relative URL check. (**#7252**) - -- **`AxiosURLSearchParams` Regex:** Improves the regex used for param serialisation to avoid edge-case mismatches. (**#10736**) - -- **Resilient Value Parsing:** Parses out header/config values instead of throwing on malformed input. (**#10687**) - -- **Docs Artefact Cleanup:** Removes the docs content that was incorrectly committed. (**#10727**) - -## 🔧 Maintenance & Chores - -- **Threat Model & Security Docs:** Ongoing refinement of `THREATMODEL.md`, including Hopper security update, TLS and tag-replay wording, mitigation descriptions, decompression-bomb guidance, and further cleanup. (**#10672**, **#10715**, **#10718**, **#10722**, **#10763**, **#10765**) - -- **Test Coverage & Migration:** Expanded `shouldBypassProxy` coverage for wildcard/IPv6/edge cases, documented and tested `AxiosError.status`, and migrated `progressEventReducer` tests to Vitest. (**#10723**, **#10725**, **#10741**) - -- **Type Refactor:** Uses TypeScript utility types to deduplicate literal unions. (**#7520**) - -- **Repo & CI:** Adds `CODEOWNERS`, switches v1.x releases to an ephemeral release branch, and removes orphaned Bower support. (**#10739**, **#10738**, **#10746**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@curiouscoder-cmd** (**#7252**) -- **@tryonelove** (**#7520**) -- **@darwin808** (**#7314**) -- **@zoontek** (**#10702**) -- **@AKIB473** (**#10725**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.15.0...v1.15.1) - ---- - -## v1.15.0 - April 7, 2026 - -This release delivers two critical security patches targeting header injection and SSRF via proxy bypass, adds official runtime support for Deno and Bun, and includes significant CI security hardening. - -## 🔒 Security Fixes - -- **Header Injection (CRLF):** Rejects any header value containing `\r` or `\n` characters to block CRLF injection chains that could be used to exfiltrate cloud metadata (IMDS). Behavior change: headers with CR/LF now throw `"Invalid character in header content"`. (**#10660**) - -- **SSRF via `no_proxy` Bypass:** Introduces a `shouldBypassProxy` helper that normalises hostnames (strips trailing dots, handles bracketed IPv6) before evaluating `no_proxy`/`NO_PROXY` rules, closing a gap that could cause loopback or internal hosts to be inadvertently proxied. (**#10661**) - -## 🚀 New Features - -- **Deno & Bun Runtime Support:** Added full smoke test suites for Deno and Bun, with CI workflows that run both runtimes before any release is cut. (**#10652**) - -## 🐛 Bug Fixes - -- **Node.js v22 Compatibility:** Replaced deprecated `url.parse()` calls with the WHATWG `URL`/`URLSearchParams` API across examples, sandbox, and tests, eliminating `DEP0169` deprecation warnings on Node.js v22+. (**#10625**) - -## 🔧 Maintenance & Chores - -- **CI Security Hardening:** Added [zizmor](https://github.com/zizmorcore/zizmor) GitHub Actions security scanner; switched npm publish to OIDC Trusted Publishing (removing the long-lived `NODE_AUTH_TOKEN`); pinned all action references to full commit SHAs; narrowed workflow permissions to least privilege; gated the publish step behind a dedicated `npm-publish` environment; and blocked the sponsor-block workflow from running on forks. (**#10618**, **#10619**, **#10627**, **#10637**, **#10641**, **#10666**) - -- **Docs:** Clarified HTTP/2 support and the unsupported `httpVersion` option; added documentation for header case preservation; improved the `beforeRedirect` example to prevent accidental credential leakage. (**#10644**, **#10654**, **#10624**) - -- **Dependencies:** Bumped `picomatch`, `handlebars`, `serialize-javascript`, `vite` (×3), `denoland/setup-deno`, and 4 additional dev dependencies to latest versions. (**#10564**, **#10565**, **#10567**, **#10568**, **#10572**, **#10574**, **#10663**, **#10664**, **#10665**, **#10669**, **#10670**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@Kilros0817** (**#10625**) -- **@shaanmajid** (**#10616**, **#10617**, **#10618**, **#10619**, **#10637**, **#10641**, **#10666**) -- **@ashstrc** (**#10624**, **#10644**) -- **@Abhi3975** (**#10589**) -- **@raashish1601** (**#10573**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.14.0...v1.15.0) - ---- - -## v1.14.0 - March 27, 2026 - -This release fixes a security vulnerability in the `formidable` dependency, resolves a CommonJS compatibility regression, hardens proxy and HTTP/2 handling, and modernises the build and test toolchain. - -## 🔒 Security Fixes - -- **Formidable Vulnerability:** Upgraded `formidable` from v2 to v3 to address a reported arbitrary-file vulnerability. Updated test server and assertions to align with the v3 API. (**#7533**) - -## 🐛 Bug Fixes - -- **CommonJS Compatibility:** Restored `require('axios')` in Node.js by correcting the `main` field in `package.json` to point to the built CJS bundle. (**#7532**) - -- **Fetch Adapter:** Cancel the `ReadableStream` body after the request stream capability probe to prevent resource leaks. (**#7515**) - -- **Proxy:** Upgraded `proxy-from-env` to v2 and switched to the named `getProxyForUrl` export, fixing proxy detection from environment variables and resolving CJS bundling errors. (**#7499**) - -- **HTTP/2:** Close detached HTTP/2 sessions on timeout to free resources when no new requests arrive. (**#7457**) - -- **Headers:** Trim trailing CRLF characters from normalised header values. (**#7456**) - -## 🔧 Maintenance & Chores - -- **Toolchain Modernisation:** Migrated test suite to Vitest, updated ESLint to v10, upgraded Rollup and `@rollup/plugin-babel`, migrated to Husky 9, upgraded TypeScript to latest, and modernised the Express test harness. (**#7484**, **#7489**, **#7498**, **#7505**, **#7506**, **#7507**, **#7508**, **#7509**, **#7510**, **#7516**, **#7522**) - -- **Dependencies:** Bumped `multer` to v2, `minimatch`, `tar`, `pacote`, `@babel/preset-env`, and additional dev dependencies. (**#7453**, **#7480**, **#7491**, **#7504**, **#7517**, **#7531**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@penkzhou** (**#7515**) -- **@aviu16** (**#7456**) -- **@fedotov** (**#7457**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.13.6...v1.14.0) - ---- - -## v1.13.6 - February 27, 2026 - -This release adds React Native Blob support, fixes several enumeration and export regressions, and patches FormData detection for WeChat Mini Program environments. - -## 🚀 New Features - -- **React Native Blob Support:** Axios now correctly handles native Blob objects in React Native environments. (**#5764**) - -## 🐛 Bug Fixes - -- **AxiosError:** Fixed `AxiosError.from` not copying the `status` field from the source error. (**#7403**) - -- **AxiosError:** Made the `message` property enumerable so it appears in `JSON.stringify` output and `Object.keys`. (**#7392**) - -- **FormData Detection:** Corrected safe FormData detection for WeChat Mini Program environments. (**#7324**) - -- **React Native / Browserify Export:** Fixed broken module export that caused import failures in React Native and Browserify. (**#7386**) - -## 🔧 Maintenance & Chores - -- **Dependencies:** Migrated `@rollup/plugin-babel` from v5 to v6 and bumped the development dependencies group. (**#7424**, **#7432**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@moh3n9595** (**#5764**) -- **@skrtheboss** (**#7403**) -- **@ybbus** (**#7392**) -- **@Shiwaangee** (**#7324**) -- **@Gudahtt** (**#7386**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.13.5...v1.13.6) - ---- - -## v1.13.5 - February 8, 2026 - -This release patches a prototype pollution denial-of-service vulnerability, fixes a missing `status` field regression in `AxiosError`, adds interceptor ordering control, and introduces URL validation for `isAbsoluteURL`. - -## 🔒 Security Fixes - -- **Prototype Pollution (DoS):** Hardened `mergeConfig` to ignore `__proto__`, `constructor`, and `prototype` keys, preventing denial-of-service via prototype pollution when merging user-supplied config. (**#7369**) - -## 🚀 New Features - -- **`isAbsoluteURL` Validation:** Added input validation to `isAbsoluteURL` to handle malformed or unexpected input gracefully. (**#7326**) - -## 🐛 Bug Fixes - -- **AxiosError `status`:** Restored the `status` field on `AxiosError` instances, which was missing in v1.13.3 and later. (**#7368**) - -- **Interceptor Ordering:** Added a `useLegacyInterceptorOrder` option to restore pre-v1.13 interceptor execution order for applications relying on the previous behaviour. ([569f028](https://github.com/axios/axios/commit/569f028a5878faaec8d7d138ba686aac407bda4c)) - -## 🔧 Maintenance & Chores - -- **CI:** Fixed run conditions and updated workflow YAMLs. (**#7372**, **#7373**) - -- **Dependencies:** Bumped `karma-sourcemap-loader` and minor package versions. (**#7356**, **#7360**) - -## 🌟 New Contributors - -We are thrilled to welcome our new contributors. Thank you for helping improve axios: - -- **@asmitha-16** (**#7326**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.13.4...v1.13.5) - ---- - -## v1.13.4 - January 27, 2026 - -Patch release fixing regressions introduced in v1.13.3, including TypeScript export compatibility and CI/build stability. - -## 🐛 Bug Fixes - -- **v1.13.3 Regressions:** Fixed multiple issues introduced by the v1.13.3 release, including broken merge configs. (**#7352**) - -- **TypeScript Exports:** Corrected TypeScript export declarations to restore proper type resolution. (**#4884**) - -## 🔧 Maintenance & Chores - -- **CI & Build:** Refactored CI pipeline and build configuration for stability. (**#7340**) - -[Full Changelog](https://github.com/axios/axios/compare/v1.13.3...v1.13.4) - ---- - -## [1.13.3](https://github.com/axios/axios/compare/v1.13.2...v1.13.3) (2026-01-20) - -### Bug Fixes - -- **http2:** Use port 443 for HTTPS connections by default. ([#7256](https://github.com/axios/axios/issues/7256)) ([d7e6065](https://github.com/axios/axios/commit/d7e60653460480ffacecf85383012ca1baa6263e)) -- **interceptor:** handle the error in the same interceptor ([#6269](https://github.com/axios/axios/issues/6269)) ([5945e40](https://github.com/axios/axios/commit/5945e40bb171d4ac4fc195df276cf952244f0f89)) -- main field in package.json should correspond to cjs artifacts ([#5756](https://github.com/axios/axios/issues/5756)) ([7373fbf](https://github.com/axios/axios/commit/7373fbff24cd92ce650d99ff6f7fe08c2e2a0a04)) -- **package.json:** add 'bun' package.json 'exports' condition. Load the Node.js build in Bun instead of the browser build ([#5754](https://github.com/axios/axios/issues/5754)) ([b89217e](https://github.com/axios/axios/commit/b89217e3e91de17a3d55e2b8f39ceb0e9d8aeda8)) -- silentJSONParsing=false should throw on invalid JSON ([#7253](https://github.com/axios/axios/issues/7253)) ([#7257](https://github.com/axios/axios/issues/7257)) ([7d19335](https://github.com/axios/axios/commit/7d19335e43d6754a1a9a66e424f7f7da259895bf)) -- turn AxiosError into a native error ([#5394](https://github.com/axios/axios/issues/5394)) ([#5558](https://github.com/axios/axios/issues/5558)) ([1c6a86d](https://github.com/axios/axios/commit/1c6a86dd2c0623ee1af043a8491dbc96d40e883b)) -- **types:** add handlers to AxiosInterceptorManager interface ([#5551](https://github.com/axios/axios/issues/5551)) ([8d1271b](https://github.com/axios/axios/commit/8d1271b49fc226ed7defd07cd577bd69a55bb13a)) -- **types:** restore AxiosError.cause type from unknown to Error ([#7327](https://github.com/axios/axios/issues/7327)) ([d8233d9](https://github.com/axios/axios/commit/d8233d9e8e9a64bfba9bbe01d475ba417510b82b)) -- unclear error message is thrown when specifying an empty proxy authorization ([#6314](https://github.com/axios/axios/issues/6314)) ([6ef867e](https://github.com/axios/axios/commit/6ef867e684adf7fb2343e3b29a79078a3c76dc29)) - -### Features - -- add `undefined` as a value in AxiosRequestConfig ([#5560](https://github.com/axios/axios/issues/5560)) ([095033c](https://github.com/axios/axios/commit/095033c626895ecdcda2288050b63dcf948db3bd)) -- add automatic minor and patch upgrades to dependabot ([#6053](https://github.com/axios/axios/issues/6053)) ([65a7584](https://github.com/axios/axios/commit/65a7584eda6164980ddb8cf5372f0afa2a04c1ed)) -- add Node.js coverage script using c8 (closes [#7289](https://github.com/axios/axios/issues/7289)) ([#7294](https://github.com/axios/axios/issues/7294)) ([ec9d94e](https://github.com/axios/axios/commit/ec9d94e9f88da13e9219acadf65061fb38ce080a)) -- added copilot instructions ([3f83143](https://github.com/axios/axios/commit/3f83143bfe617eec17f9d7dcf8bafafeeae74c26)) -- compatibility with frozen prototypes ([#6265](https://github.com/axios/axios/issues/6265)) ([860e033](https://github.com/axios/axios/commit/860e03396a536e9b926dacb6570732489c9d7012)) -- enhance pipeFileToResponse with error handling ([#7169](https://github.com/axios/axios/issues/7169)) ([88d7884](https://github.com/axios/axios/commit/88d78842541610692a04282233933d078a8a2552)) -- **types:** Intellisense for string literals in a widened union ([#6134](https://github.com/axios/axios/issues/6134)) ([f73474d](https://github.com/axios/axios/commit/f73474d02c5aa957b2daeecee65508557fd3c6e5)), closes [/github.com/microsoft/TypeScript/issues/33471#issuecomment-1376364329](https://github.com//github.com/microsoft/TypeScript/issues/33471/issues/issuecomment-1376364329) - -### Reverts - -- Revert "fix: silentJSONParsing=false should throw on invalid JSON (#7253) (#7…" (#7298) ([a4230f5](https://github.com/axios/axios/commit/a4230f5581b3f58b6ff531b6dbac377a4fd7942a)), closes [#7253](https://github.com/axios/axios/issues/7253) [#7](https://github.com/axios/axios/issues/7) [#7298](https://github.com/axios/axios/issues/7298) -- **deps:** bump peter-evans/create-pull-request from 7 to 8 in the github-actions group ([#7334](https://github.com/axios/axios/issues/7334)) ([2d6ad5e](https://github.com/axios/axios/commit/2d6ad5e48bd29b0b2b5e7e95fb473df98301543a)) - -### Contributors to this release - -- avatar [Ashvin Tiwari](https://github.com/ashvin2005 '+1752/-4 (#7218 #7218 )') -- avatar [Nikunj Mochi](https://github.com/mochinikunj '+940/-12 (#7294 #7294 )') -- avatar [Anchal Singh](https://github.com/imanchalsingh '+544/-102 (#7169 #7185 )') -- avatar [jasonsaayman](https://github.com/jasonsaayman '+317/-73 (#7334 #7298 )') -- avatar [Julian Dax](https://github.com/brodo '+99/-120 (#5558 )') -- avatar [Akash Dhar Dubey](https://github.com/AKASHDHARDUBEY '+167/-0 (#7287 #7288 )') -- avatar [Madhumita](https://github.com/madhumitaaa '+20/-68 (#7198 )') -- avatar [Tackoil](https://github.com/Tackoil '+80/-2 (#6269 )') -- avatar [Justin Dhillon](https://github.com/justindhillon '+41/-41 (#6324 #6315 )') -- avatar [Rudransh](https://github.com/Rudrxxx '+71/-2 (#7257 )') -- avatar [WuMingDao](https://github.com/WuMingDao '+36/-36 (#7215 )') -- avatar [codenomnom](https://github.com/codenomnom '+70/-0 (#7201 #7201 )') -- avatar [Nandan Acharya](https://github.com/Nandann018-ux '+60/-10 (#7272 )') -- avatar [Eric Dubé](https://github.com/KernelDeimos '+22/-40 (#7042 )') -- avatar [Tibor Pilz](https://github.com/tiborpilz '+40/-4 (#5551 )') -- avatar [Gabriel Quaresma](https://github.com/joaoGabriel55 '+31/-4 (#6314 )') -- avatar [Turadg Aleahmad](https://github.com/turadg '+23/-6 (#6265 )') -- avatar [JohnTitor](https://github.com/kiritosan '+14/-14 (#6155 )') -- avatar [rohit miryala](https://github.com/rohitmiryala '+22/-0 (#7250 )') -- avatar [Wilson Mun](https://github.com/wmundev '+20/-0 (#6053 )') -- avatar [techcodie](https://github.com/techcodie '+7/-7 (#7236 )') -- avatar [Ved Vadnere](https://github.com/Archis009 '+5/-6 (#7283 )') -- avatar [svihpinc](https://github.com/svihpinc '+5/-3 (#6134 )') -- avatar [SANDESH LENDVE](https://github.com/mrsandy1965 '+3/-3 (#7246 )') -- avatar [Lubos](https://github.com/mrlubos '+5/-1 (#7312 )') -- avatar [Jarred Sumner](https://github.com/Jarred-Sumner '+5/-1 (#5754 )') -- avatar [Adam Hines](https://github.com/thebanjomatic '+2/-1 (#5756 )') -- avatar [Subhan Kumar Rai](https://github.com/Subhan030 '+2/-1 (#7256 )') -- avatar [Joseph Frazier](https://github.com/josephfrazier '+1/-1 (#7311 )') -- avatar [KT0803](https://github.com/KT0803 '+0/-2 (#7229 )') -- avatar [Albie](https://github.com/AlbertoSadoc '+1/-1 (#5560 )') -- avatar [Jake Hayes](https://github.com/thejayhaykid '+1/-0 (#5999 )') - -## [1.13.2](https://github.com/axios/axios/compare/v1.13.1...v1.13.2) (2025-11-04) - -### Bug Fixes - -- **http:** fix 'socket hang up' bug for keep-alive requests when using timeouts; ([#7206](https://github.com/axios/axios/issues/7206)) ([8d37233](https://github.com/axios/axios/commit/8d372335f5c50ecd01e8615f2468a9eb19703117)) -- **http:** use default export for http2 module to support stubs; ([#7196](https://github.com/axios/axios/issues/7196)) ([0588880](https://github.com/axios/axios/commit/0588880ac7ddba7594ef179930493884b7e90bf5)) - -### Performance Improvements - -- **http:** fix early loop exit; ([#7202](https://github.com/axios/axios/issues/7202)) ([12c314b](https://github.com/axios/axios/commit/12c314b603e7852a157e93e47edb626a471ba6c5)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+28/-9 (#7206 #7202 )') -- avatar [Kasper Isager Dalsgarð](https://github.com/kasperisager '+9/-9 (#7196 )') - -## [1.13.1](https://github.com/axios/axios/compare/v1.13.0...v1.13.1) (2025-10-28) - -### Bug Fixes - -- **http:** fixed a regression that caused the data stream to be interrupted for responses with non-OK HTTP statuses; ([#7193](https://github.com/axios/axios/issues/7193)) ([bcd5581](https://github.com/axios/axios/commit/bcd5581d208cd372055afdcb2fd10b68ca40613c)) - -### Contributors to this release - -- avatar [Anchal Singh](https://github.com/imanchalsingh '+220/-111 (#7173 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+18/-1 (#7193 )') - -# [1.13.0](https://github.com/axios/axios/compare/v1.12.2...v1.13.0) (2025-10-27) - -### Bug Fixes - -- **fetch:** prevent TypeError when config.env is undefined ([#7155](https://github.com/axios/axios/issues/7155)) ([015faec](https://github.com/axios/axios/commit/015faeca9f26db76f9562760f04bb9f8229f4db1)) -- resolve issue [#7131](https://github.com/axios/axios/issues/7131) (added spacing in mergeConfig.js) ([#7133](https://github.com/axios/axios/issues/7133)) ([9b9ec98](https://github.com/axios/axios/commit/9b9ec98548d93e9f2204deea10a5f1528bf3ce62)) - -### Features - -- **http:** add HTTP2 support; ([#7150](https://github.com/axios/axios/issues/7150)) ([d676df7](https://github.com/axios/axios/commit/d676df772244726533ca320f42e967f5af056bac)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+794/-180 (#7186 #7150 #7039 )') -- avatar [Noritaka Kobayashi](https://github.com/noritaka1166 '+24/-509 (#7032 )') -- avatar [Aviraj2929](https://github.com/Aviraj2929 '+211/-93 (#7136 #7135 #7134 #7112 )') -- avatar [prasoon patel](https://github.com/Prasoon52 '+167/-6 (#7099 )') -- avatar [Samyak Dandge](https://github.com/Samy-in '+134/-0 (#7171 )') -- avatar [Anchal Singh](https://github.com/imanchalsingh '+53/-56 (#7170 )') -- avatar [Rahul Kumar](https://github.com/jaiyankargupta '+28/-28 (#7073 )') -- avatar [Amit Verma](https://github.com/Amitverma0509 '+24/-13 (#7129 )') -- avatar [Abhishek3880](https://github.com/abhishekmaniy '+23/-4 (#7119 #7117 #7116 #7115 )') -- avatar [Dhvani Maktuporia](https://github.com/Dhvani365 '+14/-5 (#7175 )') -- avatar [Usama Ayoub](https://github.com/sam3690 '+4/-4 (#7133 )') -- avatar [ikuy1203](https://github.com/ikuy1203 '+3/-3 (#7166 )') -- avatar [Nikhil Simon Toppo](https://github.com/Kirito-Excalibur '+1/-1 (#7172 )') -- avatar [Jane Wangari](https://github.com/Wangarijane '+1/-1 (#7155 )') -- avatar [Supakorn Ieamgomol](https://github.com/Supakornn '+1/-1 (#7065 )') -- avatar [Kian-Meng Ang](https://github.com/kianmeng '+1/-1 (#7046 )') -- avatar [UTSUMI Keiji](https://github.com/k-utsumi '+1/-1 (#7037 )') - -## [1.12.2](https://github.com/axios/axios/compare/v1.12.1...v1.12.2) (2025-09-14) - -### Bug Fixes - -- **fetch:** use current global fetch instead of cached one when env fetch is not specified to keep MSW support; ([#7030](https://github.com/axios/axios/issues/7030)) ([cf78825](https://github.com/axios/axios/commit/cf78825e1229b60d1629ad0bbc8a752ff43c3f53)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+247/-16 (#7030 #7022 #7024 )') -- avatar [Noritaka Kobayashi](https://github.com/noritaka1166 '+2/-6 (#7028 #7029 )') - -## [1.12.1](https://github.com/axios/axios/compare/v1.12.0...v1.12.1) (2025-09-12) - -### Bug Fixes - -- **types:** fixed env config types; ([#7020](https://github.com/axios/axios/issues/7020)) ([b5f26b7](https://github.com/axios/axios/commit/b5f26b75bdd9afa95016fb67d0cab15fc74cbf05)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+10/-4 (#7020 )') - -# [1.12.0](https://github.com/axios/axios/compare/v1.11.0...v1.12.0) (2025-09-11) - -### Bug Fixes - -- adding build artifacts ([9ec86de](https://github.com/axios/axios/commit/9ec86de257bfa33856571036279169f385ed92bd)) -- dont add dist on release ([a2edc36](https://github.com/axios/axios/commit/a2edc3606a4f775d868a67bb3461ff18ce7ecd11)) -- **fetch-adapter:** set correct Content-Type for Node FormData ([#6998](https://github.com/axios/axios/issues/6998)) ([a9f47af](https://github.com/axios/axios/commit/a9f47afbf3224d2ca987dbd8188789c7ea853c5d)) -- **node:** enforce maxContentLength for data: URLs ([#7011](https://github.com/axios/axios/issues/7011)) ([945435f](https://github.com/axios/axios/commit/945435fc51467303768202250debb8d4ae892593)) -- package exports ([#5627](https://github.com/axios/axios/issues/5627)) ([aa78ac2](https://github.com/axios/axios/commit/aa78ac23fc9036163308c0f6bd2bb885e7af3f36)) -- **params:** removing '[' and ']' from URL encode exclude characters ([#3316](https://github.com/axios/axios/issues/3316)) ([#5715](https://github.com/axios/axios/issues/5715)) ([6d84189](https://github.com/axios/axios/commit/6d84189349c43b1dcdd977b522610660cc4c7042)) -- release pr run ([fd7f404](https://github.com/axios/axios/commit/fd7f404488b2c4f238c2fbe635b58026a634bfd2)) -- **types:** change the type guard on isCancel ([#5595](https://github.com/axios/axios/issues/5595)) ([0dbb7fd](https://github.com/axios/axios/commit/0dbb7fd4f61dc568498cd13a681fa7f907d6ec7e)) - -### Features - -- **adapter:** surface low‑level network error details; attach original error via cause ([#6982](https://github.com/axios/axios/issues/6982)) ([78b290c](https://github.com/axios/axios/commit/78b290c57c978ed2ab420b90d97350231c9e5d74)) -- **fetch:** add fetch, Request, Response env config variables for the adapter; ([#7003](https://github.com/axios/axios/issues/7003)) ([c959ff2](https://github.com/axios/axios/commit/c959ff29013a3bc90cde3ac7ea2d9a3f9c08974b)) -- support reviver on JSON.parse ([#5926](https://github.com/axios/axios/issues/5926)) ([2a97634](https://github.com/axios/axios/commit/2a9763426e43d996fd60d01afe63fa6e1f5b4fca)), closes [#5924](https://github.com/axios/axios/issues/5924) -- **types:** extend AxiosResponse interface to include custom headers type ([#6782](https://github.com/axios/axios/issues/6782)) ([7960d34](https://github.com/axios/axios/commit/7960d34eded2de66ffd30b4687f8da0e46c4903e)) - -### Contributors to this release - -- avatar [Willian Agostini](https://github.com/WillianAgostini '+132/-16760 (#7002 #5926 #6782 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+4263/-293 (#7006 #7003 )') -- avatar [khani](https://github.com/mkhani01 '+111/-15 (#6982 )') -- avatar [Ameer Assadi](https://github.com/AmeerAssadi '+123/-0 (#7011 )') -- avatar [Emiedonmokumo Dick-Boro](https://github.com/emiedonmokumo '+55/-35 (#6998 )') -- avatar [Zeroday BYTE](https://github.com/opsysdebug '+8/-8 (#6980 )') -- avatar [Jason Saayman](https://github.com/jasonsaayman '+7/-7 (#6985 #6985 )') -- avatar [최예찬](https://github.com/HealGaren '+5/-7 (#5715 )') -- avatar [Gligor Kotushevski](https://github.com/gligorkot '+3/-1 (#5627 )') -- avatar [Aleksandar Dimitrov](https://github.com/adimit '+2/-1 (#5595 )') - -# [1.11.0](https://github.com/axios/axios/compare/v1.10.0...v1.11.0) (2025-07-22) - -### Bug Fixes - -- form-data npm package ([#6970](https://github.com/axios/axios/issues/6970)) ([e72c193](https://github.com/axios/axios/commit/e72c193722530db538b19e5ddaaa4544d226b253)) -- prevent RangeError when using large Buffers ([#6961](https://github.com/axios/axios/issues/6961)) ([a2214ca](https://github.com/axios/axios/commit/a2214ca1bc60540baf2c80573cea3a0ff91ba9d1)) -- **types:** resolve type discrepancies between ESM and CJS TypeScript declaration files ([#6956](https://github.com/axios/axios/issues/6956)) ([8517aa1](https://github.com/axios/axios/commit/8517aa16f8d082fc1d5309c642220fa736159110)) - -### Contributors to this release - -- avatar [izzy goldman](https://github.com/izzygld '+186/-93 (#6970 )') -- avatar [Manish Sahani](https://github.com/manishsahanidev '+70/-0 (#6961 )') -- avatar [Noritaka Kobayashi](https://github.com/noritaka1166 '+12/-10 (#6938 #6939 )') -- avatar [James Nail](https://github.com/jrnail23 '+13/-2 (#6956 )') -- avatar [Tejaswi1305](https://github.com/Tejaswi1305 '+1/-1 (#6894 )') - -# [1.10.0](https://github.com/axios/axios/compare/v1.9.0...v1.10.0) (2025-06-14) - -### Bug Fixes - -- **adapter:** pass fetchOptions to fetch function ([#6883](https://github.com/axios/axios/issues/6883)) ([0f50af8](https://github.com/axios/axios/commit/0f50af8e076b7fb403844789bd5e812dedcaf4ed)) -- **form-data:** convert boolean values to strings in FormData serialization ([#6917](https://github.com/axios/axios/issues/6917)) ([5064b10](https://github.com/axios/axios/commit/5064b108de336ff34862650709761b8a96d26be0)) -- **package:** add module entry point for React Native; ([#6933](https://github.com/axios/axios/issues/6933)) ([3d343b8](https://github.com/axios/axios/commit/3d343b86dc4fd0eea0987059c5af04327c7ae304)) - -### Features - -- **types:** improved fetchOptions interface ([#6867](https://github.com/axios/axios/issues/6867)) ([63f1fce](https://github.com/axios/axios/commit/63f1fce233009f5db1abf2586c145825ac98c3d7)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+30/-19 (#6933 #6920 #6893 #6892 )') -- avatar [Noritaka Kobayashi](https://github.com/noritaka1166 '+2/-6 (#6922 #6923 )') -- avatar [Dimitrios Lazanas](https://github.com/dimitry-lzs '+4/-0 (#6917 )') -- avatar [Adrian Knapp](https://github.com/AdrianKnapp '+2/-2 (#6867 )') -- avatar [Howie Zhao](https://github.com/howiezhao '+3/-1 (#6872 )') -- avatar [Uhyeon Park](https://github.com/warpdev '+1/-1 (#6883 )') -- avatar [Sampo Silvennoinen](https://github.com/stscoundrel '+1/-1 (#6913 )') - -# [1.9.0](https://github.com/axios/axios/compare/v1.8.4...v1.9.0) (2025-04-24) - -### Bug Fixes - -- **core:** fix the Axios constructor implementation to treat the config argument as optional; ([#6881](https://github.com/axios/axios/issues/6881)) ([6c5d4cd](https://github.com/axios/axios/commit/6c5d4cd69286868059c5e52d45085cb9a894a983)) -- **fetch:** fixed ERR_NETWORK mapping for Safari browsers; ([#6767](https://github.com/axios/axios/issues/6767)) ([dfe8411](https://github.com/axios/axios/commit/dfe8411c9a082c3d068bdd1f8d6e73054f387f45)) -- **headers:** allow iterable objects to be a data source for the set method; ([#6873](https://github.com/axios/axios/issues/6873)) ([1b1f9cc](https://github.com/axios/axios/commit/1b1f9ccdc15f1ea745160ec9a5223de9db4673bc)) -- **headers:** fix `getSetCookie` by using 'get' method for caseless access; ([#6874](https://github.com/axios/axios/issues/6874)) ([d4f7df4](https://github.com/axios/axios/commit/d4f7df4b304af8b373488fdf8e830793ff843eb9)) -- **headers:** fixed support for setting multiple header values from an iterated source; ([#6885](https://github.com/axios/axios/issues/6885)) ([f7a3b5e](https://github.com/axios/axios/commit/f7a3b5e0f7e5e127b97defa92a132fbf1b55cf15)) -- **http:** send minimal end multipart boundary ([#6661](https://github.com/axios/axios/issues/6661)) ([987d2e2](https://github.com/axios/axios/commit/987d2e2dd3b362757550f36eab875e60640b6ddc)) -- **types:** fix autocomplete for adapter config ([#6855](https://github.com/axios/axios/issues/6855)) ([e61a893](https://github.com/axios/axios/commit/e61a8934d8f94dd429a2f309b48c67307c700df0)) - -### Features - -- **AxiosHeaders:** add getSetCookie method to retrieve set-cookie headers values ([#5707](https://github.com/axios/axios/issues/5707)) ([80ea756](https://github.com/axios/axios/commit/80ea756e72bcf53110fa792f5d7ab76e8b11c996)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+200/-34 (#6890 #6889 #6888 #6885 #6881 #6767 #6874 #6873 )') -- avatar [Jay](https://github.com/jasonsaayman '+26/-1 ()') -- avatar [Willian Agostini](https://github.com/WillianAgostini '+21/-0 (#5707 )') -- avatar [George Cheng](https://github.com/Gerhut '+3/-3 (#5096 )') -- avatar [FatahChan](https://github.com/FatahChan '+2/-2 (#6855 )') -- avatar [Ionuț G. Stan](https://github.com/igstan '+1/-1 (#6661 )') - -## [1.8.4](https://github.com/axios/axios/compare/v1.8.3...v1.8.4) (2025-03-19) - -### Bug Fixes - -- **buildFullPath:** handle `allowAbsoluteUrls: false` without `baseURL` ([#6833](https://github.com/axios/axios/issues/6833)) ([f10c2e0](https://github.com/axios/axios/commit/f10c2e0de7fde0051f848609a29c2906d0caa1d9)) - -### Contributors to this release - -- avatar [Marc Hassan](https://github.com/mhassan1 '+5/-1 (#6833 )') - -## [1.8.3](https://github.com/axios/axios/compare/v1.8.2...v1.8.3) (2025-03-10) - -### Bug Fixes - -- add missing type for allowAbsoluteUrls ([#6818](https://github.com/axios/axios/issues/6818)) ([10fa70e](https://github.com/axios/axios/commit/10fa70ef14fe39558b15a179f0e82f5f5e5d11b2)) -- **xhr/fetch:** pass `allowAbsoluteUrls` to `buildFullPath` in `xhr` and `fetch` adapters ([#6814](https://github.com/axios/axios/issues/6814)) ([ec159e5](https://github.com/axios/axios/commit/ec159e507bdf08c04ba1a10fe7710094e9e50ec9)) - -### Contributors to this release - -- avatar [Ashcon Partovi](https://github.com/Electroid '+6/-0 (#6811 )') -- avatar [StefanBRas](https://github.com/StefanBRas '+4/-0 (#6818 )') -- avatar [Marc Hassan](https://github.com/mhassan1 '+2/-2 (#6814 )') - -## [1.8.2](https://github.com/axios/axios/compare/v1.8.1...v1.8.2) (2025-03-07) - -### Bug Fixes - -- **http-adapter:** add allowAbsoluteUrls to path building ([#6810](https://github.com/axios/axios/issues/6810)) ([fb8eec2](https://github.com/axios/axios/commit/fb8eec214ce7744b5ca787f2c3b8339b2f54b00f)) - -### Contributors to this release - -- avatar [Fasoro-Joseph Alexander](https://github.com/lexcorp16 '+1/-1 (#6810 )') - -## [1.8.1](https://github.com/axios/axios/compare/v1.8.0...v1.8.1) (2025-02-26) - -### Bug Fixes - -- **utils:** move `generateString` to platform utils to avoid importing crypto module into client builds; ([#6789](https://github.com/axios/axios/issues/6789)) ([36a5a62](https://github.com/axios/axios/commit/36a5a620bec0b181451927f13ac85b9888b86cec)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+51/-47 (#6789 )') - -# [1.8.0](https://github.com/axios/axios/compare/v1.7.9...v1.8.0) (2025-02-25) - -### Bug Fixes - -- **examples:** application crashed when navigating examples in browser ([#5938](https://github.com/axios/axios/issues/5938)) ([1260ded](https://github.com/axios/axios/commit/1260ded634ec101dd5ed05d3b70f8e8f899dba6c)) -- missing word in SUPPORT_QUESTION.yml ([#6757](https://github.com/axios/axios/issues/6757)) ([1f890b1](https://github.com/axios/axios/commit/1f890b13f2c25a016f3c84ae78efb769f244133e)) -- **utils:** replace getRandomValues with crypto module ([#6788](https://github.com/axios/axios/issues/6788)) ([23a25af](https://github.com/axios/axios/commit/23a25af0688d1db2c396deb09229d2271cc24f6c)) - -### Features - -- Add config for ignoring absolute URLs ([#5902](https://github.com/axios/axios/issues/5902)) ([#6192](https://github.com/axios/axios/issues/6192)) ([32c7bcc](https://github.com/axios/axios/commit/32c7bcc0f233285ba27dec73a4b1e81fb7a219b3)) - -### Reverts - -- Revert "chore: expose fromDataToStream to be consumable (#6731)" (#6732) ([1317261](https://github.com/axios/axios/commit/1317261125e9c419fe9f126867f64d28f9c1efda)), closes [#6731](https://github.com/axios/axios/issues/6731) [#6732](https://github.com/axios/axios/issues/6732) - -### BREAKING CHANGES - -- code relying on the above will now combine the URLs instead of prefer request URL - -- feat: add config option for allowing absolute URLs - -- fix: add default value for allowAbsoluteUrls in buildFullPath - -- fix: typo in flow control when setting allowAbsoluteUrls - -### Contributors to this release - -- avatar [Michael Toscano](https://github.com/GethosTheWalrus '+42/-8 (#6192 )') -- avatar [Willian Agostini](https://github.com/WillianAgostini '+26/-3 (#6788 #6777 )') -- avatar [Naron](https://github.com/naronchen '+27/-0 (#5901 )') -- avatar [shravan || श्रvan](https://github.com/shravan20 '+7/-3 (#6116 )') -- avatar [Justin Dhillon](https://github.com/justindhillon '+0/-7 (#6312 )') -- avatar [yionr](https://github.com/yionr '+5/-1 (#6129 )') -- avatar [Shin'ya Ueoka](https://github.com/ueokande '+3/-3 (#5935 )') -- avatar [Dan Dascalescu](https://github.com/dandv '+3/-3 (#5908 #6757 )') -- avatar [Nitin Ramnani](https://github.com/NitinRamnani '+2/-2 (#5938 )') -- avatar [Shay Molcho](https://github.com/shaymolcho '+2/-2 (#6770 )') -- avatar [Jay](https://github.com/jasonsaayman '+0/-3 (#6732 )') -- fancy45daddy -- avatar [Habip Akyol](https://github.com/habipakyol '+1/-1 (#6030 )') -- avatar [Bailey Lissington](https://github.com/llamington '+1/-1 (#6771 )') -- avatar [Bernardo da Eira Duarte](https://github.com/bernardoduarte '+1/-1 (#6480 )') -- avatar [Shivam Batham](https://github.com/Shivam-Batham '+1/-1 (#5949 )') -- avatar [Lipin Kariappa](https://github.com/lipinnnnn '+1/-1 (#5936 )') - -## [1.7.9](https://github.com/axios/axios/compare/v1.7.8...v1.7.9) (2024-12-04) - -### Reverts - -- Revert "fix(types): export CJS types from ESM (#6218)" (#6729) ([c44d2f2](https://github.com/axios/axios/commit/c44d2f2316ad289b38997657248ba10de11deb6c)), closes [#6218](https://github.com/axios/axios/issues/6218) [#6729](https://github.com/axios/axios/issues/6729) - -### Contributors to this release - -- avatar [Jay](https://github.com/jasonsaayman '+596/-108 (#6729 )') - -## [1.7.8](https://github.com/axios/axios/compare/v1.7.7...v1.7.8) (2024-11-25) - -### Bug Fixes - -- allow passing a callback as paramsSerializer to buildURL ([#6680](https://github.com/axios/axios/issues/6680)) ([eac4619](https://github.com/axios/axios/commit/eac4619fe2e0926e876cd260ee21e3690381dbb5)) -- **core:** fixed config merging bug ([#6668](https://github.com/axios/axios/issues/6668)) ([5d99fe4](https://github.com/axios/axios/commit/5d99fe4491202a6268c71e5dcc09192359d73cea)) -- fixed width form to not shrink after 'Send Request' button is clicked ([#6644](https://github.com/axios/axios/issues/6644)) ([7ccd5fd](https://github.com/axios/axios/commit/7ccd5fd42402102d38712c32707bf055be72ab54)) -- **http:** add support for File objects as payload in http adapter ([#6588](https://github.com/axios/axios/issues/6588)) ([#6605](https://github.com/axios/axios/issues/6605)) ([6841d8d](https://github.com/axios/axios/commit/6841d8d18ddc71cc1bd202ffcfddb3f95622eef3)) -- **http:** fixed proxy-from-env module import ([#5222](https://github.com/axios/axios/issues/5222)) ([12b3295](https://github.com/axios/axios/commit/12b32957f1258aee94ef859809ed39f8f88f9dfa)) -- **http:** use `globalThis.TextEncoder` when available ([#6634](https://github.com/axios/axios/issues/6634)) ([df956d1](https://github.com/axios/axios/commit/df956d18febc9100a563298dfdf0f102c3d15410)) -- ios11 breaks when build ([#6608](https://github.com/axios/axios/issues/6608)) ([7638952](https://github.com/axios/axios/commit/763895270f7b50c7c780c3c9807ae8635de952cd)) -- **types:** add missing types for mergeConfig function ([#6590](https://github.com/axios/axios/issues/6590)) ([00de614](https://github.com/axios/axios/commit/00de614cd07b7149af335e202aef0e076c254f49)) -- **types:** export CJS types from ESM ([#6218](https://github.com/axios/axios/issues/6218)) ([c71811b](https://github.com/axios/axios/commit/c71811b00f2fcff558e4382ba913bdac4ad7200e)) -- updated stream aborted error message to be more clear ([#6615](https://github.com/axios/axios/issues/6615)) ([cc3217a](https://github.com/axios/axios/commit/cc3217a612024d83a663722a56d7a98d8759c6d5)) -- use URL API instead of DOM to fix a potential vulnerability warning; ([#6714](https://github.com/axios/axios/issues/6714)) ([0a8d6e1](https://github.com/axios/axios/commit/0a8d6e19da5b9899a2abafaaa06a75ee548597db)) - -### Contributors to this release - -- avatar [Remco Haszing](https://github.com/remcohaszing '+108/-596 (#6218 )') -- avatar [Jay](https://github.com/jasonsaayman '+281/-19 (#6640 #6619 )') -- avatar [Aayush Yadav](https://github.com/aayushyadav020 '+124/-111 (#6617 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+12/-65 (#6714 )') -- avatar [Ell Bradshaw](https://github.com/cincodenada '+29/-0 (#6489 )') -- avatar [Amit Saini](https://github.com/amitsainii '+13/-3 (#5237 )') -- avatar [Tommaso Paulon](https://github.com/guuido '+14/-1 (#6680 )') -- avatar [Akki](https://github.com/Aakash-Rana '+5/-5 (#6668 )') -- avatar [Sampo Silvennoinen](https://github.com/stscoundrel '+3/-3 (#6633 )') -- avatar [Kasper Isager Dalsgarð](https://github.com/kasperisager '+2/-2 (#6634 )') -- avatar [Christian Clauss](https://github.com/cclauss '+4/-0 (#6683 )') -- avatar [Pavan Welihinda](https://github.com/pavan168 '+2/-2 (#5222 )') -- avatar [Taylor Flatt](https://github.com/taylorflatt '+2/-2 (#6615 )') -- avatar [Kenzo Wada](https://github.com/Kenzo-Wada '+2/-2 (#6608 )') -- avatar [Ngole Lawson](https://github.com/echelonnought '+3/-0 (#6644 )') -- avatar [Haven](https://github.com/Baoyx007 '+3/-0 (#6590 )') -- avatar [Shrivali Dutt](https://github.com/shrivalidutt '+1/-1 (#6637 )') -- avatar [Henco Appel](https://github.com/hencoappel '+1/-1 (#6605 )') - -## [1.7.7](https://github.com/axios/axios/compare/v1.7.6...v1.7.7) (2024-08-31) - -### Bug Fixes - -- **fetch:** fix stream handling in Safari by fallback to using a stream reader instead of an async iterator; ([#6584](https://github.com/axios/axios/issues/6584)) ([d198085](https://github.com/axios/axios/commit/d1980854fee1765cd02fa0787adf5d6e34dd9dcf)) -- **http:** fixed support for IPv6 literal strings in url ([#5731](https://github.com/axios/axios/issues/5731)) ([364993f](https://github.com/axios/axios/commit/364993f0d8bc6e0e06f76b8a35d2d0a35cab054c)) - -### Contributors to this release - -- avatar [Rishi556](https://github.com/Rishi556 '+39/-1 (#5731 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+27/-7 (#6584 )') - -## [1.7.6](https://github.com/axios/axios/compare/v1.7.5...v1.7.6) (2024-08-30) - -### Bug Fixes - -- **fetch:** fix content length calculation for FormData payload; ([#6524](https://github.com/axios/axios/issues/6524)) ([085f568](https://github.com/axios/axios/commit/085f56861a83e9ac02c140ad9d68dac540dfeeaa)) -- **fetch:** optimize signals composing logic; ([#6582](https://github.com/axios/axios/issues/6582)) ([df9889b](https://github.com/axios/axios/commit/df9889b83c2cc37e9e6189675a73ab70c60f031f)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+98/-46 (#6582 )') -- avatar [Jacques Germishuys](https://github.com/jacquesg '+5/-1 (#6524 )') -- avatar [kuroino721](https://github.com/kuroino721 '+3/-1 (#6575 )') - -## [1.7.5](https://github.com/axios/axios/compare/v1.7.4...v1.7.5) (2024-08-23) - -### Bug Fixes - -- **adapter:** fix undefined reference to hasBrowserEnv ([#6572](https://github.com/axios/axios/issues/6572)) ([7004707](https://github.com/axios/axios/commit/7004707c4180b416341863bd86913fe4fc2f1df1)) -- **core:** add the missed implementation of AxiosError#status property; ([#6573](https://github.com/axios/axios/issues/6573)) ([6700a8a](https://github.com/axios/axios/commit/6700a8adac06942205f6a7a21421ecb36c4e0852)) -- **core:** fix `ReferenceError: navigator is not defined` for custom environments; ([#6567](https://github.com/axios/axios/issues/6567)) ([fed1a4b](https://github.com/axios/axios/commit/fed1a4b2d78ed4a588c84e09d32749ed01dc2794)) -- **fetch:** fix credentials handling in Cloudflare workers ([#6533](https://github.com/axios/axios/issues/6533)) ([550d885](https://github.com/axios/axios/commit/550d885eb90fd156add7b93bbdc54d30d2f9a98d)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+187/-83 (#6573 #6567 #6566 #6564 #6563 #6557 #6556 #6555 #6554 #6552 )') -- avatar [Antonin Bas](https://github.com/antoninbas '+6/-6 (#6572 )') -- avatar [Hans Otto Wirtz](https://github.com/hansottowirtz '+4/-1 (#6533 )') - -## [1.7.4](https://github.com/axios/axios/compare/v1.7.3...v1.7.4) (2024-08-13) - -### Bug Fixes - -- **sec:** CVE-2024-39338 ([#6539](https://github.com/axios/axios/issues/6539)) ([#6543](https://github.com/axios/axios/issues/6543)) ([6b6b605](https://github.com/axios/axios/commit/6b6b605eaf73852fb2dae033f1e786155959de3a)) -- **sec:** disregard protocol-relative URL to remediate SSRF ([#6539](https://github.com/axios/axios/issues/6539)) ([07a661a](https://github.com/axios/axios/commit/07a661a2a6b9092c4aa640dcc7f724ec5e65bdda)) - -### Contributors to this release - -- avatar [Lev Pachmanov](https://github.com/levpachmanov '+47/-11 (#6543 )') -- avatar [Đỗ Trọng Hải](https://github.com/hainenber '+49/-4 (#6539 )') - -## [1.7.3](https://github.com/axios/axios/compare/v1.7.2...v1.7.3) (2024-08-01) - -### Bug Fixes - -- **adapter:** fix progress event emitting; ([#6518](https://github.com/axios/axios/issues/6518)) ([e3c76fc](https://github.com/axios/axios/commit/e3c76fc9bdd03aa4d98afaf211df943e2031453f)) -- **fetch:** fix withCredentials request config ([#6505](https://github.com/axios/axios/issues/6505)) ([85d4d0e](https://github.com/axios/axios/commit/85d4d0ea0aae91082f04e303dec46510d1b4e787)) -- **xhr:** return original config on errors from XHR adapter ([#6515](https://github.com/axios/axios/issues/6515)) ([8966ee7](https://github.com/axios/axios/commit/8966ee7ea62ecbd6cfb39a905939bcdab5cf6388)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+211/-159 (#6518 #6519 )') -- avatar [Valerii Sidorenko](https://github.com/ValeraS '+3/-3 (#6515 )') -- avatar [prianYu](https://github.com/prianyu '+2/-2 (#6505 )') - -## [1.7.2](https://github.com/axios/axios/compare/v1.7.1...v1.7.2) (2024-05-21) - -### Bug Fixes - -- **fetch:** enhance fetch API detection; ([#6413](https://github.com/axios/axios/issues/6413)) ([4f79aef](https://github.com/axios/axios/commit/4f79aef81b7c4644328365bfc33acf0a9ef595bc)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+3/-3 (#6413 )') - -## [1.7.1](https://github.com/axios/axios/compare/v1.7.0...v1.7.1) (2024-05-20) - -### Bug Fixes - -- **fetch:** fixed ReferenceError issue when TextEncoder is not available in the environment; ([#6410](https://github.com/axios/axios/issues/6410)) ([733f15f](https://github.com/axios/axios/commit/733f15fe5bd2d67e1fadaee82e7913b70d45dc5e)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+14/-9 (#6410 )') - -# [1.7.0](https://github.com/axios/axios/compare/v1.7.0-beta.2...v1.7.0) (2024-05-19) - -### Features - -- **adapter:** add fetch adapter; ([#6371](https://github.com/axios/axios/issues/6371)) ([a3ff99b](https://github.com/axios/axios/commit/a3ff99b59d8ec2ab5dd049e68c043617a4072e42)) - -### Bug Fixes - -- **core/axios:** handle un-writable error stack ([#6362](https://github.com/axios/axios/issues/6362)) ([81e0455](https://github.com/axios/axios/commit/81e0455b7b57fbaf2be16a73ebe0e6591cc6d8f9)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+1015/-127 (#6371 )') -- avatar [Jay](https://github.com/jasonsaayman '+30/-14 ()') -- avatar [Alexandre ABRIOUX](https://github.com/alexandre-abrioux '+56/-6 (#6362 )') - -# [1.7.0-beta.2](https://github.com/axios/axios/compare/v1.7.0-beta.1...v1.7.0-beta.2) (2024-05-19) - -### Bug Fixes - -- **fetch:** capitalize HTTP method names; ([#6395](https://github.com/axios/axios/issues/6395)) ([ad3174a](https://github.com/axios/axios/commit/ad3174a3515c3c2573f4bcb94818d582826f3914)) -- **fetch:** fix & optimize progress capturing for cases when the request data has a nullish value or zero data length ([#6400](https://github.com/axios/axios/issues/6400)) ([95a3e8e](https://github.com/axios/axios/commit/95a3e8e346cfd6a5548e171f2341df3235d0e26b)) -- **fetch:** fix headers getting from a stream response; ([#6401](https://github.com/axios/axios/issues/6401)) ([870e0a7](https://github.com/axios/axios/commit/870e0a76f60d0094774a6a63fa606eec52a381af)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+99/-46 (#6405 #6404 #6401 #6400 #6395 )') - -# [1.7.0-beta.1](https://github.com/axios/axios/compare/v1.7.0-beta.0...v1.7.0-beta.1) (2024-05-07) - -### Bug Fixes - -- **core/axios:** handle un-writable error stack ([#6362](https://github.com/axios/axios/issues/6362)) ([81e0455](https://github.com/axios/axios/commit/81e0455b7b57fbaf2be16a73ebe0e6591cc6d8f9)) -- **fetch:** fix cases when ReadableStream or Response.body are not available; ([#6377](https://github.com/axios/axios/issues/6377)) ([d1d359d](https://github.com/axios/axios/commit/d1d359da347704e8b28d768e61515a3e96c5b072)) -- **fetch:** treat fetch-related TypeError as an AxiosError.ERR_NETWORK error; ([#6380](https://github.com/axios/axios/issues/6380)) ([bb5f9a5](https://github.com/axios/axios/commit/bb5f9a5ab768452de9e166dc28d0ffc234245ef1)) - -### Contributors to this release - -- avatar [Alexandre ABRIOUX](https://github.com/alexandre-abrioux '+56/-6 (#6362 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+42/-17 (#6380 #6377 )') - -# [1.7.0-beta.0](https://github.com/axios/axios/compare/v1.6.8...v1.7.0-beta.0) (2024-04-28) - -### Features - -- **adapter:** add fetch adapter; ([#6371](https://github.com/axios/axios/issues/6371)) ([a3ff99b](https://github.com/axios/axios/commit/a3ff99b59d8ec2ab5dd049e68c043617a4072e42)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+1015/-127 (#6371 )') -- avatar [Jay](https://github.com/jasonsaayman '+30/-14 ()') - -## [1.6.8](https://github.com/axios/axios/compare/v1.6.7...v1.6.8) (2024-03-15) - -### Bug Fixes - -- **AxiosHeaders:** fix AxiosHeaders conversion to an object during config merging ([#6243](https://github.com/axios/axios/issues/6243)) ([2656612](https://github.com/axios/axios/commit/2656612bc10fe2757e9832b708ed773ab340b5cb)) -- **import:** use named export for EventEmitter; ([7320430](https://github.com/axios/axios/commit/7320430aef2e1ba2b89488a0eaf42681165498b1)) -- **vulnerability:** update follow-redirects to 1.15.6 ([#6300](https://github.com/axios/axios/issues/6300)) ([8786e0f](https://github.com/axios/axios/commit/8786e0ff55a8c68d4ca989801ad26df924042e27)) - -### Contributors to this release - -- avatar [Jay](https://github.com/jasonsaayman '+4572/-3446 (#6238 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+30/-0 (#6231 )') -- avatar [Mitchell](https://github.com/Creaous '+9/-9 (#6300 )') -- avatar [Emmanuel](https://github.com/mannoeu '+2/-2 (#6196 )') -- avatar [Lucas Keller](https://github.com/ljkeller '+3/-0 (#6194 )') -- avatar [Aditya Mogili](https://github.com/ADITYA-176 '+1/-1 ()') -- avatar [Miroslav Petrov](https://github.com/petrovmiroslav '+1/-1 (#6243 )') - -## [1.6.7](https://github.com/axios/axios/compare/v1.6.6...v1.6.7) (2024-01-25) - -### Bug Fixes - -- capture async stack only for rejections with native error objects; ([#6203](https://github.com/axios/axios/issues/6203)) ([1a08f90](https://github.com/axios/axios/commit/1a08f90f402336e4d00e9ee82f211c6adb1640b0)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+30/-26 (#6203 )') -- avatar [zhoulixiang](https://github.com/zh-lx '+0/-3 (#6186 )') - -## [1.6.6](https://github.com/axios/axios/compare/v1.6.5...v1.6.6) (2024-01-24) - -### Bug Fixes - -- fixed missed dispatchBeforeRedirect argument ([#5778](https://github.com/axios/axios/issues/5778)) ([a1938ff](https://github.com/axios/axios/commit/a1938ff073fcb0f89011f001dfbc1fa1dc995e39)) -- wrap errors to improve async stack trace ([#5987](https://github.com/axios/axios/issues/5987)) ([123f354](https://github.com/axios/axios/commit/123f354b920f154a209ea99f76b7b2ef3d9ebbab)) - -### Contributors to this release - -- avatar [Ilya Priven](https://github.com/ikonst '+91/-8 (#5987 )') -- avatar [Zao Soula](https://github.com/zaosoula '+6/-6 (#5778 )') - -## [1.6.5](https://github.com/axios/axios/compare/v1.6.4...v1.6.5) (2024-01-05) - -### Bug Fixes - -- **ci:** refactor notify action as a job of publish action; ([#6176](https://github.com/axios/axios/issues/6176)) ([0736f95](https://github.com/axios/axios/commit/0736f95ce8776366dc9ca569f49ba505feb6373c)) -- **dns:** fixed lookup error handling; ([#6175](https://github.com/axios/axios/issues/6175)) ([f4f2b03](https://github.com/axios/axios/commit/f4f2b039dd38eb4829e8583caede4ed6d2dd59be)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+41/-6 (#6176 #6175 )') -- avatar [Jay](https://github.com/jasonsaayman '+6/-1 ()') - -## [1.6.4](https://github.com/axios/axios/compare/v1.6.3...v1.6.4) (2024-01-03) - -### Bug Fixes - -- **security:** fixed formToJSON prototype pollution vulnerability; ([#6167](https://github.com/axios/axios/issues/6167)) ([3c0c11c](https://github.com/axios/axios/commit/3c0c11cade045c4412c242b5727308cff9897a0e)) -- **security:** fixed security vulnerability in follow-redirects ([#6163](https://github.com/axios/axios/issues/6163)) ([75af1cd](https://github.com/axios/axios/commit/75af1cdff5b3a6ca3766d3d3afbc3115bb0811b8)) - -### Contributors to this release - -- avatar [Jay](https://github.com/jasonsaayman '+34/-6 ()') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+34/-3 (#6172 #6167 )') -- avatar [Guy Nesher](https://github.com/gnesher '+10/-10 (#6163 )') - -## [1.6.3](https://github.com/axios/axios/compare/v1.6.2...v1.6.3) (2023-12-26) - -### Bug Fixes - -- Regular Expression Denial of Service (ReDoS) ([#6132](https://github.com/axios/axios/issues/6132)) ([5e7ad38](https://github.com/axios/axios/commit/5e7ad38fb0f819fceb19fb2ee5d5d38f56aa837d)) - -### Contributors to this release - -- avatar [Jay](https://github.com/jasonsaayman '+15/-6 (#6145 )') -- avatar [Willian Agostini](https://github.com/WillianAgostini '+17/-2 (#6132 )') -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+3/-0 (#6084 )') - -## [1.6.2](https://github.com/axios/axios/compare/v1.6.1...v1.6.2) (2023-11-14) - -### Features - -- **withXSRFToken:** added withXSRFToken option as a workaround to achieve the old `withCredentials` behavior; ([#6046](https://github.com/axios/axios/issues/6046)) ([cff9967](https://github.com/axios/axios/commit/cff996779b272a5e94c2b52f5503ccf668bc42dc)) - -### PRs - -- feat(withXSRFToken): added withXSRFToken option as a workaround to achieve the old `withCredentials` behavior; ( [#6046](https://api.github.com/repos/axios/axios/pulls/6046) ) - -``` - -📢 This PR added 'withXSRFToken' option as a replacement for old withCredentials behaviour. -You should now use withXSRFToken along with withCredential to get the old behavior. -This functionality is considered as a fix. -``` - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+271/-146 (#6081 #6080 #6079 #6078 #6046 #6064 #6063 )') -- avatar [Ng Choon Khon (CK)](https://github.com/ckng0221 '+4/-4 (#6073 )') -- avatar [Muhammad Noman](https://github.com/mnomanmemon '+2/-2 (#6048 )') - -## [1.6.1](https://github.com/axios/axios/compare/v1.6.0...v1.6.1) (2023-11-08) - -### Bug Fixes - -- **formdata:** fixed content-type header normalization for non-standard browser environments; ([#6056](https://github.com/axios/axios/issues/6056)) ([dd465ab](https://github.com/axios/axios/commit/dd465ab22bbfa262c6567be6574bf46a057d5288)) -- **platform:** fixed emulated browser detection in node.js environment; ([#6055](https://github.com/axios/axios/issues/6055)) ([3dc8369](https://github.com/axios/axios/commit/3dc8369e505e32a4e12c22f154c55fd63ac67fbb)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+432/-65 (#6059 #6056 #6055 )') -- avatar [Fabian Meyer](https://github.com/meyfa '+5/-2 (#5835 )') - -### PRs - -- feat(withXSRFToken): added withXSRFToken option as a workaround to achieve the old `withCredentials` behavior; ( [#6046](https://api.github.com/repos/axios/axios/pulls/6046) ) - -``` - -📢 This PR added 'withXSRFToken' option as a replacement for old withCredentials behaviour. -You should now use withXSRFToken along with withCredential to get the old behavior. -This functionality is considered as a fix. -``` - -# [1.6.0](https://github.com/axios/axios/compare/v1.5.1...v1.6.0) (2023-10-26) - -### Bug Fixes - -- **CSRF:** fixed CSRF vulnerability CVE-2023-45857 ([#6028](https://github.com/axios/axios/issues/6028)) ([96ee232](https://github.com/axios/axios/commit/96ee232bd3ee4de2e657333d4d2191cd389e14d0)) -- **dns:** fixed lookup function decorator to work properly in node v20; ([#6011](https://github.com/axios/axios/issues/6011)) ([5aaff53](https://github.com/axios/axios/commit/5aaff532a6b820bb9ab6a8cd0f77131b47e2adb8)) -- **types:** fix AxiosHeaders types; ([#5931](https://github.com/axios/axios/issues/5931)) ([a1c8ad0](https://github.com/axios/axios/commit/a1c8ad008b3c13d53e135bbd0862587fb9d3fc09)) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+449/-114 (#6032 #6021 #6011 #5932 #5931 )') -- avatar [Valentin Panov](https://github.com/valentin-panov '+4/-4 (#6028 )') -- avatar [Rinku Chaudhari](https://github.com/therealrinku '+1/-1 (#5889 )') - -## [1.5.1](https://github.com/axios/axios/compare/v1.5.0...v1.5.1) (2023-09-26) - -### Bug Fixes - -- **adapters:** improved adapters loading logic to have clear error messages; ([#5919](https://github.com/axios/axios/issues/5919)) ([e410779](https://github.com/axios/axios/commit/e4107797a7a1376f6209fbecfbbce73d3faa7859)) -- **formdata:** fixed automatic addition of the `Content-Type` header for FormData in non-browser environments; ([#5917](https://github.com/axios/axios/issues/5917)) ([bc9af51](https://github.com/axios/axios/commit/bc9af51b1886d1b3529617702f2a21a6c0ed5d92)) -- **headers:** allow `content-encoding` header to handle case-insensitive values ([#5890](https://github.com/axios/axios/issues/5890)) ([#5892](https://github.com/axios/axios/issues/5892)) ([4c89f25](https://github.com/axios/axios/commit/4c89f25196525e90a6e75eda9cb31ae0a2e18acd)) -- **types:** removed duplicated code ([9e62056](https://github.com/axios/axios/commit/9e6205630e1c9cf863adf141c0edb9e6d8d4b149)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+89/-18 (#5919 #5917 )') -- avatar [David Dallas](https://github.com/DavidJDallas '+11/-5 ()') -- avatar [Sean Sattler](https://github.com/fb-sean '+2/-8 ()') -- avatar [Mustafa Ateş Uzun](https://github.com/0o001 '+4/-4 ()') -- avatar [Przemyslaw Motacki](https://github.com/sfc-gh-pmotacki '+2/-1 (#5892 )') -- avatar [Michael Di Prisco](https://github.com/Cadienvan '+1/-1 ()') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -# [1.5.0](https://github.com/axios/axios/compare/v1.4.0...v1.5.0) (2023-08-26) - -### Bug Fixes - -- **adapter:** make adapter loading error more clear by using platform-specific adapters explicitly ([#5837](https://github.com/axios/axios/issues/5837)) ([9a414bb](https://github.com/axios/axios/commit/9a414bb6c81796a95c6c7fe668637825458e8b6d)) -- **dns:** fixed `cacheable-lookup` integration; ([#5836](https://github.com/axios/axios/issues/5836)) ([b3e327d](https://github.com/axios/axios/commit/b3e327dcc9277bdce34c7ef57beedf644b00d628)) -- **headers:** added support for setting header names that overlap with class methods; ([#5831](https://github.com/axios/axios/issues/5831)) ([d8b4ca0](https://github.com/axios/axios/commit/d8b4ca0ea5f2f05efa4edfe1e7684593f9f68273)) -- **headers:** fixed common Content-Type header merging; ([#5832](https://github.com/axios/axios/issues/5832)) ([8fda276](https://github.com/axios/axios/commit/8fda2766b1e6bcb72c3fabc146223083ef13ce17)) - -### Features - -- export getAdapter function ([#5324](https://github.com/axios/axios/issues/5324)) ([ca73eb8](https://github.com/axios/axios/commit/ca73eb878df0ae2dace81fe3a7f1fb5986231bf1)) -- **export:** export adapters without `unsafe` prefix ([#5839](https://github.com/axios/axios/issues/5839)) ([1601f4a](https://github.com/axios/axios/commit/1601f4a27a81ab47fea228f1e244b2c4e3ce28bf)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+66/-29 (#5839 #5837 #5836 #5832 #5831 )') -- avatar [夜葬](https://github.com/geekact '+42/-0 (#5324 )') -- avatar [Jonathan Budiman](https://github.com/JBudiman00 '+30/-0 (#5788 )') -- avatar [Michael Di Prisco](https://github.com/Cadienvan '+3/-5 (#5791 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -# [1.4.0](https://github.com/axios/axios/compare/v1.3.6...v1.4.0) (2023-04-27) - -### Bug Fixes - -- **formdata:** add `multipart/form-data` content type for FormData payload on custom client environments; ([#5678](https://github.com/axios/axios/issues/5678)) ([bbb61e7](https://github.com/axios/axios/commit/bbb61e70cb1185adfb1cbbb86eaf6652c48d89d1)) -- **package:** export package internals with unsafe path prefix; ([#5677](https://github.com/axios/axios/issues/5677)) ([df38c94](https://github.com/axios/axios/commit/df38c949f26414d88ba29ec1e353c4d4f97eaf09)) - -### Features - -- **dns:** added support for a custom lookup function; ([#5339](https://github.com/axios/axios/issues/5339)) ([2701911](https://github.com/axios/axios/commit/2701911260a1faa5cc5e1afe437121b330a3b7bb)) -- **types:** export `AxiosHeaderValue` type. ([#5525](https://github.com/axios/axios/issues/5525)) ([726f1c8](https://github.com/axios/axios/commit/726f1c8e00cffa0461a8813a9bdcb8f8b9d762cf)) - -### Performance Improvements - -- **merge-config:** optimize mergeConfig performance by avoiding duplicate key visits; ([#5679](https://github.com/axios/axios/issues/5679)) ([e6f7053](https://github.com/axios/axios/commit/e6f7053bf1a3e87cf1f9da8677e12e3fe829d68e)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+151/-16 (#5684 #5339 #5679 #5678 #5677 )') -- avatar [Arthur Fiorette](https://github.com/arthurfiorette '+19/-19 (#5525 )') -- avatar [PIYUSH NEGI](https://github.com/npiyush97 '+2/-18 (#5670 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.6](https://github.com/axios/axios/compare/v1.3.5...v1.3.6) (2023-04-19) - -### Bug Fixes - -- **types:** added transport to RawAxiosRequestConfig ([#5445](https://github.com/axios/axios/issues/5445)) ([6f360a2](https://github.com/axios/axios/commit/6f360a2531d8d70363fd9becef6a45a323f170e2)) -- **utils:** make isFormData detection logic stricter to avoid unnecessary calling of the `toString` method on the target; ([#5661](https://github.com/axios/axios/issues/5661)) ([aa372f7](https://github.com/axios/axios/commit/aa372f7306295dfd1100c1c2c77ce95c95808e76)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+48/-10 (#5665 #5661 #5663 )') -- avatar [Michael Di Prisco](https://github.com/Cadienvan '+2/-0 (#5445 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.5](https://github.com/axios/axios/compare/v1.3.4...v1.3.5) (2023-04-05) - -### Bug Fixes - -- **headers:** fixed isValidHeaderName to support full list of allowed characters; ([#5584](https://github.com/axios/axios/issues/5584)) ([e7decef](https://github.com/axios/axios/commit/e7decef6a99f4627e27ed9ea5b00ce8e201c3841)) -- **params:** re-added the ability to set the function as `paramsSerializer` config; ([#5633](https://github.com/axios/axios/issues/5633)) ([a56c866](https://github.com/axios/axios/commit/a56c8661209d5ce5a645a05f294a0e08a6c1f6b3)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+28/-10 (#5633 #5584 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.4](https://github.com/axios/axios/compare/v1.3.3...v1.3.4) (2023-02-22) - -### Bug Fixes - -- **blob:** added a check to make sure the Blob class is available in the browser's global scope; ([#5548](https://github.com/axios/axios/issues/5548)) ([3772c8f](https://github.com/axios/axios/commit/3772c8fe74112a56e3e9551f894d899bc3a9443a)) -- **http:** fixed regression bug when handling synchronous errors inside the adapter; ([#5564](https://github.com/axios/axios/issues/5564)) ([a3b246c](https://github.com/axios/axios/commit/a3b246c9de5c3bc4b5a742e15add55b375479451)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+38/-26 (#5564 )') -- avatar [lcysgsg](https://github.com/lcysgsg '+4/-0 (#5548 )') -- avatar [Michael Di Prisco](https://github.com/Cadienvan '+3/-0 (#5444 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.3](https://github.com/axios/axios/compare/v1.3.2...v1.3.3) (2023-02-13) - -### Bug Fixes - -- **formdata:** added a check to make sure the FormData class is available in the browser's global scope; ([#5545](https://github.com/axios/axios/issues/5545)) ([a6dfa72](https://github.com/axios/axios/commit/a6dfa72010db5ad52db8bd13c0f98e537e8fd05d)) -- **formdata:** fixed setting NaN as Content-Length for form payload in some cases; ([#5535](https://github.com/axios/axios/issues/5535)) ([c19f7bf](https://github.com/axios/axios/commit/c19f7bf770f90ae8307f4ea3104f227056912da1)) -- **headers:** fixed the filtering logic of the clear method; ([#5542](https://github.com/axios/axios/issues/5542)) ([ea87ebf](https://github.com/axios/axios/commit/ea87ebfe6d1699af072b9e7cd40faf8f14b0ab93)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+11/-7 (#5545 #5535 #5542 )') -- avatar [陈若枫](https://github.com/ruofee '+2/-2 (#5467 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.2](https://github.com/axios/axios/compare/v1.3.1...v1.3.2) (2023-02-03) - -### Bug Fixes - -- **http:** treat http://localhost as base URL for relative paths to avoid `ERR_INVALID_URL` error; ([#5528](https://github.com/axios/axios/issues/5528)) ([128d56f](https://github.com/axios/axios/commit/128d56f4a0fb8f5f2ed6e0dd80bc9225fee9538c)) -- **http:** use explicit import instead of TextEncoder global; ([#5530](https://github.com/axios/axios/issues/5530)) ([6b3c305](https://github.com/axios/axios/commit/6b3c305fc40c56428e0afabedc6f4d29c2830f6f)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+2/-1 (#5530 #5528 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.3.1](https://github.com/axios/axios/compare/v1.3.0...v1.3.1) (2023-02-01) - -### Bug Fixes - -- **formdata:** add hotfix to use the asynchronous API to compute the content-length header value; ([#5521](https://github.com/axios/axios/issues/5521)) ([96d336f](https://github.com/axios/axios/commit/96d336f527619f21da012fe1f117eeb53e5a2120)) -- **serializer:** fixed serialization of array-like objects; ([#5518](https://github.com/axios/axios/issues/5518)) ([08104c0](https://github.com/axios/axios/commit/08104c028c0f9353897b1b6691d74c440fd0c32d)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+27/-8 (#5521 #5518 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -# [1.3.0](https://github.com/axios/axios/compare/v1.2.6...v1.3.0) (2023-01-31) - -### Bug Fixes - -- **headers:** fixed & optimized clear method; ([#5507](https://github.com/axios/axios/issues/5507)) ([9915635](https://github.com/axios/axios/commit/9915635c69d0ab70daca5738488421f67ca60959)) -- **http:** add zlib headers if missing ([#5497](https://github.com/axios/axios/issues/5497)) ([65e8d1e](https://github.com/axios/axios/commit/65e8d1e28ce829f47a837e45129730e541950d3c)) - -### Features - -- **fomdata:** added support for spec-compliant FormData & Blob types; ([#5316](https://github.com/axios/axios/issues/5316)) ([6ac574e](https://github.com/axios/axios/commit/6ac574e00a06731288347acea1e8246091196953)) - -### Contributors to this release - -- avatar [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+352/-67 (#5514 #5512 #5510 #5509 #5508 #5316 #5507 )') -- avatar [ItsNotGoodName](https://github.com/ItsNotGoodName '+43/-2 (#5497 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.6](https://github.com/axios/axios/compare/v1.2.5...v1.2.6) (2023-01-28) - -### Bug Fixes - -- **headers:** added missed Authorization accessor; ([#5502](https://github.com/axios/axios/issues/5502)) ([342c0ba](https://github.com/axios/axios/commit/342c0ba9a16ea50f5ed7d2366c5c1a2c877e3f26)) -- **types:** fixed `CommonRequestHeadersList` & `CommonResponseHeadersList` types to be private in commonJS; ([#5503](https://github.com/axios/axios/issues/5503)) ([5a3d0a3](https://github.com/axios/axios/commit/5a3d0a3234d77361a1bc7cedee2da1e11df08e2c)) - -### Contributors to this release - -- ![avatar](https://avatars.githubusercontent.com/u/12586868?v=4&s=16) [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+24/-9 (#5503 #5502 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.5](https://github.com/axios/axios/compare/v1.2.4...v1.2.5) (2023-01-26) - -### Bug Fixes - -- **types:** fixed AxiosHeaders to handle spread syntax by making all methods non-enumerable; ([#5499](https://github.com/axios/axios/issues/5499)) ([580f1e8](https://github.com/axios/axios/commit/580f1e8033a61baa38149d59fd16019de3932c22)) - -### Contributors to this release - -- ![avatar](https://avatars.githubusercontent.com/u/12586868?v=4&s=16) [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+82/-54 (#5499 )') -- ![avatar](https://avatars.githubusercontent.com/u/20516159?v=4&s=16) [Elliot Ford](https://github.com/EFord36 '+1/-1 (#5462 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.4](https://github.com/axios/axios/compare/v1.2.3...v1.2.4) (2023-01-22) - -### Bug Fixes - -- **types:** renamed `RawAxiosRequestConfig` back to `AxiosRequestConfig`; ([#5486](https://github.com/axios/axios/issues/5486)) ([2a71f49](https://github.com/axios/axios/commit/2a71f49bc6c68495fa419003a3107ed8bd703ad0)) -- **types:** fix `AxiosRequestConfig` generic; ([#5478](https://github.com/axios/axios/issues/5478)) ([9bce81b](https://github.com/axios/axios/commit/186ea062da8b7d578ae78b1a5c220986b9bce81b)) - -### Contributors to this release - -- ![avatar](https://avatars.githubusercontent.com/u/12586868?v=4&s=16) [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+242/-108 (#5486 #5482 )') -- ![avatar](https://avatars.githubusercontent.com/u/9430821?v=4&s=16) [Daniel Hillmann](https://github.com/hilleer '+1/-1 (#5478 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.3](https://github.com/axios/axios/compare/1.2.2...1.2.3) (2023-01-10) - -### Bug Fixes - -- **types:** fixed AxiosRequestConfig header interface by refactoring it to RawAxiosRequestConfig; ([#5420](https://github.com/axios/axios/issues/5420)) ([0811963](https://github.com/axios/axios/commit/08119634a22f1d5b19f5c9ea0adccb6d3eebc3bc)) - -### Contributors to this release - -- ![avatar](https://avatars.githubusercontent.com/u/12586868?v=4&s=16) [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS '+938/-442 (#5456 #5455 #5453 #5451 #5449 #5447 #5446 #5443 #5442 #5439 #5420 )') - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.2] - 2022-12-29 - -### Fixed - -- fix(ci): fix release script inputs [#5392](https://github.com/axios/axios/pull/5392) -- fix(ci): prerelease scipts [#5377](https://github.com/axios/axios/pull/5377) -- fix(ci): release scripts [#5376](https://github.com/axios/axios/pull/5376) -- fix(ci): typescript tests [#5375](https://github.com/axios/axios/pull/5375) -- fix: Brotli decompression [#5353](https://github.com/axios/axios/pull/5353) -- fix: add missing HttpStatusCode [#5345](https://github.com/axios/axios/pull/5345) - -### Chores - -- chore(ci): set conventional-changelog header config [#5406](https://github.com/axios/axios/pull/5406) -- chore(ci): fix automatic contributors resolving [#5403](https://github.com/axios/axios/pull/5403) -- chore(ci): improved logging for the contributors list generator [#5398](https://github.com/axios/axios/pull/5398) -- chore(ci): fix release action [#5397](https://github.com/axios/axios/pull/5397) -- chore(ci): fix version bump script by adding bump argument for target version [#5393](https://github.com/axios/axios/pull/5393) -- chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2 [#5342](https://github.com/axios/axios/pull/5342) -- chore(ci): GitHub Actions Release script [#5384](https://github.com/axios/axios/pull/5384) -- chore(ci): release scripts [#5364](https://github.com/axios/axios/pull/5364) - -### Contributors to this release - -- ![avatar](https://avatars.githubusercontent.com/u/12586868?v=4&s=16) [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- ![avatar](https://avatars.githubusercontent.com/u/1652293?v=4&s=16) [Winnie](https://github.com/winniehell) - -## [1.2.1] - 2022-12-05 - -### Changed - -- feat(exports): export mergeConfig [#5151](https://github.com/axios/axios/pull/5151) - -### Fixed - -- fix(CancelledError): include config [#4922](https://github.com/axios/axios/pull/4922) -- fix(general): removing multiple/trailing/leading whitespace [#5022](https://github.com/axios/axios/pull/5022) -- fix(headers): decompression for responses without Content-Length header [#5306](https://github.com/axios/axios/pull/5306) -- fix(webWorker): exception to sending form data in web worker [#5139](https://github.com/axios/axios/pull/5139) - -### Refactors - -- refactor(types): AxiosProgressEvent.event type to any [#5308](https://github.com/axios/axios/pull/5308) -- refactor(types): add missing types for static AxiosError.from method [#4956](https://github.com/axios/axios/pull/4956) - -### Chores - -- chore(docs): remove README link to non-existent upgrade guide [#5307](https://github.com/axios/axios/pull/5307) -- chore(docs): typo in issue template name [#5159](https://github.com/axios/axios/pull/5159) - -### Contributors to this release - -- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- [Zachary Lysobey](https://github.com/zachlysobey) -- [Kevin Ennis](https://github.com/kevincennis) -- [Philipp Loose](https://github.com/phloose) -- [secondl1ght](https://github.com/secondl1ght) -- [wenzheng](https://github.com/0x30) -- [Ivan Barsukov](https://github.com/ovarn) -- [Arthur Fiorette](https://github.com/arthurfiorette) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.2.0] - 2022-11-10 - -### Changed - -- changed: refactored module exports [#5162](https://github.com/axios/axios/pull/5162) -- change: re-added support for loading Axios with require('axios').default [#5225](https://github.com/axios/axios/pull/5225) - -### Fixed - -- fix: improve AxiosHeaders class [#5224](https://github.com/axios/axios/pull/5224) -- fix: TypeScript type definitions for commonjs [#5196](https://github.com/axios/axios/pull/5196) -- fix: type definition of use method on AxiosInterceptorManager to match the the README [#5071](https://github.com/axios/axios/pull/5071) -- fix: \_\_dirname is not defined in the sandbox [#5269](https://github.com/axios/axios/pull/5269) -- fix: AxiosError.toJSON method to avoid circular references [#5247](https://github.com/axios/axios/pull/5247) -- fix: Z_BUF_ERROR when content-encoding is set but the response body is empty [#5250](https://github.com/axios/axios/pull/5250) - -### Refactors - -- refactor: allowing adapters to be loaded by name [#5277](https://github.com/axios/axios/pull/5277) - -### Chores - -- chore: force CI restart [#5243](https://github.com/axios/axios/pull/5243) -- chore: update ECOSYSTEM.md [#5077](https://github.com/axios/axios/pull/5077) -- chore: update get/index.html [#5116](https://github.com/axios/axios/pull/5116) -- chore: update Sandbox UI/UX [#5205](https://github.com/axios/axios/pull/5205) -- chore:(actions): remove git credentials after checkout [#5235](https://github.com/axios/axios/pull/5235) -- chore(actions): bump actions/dependency-review-action from 2 to 3 [#5266](https://github.com/axios/axios/pull/5266) -- chore(packages): bump loader-utils from 1.4.1 to 1.4.2 [#5295](https://github.com/axios/axios/pull/5295) -- chore(packages): bump engine.io from 6.2.0 to 6.2.1 [#5294](https://github.com/axios/axios/pull/5294) -- chore(packages): bump socket.io-parser from 4.0.4 to 4.0.5 [#5241](https://github.com/axios/axios/pull/5241) -- chore(packages): bump loader-utils from 1.4.0 to 1.4.1 [#5245](https://github.com/axios/axios/pull/5245) -- chore(docs): update Resources links in README [#5119](https://github.com/axios/axios/pull/5119) -- chore(docs): update the link for JSON url [#5265](https://github.com/axios/axios/pull/5265) -- chore(docs): fix broken links [#5218](https://github.com/axios/axios/pull/5218) -- chore(docs): update and rename UPGRADE_GUIDE.md to MIGRATION_GUIDE.md [#5170](https://github.com/axios/axios/pull/5170) -- chore(docs): typo fix line #856 and #920 [#5194](https://github.com/axios/axios/pull/5194) -- chore(docs): typo fix #800 [#5193](https://github.com/axios/axios/pull/5193) -- chore(docs): fix typos [#5184](https://github.com/axios/axios/pull/5184) -- chore(docs): fix punctuation in README.md [#5197](https://github.com/axios/axios/pull/5197) -- chore(docs): update readme in the Handling Errors section - issue reference #5260 [#5261](https://github.com/axios/axios/pull/5261) -- chore: remove \b from filename [#5207](https://github.com/axios/axios/pull/5207) -- chore(docs): update CHANGELOG.md [#5137](https://github.com/axios/axios/pull/5137) -- chore: add sideEffects false to package.json [#5025](https://github.com/axios/axios/pull/5025) - -### Contributors to this release - -- [Maddy Miller](https://github.com/me4502) -- [Amit Saini](https://github.com/amitsainii) -- [ecyrbe](https://github.com/ecyrbe) -- [Ikko Ashimine](https://github.com/eltociear) -- [Geeth Gunnampalli](https://github.com/thetechie7) -- [Shreem Asati](https://github.com/shreem-123) -- [Frieder Bluemle](https://github.com/friederbluemle) -- [윤세영](https://github.com/yunseyeong) -- [Claudio Busatto](https://github.com/cjcbusatto) -- [Remco Haszing](https://github.com/remcohaszing) -- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- [Csaba Maulis](https://github.com/om4csaba) -- [MoPaMo](https://github.com/MoPaMo) -- [Daniel Fjeldstad](https://github.com/w3bdesign) -- [Adrien Brunet](https://github.com/adrien-may) -- [Frazer Smith](https://github.com/Fdawgs) -- [HaiTao](https://github.com/836334258) -- [AZM](https://github.com/aziyatali) -- [relbns](https://github.com/relbns) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.1.3] - 2022-10-15 - -### Added - -- Added custom params serializer support [#5113](https://github.com/axios/axios/pull/5113) - -### Fixed - -- Fixed top-level export to keep them in-line with static properties [#5109](https://github.com/axios/axios/pull/5109) -- Stopped including null values to query string. [#5108](https://github.com/axios/axios/pull/5108) -- Restored proxy config backwards compatibility with 0.x [#5097](https://github.com/axios/axios/pull/5097) -- Added back AxiosHeaders in AxiosHeaderValue [#5103](https://github.com/axios/axios/pull/5103) -- Pin CDN install instructions to a specific version [#5060](https://github.com/axios/axios/pull/5060) -- Handling of array values fixed for AxiosHeaders [#5085](https://github.com/axios/axios/pull/5085) - -### Chores - -- docs: match badge style, add link to them [#5046](https://github.com/axios/axios/pull/5046) -- chore: fixing comments typo [#5054](https://github.com/axios/axios/pull/5054) -- chore: update issue template [#5061](https://github.com/axios/axios/pull/5061) -- chore: added progress capturing section to the docs; [#5084](https://github.com/axios/axios/pull/5084) - -### Contributors to this release - -- [Jason Saayman](https://github.com/jasonsaayman) -- [scarf](https://github.com/scarf005) -- [Lenz Weber-Tronic](https://github.com/phryneas) -- [Arvindh](https://github.com/itsarvindh) -- [Félix Legrelle](https://github.com/FelixLgr) -- [Patrick Petrovic](https://github.com/ppati000) -- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- [littledian](https://github.com/littledian) -- [ChronosMasterOfAllTime](https://github.com/ChronosMasterOfAllTime) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.1.2] - 2022-10-07 - -### Fixed - -- Fixed broken exports for UMD builds. - -### Contributors to this release - -- [Jason Saayman](https://github.com/jasonsaayman) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.1.1] - 2022-10-07 - -### Fixed - -- Fixed broken exports for common js. This fix breaks a prior fix, I will fix both issues ASAP but the commonJS use is more impactful. - -### Contributors to this release - -- [Jason Saayman](https://github.com/jasonsaayman) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.1.0] - 2022-10-06 - -### Fixed - -- Fixed missing exports in type definition index.d.ts [#5003](https://github.com/axios/axios/pull/5003) -- Fixed query params composing [#5018](https://github.com/axios/axios/pull/5018) -- Fixed GenericAbortSignal interface by making it more generic [#5021](https://github.com/axios/axios/pull/5021) -- Fixed adding "clear" to AxiosInterceptorManager [#5010](https://github.com/axios/axios/pull/5010) -- Fixed commonjs & umd exports [#5030](https://github.com/axios/axios/pull/5030) -- Fixed inability to access response headers when using axios 1.x with Jest [#5036](https://github.com/axios/axios/pull/5036) - -### Contributors to this release - -- [Trim21](https://github.com/trim21) -- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- [shingo.sasaki](https://github.com/s-sasaki-0529) -- [Ivan Pepelko](https://github.com/ivanpepelko) -- [Richard Kořínek](https://github.com/risa) - -### PRs - -- CVE 2023 45857 ( [#6028](https://api.github.com/repos/axios/axios/pulls/6028) ) - -``` - -⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 -``` - -## [1.0.0] - 2022-10-04 - -### Added - -- Added stack trace to AxiosError [#4624](https://github.com/axios/axios/pull/4624) -- Add AxiosError to AxiosStatic [#4654](https://github.com/axios/axios/pull/4654) -- Replaced Rollup as our build runner [#4596](https://github.com/axios/axios/pull/4596) -- Added generic TS types for the exposed toFormData helper [#4668](https://github.com/axios/axios/pull/4668) -- Added listen callback function [#4096](https://github.com/axios/axios/pull/4096) -- Added instructions for installing using PNPM [#4207](https://github.com/axios/axios/pull/4207) -- Added generic AxiosAbortSignal TS interface to avoid importing AbortController polyfill [#4229](https://github.com/axios/axios/pull/4229) -- Added axios-url-template in ECOSYSTEM.md [#4238](https://github.com/axios/axios/pull/4238) -- Added a clear() function to the request and response interceptors object so a user can ensure that all interceptors have been removed from an axios instance [#4248](https://github.com/axios/axios/pull/4248) -- Added react hook plugin [#4319](https://github.com/axios/axios/pull/4319) -- Adding HTTP status code for transformResponse [#4580](https://github.com/axios/axios/pull/4580) -- Added blob to the list of protocols supported by the browser [#4678](https://github.com/axios/axios/pull/4678) -- Resolving proxy from env on redirect [#4436](https://github.com/axios/axios/pull/4436) -- Added enhanced toFormData implementation with additional options [4704](https://github.com/axios/axios/pull/4704) -- Adding Canceler parameters config and request [#4711](https://github.com/axios/axios/pull/4711) -- Added automatic payload serialization to application/x-www-form-urlencoded [#4714](https://github.com/axios/axios/pull/4714) -- Added the ability for webpack users to overwrite built-ins [#4715](https://github.com/axios/axios/pull/4715) -- Added string[] to AxiosRequestHeaders type [#4322](https://github.com/axios/axios/pull/4322) -- Added the ability for the url-encoded-form serializer to respect the formSerializer config [#4721](https://github.com/axios/axios/pull/4721) -- Added isCancel type assert [#4293](https://github.com/axios/axios/pull/4293) -- Added data URL support for node.js [#4725](https://github.com/axios/axios/pull/4725) -- Adding types for progress event callbacks [#4675](https://github.com/axios/axios/pull/4675) -- URL params serializer [#4734](https://github.com/axios/axios/pull/4734) -- Added axios.formToJSON method [#4735](https://github.com/axios/axios/pull/4735) -- Bower platform add data protocol [#4804](https://github.com/axios/axios/pull/4804) -- Use WHATWG URL API instead of url.parse() [#4852](https://github.com/axios/axios/pull/4852) -- Add ENUM containing Http Status Codes to typings [#4903](https://github.com/axios/axios/pull/4903) -- Improve typing of timeout in index.d.ts [#4934](https://github.com/axios/axios/pull/4934) - -### Changed - -- Updated AxiosError.config to be optional in the type definition [#4665](https://github.com/axios/axios/pull/4665) -- Updated README emphasizing the URLSearchParam built-in interface over other solutions [#4590](https://github.com/axios/axios/pull/4590) -- Include request and config when creating a CanceledError instance [#4659](https://github.com/axios/axios/pull/4659) -- Changed func-names eslint rule to as-needed [#4492](https://github.com/axios/axios/pull/4492) -- Replacing deprecated substr() with slice() as substr() is deprecated [#4468](https://github.com/axios/axios/pull/4468) -- Updating HTTP links in README.md to use HTTPS [#4387](https://github.com/axios/axios/pull/4387) -- Updated to a better trim() polyfill [#4072](https://github.com/axios/axios/pull/4072) -- Updated types to allow specifying partial default headers on instance create [#4185](https://github.com/axios/axios/pull/4185) -- Expanded isAxiosError types [#4344](https://github.com/axios/axios/pull/4344) -- Updated type definition for axios instance methods [#4224](https://github.com/axios/axios/pull/4224) -- Updated eslint config [#4722](https://github.com/axios/axios/pull/4722) -- Updated Docs [#4742](https://github.com/axios/axios/pull/4742) -- Refactored Axios to use ES2017 [#4787](https://github.com/axios/axios/pull/4787) - -### Deprecated - -- There are multiple deprecations, refactors and fixes provided in this release. Please read through the full release notes to see how this may impact your project and use case. - -### Removed - -- Removed incorrect argument for NetworkError constructor [#4656](https://github.com/axios/axios/pull/4656) -- Removed Webpack [#4596](https://github.com/axios/axios/pull/4596) -- Removed function that transform arguments to array [#4544](https://github.com/axios/axios/pull/4544) - -### Fixed - -- Fixed grammar in README [#4649](https://github.com/axios/axios/pull/4649) -- Fixed code error in README [#4599](https://github.com/axios/axios/pull/4599) -- Optimized the code that checks cancellation [#4587](https://github.com/axios/axios/pull/4587) -- Fix url pointing to defaults.js in README [#4532](https://github.com/axios/axios/pull/4532) -- Use type alias instead of interface for AxiosPromise [#4505](https://github.com/axios/axios/pull/4505) -- Fix some word spelling and lint style in code comments [#4500](https://github.com/axios/axios/pull/4500) -- Edited readme with 3 updated browser icons of Chrome, FireFox and Safari [#4414](https://github.com/axios/axios/pull/4414) -- Bump follow-redirects from 1.14.9 to 1.15.0 [#4673](https://github.com/axios/axios/pull/4673) -- Fixing http tests to avoid hanging when assertions fail [#4435](https://github.com/axios/axios/pull/4435) -- Fix TS definition for AxiosRequestTransformer [#4201](https://github.com/axios/axios/pull/4201) -- Fix grammatical issues in README [#4232](https://github.com/axios/axios/pull/4232) -- Fixing instance.defaults.headers type [#4557](https://github.com/axios/axios/pull/4557) -- Fixed race condition on immediate requests cancellation [#4261](https://github.com/axios/axios/pull/4261) -- Fixing Z_BUF_ERROR when no content [#4701](https://github.com/axios/axios/pull/4701) -- Fixing proxy beforeRedirect regression [#4708](https://github.com/axios/axios/pull/4708) -- Fixed AxiosError status code type [#4717](https://github.com/axios/axios/pull/4717) -- Fixed AxiosError stack capturing [#4718](https://github.com/axios/axios/pull/4718) -- Fixing AxiosRequestHeaders typings [#4334](https://github.com/axios/axios/pull/4334) -- Fixed max body length defaults [#4731](https://github.com/axios/axios/pull/4731) -- Fixed toFormData Blob issue on node>v17 [#4728](https://github.com/axios/axios/pull/4728) -- Bump grunt from 1.5.2 to 1.5.3 [#4743](https://github.com/axios/axios/pull/4743) -- Fixing content-type header repeated [#4745](https://github.com/axios/axios/pull/4745) -- Fixed timeout error message for http [4738](https://github.com/axios/axios/pull/4738) -- Request ignores false, 0 and empty string as body values [#4785](https://github.com/axios/axios/pull/4785) -- Added back missing minified builds [#4805](https://github.com/axios/axios/pull/4805) -- Fixed a type error [#4815](https://github.com/axios/axios/pull/4815) -- Fixed a regression bug with unsubscribing from cancel token; [#4819](https://github.com/axios/axios/pull/4819) -- Remove repeated compression algorithm [#4820](https://github.com/axios/axios/pull/4820) -- The error of calling extend to pass parameters [#4857](https://github.com/axios/axios/pull/4857) -- SerializerOptions.indexes allows boolean | null | undefined [#4862](https://github.com/axios/axios/pull/4862) -- Require interceptors to return values [#4874](https://github.com/axios/axios/pull/4874) -- Removed unused imports [#4949](https://github.com/axios/axios/pull/4949) -- Allow null indexes on formSerializer and paramsSerializer [#4960](https://github.com/axios/axios/pull/4960) - -### Chores - -- Set permissions for GitHub actions [#4765](https://github.com/axios/axios/pull/4765) -- Included githubactions in the dependabot config [#4770](https://github.com/axios/axios/pull/4770) -- Included dependency review [#4771](https://github.com/axios/axios/pull/4771) -- Update security.md [#4784](https://github.com/axios/axios/pull/4784) -- Remove unnecessary spaces [#4854](https://github.com/axios/axios/pull/4854) -- Simplify the import path of AxiosError [#4875](https://github.com/axios/axios/pull/4875) -- Fix Gitpod dead link [#4941](https://github.com/axios/axios/pull/4941) -- Enable syntax highlighting for a code block [#4970](https://github.com/axios/axios/pull/4970) -- Using Logo Axios in Readme.md [#4993](https://github.com/axios/axios/pull/4993) -- Fix markup for note in README [#4825](https://github.com/axios/axios/pull/4825) -- Fix typo and formatting, add colons [#4853](https://github.com/axios/axios/pull/4853) -- Fix typo in readme [#4942](https://github.com/axios/axios/pull/4942) - -### Security - -- Update SECURITY.md [#4687](https://github.com/axios/axios/pull/4687) - -### Contributors to this release - -- [Bertrand Marron](https://github.com/tusbar) -- [Dmitriy Mozgovoy](https://github.com/DigitalBrainJS) -- [Dan Mooney](https://github.com/danmooney) -- [Michael Li](https://github.com/xiaoyu-tamu) -- [aong](https://github.com/yxwzaxns) -- [Des Preston](https://github.com/despreston) -- [Ted Robertson](https://github.com/tredondo) -- [zhoulixiang](https://github.com/zh-lx) -- [Arthur Fiorette](https://github.com/arthurfiorette) -- [Kumar Shanu](https://github.com/Kr-Shanu) -- [JALAL](https://github.com/JLL32) -- [Jingyi Lin](https://github.com/MageeLin) -- [Philipp Loose](https://github.com/phloose) -- [Alexander Shchukin](https://github.com/sashsvamir) -- [Dave Cardwell](https://github.com/davecardwell) -- [Cat Scarlet](https://github.com/catscarlet) -- [Luca Pizzini](https://github.com/lpizzinidev) -- [Kai](https://github.com/Schweinepriester) -- [Maxime Bargiel](https://github.com/mbargiel) -- [Brian Helba](https://github.com/brianhelba) -- [reslear](https://github.com/reslear) -- [Jamie Slome](https://github.com/JamieSlome) -- [Landro3](https://github.com/Landro3) -- [rafw87](https://github.com/rafw87) -- [Afzal Sayed](https://github.com/afzalsayed96) -- [Koki Oyatsu](https://github.com/kaishuu0123) -- [Dave](https://github.com/wangcch) -- [暴走老七](https://github.com/baozouai) -- [Spencer](https://github.com/spalger) -- [Adrian Wieprzkowicz](https://github.com/Argeento) -- [Jamie Telin](https://github.com/lejahmie) -- [毛呆](https://github.com/aweikalee) -- [Kirill Shakirov](https://github.com/turisap) -- [Rraji Abdelbari](https://github.com/estarossa0) -- [Jelle Schutter](https://github.com/jelleschutter) -- [Tom Ceuppens](https://github.com/KyorCode) -- [Johann Cooper](https://github.com/JohannCooper) -- [Dimitris Halatsis](https://github.com/mitsos1os) -- [chenjigeng](https://github.com/chenjigeng) -- [João Gabriel Quaresma](https://github.com/joaoGabriel55) -- [Victor Augusto](https://github.com/VictorAugDB) -- [neilnaveen](https://github.com/neilnaveen) -- [Pavlos](https://github.com/psmoros) -- [Kiryl Valkovich](https://github.com/visortelle) -- [Naveen](https://github.com/naveensrinivasan) -- [wenzheng](https://github.com/0x30) -- [hcwhan](https://github.com/hcwhan) -- [Bassel Rachid](https://github.com/basselworkforce) -- [Grégoire Pineau](https://github.com/lyrixx) -- [felipedamin](https://github.com/felipedamin) -- [Karl Horky](https://github.com/karlhorky) -- [Yue JIN](https://github.com/kingyue737) -- [Usman Ali Siddiqui](https://github.com/usman250994) -- [WD](https://github.com/techbirds) -- [Günther Foidl](https://github.com/gfoidl) -- [Stephen Jennings](https://github.com/jennings) -- [C.T.Lin](https://github.com/chentsulin) -- [mia-z](https://github.com/mia-z) -- [Parth Banathia](https://github.com/Parth0105) -- [parth0105pluang](https://github.com/parth0105pluang) -- [Marco Weber](https://github.com/mrcwbr) -- [Luca Pizzini](https://github.com/lpizzinidev) -- [Willian Agostini](https://github.com/WillianAgostini) - -- [Huyen Nguyen](https://github.com/huyenltnguyen) diff --git a/node_modules/axios/LICENSE b/node_modules/axios/LICENSE deleted file mode 100644 index 05006a5..0000000 --- a/node_modules/axios/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2014-present Matt Zabriskie & Collaborators - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/axios/MIGRATION_GUIDE.md b/node_modules/axios/MIGRATION_GUIDE.md deleted file mode 100644 index 2e59d9d..0000000 --- a/node_modules/axios/MIGRATION_GUIDE.md +++ /dev/null @@ -1,877 +0,0 @@ -# Axios Migration Guide - -> **Migrating from Axios 0.x to 1.x** -> -> This guide helps developers upgrade from Axios 0.x to 1.x by documenting breaking changes, providing migration strategies, and offering solutions to common upgrade challenges. - -## Table of Contents - -- [Overview](#overview) -- [Breaking Changes](#breaking-changes) -- [Error Handling Migration](#error-handling-migration) -- [API Changes](#api-changes) -- [Configuration Changes](#configuration-changes) -- [Migration Strategies](#migration-strategies) -- [Common Patterns](#common-patterns) -- [Troubleshooting](#troubleshooting) -- [Resources](#resources) - -## Overview - -Axios 1.x introduced several breaking changes to improve consistency, security, and developer experience. While these changes provide better error handling and more predictable behavior, they require code updates when migrating from 0.x versions. - -### Key Changes Summary - -| Area | 0.x Behavior | 1.x Behavior | Impact | -|------|--------------|--------------|--------| -| Error Handling | Selective throwing | Consistent throwing | High | -| JSON Parsing | Lenient | Strict | Medium | -| Browser Support | IE11+ | Modern browsers | Low-Medium | -| TypeScript | Partial | Full support | Low | - -### Migration Complexity - -- **Simple applications**: 1-2 hours -- **Medium applications**: 1-2 days -- **Large applications with complex error handling**: 3-5 days - -## Breaking Changes - -### 1. Error Handling Changes - -**The most significant change in Axios 1.x is how errors are handled.** - -#### 0.x Behavior -```javascript -// Axios 0.x - Some HTTP error codes didn't throw -axios.get('/api/data') - .then(response => { - // Response interceptor could handle all errors - console.log('Success:', response.data); - }); - -// Response interceptor handled everything -axios.interceptors.response.use( - response => response, - error => { - handleError(error); - // Error was "handled" and didn't propagate - } -); -``` - -#### 1.x Behavior -```javascript -// Axios 1.x - All HTTP errors throw consistently -axios.get('/api/data') - .then(response => { - console.log('Success:', response.data); - }) - .catch(error => { - // Must handle errors at call site or they propagate - console.error('Request failed:', error); - }); - -// Response interceptor must re-throw or return rejected promise -axios.interceptors.response.use( - response => response, - error => { - handleError(error); - // Must explicitly handle propagation - return Promise.reject(error); // or throw error; - } -); -``` - -#### Impact -- **Response interceptors** can no longer "swallow" errors silently -- **Every API call** must handle errors explicitly or they become unhandled promise rejections -- **Centralized error handling** requires new patterns - -### 2. JSON Parsing Changes - -#### 0.x Behavior -```javascript -// Axios 0.x - Lenient JSON parsing -// Would attempt to parse even invalid JSON -response.data; // Might contain partial data or fallbacks -``` - -#### 1.x Behavior -```javascript -// Axios 1.x - Strict JSON parsing -// Throws clear errors for invalid JSON -try { - const data = response.data; -} catch (error) { - // Handle JSON parsing errors explicitly -} -``` - -### 3. Request/Response Transform Changes - -#### 0.x Behavior -```javascript -// Implicit transformations with some edge cases -transformRequest: [function (data) { - // Less predictable behavior - return data; -}] -``` - -#### 1.x Behavior -```javascript -// More consistent transformation pipeline -transformRequest: [function (data, headers) { - // Headers parameter always available - // More predictable behavior - return data; -}] -``` - -### 4. Browser Support Changes - -- **0.x**: Supported IE11 and older browsers -- **1.x**: Requires modern browsers with Promise support -- **Polyfills**: May be needed for older browser support - -## Error Handling Migration - -The error handling changes are the most complex part of migrating to Axios 1.x. Here are proven strategies: - -### Strategy 1: Centralized Error Handling with Error Boundary - -```javascript -// Create a centralized error handler -class ApiErrorHandler { - constructor() { - this.setupInterceptors(); - } - - setupInterceptors() { - axios.interceptors.response.use( - response => response, - error => { - // Centralized error processing - this.processError(error); - - // Return a resolved promise with error info for handled errors - if (this.isHandledError(error)) { - return Promise.resolve({ - data: null, - error: this.normalizeError(error), - handled: true - }); - } - - // Re-throw unhandled errors - return Promise.reject(error); - } - ); - } - - processError(error) { - // Log errors - console.error('API Error:', error); - - // Show user notifications - if (error.response?.status === 401) { - this.handleAuthError(); - } else if (error.response?.status >= 500) { - this.showErrorNotification('Server error occurred'); - } - } - - isHandledError(error) { - // Define which errors are "handled" centrally - const handledStatuses = [401, 403, 404, 422, 500, 502, 503]; - return handledStatuses.includes(error.response?.status); - } - - normalizeError(error) { - return { - status: error.response?.status, - message: error.response?.data?.message || error.message, - code: error.response?.data?.code || error.code - }; - } - - handleAuthError() { - // Redirect to login, clear tokens, etc. - localStorage.removeItem('token'); - window.location.href = '/login'; - } - - showErrorNotification(message) { - // Show user-friendly error message - console.error(message); // Replace with your notification system - } -} - -// Initialize globally -const errorHandler = new ApiErrorHandler(); - -// Usage in components/services -async function fetchUserData(userId) { - try { - const response = await axios.get(`/api/users/${userId}`); - - // Check if error was handled centrally - if (response.handled) { - return { data: null, error: response.error }; - } - - return { data: response.data, error: null }; - } catch (error) { - // Unhandled errors still need local handling - return { data: null, error: { message: 'Unexpected error occurred' } }; - } -} -``` - -### Strategy 2: Wrapper Function Pattern - -```javascript -// Create a wrapper that provides 0.x-like behavior -function createApiWrapper() { - const api = axios.create(); - - // Add response interceptor for centralized handling - api.interceptors.response.use( - response => response, - error => { - // Handle common errors centrally - if (error.response?.status === 401) { - // Handle auth errors - handleAuthError(); - } - - if (error.response?.status >= 500) { - // Handle server errors - showServerErrorNotification(); - } - - // Always reject to maintain error propagation - return Promise.reject(error); - } - ); - - // Wrapper function that mimics 0.x behavior - function safeRequest(requestConfig, options = {}) { - return api(requestConfig) - .then(response => response) - .catch(error => { - if (options.suppressErrors) { - // Return error info instead of throwing - return { - data: null, - error: { - status: error.response?.status, - message: error.response?.data?.message || error.message - } - }; - } - throw error; - }); - } - - return { safeRequest, axios: api }; -} - -// Usage -const { safeRequest } = createApiWrapper(); - -// For calls where you want centralized error handling -const result = await safeRequest( - { method: 'get', url: '/api/data' }, - { suppressErrors: true } -); - -if (result.error) { - // Handle error case - console.log('Request failed:', result.error.message); -} else { - // Handle success case - console.log('Data:', result.data); -} -``` - -### Strategy 3: Global Error Handler with Custom Events - -```javascript -// Set up global error handling with events -class GlobalErrorHandler extends EventTarget { - constructor() { - super(); - this.setupInterceptors(); - } - - setupInterceptors() { - axios.interceptors.response.use( - response => response, - error => { - // Emit custom event for global handling - this.dispatchEvent(new CustomEvent('apiError', { - detail: { error, timestamp: new Date() } - })); - - // Always reject to maintain proper error flow - return Promise.reject(error); - } - ); - } -} - -const globalErrorHandler = new GlobalErrorHandler(); - -// Set up global listeners -globalErrorHandler.addEventListener('apiError', (event) => { - const { error } = event.detail; - - // Centralized error logic - if (error.response?.status === 401) { - handleAuthError(); - } - - if (error.response?.status >= 500) { - showErrorNotification('Server error occurred'); - } -}); - -// Usage remains clean -async function apiCall() { - try { - const response = await axios.get('/api/data'); - return response.data; - } catch (error) { - // Error was already handled globally - // Just handle component-specific logic - return null; - } -} -``` - -## API Changes - -### Request Configuration - -#### 0.x to 1.x Changes -```javascript -// 0.x - Some properties had different defaults -const config = { - timeout: 0, // No timeout by default - maxContentLength: -1, // No limit -}; - -// 1.x - More secure defaults -const config = { - timeout: 0, // Still no timeout, but easier to configure - maxContentLength: 2000, // Default limit for security - maxBodyLength: 2000, // New property -}; -``` - -### Response Object - -The response object structure remains largely the same, but error responses are more consistent: - -```javascript -// Both 0.x and 1.x -response = { - data: {}, // Response body - status: 200, // HTTP status - statusText: 'OK', // HTTP status message - headers: {}, // Response headers - config: {}, // Request config - request: {} // Request object -}; - -// Error responses are more consistent in 1.x -error.response = { - data: {}, // Error response body - status: 404, // HTTP error status - statusText: 'Not Found', - headers: {}, - config: {}, - request: {} -}; -``` - -## Configuration Changes - -### Default Configuration Updates - -```javascript -// 0.x defaults -axios.defaults.timeout = 0; // No timeout -axios.defaults.maxContentLength = -1; // No limit - -// 1.x defaults (more secure) -axios.defaults.timeout = 0; // Still no timeout -axios.defaults.maxContentLength = 2000; // 2MB limit -axios.defaults.maxBodyLength = 2000; // 2MB limit -``` - -### Instance Configuration - -```javascript -// 0.x - Instance creation -const api = axios.create({ - baseURL: 'https://api.example.com', - timeout: 1000, -}); - -// 1.x - Same API, but more options available -const api = axios.create({ - baseURL: 'https://api.example.com', - timeout: 1000, - maxBodyLength: Infinity, // Override default if needed - maxContentLength: Infinity, -}); -``` - -## Migration Strategies - -### Step-by-Step Migration Process - -#### Phase 1: Preparation -1. **Audit Current Error Handling** - ```bash - # Find all axios usage - grep -r "axios\." src/ - grep -r "\.catch" src/ - grep -r "interceptors" src/ - ``` - -2. **Identify Patterns** - - Response interceptors that handle errors - - Components that rely on centralized error handling - - Authentication and retry logic - -3. **Create Test Cases** - ```javascript - // Test current error handling behavior - describe('Error Handling Migration', () => { - it('should handle 401 errors consistently', async () => { - // Test authentication error flows - }); - - it('should handle 500 errors with user feedback', async () => { - // Test server error handling - }); - }); - ``` - -#### Phase 2: Implementation -1. **Update Dependencies** - ```bash - npm update axios - ``` - -2. **Implement New Error Handling** - - Choose one of the strategies above - - Update response interceptors - - Add error handling to API calls - -3. **Update Authentication Logic** - ```javascript - // 0.x pattern - axios.interceptors.response.use(null, error => { - if (error.response?.status === 401) { - logout(); - // Error was "handled" - } - }); - - // 1.x pattern - axios.interceptors.response.use( - response => response, - error => { - if (error.response?.status === 401) { - logout(); - } - return Promise.reject(error); // Always propagate - } - ); - ``` - -#### Phase 3: Testing and Validation -1. **Test Error Scenarios** - - Network failures - - HTTP error codes (401, 403, 404, 500, etc.) - - Timeout errors - - JSON parsing errors - -2. **Validate User Experience** - - Error messages are shown appropriately - - Authentication redirects work - - Loading states are handled correctly - -### Gradual Migration Approach - -For large applications, consider gradual migration: - -```javascript -// Create a compatibility layer -const axiosCompat = { - // Use new axios instance for new code - v1: axios.create({ - // 1.x configuration - }), - - // Wrapper for legacy code - legacy: createLegacyWrapper(axios.create({ - // Configuration that mimics 0.x behavior - })) -}; - -function createLegacyWrapper(axiosInstance) { - // Add interceptors that provide 0.x-like behavior - axiosInstance.interceptors.response.use( - response => response, - error => { - // Handle errors in 0.x style for legacy code - handleLegacyError(error); - // Don't propagate certain errors - if (shouldSuppressError(error)) { - return Promise.resolve({ data: null, error: true }); - } - return Promise.reject(error); - } - ); - - return axiosInstance; -} -``` - -## Common Patterns - -### Authentication Interceptors - -#### Updated Authentication Pattern -```javascript -// Token refresh interceptor for 1.x -let isRefreshing = false; -let refreshSubscribers = []; - -function subscribeTokenRefresh(cb) { - refreshSubscribers.push(cb); -} - -function onTokenRefreshed(token) { - refreshSubscribers.forEach(cb => cb(token)); - refreshSubscribers = []; -} - -axios.interceptors.response.use( - response => response, - async error => { - const originalRequest = error.config; - - if (error.response?.status === 401 && !originalRequest._retry) { - if (isRefreshing) { - // Wait for token refresh - return new Promise(resolve => { - subscribeTokenRefresh(token => { - originalRequest.headers.Authorization = `Bearer ${token}`; - resolve(axios(originalRequest)); - }); - }); - } - - originalRequest._retry = true; - isRefreshing = true; - - try { - const newToken = await refreshToken(); - onTokenRefreshed(newToken); - isRefreshing = false; - - originalRequest.headers.Authorization = `Bearer ${newToken}`; - return axios(originalRequest); - } catch (refreshError) { - isRefreshing = false; - logout(); - return Promise.reject(refreshError); - } - } - - return Promise.reject(error); - } -); -``` - -### Retry Logic - -```javascript -// Retry interceptor for 1.x -function createRetryInterceptor(maxRetries = 3, retryDelay = 1000) { - return axios.interceptors.response.use( - response => response, - async error => { - const config = error.config; - - if (!config || !config.retry) { - return Promise.reject(error); - } - - config.__retryCount = config.__retryCount || 0; - - if (config.__retryCount >= maxRetries) { - return Promise.reject(error); - } - - config.__retryCount += 1; - - // Exponential backoff - const delay = retryDelay * Math.pow(2, config.__retryCount - 1); - await new Promise(resolve => setTimeout(resolve, delay)); - - return axios(config); - } - ); -} - -// Usage -const api = axios.create(); -createRetryInterceptor(3, 1000); - -// Make request with retry -api.get('/api/data', { retry: true }); -``` - -### Loading State Management - -```javascript -// Loading interceptor for 1.x -class LoadingManager { - constructor() { - this.requests = new Set(); - this.setupInterceptors(); - } - - setupInterceptors() { - axios.interceptors.request.use(config => { - this.requests.add(config); - this.updateLoadingState(); - return config; - }); - - axios.interceptors.response.use( - response => { - this.requests.delete(response.config); - this.updateLoadingState(); - return response; - }, - error => { - this.requests.delete(error.config); - this.updateLoadingState(); - return Promise.reject(error); - } - ); - } - - updateLoadingState() { - const isLoading = this.requests.size > 0; - // Update your loading UI - document.body.classList.toggle('loading', isLoading); - } -} - -const loadingManager = new LoadingManager(); -``` - -## Troubleshooting - -### Common Migration Issues - -#### Issue 1: Unhandled Promise Rejections - -**Problem:** -```javascript -// This pattern worked in 0.x but causes unhandled rejections in 1.x -axios.get('/api/data'); // No .catch() handler -``` - -**Solution:** -```javascript -// Always handle promises -axios.get('/api/data') - .catch(error => { - // Handle error appropriately - console.error('Request failed:', error.message); - }); - -// Or use async/await with try/catch -async function fetchData() { - try { - const response = await axios.get('/api/data'); - return response.data; - } catch (error) { - console.error('Request failed:', error.message); - return null; - } -} -``` - -#### Issue 2: Response Interceptors Not "Handling" Errors - -**Problem:** -```javascript -// 0.x style - interceptor "handled" errors -axios.interceptors.response.use(null, error => { - showErrorMessage(error.message); - // Error was considered "handled" -}); -``` - -**Solution:** -```javascript -// 1.x style - explicitly control error propagation -axios.interceptors.response.use( - response => response, - error => { - showErrorMessage(error.message); - - // Choose whether to propagate the error - if (shouldPropagateError(error)) { - return Promise.reject(error); - } - - // Return success-like response for "handled" errors - return Promise.resolve({ - data: null, - handled: true, - error: normalizeError(error) - }); - } -); -``` - -#### Issue 3: JSON Parsing Errors - -**Problem:** -```javascript -// 1.x is stricter about JSON parsing -// This might throw where 0.x was lenient -const data = response.data; -``` - -**Solution:** -```javascript -// Add response transformer for better error handling -axios.defaults.transformResponse = [ - function (data) { - if (typeof data === 'string') { - try { - return JSON.parse(data); - } catch (e) { - // Handle JSON parsing errors gracefully - console.warn('Invalid JSON response:', data); - return { error: 'Invalid JSON', rawData: data }; - } - } - return data; - } -]; -``` - -#### Issue 4: TypeScript Errors After Upgrade - -**Problem:** -```typescript -// TypeScript errors after upgrade -const response = await axios.get('/api/data'); -// Property 'someProperty' does not exist on type 'any' -``` - -**Solution:** -```typescript -// Define proper interfaces -interface ApiResponse { - data: any; - message: string; - success: boolean; -} - -const response = await axios.get('/api/data'); -// Now properly typed -console.log(response.data.data); -``` - -### Debug Migration Issues - -#### Enable Debug Logging -```javascript -// Add request/response logging -axios.interceptors.request.use(config => { - console.log('Request:', config); - return config; -}); - -axios.interceptors.response.use( - response => { - console.log('Response:', response); - return response; - }, - error => { - console.log('Error:', error); - return Promise.reject(error); - } -); -``` - -#### Compare Behavior -```javascript -// Create side-by-side comparison during migration -const axios0x = require('axios-0x'); // Keep old version for testing -const axios1x = require('axios'); - -async function compareRequests(config) { - try { - const [result0x, result1x] = await Promise.allSettled([ - axios0x(config), - axios1x(config) - ]); - - console.log('0.x result:', result0x); - console.log('1.x result:', result1x); - } catch (error) { - console.log('Comparison error:', error); - } -} -``` - -## Resources - -### Official Documentation -- [Axios 1.x Documentation](https://axios-http.com/) -- [Axios GitHub Repository](https://github.com/axios/axios) -- [Axios Changelog](https://github.com/axios/axios/blob/main/CHANGELOG.md) - -### Migration Tools -- [Axios Migration Codemod](https://github.com/axios/axios-migration-codemod) *(if available)* -- [ESLint Rules for Axios 1.x](https://github.com/axios/eslint-plugin-axios) *(if available)* - -### Community Resources -- [Stack Overflow - Axios Migration Questions](https://stackoverflow.com/questions/tagged/axios+migration) -- [GitHub Discussions](https://github.com/axios/axios/discussions) -- [Axios Discord Community](https://discord.gg/axios) *(if available)* - -### Related Issues -- [Error Handling Changes Discussion](https://github.com/axios/axios/issues/7208) -- [Migration Guide Request](https://github.com/axios/axios/issues/xxxx) *(link to related issues)* - ---- - -## Need Help? - -If you encounter issues during migration that aren't covered in this guide: - -1. **Search existing issues** in the [Axios GitHub repository](https://github.com/axios/axios/issues) -2. **Ask questions** in [GitHub Discussions](https://github.com/axios/axios/discussions) -3. **Contribute improvements** to this migration guide - ---- - -*This migration guide is maintained by the community. If you find errors or have suggestions, please [open an issue](https://github.com/axios/axios/issues) or submit a pull request.* \ No newline at end of file diff --git a/node_modules/axios/README.md b/node_modules/axios/README.md deleted file mode 100644 index a32220a..0000000 --- a/node_modules/axios/README.md +++ /dev/null @@ -1,2426 +0,0 @@ -

💎 Platinum sponsors

- - - - - -
- - Thanks.dev - -

- We're passionate about making open source sustainable. Scan your dependency tree to better understand which open source projects need funding. -

-

- thanks.dev -

-
- - Hopper Security - -

- Hopper provides a secure, open-source registry where every component is verified against malware and continuously remediated for vulnerabilities across all versions. In simple terms, Hopper removes the need to manage software supply chain risk altogether. -

-

- hopper.security -

-
- - - - - -
- 💜 Become a sponsor - - 💜 Become a sponsor -
-

🥇 Gold sponsors

- - - - - - - - - - - - - - - - -
- - Principal Financial Group - -

- Free tools to help with your financial planning needs! -

-

- principal.com -

-
- - SAP - -

- BSAP SE, a global software company, is one of the largest vendors of ERP and other enterprise applications. -

-

- opensource.sap.com -

-
- - Descope - -

- Reduce user friction, prevent account takeover, and get a 360° view of your customer and agentic identities with the Descope External IAM platform. -

-

- descope.com -

-
- - Stytch - -

- The identity platform for humans & AI agents -

-

- stytch.com -

-
- - RxDB - -

- RxDB is a NoSQL database for JavaScript that runs directly in your app. -

-

- rxdb.info -

-
- - Poprey - -

- Buy Instagram Likes -

-

- poprey.com -

-
- - Buzzoid - Buy Instagram Followers - -

- At Buzzoid, you can buy Instagram followers quickly, safely, and easily with just a few clicks. Rated world's #1 IG service since 2012. -

-

- buzzoid.com -

-
- - Buy Instagram Followers Twicsy - -

- Buy real Instagram followers from Twicsy. Twicsy has been voted the best site to buy followers from the likes of US Magazine. -

-

- twicsy.com -

-
- 💜 Become a sponsor -
- - - - -

- -
- Axios
-
- -

Promise based HTTP client for the browser and node.js

- -

- Website • - Documentation -

- -
- -[![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios) -[![CDNJS](https://img.shields.io/cdnjs/v/axios.svg?style=flat-square)](https://cdnjs.com/libraries/axios) -[![Build status](https://img.shields.io/github/actions/workflow/status/axios/axios/ci.yml?branch=v1.x&label=CI&logo=github&style=flat-square)](https://github.com/axios/axios/actions/workflows/ci.yml) -[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod&style=flat-square)](https://gitpod.io/#https://github.com/axios/axios) -[![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios) -[![install size](https://img.shields.io/badge/dynamic/json?url=https://packagephobia.com/v2/api.json?p=axios&query=$.install.pretty&label=install%20size&style=flat-square)](https://packagephobia.now.sh/result?p=axios) -[![npm bundle size](https://img.shields.io/bundlephobia/minzip/axios?style=flat-square)](https://bundlephobia.com/package/axios@latest) -[![npm downloads](https://img.shields.io/npm/dm/axios.svg?style=flat-square)](https://npm-stat.com/charts.html?package=axios) -[![gitter chat](https://img.shields.io/gitter/room/mzabriskie/axios.svg?style=flat-square)](https://gitter.im/mzabriskie/axios) -[![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios) -[![Contributors](https://img.shields.io/github/contributors/axios/axios.svg?style=flat-square)](CONTRIBUTORS.md) - -
- -## Table of Contents - -- [Features](#features) -- [Browser Support](#browser-support) -- [Installing](#installing) - - [Package manager](#package-manager) - - [CDN](#cdn) -- [Example](#example) -- [Axios API](#axios-api) -- [Request method aliases](#request-method-aliases) -- [Concurrency 👎](#concurrency-deprecated) -- [Creating an instance](#creating-an-instance) -- [Instance methods](#instance-methods) -- [Request Config](#request-config) -- [Response Schema](#response-schema) -- [Config Defaults](#config-defaults) - - [Global axios defaults](#global-axios-defaults) - - [Custom instance defaults](#custom-instance-defaults) - - [Config order of precedence](#config-order-of-precedence) -- [Interceptors](#interceptors) - - [Multiple Interceptors](#multiple-interceptors) -- [Handling Errors](#handling-errors) -- [Handling Timeouts](#handling-timeouts) -- [Cancellation](#cancellation) - - [AbortController](#abortcontroller) - - [CancelToken 👎](#canceltoken-deprecated) -- [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format) - - [URLSearchParams](#urlsearchparams) - - [Query string](#query-string-older-browsers) - - [🆕 Automatic serialization](#-automatic-serialization-to-urlsearchparams) -- [Using multipart/form-data format](#using-multipartform-data-format) - - [FormData](#formdata) - - [🆕 Automatic serialization](#-automatic-serialization-to-formdata) -- [Files Posting](#files-posting) -- [HTML Form Posting](#-html-form-posting-browser) -- [🆕 Progress capturing](#-progress-capturing) -- [🆕 Rate limiting](#-rate-limiting) -- [🆕 AxiosHeaders](#-axiosheaders) -- [🔥 Fetch adapter](#-fetch-adapter) - - [🔥 Custom fetch](#-custom-fetch) - - [🔥 Using with Tauri](#-using-with-tauri) - - [🔥 Using with SvelteKit](#-using-with-sveltekit) -- [🔥 HTTP2](#-http2) -- [Semver](#semver) -- [Promises](#promises) -- [TypeScript](#typescript) -- [Contributing](#contributing) - - [Local setup](#local-setup) -- [Resources](#resources) -- [Credits](#credits) -- [License](#license) - -## Features - -- **Browser Requests:** Make [XMLHttpRequests](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) directly from the browser. -- **Node.js Requests:** Make [http](https://nodejs.org/api/http.html) requests from Node.js environments. -- **Promise-based:** Fully supports the [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) API for easier asynchronous code. -- **Interceptors:** Intercept requests and responses to add custom logic or transform data. -- **Data Transformation:** Transform request and response data automatically. -- **Request Cancellation:** Cancel requests using built-in mechanisms. -- **Automatic JSON Handling:** Automatically serializes and parses [JSON](https://www.json.org/json-en.html) data. -- **Form Serialization:** 🆕 Automatically serializes data objects to `multipart/form-data` or `x-www-form-urlencoded` formats. -- **XSRF Protection:** Client-side support to protect against [Cross-Site Request Forgery](https://en.wikipedia.org/wiki/Cross-site_request_forgery). - -## Browser Support - -| Chrome | Firefox | Safari | Opera | Edge | -| :------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------: | -| ![Chrome browser logo](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_48x48.png) | ![Firefox browser logo](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_48x48.png) | ![Safari browser logo](https://raw.githubusercontent.com/alrra/browser-logos/main/src/safari/safari_48x48.png) | ![Opera browser logo](https://raw.githubusercontent.com/alrra/browser-logos/main/src/opera/opera_48x48.png) | ![Edge browser logo](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_48x48.png) | -| Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | - -[![Browser Matrix](https://saucelabs.com/open_sauce/build_matrix/axios.svg)](https://saucelabs.com/u/axios) - -## Installing - -### Package manager - -Using npm: - -```bash -$ npm install axios -``` - -Using yarn: - -```bash -$ yarn add axios -``` - -Using pnpm: - -```bash -$ pnpm add axios -``` - -Using bun: - -```bash -$ bun add axios -``` - -Once the package is installed, you can import the library using `import` or `require` approach: - -```js -import axios, { isCancel, AxiosError } from 'axios'; -``` - -You can also use the default export, since the named export is just a re-export from the Axios factory: - -```js -import axios from 'axios'; - -console.log(axios.isCancel('something')); -``` - -If you use `require` for importing, **only the default export is available**: - -```js -const axios = require('axios'); - -console.log(axios.isCancel('something')); -``` - -For some bundlers and some ES6 linters you may need to do the following: - -```js -import { default as axios } from 'axios'; -``` - -For cases where something went wrong when trying to import a module into a custom or legacy environment, -you can try importing the module package directly: - -```js -const axios = require('axios/dist/browser/axios.cjs'); // browser commonJS bundle (ES2017) -// const axios = require('axios/dist/node/axios.cjs'); // node commonJS bundle (ES2017) -``` - -### CDN - -Using jsDelivr CDN (ES5 UMD browser module): - -```html - -``` - -Using unpkg CDN: - -```html - -``` - -## Example - -```js -import axios from 'axios'; -//const axios = require('axios'); // legacy way - -try { - const response = await axios.get('/user?ID=12345'); - console.log(response); -} catch (error) { - console.error(error); -} - -// Optionally the request above could also be done as -axios - .get('/user', { - params: { - ID: 12345, - }, - timeout: 5000, // 5 seconds — see "Handling Timeouts" below for matching error handling - }) - .then(function (response) { - console.log(response); - }) - .catch(function (error) { - console.log(error); - }) - .finally(function () { - // always executed - }); - -// Want to use async/await? Add the `async` keyword to your outer function/method. -async function getUser() { - try { -// Example: GET request with query parameters -const response = await axios.get('/user', { - params: { - ID: 12345 - } -}); - -// Using the `params` option improves readability and automatically formats query strings - -console.log(response); - } catch (error) { - console.error(error); - } -} -``` - -> **Note**: Set a `timeout` in production — without one, a stalled request can hang -> indefinitely. See [Handling Timeouts](#handling-timeouts) for the matching error handling. - -> **Note**: `async/await` is part of ECMAScript 2017 and is not supported in Internet -> Explorer and older browsers, so use with caution. - -Performing a `POST` request - -```js -const response = await axios.post('/user', { - firstName: 'Fred', - lastName: 'Flintstone', -}); -console.log(response); -``` - -Performing multiple concurrent requests - -```js -function getUserAccount() { - return axios.get('/user/12345'); -} - -function getUserPermissions() { - return axios.get('/user/12345/permissions'); -} - -Promise.all([getUserAccount(), getUserPermissions()]).then(function (results) { - const acct = results[0]; - const perm = results[1]; -}); -``` - -## axios API - -Requests can be made by passing the relevant config to `axios`. - -##### axios(config) - -```js -// Send a POST request -axios({ - method: 'post', - url: '/user/12345', - data: { - firstName: 'Fred', - lastName: 'Flintstone', - }, -}); -``` - -```js -// GET request for remote image in node.js -const response = await axios({ - method: 'get', - url: 'https://bit.ly/2mTM3nY', - responseType: 'stream', -}); -response.data.pipe(fs.createWriteStream('ada_lovelace.jpg')); -``` - -##### axios(url[, config]) - -```js -// Send a GET request (default method) -axios('/user/12345'); -``` - -### Request method aliases - -For convenience, aliases have been provided for all common request methods. - -##### axios.request(config) - -##### axios.get(url[, config]) - -##### axios.delete(url[, config]) - -##### axios.head(url[, config]) - -##### axios.options(url[, config]) - -##### axios.post(url[, data[, config]]) - -##### axios.put(url[, data[, config]]) - -##### axios.patch(url[, data[, config]]) - -###### NOTE - -When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config. - -### Concurrency (Deprecated) - -Please use `Promise.all` to replace the below functions. - -Helper functions for dealing with concurrent requests. - -axios.all(iterable) -axios.spread(callback) - -### Creating an instance - -You can create a new instance of axios with a custom config. - -##### axios.create([config]) - -```js -const instance = axios.create({ - baseURL: 'https://some-domain.com/api/', - timeout: 1000, - headers: { 'X-Custom-Header': 'foobar' }, -}); -``` - -### Instance methods - -The available instance methods are listed below. The specified config will be merged with the instance config. - -##### axios#request(config) - -##### axios#get(url[, config]) - -##### axios#delete(url[, config]) - -##### axios#head(url[, config]) - -##### axios#options(url[, config]) - -##### axios#post(url[, data[, config]]) - -##### axios#put(url[, data[, config]]) - -##### axios#patch(url[, data[, config]]) - -##### axios#getUri([config]) - -## Request Config - -### ⚠️ Security notice: decompression-bomb protection is opt-in - -By default `maxContentLength` and `maxBodyLength` are `-1` (unlimited). A malicious or compromised server can return a tiny gzip/deflate/brotli body that expands to gigabytes and exhaust the Node.js process. - -If you call servers you do not fully trust, **set a cap**: - -```js -axios.defaults.maxContentLength = 10 * 1024 * 1024; // 10 MB -axios.defaults.maxBodyLength = 10 * 1024 * 1024; -``` - -See the [security guide](https://axios.rest/pages/misc/security.html) for details. - -These are the available config options for making requests. Only the `url` is required. Requests will default to `GET` if `method` is not specified. - -```js -{ - // `url` is the server URL that will be used for the request - url: '/user', - - // `method` is the request method to be used when making the request - method: 'get', // default - - // `baseURL` will be prepended to `url` unless `url` is absolute and the option `allowAbsoluteUrls` is set to true. - // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs - // to the methods of that instance. - baseURL: 'https://some-domain.com/api/', - - // `allowAbsoluteUrls` determines whether or not absolute URLs will override a configured `baseUrl`. - // When set to true (default), absolute values for `url` will override `baseUrl`. - // When set to false, absolute values for `url` will always be prepended by `baseUrl`. - allowAbsoluteUrls: true, - - // `transformRequest` allows changes to the request data before it is sent to the server - // This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE' - // The last function in the array must return a string or an instance of Buffer, ArrayBuffer, - // FormData or Stream - // You may modify the headers object. - transformRequest: [function (data, headers) { - // Do whatever you want to transform the data - - return data; - }], - - // `transformResponse` allows changes to the response data to be made before - // it is passed to then/catch - transformResponse: [function (data) { - // Do whatever you want to transform the data - - return data; - }], - - // `parseReviver` is an optional function that will be passed as the - // second argument (reviver) to JSON.parse() - parseReviver: function (key, value, context) { - // In modern environments, context.source provides the raw JSON string - // allowing for precision-safe parsing of BigInt - if (typeof value === 'number' && context?.source) { - const isInteger = Number.isInteger(value); - const isUnsafe = !Number.isSafeInteger(value); - const isValidIntegerString = /^-?\d+$/.test(context.source); - - if (isInteger && isUnsafe && isValidIntegerString) { - try { - return BigInt(context.source); - } catch { - // Fallback: return original value if parsing fails - } - } - } - return value; - }, - - // `headers` are custom headers to be sent - headers: {'X-Requested-With': 'XMLHttpRequest'}, - - // `params` are the URL parameters to be sent with the request - // Must be a plain object or a URLSearchParams object - params: { - ID: 12345 - }, - - // `paramsSerializer` is an optional config that allows you to customize serializing `params`. - paramsSerializer: { - - // Custom encoder function which sends key/value pairs in an iterative fashion. - encode?: (param: string): string => { /* Do custom operations here and return transformed string */ }, - - // Custom serializer function for the entire parameter. Allows the user to mimic pre 1.x behaviour. - serialize?: (params: Record, options?: ParamsSerializerOptions ), - - // Configuration for formatting array indexes in the params. - indexes: false, // Three available options: (1) indexes: null (leads to no brackets), (2) (default) indexes: false (leads to empty brackets), (3) indexes: true (leads to brackets with indexes). - - // Maximum object nesting depth when serializing params. Payloads deeper than this throw an - // AxiosError with code ERR_FORM_DATA_DEPTH_EXCEEDED. Default: 100. Set to Infinity to disable. - maxDepth: 100 - - }, - - // `data` is the data to be sent as the request body - // Only applicable for request methods 'PUT', 'POST', 'DELETE', and 'PATCH' - // When no `transformRequest` is set, it must be of one of the following types: - // - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams - // - Browser only: FormData, File, Blob - // - Node only: Stream, Buffer, FormData (form-data package) - data: { - firstName: 'Fred' - }, - - // `formDataHeaderPolicy` controls how node.js FormData#getHeaders() is copied. - // 'legacy' (default) copies all returned headers for v1 compatibility. - // 'content-only' copies only Content-Type and Content-Length. - formDataHeaderPolicy: 'legacy', - - // syntax alternative to send data into the body - // method post - // only the value is sent, not the key - data: 'Country=Brasil&City=Belo Horizonte', - - // `timeout` specifies the number of milliseconds before the request times out. - // If the request takes longer than `timeout`, the request will be aborted. - timeout: 1000, // default is `0` (no timeout) - - // `withCredentials` indicates whether or not cross-site Access-Control requests - // should be made using credentials - // This only controls whether the browser sends credentials. - // It does not control whether the XSRF header is added. - withCredentials: false, // default - - // `adapter` allows custom handling of requests which makes testing easier. - // Return a promise and supply a valid response (see lib/adapters/README.md) - adapter: function (config) { - /* ... */ - }, - // Also, you can set the name of the built-in adapter, or provide an array with their names - // to choose the first available in the environment - adapter: 'xhr', // 'fetch' | 'http' | ['xhr', 'http', 'fetch'] - - // `auth` indicates that HTTP Basic auth should be used, and supplies credentials. - // This will set an `Authorization` header, overwriting any existing - // `Authorization` custom headers you have set using `headers`. - // Please note that only HTTP Basic auth is configurable through this parameter. - // For Bearer tokens and such, use `Authorization` custom headers instead. - auth: { - username: 'janedoe', - password: 's00pers3cret' - }, - - // `responseType` indicates the type of data that the server will respond with - // options are: 'arraybuffer', 'document', 'json', 'text', 'stream' - // browser only: 'blob' - responseType: 'json', // default - - // `responseEncoding` indicates encoding to use for decoding responses (Node.js only) - // Note: Ignored for `responseType` of 'stream' or client-side requests - // options are: 'ascii', 'ASCII', 'ansi', 'ANSI', 'binary', 'BINARY', 'base64', 'BASE64', 'base64url', - // 'BASE64URL', 'hex', 'HEX', 'latin1', 'LATIN1', 'ucs-2', 'UCS-2', 'ucs2', 'UCS2', 'utf-8', 'UTF-8', - // 'utf8', 'UTF8', 'utf16le', 'UTF16LE' - responseEncoding: 'utf8', // default - - // `xsrfCookieName` is the name of the cookie to use as a value for the xsrf token - xsrfCookieName: 'XSRF-TOKEN', // default - - // `xsrfHeaderName` is the name of the http header that carries the xsrf token value - xsrfHeaderName: 'X-XSRF-TOKEN', // default - - // `withXSRFToken` defines whether to send the XSRF header in browser requests. - // `undefined` (default) - set XSRF header only for the same origin requests - // `true` - always set XSRF header, including for cross-origin requests - // `false` - never set XSRF header - // function - resolve with custom logic; receives the internal config object - withXSRFToken: boolean | undefined | ((config: InternalAxiosRequestConfig) => boolean | undefined), - - // `withXSRFToken` controls whether Axios reads the XSRF cookie and sets the XSRF header. - // - `undefined` (default): the XSRF header is set only for same-origin requests. - // - `true`: attempt to set the XSRF header for all requests (including cross-origin). - // - `false`: never set the XSRF header. - // - function: a callback that receives the request `config` and returns `true`, - // `false`, or `undefined` to decide per-request behavior. - // - // Note about `withCredentials`: `withCredentials` controls whether cross-site - // requests include credentials (cookies and HTTP auth). In older Axios versions, - // setting `withCredentials: true` implicitly caused Axios to set the XSRF header - // for cross-origin requests. Newer Axios separates these concerns: to allow the - // XSRF header to be sent for cross-origin requests you should set both - // `withCredentials: true` and `withXSRFToken: true`. - // - // Example: - // axios.get('/user', { withCredentials: true, withXSRFToken: true }); - - // `onUploadProgress` allows handling of progress events for uploads - // browser & node.js - onUploadProgress: function ({loaded, total, progress, bytes, estimated, rate, upload = true}) { - // Do whatever you want with the Axios progress event - }, - - // `onDownloadProgress` allows handling of progress events for downloads - // browser & node.js - onDownloadProgress: function ({loaded, total, progress, bytes, estimated, rate, download = true}) { - // Do whatever you want with the Axios progress event - }, - - // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js - maxContentLength: 2000, - - // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed - maxBodyLength: 2000, - - // `redact` masks matching config keys when AxiosError#toJSON() is called. - // Matching is case-insensitive and recursive. It does not change the request. - redact: ['authorization', 'password'], - - // `validateStatus` defines whether to resolve or reject the promise for a given - // HTTP response status code. If `validateStatus` returns `true` (or is set to `null` - // or `undefined`), the promise will be resolved; otherwise, the promise will be - // rejected. - validateStatus: function (status) { - return status >= 200 && status < 300; // default - }, - - // `maxRedirects` defines the maximum number of redirects to follow in node.js. - // If set to 0, no redirects will be followed. - maxRedirects: 21, // default - - // `beforeRedirect` defines a function that will be called before redirect. - // Use this to adjust the request options upon redirecting, - // to inspect the latest response headers, - // or to cancel the request by throwing an error - // If maxRedirects is set to 0, `beforeRedirect` is not used. - - beforeRedirect: (options, { headers }) => { - if ( - options.hostname === "example.com" && - options.protocol === "https:" - ) { - options.auth = "user:password"; - } - }, - // Security note: - // The `beforeRedirect` hook runs after sensitive headers are stripped during redirects. - //The `follow-redirects` library removes credentials on protocol downgrade (HTTPS → HTTP) for security. - //Since `beforeRedirect` runs after this, re-injecting credentials without checking the protocol can expose sensitive data. - //Always ensure credentials are only added for trusted HTTPS destinations. - -// Security note: -// The beforeRedirect hook runs after sensitive headers are stripped during redirects. -// Re-injecting credentials without checking the destination can expose sensitive data. -// Only add credentials for trusted HTTPS destinations. -// Avoid re-adding credentials on downgraded redirects. - - - // `socketPath` defines a UNIX Socket to be used in node.js. - // e.g. '/var/run/docker.sock' to send requests to the docker daemon. - // Only either `socketPath` or `proxy` can be specified. - // If both are specified, `socketPath` is used. - // - // Security: when `socketPath` is set, hostname/port of the URL are ignored, - // which bypasses hostname-based SSRF protections. Never derive `socketPath` - // from untrusted input. Use `allowedSocketPaths` (below) to restrict accepted - // socket paths for defense-in-depth. - socketPath: null, // default - - // `allowedSocketPaths` restricts which `socketPath` values are accepted. - // Accepts a string or array of strings. Entries and the incoming socketPath - // are compared after path.resolve(). A mismatch throws AxiosError with code - // `ERR_BAD_OPTION_VALUE`. When null/undefined, no restriction is applied. - allowedSocketPaths: null, // default - - // `transport` determines the transport method that will be used to make the request. - // If defined, it will be used. Otherwise, if `maxRedirects` is 0, - // the default `http` or `https` library will be used, depending on the protocol specified in `protocol`. - // Otherwise, the `httpFollow` or `httpsFollow` library will be used, again depending on the protocol, - // which can handle redirects. - transport: undefined, // default - - // `httpAgent` and `httpsAgent` define a custom agent to be used when performing http - // and https requests, respectively, in node.js. This allows options to be added like - // `keepAlive` that are not enabled by default before Node.js v19.0.0. After Node.js - // v19.0.0, you no longer need to customize the agent to enable `keepAlive` because - // `http.globalAgent` has `keepAlive` enabled by default. - httpAgent: new http.Agent({ keepAlive: true }), - httpsAgent: new https.Agent({ keepAlive: true }), - - // `proxy` defines the hostname, port, and protocol of the proxy server. - // You can also define your proxy using the conventional `http_proxy` and - // `https_proxy` environment variables. If you are using environment variables - // for your proxy configuration, you can also define a `no_proxy` environment - // variable as a comma-separated list of domains that should not be proxied. - // Use `false` to disable proxies, ignoring environment variables. - // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and - // supplies credentials. - // For `http://` targets, axios sends the request to the proxy in - // forward-proxy mode and stamps `Proxy-Authorization` onto the request - // headers (overwriting any user-supplied `Proxy-Authorization` header). - // For `https://` targets, axios establishes a CONNECT tunnel through the - // proxy and performs TLS end-to-end with the origin; `Proxy-Authorization` - // is sent on the CONNECT request only, never on the wrapped TLS request, - // so the proxy never sees the URL, headers, or body. Supply a custom - // `httpsAgent` to opt out of automatic CONNECT tunneling. - // If the proxy server uses HTTPS, then you must set the protocol to `https`. - // A user-supplied `Host` header in `headers` is preserved when forwarding - // through a proxy (case-insensitive match on `host`/`Host`/`HOST`); this - // lets you target a virtual host that differs from the request URL — for - // example, hitting `127.0.0.1:4000` while having the proxy treat the - // request as `example.com`. If no `Host` header is supplied, axios - // defaults it to the request URL's `hostname:port` as before. The Host - // header is only set in forward-proxy mode (HTTP targets); for HTTPS - // tunneling the Host header is sent inside the TLS connection, not seen - // by the proxy. - proxy: { - protocol: 'https', - host: '127.0.0.1', - // hostname: '127.0.0.1' // Takes precedence over 'host' if both are defined - port: 9000, - auth: { - username: 'mikeymike', - password: 'rapunz3l' - } - }, - - // `cancelToken` specifies a cancel token that can be used to cancel the request - // (see Cancellation section below for details) - cancelToken: new CancelToken(function (cancel) { - }), - - // an alternative way to cancel Axios requests using AbortController - signal: new AbortController().signal, - - // `decompress` indicates whether or not the response body should be decompressed - // automatically. If set to `true` will also remove the 'content-encoding' header - // from the responses objects of all decompressed responses - // - Node only (XHR cannot turn off decompression) - decompress: true, // default - - // `insecureHTTPParser` boolean. - // Indicates where to use an insecure HTTP parser that accepts invalid HTTP headers. - // This may allow interoperability with non-conformant HTTP implementations. - // Using the insecure parser should be avoided. - // see options https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_http_request_url_options_callback - // see also https://nodejs.org/en/blog/vulnerability/february-2020-security-releases/#strict-http-header-parsing-none - insecureHTTPParser: undefined, // default - - // transitional options for backward compatibility that may be removed in the newer versions - transitional: { - // silent JSON parsing mode - // `true` - ignore JSON parsing errors and set response.data to null if parsing failed (old behaviour) - // `false` - throw SyntaxError if JSON parsing failed - // Important: this option only takes effect when `responseType` is explicitly set to 'json'. - // When `responseType` is omitted (defaults to no value), axios uses `forcedJSONParsing` - // to attempt JSON parsing, but will silently return the raw string on failure regardless - // of this setting. To have invalid JSON throw errors, use: - // { responseType: 'json', transitional: { silentJSONParsing: false } } - silentJSONParsing: true, // default value for the current Axios version - - // try to parse the response string as JSON even if `responseType` is not 'json' - forcedJSONParsing: true, - - // throw ETIMEDOUT error instead of generic ECONNABORTED on request timeouts - clarifyTimeoutError: false, - - // use the legacy interceptor request/response ordering - legacyInterceptorReqResOrdering: true, // default - }, - - env: { - // The FormData class to be used to automatically serialize the payload into a FormData object - FormData: window?.FormData || global?.FormData - }, - - formSerializer: { - visitor: (value, key, path, helpers) => {}; // custom visitor function to serialize form values - dots: boolean; // use dots instead of brackets format - metaTokens: boolean; // keep special endings like {} in parameter key - indexes: boolean; // array indexes format null - no brackets, false - empty brackets, true - brackets with indexes - maxDepth: 100; // maximum object nesting depth; throws AxiosError (ERR_FORM_DATA_DEPTH_EXCEEDED) if exceeded. Set to Infinity to disable. - }, - - // http adapter only (node.js) - maxRate: [ - 100 * 1024, // 100KB/s upload limit, - 100 * 1024 // 100KB/s download limit - ] -} -``` - -### Strict RFC 3986 percent-encoding for query params - -By default, axios decodes `%3A`, `%24`, `%2C` and `%20` back to `:`, `$`, `,` and `+` for readability (the `+` follows the `application/x-www-form-urlencoded` convention for spaces in query strings). These characters are valid in a query component under [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986#section-3.4), so the default output is correct, but some backends require strict percent-encoding and reject the readable form. - -Override the default encoder via `paramsSerializer.encode`: - -```js -// Per-request: emit strict RFC 3986 percent-encoding for query values -axios.get('/foo', { - params: { filter: JSON.stringify({ startedAt: '2026-01-23' }) }, - paramsSerializer: { encode: encodeURIComponent } -}); - -// Or set it on the instance defaults -const client = axios.create({ - paramsSerializer: { encode: encodeURIComponent } -}); -``` - -## 🔥 HTTP/2 Support - -Axios has experimental HTTP/2 support available via the Node.js HTTP adapter. - -Support depends on the runtime environment and Node.js version. Features like redirects and some behaviors may not be fully supported with HTTP/2. - -Options like `httpVersion` and `http2Options` are adapter-specific and may not work consistently across all environments. - -If HTTP/2 functionality is required, ensure your runtime environment supports it or consider using alternative libraries or custom adapters. - -## Response Schema - -The response to a request contains the following information. - -```js -{ - // `data` is the response that was provided by the server - data: {}, - - // `status` is the HTTP status code from the server response - status: 200, - - // `statusText` is the HTTP status message from the server response - statusText: 'OK', - - // `headers` the HTTP headers that the server responded with - // All header names are lowercase and can be accessed using the bracket notation. - // Example: `response.headers['content-type']` - headers: {}, - - // `config` is the config that was provided to `axios` for the request - config: {}, - - // `request` is the request that generated this response - // It is the last ClientRequest instance in node.js (in redirects) - // and an XMLHttpRequest instance in the browser - request: {} -} -``` - -When using `then`, you will receive the response as follows: - -```js -const response = await axios.get('/user/12345'); -console.log(response.data); -console.log(response.status); -console.log(response.statusText); -console.log(response.headers); -console.log(response.config); -``` - -When using `catch`, or passing a [rejection callback](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) as second parameter of `then`, the response will be available through the `error` object as explained in the [Handling Errors](#handling-errors) section. - -## Config Defaults - -You can specify config defaults that will be applied to every request. - -### Global axios defaults - -```js -axios.defaults.baseURL = 'https://api.example.com'; - -// Important: If axios is used with multiple domains, the AUTH_TOKEN will be sent to all of them. -// See below for an example using Custom instance defaults instead. -axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; - -axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; -``` - -### Custom instance defaults - -```js -// Set config defaults when creating the instance -const instance = axios.create({ - baseURL: 'https://api.example.com', -}); - -// Alter defaults after instance has been created -instance.defaults.headers.common['Authorization'] = AUTH_TOKEN; -``` - -### Config order of precedence - -Config will be merged with an order of precedence. The order is library defaults found in [lib/defaults/index.js](https://github.com/axios/axios/blob/main/lib/defaults/index.js#L49), then `defaults` property of the instance, and finally `config` argument for the request. The latter will take precedence over the former. Here's an example. - -```js -// Create an instance using the config defaults provided by the library -// At this point the timeout config value is `0` as is the default for the library -const instance = axios.create(); - -// Override timeout default for the library -// Now all requests using this instance will wait 2.5 seconds before timing out -instance.defaults.timeout = 2500; - -// Override timeout for this request as it's known to take a long time -instance.get('/longRequest', { - timeout: 5000, -}); -``` - -## Interceptors - -You can intercept requests or responses before methods like `.get()` or `.post()` -resolve their promises (before code inside `then` or `catch`, or after `await`) - -```js -const instance = axios.create(); - -// Add a request interceptor -instance.interceptors.request.use( - function (config) { - // Do something before the request is sent - return config; - }, - function (error) { - // Do something with the request error - return Promise.reject(error); - } -); - -// Add a response interceptor -instance.interceptors.response.use( - function (response) { - // Any status code that lies within the range of 2xx causes this function to trigger - // Do something with response data - return response; - }, - function (error) { - // Any status codes that fall outside the range of 2xx cause this function to trigger - // Do something with response error - return Promise.reject(error); - } -); -``` - -If you need to remove an interceptor later you can. - -```js -const instance = axios.create(); -const myInterceptor = instance.interceptors.request.use(function () { - /*...*/ -}); -instance.interceptors.request.eject(myInterceptor); -``` - -You can also clear all interceptors for requests or responses. - -```js -const instance = axios.create(); -instance.interceptors.request.use(function () { - /*...*/ -}); -instance.interceptors.request.clear(); // Removes interceptors from requests -instance.interceptors.response.use(function () { - /*...*/ -}); -instance.interceptors.response.clear(); // Removes interceptors from responses -``` - -You can add interceptors to a custom instance of axios. - -```js -const instance = axios.create(); -instance.interceptors.request.use(function () { - /*...*/ -}); -``` - -When you add request interceptors, they are presumed to be asynchronous by default. This can cause a delay -in the execution of your axios request when the main thread is blocked (a promise is created under the hood for -the interceptor and your request gets put at the bottom of the call stack). If your request interceptors are synchronous you can add a flag -to the options object that will tell axios to run the code synchronously and avoid any delays in request execution. - -```js -axios.interceptors.request.use( - function (config) { - config.headers.test = 'I am only a header!'; - return config; - }, - null, - { synchronous: true } -); -``` - -If you want to execute a particular interceptor based on a runtime check, -you can add a `runWhen` function to the options object. The request interceptor will not be executed **if and only if** the return -of `runWhen` is `false`. The function will be called with the config -object (don't forget that you can bind your own arguments to it as well.) This can be handy when you have an -asynchronous request interceptor that only needs to run at certain times. - -```js -function onGetCall(config) { - return config.method === 'get'; -} -axios.interceptors.request.use( - function (config) { - config.headers.test = 'special get headers'; - return config; - }, - null, - { runWhen: onGetCall } -); -``` - -> **Note:** The options parameter(having `synchronous` and `runWhen` properties) is only supported for request interceptors at the moment. - -### Interceptor Execution Order - -**Important:** Interceptors have different execution orders depending on their type! - -Request interceptors are executed in **reverse order** (LIFO - Last In, First Out). This means the _last_ interceptor added is executed **first**. - -Response interceptors are executed in the **order they were added** (FIFO - First In, First Out). This means the _first_ interceptor added is executed **first**. - -Example: - -```js -const instance = axios.create(); - -const interceptor = (id) => (base) => { - console.log(id); - return base; -}; - -instance.interceptors.request.use(interceptor('Request Interceptor 1')); -instance.interceptors.request.use(interceptor('Request Interceptor 2')); -instance.interceptors.request.use(interceptor('Request Interceptor 3')); -instance.interceptors.response.use(interceptor('Response Interceptor 1')); -instance.interceptors.response.use(interceptor('Response Interceptor 2')); -instance.interceptors.response.use(interceptor('Response Interceptor 3')); - -// Console output: -// Request Interceptor 3 -// Request Interceptor 2 -// Request Interceptor 1 -// [HTTP request is made] -// Response Interceptor 1 -// Response Interceptor 2 -// Response Interceptor 3 -``` - -### Multiple Interceptors - -Given that you add multiple response interceptors -and when the response was fulfilled - -- then each interceptor is executed -- then they are executed in the order they were added -- then only the last interceptor's result is returned -- then every interceptor receives the result of its predecessor -- and when the fulfillment-interceptor throws - - then the following fulfillment-interceptor is not called - - then the following rejection-interceptor is called - - once caught, another following fulfill-interceptor is called again (just like in a promise chain). - -Read [the interceptor tests](./test/specs/interceptors.spec.js) to see all this in code. - -## Error Types - -There are many different axios error messages that can appear which can provide basic information about the specifics of the error and where opportunities may lie in debugging. - -The general structure of axios errors is as follows: -| Property | Definition | -| -------- | ---------- | -| message | A quick summary of the error message and the status it failed with. | -| name | This defines where the error originated from. For axios, it will always be an 'AxiosError'. | -| stack | Provides the stack trace of the error. | -| config | An axios config object with specific instance configurations defined by the user from when the request was made | -| code | Represents an axios identified error. The table below lists specific definitions for internal axios error. | -| status | HTTP response status code. See [here](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) for common HTTP response status code meanings. - -Below is a list of potential axios identified error: - -| Code | Definition | -| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ERR_BAD_OPTION_VALUE | Invalid value provided in axios configuration. | -| ERR_BAD_OPTION | Invalid option provided in axios configuration. | -| ERR_NOT_SUPPORT | Feature or method not supported in the current axios environment. | -| ERR_DEPRECATED | Deprecated feature or method used in axios. | -| ERR_INVALID_URL | Invalid URL provided for axios request. | -| ECONNABORTED | Typically indicates that the request has been timed out (unless `transitional.clarifyTimeoutError` is set) or aborted by the browser or its plugin. | -| ERR_CANCELED | Feature or method is canceled explicitly by the user using an AbortSignal (or a CancelToken). | -| ETIMEDOUT | Request timed out due to exceeding the default axios timelimit. `transitional.clarifyTimeoutError` must be set to `true`, otherwise a generic `ECONNABORTED` error will be thrown instead. | -| ERR_NETWORK | Network-related issue. In the browser, this error can also be caused by a [CORS](https://developer.mozilla.org/ru/docs/Web/HTTP/Guides/CORS) or [Mixed Content](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content) policy violation. The browser does not allow the JS code to clarify the real reason for the error caused by security issues, so please check the console. | -| ERR_FR_TOO_MANY_REDIRECTS | Request is redirected too many times; exceeds max redirects specified in axios configuration. | -| ERR_BAD_RESPONSE | Response cannot be parsed properly or is in an unexpected format. Usually related to a response with `5xx` status code. | -| ERR_BAD_REQUEST | The request has an unexpected format or is missing required parameters. Usually related to a response with `4xx` status code. | - -## Handling Errors - -The default behavior is to reject every response that returns with a status code that falls out of the range of 2xx and treat it as an error. - -```js -axios.get('/user/12345').catch(function (error) { - if (error.response) { - // The request was made and the server responded with a status code - // that falls out of the range of 2xx - console.log(error.response.data); - console.log(error.response.status); - console.log(error.response.headers); - } else if (error.request) { - // The request was made but no response was received - // `error.request` is an instance of XMLHttpRequest in the browser and an instance of - // http.ClientRequest in node.js - console.log(error.request); - } else { - // Something happened in setting up the request that triggered an Error - console.log('Error', error.message); - } - console.log(error.config); -}); -``` - -Using the `validateStatus` config option, you can override the default condition (status >= 200 && status < 300) and define HTTP code(s) that should throw an error. - -```js -axios.get('/user/12345', { - validateStatus: function (status) { - return status < 500; // Resolve only if the status code is less than 500 - }, -}); -``` - -Using `toJSON` you get an object with more information about the HTTP error. - -```js -axios.get('/user/12345').catch(function (error) { - console.log(error.toJSON()); -}); -``` - -To avoid logging secrets from `error.config`, pass a `redact` array in the request config. Matching config keys are masked case-insensitively at any depth when `AxiosError#toJSON()` is called. - -```js -axios.get('/user/12345', { - headers: { Authorization: 'Bearer token' }, - redact: ['authorization'] -}).catch(function (error) { - console.log(error.toJSON().config.headers.Authorization); // [REDACTED ****] -}); -``` - -## Handling Timeouts - -```js -async function fetchWithTimeout() { - try { - const response = await axios.get('https://example.com/data', { - timeout: 5000, // 5 seconds - transitional: { - // set to true if you prefer ETIMEDOUT over ECONNABORTED - clarifyTimeoutError: false, - }, - }); - - console.log('Response:', response.data); - } catch (error) { - if (axios.isAxiosError(error)) { - if (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT') { - console.error('Request timed out. Please try again.'); - return; - } - - console.error('Axios error:', error.message); - return; - } - - console.error('Unexpected error:', error); - } -} -``` - -## Cancellation - -### AbortController - -Starting from `v0.22.0` Axios supports AbortController to cancel requests in a fetch API way: - -```js -const controller = new AbortController(); - -axios - .get('/foo/bar', { - signal: controller.signal, - }) - .then(function (response) { - //... - }); -// cancel the request -controller.abort(); -``` - -### CancelToken `👎deprecated` - -You can also cancel a request using a _CancelToken_. - -> The axios cancel token API is based on the withdrawn [cancellable promises proposal](https://github.com/tc39/proposal-cancelable-promises). - -> This API is deprecated since v0.22.0 and shouldn't be used in new projects - -You can create a cancel token using the `CancelToken.source` factory as shown below: - -```js -const CancelToken = axios.CancelToken; -const source = CancelToken.source(); - -axios - .get('/user/12345', { - cancelToken: source.token, - }) - .catch(function (thrown) { - if (axios.isCancel(thrown)) { - console.log('Request canceled', thrown.message); - } else { - // handle error - } - }); - -axios.post( - '/user/12345', - { - name: 'new name', - }, - { - cancelToken: source.token, - } -); - -// cancel the request (the message parameter is optional) -source.cancel('Operation canceled by the user.'); -``` - -You can also create a cancel token by passing an executor function to the `CancelToken` constructor: - -```js -const CancelToken = axios.CancelToken; -let cancel; - -axios.get('/user/12345', { - cancelToken: new CancelToken(function executor(c) { - // An executor function receives a cancel function as a parameter - cancel = c; - }), -}); - -// cancel the request -cancel(); -``` - -> **Note:** you can cancel several requests with the same cancel token/abort controller. -> If a cancellation token is already cancelled at the moment of starting an Axios request, then the request is cancelled immediately, without any attempts to make a real request. - -> During the transition period, you can use both cancellation APIs, even for the same request: - -## Using `application/x-www-form-urlencoded` format - -### URLSearchParams - -By default, axios serializes JavaScript objects to `JSON`. To send data in the [`application/x-www-form-urlencoded`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) format instead, you can use the [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) API, which is [supported](http://www.caniuse.com/#feat=urlsearchparams) in the vast majority of browsers, and [Node](https://nodejs.org/api/url.html#url_class_urlsearchparams) starting with v10 (released in 2018). - -```js -const params = new URLSearchParams({ foo: 'bar' }); -params.append('extraparam', 'value'); -axios.post('/foo', params); -``` - -### Query string (Older browsers) - -For compatibility with very old browsers, there is a [polyfill](https://github.com/WebReflection/url-search-params) available (make sure to polyfill the global environment). - -Alternatively, you can encode data using the [`qs`](https://github.com/ljharb/qs) library: - -```js -const qs = require('qs'); -axios.post('/foo', qs.stringify({ bar: 123 })); -``` - -Or in another way (ES6), - -```js -import qs from 'qs'; -const data = { bar: 123 }; -const options = { - method: 'POST', - headers: { 'content-type': 'application/x-www-form-urlencoded' }, - data: qs.stringify(data), - url, -}; -axios(options); -``` - -### Older Node.js versions - -For older Node.js engines, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows: - -```js -const querystring = require('querystring'); -axios.post('https://something.com/', querystring.stringify({ foo: 'bar' })); -``` - -You can also use the [`qs`](https://github.com/ljharb/qs) library. - -> **Note**: The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has [known issues](https://github.com/nodejs/node-v0.x-archive/issues/1665) with that use case. - -### 🆕 Automatic serialization to URLSearchParams - -Axios will automatically serialize the data object to urlencoded format if the content-type header is set to "application/x-www-form-urlencoded". - -```js -const data = { - x: 1, - arr: [1, 2, 3], - arr2: [1, [2], 3], - users: [ - { name: 'Peter', surname: 'Griffin' }, - { name: 'Thomas', surname: 'Anderson' }, - ], -}; - -await axios.postForm('https://postman-echo.com/post', data, { - headers: { 'content-type': 'application/x-www-form-urlencoded' }, -}); -``` - -The server will handle it as: - -```js - { - x: '1', - 'arr[]': [ '1', '2', '3' ], - 'arr2[0]': '1', - 'arr2[1][0]': '2', - 'arr2[2]': '3', - 'arr3[]': [ '1', '2', '3' ], - 'users[0][name]': 'Peter', - 'users[0][surname]': 'griffin', - 'users[1][name]': 'Thomas', - 'users[1][surname]': 'Anderson' - } -``` - -If your backend body-parser (like `body-parser` of `express.js`) supports nested objects decoding, you will get the same object on the server-side automatically - -```js -const app = express(); - -app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies - -app.post('/', function (req, res, next) { - // echo body as JSON - res.send(JSON.stringify(req.body)); -}); - -server = app.listen(3000); -``` - -## Using `multipart/form-data` format - -### FormData - -To send the data as a `multipart/form-data` you need to pass a formData instance as a payload. -Setting the `Content-Type` header is not required as Axios guesses it based on the payload type. - -```js -const formData = new FormData(); -formData.append('foo', 'bar'); - -axios.post('https://httpbin.org/post', formData); -``` - -In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows: - -```js -const FormData = require('form-data'); - -const form = new FormData(); -form.append('my_field', 'my value'); -form.append('my_buffer', Buffer.alloc(10)); -form.append('my_file', fs.createReadStream('/foo/bar.jpg')); - -axios.post('https://example.com', form); -``` - -In node.js, when a `FormData` object provides `getHeaders()`, axios copies all returned headers by default for v1 compatibility. If the `FormData` object is custom or not fully trusted, set `formDataHeaderPolicy: 'content-only'` to copy only `Content-Type` and `Content-Length`, and set any other request headers explicitly with the request `headers` config. - -### 🆕 Automatic serialization to FormData - -Starting from `v0.27.0`, Axios supports automatic object serialization to a FormData object if the request `Content-Type` -header is set to `multipart/form-data`. - -The following request will submit the data in a FormData format (Browser & Node.js): - -```js -import axios from 'axios'; - -axios - .post( - 'https://httpbin.org/post', - { x: 1 }, - { - headers: { - 'Content-Type': 'multipart/form-data', - }, - } - ) - .then(({ data }) => console.log(data)); -``` - -In the `node.js` build, the ([`form-data`](https://github.com/form-data/form-data)) polyfill is used by default. - -You can overload the FormData class by setting the `env.FormData` config variable, -but you probably won't need it in most cases: - -```js -const axios = require('axios'); -var FormData = require('form-data'); - -axios - .post( - 'https://httpbin.org/post', - { x: 1, buf: Buffer.alloc(10) }, - { - headers: { - 'Content-Type': 'multipart/form-data', - }, - } - ) - .then(({ data }) => console.log(data)); -``` - -Axios FormData serializer supports some special endings to perform the following operations: - -- `{}` - serialize the value with JSON.stringify -- `[]` - unwrap the array-like object as separate fields with the same key - -> **Note**: unwrap/expand operation will be used by default on arrays and FileList objects - -FormData serializer supports additional options via `config.formSerializer: object` property to handle rare cases: - -- `visitor: Function` - user-defined visitor function that will be called recursively to serialize the data object - to a `FormData` object by following custom rules. - -- `dots: boolean = false` - use dot notation instead of brackets to serialize arrays and objects; - -- `metaTokens: boolean = true` - add the special ending (e.g `user{}: '{"name": "John"}'`) in the FormData key. - The back-end body-parser could potentially use this meta-information to automatically parse the value as JSON. - -- `indexes: null|false|true = false` - controls how indexes will be added to unwrapped keys of `flat` array-like objects. - - `null` - don't add brackets (`arr: 1`, `arr: 2`, `arr: 3`) - - `false`(default) - add empty brackets (`arr[]: 1`, `arr[]: 2`, `arr[]: 3`) - - `true` - add brackets with indexes (`arr[0]: 1`, `arr[1]: 2`, `arr[2]: 3`) -- `maxDepth: number = 100` - maximum object nesting depth the serializer will recurse into. If the - input object exceeds this depth, an `AxiosError` with `code: 'ERR_FORM_DATA_DEPTH_EXCEEDED'` is - thrown instead of overflowing the call stack. This protects server-side applications from DoS - attacks via deeply nested payloads. Set to `Infinity` to disable the limit and restore pre-fix behaviour. - -```js -// Raise the limit for a schema that genuinely nests deeper than 100 levels: -axios.postForm('/api', data, { formSerializer: { maxDepth: 200 } }); - -// Same protection applies to params serialization: -axios.get('/api', { params: data, paramsSerializer: { maxDepth: 200 } }); -``` - -Let's say we have an object like this one: - -```js -const obj = { - x: 1, - arr: [1, 2, 3], - arr2: [1, [2], 3], - users: [ - { name: 'Peter', surname: 'Griffin' }, - { name: 'Thomas', surname: 'Anderson' }, - ], - 'obj2{}': [{ x: 1 }], -}; -``` - -The following steps will be executed by the Axios serializer internally: - -```js -const formData = new FormData(); -formData.append('x', '1'); -formData.append('arr[]', '1'); -formData.append('arr[]', '2'); -formData.append('arr[]', '3'); -formData.append('arr2[0]', '1'); -formData.append('arr2[1][0]', '2'); -formData.append('arr2[2]', '3'); -formData.append('users[0][name]', 'Peter'); -formData.append('users[0][surname]', 'Griffin'); -formData.append('users[1][name]', 'Thomas'); -formData.append('users[1][surname]', 'Anderson'); -formData.append('obj2{}', '[{"x":1}]'); -``` - -Axios supports the following shortcut methods: `postForm`, `putForm`, `patchForm` -which are just the corresponding http methods with the `Content-Type` header preset to `multipart/form-data`. - -## Files Posting - -You can easily submit a single file: - -```js -await axios.postForm('https://httpbin.org/post', { - myVar: 'foo', - file: document.querySelector('#fileInput').files[0], -}); -``` - -or multiple files as `multipart/form-data`: - -```js -await axios.postForm('https://httpbin.org/post', { - 'files[]': document.querySelector('#fileInput').files, -}); -``` - -`FileList` object can be passed directly: - -```js -await axios.postForm('https://httpbin.org/post', document.querySelector('#fileInput').files); -``` - -All files will be sent with the same field names: `files[]`. - -## 🆕 HTML Form Posting (browser) - -Pass an HTML Form element as a payload to submit it as `multipart/form-data` content. - -```js -await axios.postForm('https://httpbin.org/post', document.querySelector('#htmlForm')); -``` - -`FormData` and `HTMLForm` objects can also be posted as `JSON` by explicitly setting the `Content-Type` header to `application/json`: - -```js -await axios.post('https://httpbin.org/post', document.querySelector('#htmlForm'), { - headers: { - 'Content-Type': 'application/json', - }, -}); -``` - -For example, the Form - -```html -
- - - - - - - - - -
-``` - -will be submitted as the following JSON object: - -```js -{ - "foo": "1", - "deep": { - "prop": { - "spaced": "3" - } - }, - "baz": [ - "4", - "5" - ], - "user": { - "age": "value2" - } -} -``` - -Sending `Blobs`/`Files` as JSON (`base64`) is not currently supported. - -## 🆕 Progress capturing - -Axios supports both browser and node environments to capture request upload/download progress. -The frequency of progress events is forced to be limited to `3` times per second. - -```js -await axios.post(url, data, { - onUploadProgress: function (axiosProgressEvent) { - /*{ - loaded: number; - total?: number; - progress?: number; // in range [0..1] - bytes: number; // how many bytes have been transferred since the last trigger (delta) - estimated?: number; // estimated time in seconds - rate?: number; // upload speed in bytes - upload: true; // upload sign - }*/ - }, - - onDownloadProgress: function (axiosProgressEvent) { - /*{ - loaded: number; - total?: number; - progress?: number; - bytes: number; - estimated?: number; - rate?: number; // download speed in bytes - download: true; // download sign - }*/ - }, -}); -``` - -You can also track stream upload/download progress in node.js: - -```js -const { data } = await axios.post(SERVER_URL, readableStream, { - onUploadProgress: ({ progress }) => { - console.log((progress * 100).toFixed(2)); - }, - - headers: { - 'Content-Length': contentLength, - }, - - maxRedirects: 0, // avoid buffering the entire stream -}); -``` - -> **Note:** -> Capturing FormData upload progress is not currently supported in node.js environments. - -> **⚠️ Warning** -> It is recommended to disable redirects by setting maxRedirects: 0 to upload the stream in the **node.js** environment, -> as the follow-redirects package will buffer the entire stream in RAM without following the "backpressure" algorithm. - -## 🆕 Rate limiting - -Download and upload rate limits can only be set for the http adapter (node.js): - -```js -const { data } = await axios.post(LOCAL_SERVER_URL, myBuffer, { - onUploadProgress: ({ progress, rate }) => { - console.log(`Upload [${(progress * 100).toFixed(2)}%]: ${(rate / 1024).toFixed(2)}KB/s`); - }, - - maxRate: [100 * 1024], // 100KB/s limit -}); -``` - -## 🆕 AxiosHeaders - -Axios has its own `AxiosHeaders` class to manipulate headers using a Map-like API that guarantees caseless work. -Although HTTP is case-insensitive in headers, Axios will retain the case of the original header for stylistic reasons -and as a workaround when servers mistakenly consider the header's case. -The old approach of directly manipulating the headers object is still available, but deprecated and not recommended for future usage. - -### Working with headers - -An AxiosHeaders object instance can contain different types of internal values. that control setting and merging logic. -The final headers object with string values is obtained by Axios by calling the `toJSON` method. - -> Note: By JSON here we mean an object consisting only of string values intended to be sent over the network. - -The header value can be one of the following types: - -- `string` - normal string value that will be sent to the server -- `null` - skip header when rendering to JSON -- `false` - skip header when rendering to JSON, additionally indicates that `set` method must be called with `rewrite` option set to `true` - to overwrite this value (Axios uses this internally to allow users to opt out of installing certain headers like `User-Agent` or `Content-Type`) -- `undefined` - value is not set - -> Note: The header value is considered set if it is not equal to undefined. - -The headers object is always initialized inside interceptors and transformers: - -```ts -axios.interceptors.request.use((request: InternalAxiosRequestConfig) => { - request.headers.set('My-header', 'value'); - - request.headers.set({ - 'My-set-header1': 'my-set-value1', - 'My-set-header2': 'my-set-value2', - }); - - request.headers.set('User-Agent', false); // disable subsequent setting the header by Axios - - request.headers.setContentType('text/plain'); - - request.headers['My-set-header2'] = 'newValue'; // direct access is deprecated - - return request; -}); -``` - -You can iterate over an `AxiosHeaders` instance using a `for...of` statement: - -```js -const headers = new AxiosHeaders({ - foo: '1', - bar: '2', - baz: '3', -}); - -for (const [header, value] of headers) { - console.log(header, value); -} - -// foo 1 -// bar 2 -// baz 3 -``` - -### Preserving a specific header case - -Header names are case-insensitive, but `AxiosHeaders` keeps the case of the first matching key it sees. -If you need a specific case for non-standard case-sensitive servers, define a case preset with `undefined` and then set the value later: - -```js -const api = axios.create(); - -api.defaults.headers.common = { - 'content-type': undefined, - accept: undefined, -}; - -await api.put(url, data, { - headers: { - 'Content-Type': 'application/octet-stream', - Accept: 'application/json', - }, -}); -``` - -You can also compose the same behavior with `AxiosHeaders.concat`: - -```js -const headers = axios.AxiosHeaders.concat( - { 'content-type': undefined }, - { 'Content-Type': 'application/octet-stream' } -); - -await axios.put(url, data, { headers }); -``` - -### new AxiosHeaders(headers?) - -Constructs a new `AxiosHeaders` instance. - -``` -constructor(headers?: RawAxiosHeaders | AxiosHeaders | string); -``` - -If the headers object is a string, it will be parsed as RAW HTTP headers. - -```js -const headers = new AxiosHeaders(` -Host: www.bing.com -User-Agent: curl/7.54.0 -Accept: */*`); - -console.log(headers); - -// Object [AxiosHeaders] { -// host: 'www.bing.com', -// 'user-agent': 'curl/7.54.0', -// accept: '*/*' -// } -``` - -### AxiosHeaders#set - -```ts -set(headerName, value: Axios, rewrite?: boolean); -set(headerName, value, rewrite?: (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean); -set(headers?: RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean); -``` - -The `rewrite` argument controls the overwriting behavior: - -- `false` - do not overwrite if the header's value is set (is not `undefined`) -- `undefined` (default) - overwrite the header unless its value is set to `false` -- `true` - rewrite anyway - -The option can also accept a user-defined function that determines whether the value should be overwritten or not. - -Returns `this`. - -### AxiosHeaders#get(header) - -``` - get(headerName: string, matcher?: true | AxiosHeaderMatcher): AxiosHeaderValue; - get(headerName: string, parser: RegExp): RegExpExecArray | null; -``` - -Returns the internal value of the header. It can take an extra argument to parse the header's value with `RegExp.exec`, -matcher function or internal key-value parser. - -```ts -const headers = new AxiosHeaders({ - 'Content-Type': 'multipart/form-data; boundary=Asrf456BGe4h', -}); - -console.log(headers.get('Content-Type')); -// multipart/form-data; boundary=Asrf456BGe4h - -console.log(headers.get('Content-Type', true)); // parse key-value pairs from a string separated with \s,;= delimiters: -// [Object: null prototype] { -// 'multipart/form-data': undefined, -// boundary: 'Asrf456BGe4h' -// } - -console.log( - headers.get('Content-Type', (value, name, headers) => { - return String(value).replace(/a/g, 'ZZZ'); - }) -); -// multipZZZrt/form-dZZZtZZZ; boundZZZry=Asrf456BGe4h - -console.log(headers.get('Content-Type', /boundary=(\w+)/)?.[0]); -// boundary=Asrf456BGe4h -``` - -Returns the value of the header. - -### AxiosHeaders#has(header, matcher?) - -``` -has(header: string, matcher?: AxiosHeaderMatcher): boolean; -``` - -Returns `true` if the header is set (has no `undefined` value). - -### AxiosHeaders#delete(header, matcher?) - -``` -delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; -``` - -Returns `true` if at least one header has been removed. - -### AxiosHeaders#clear(matcher?) - -``` -clear(matcher?: AxiosHeaderMatcher): boolean; -``` - -Removes all headers. -Unlike the `delete` method matcher, this optional matcher will be used to match against the header name rather than the value. - -```ts -const headers = new AxiosHeaders({ - foo: '1', - 'x-foo': '2', - 'x-bar': '3', -}); - -console.log(headers.clear(/^x-/)); // true - -console.log(headers.toJSON()); // [Object: null prototype] { foo: '1' } -``` - -Returns `true` if at least one header has been cleared. - -### AxiosHeaders#normalize(format); - -If the headers object was changed directly, it can have duplicates with the same name but in different cases. -This method normalizes the headers object by combining duplicate keys into one. -Axios uses this method internally after calling each interceptor. -Set `format` to true for converting header names to lowercase and capitalizing the initial letters (`cOntEnt-type` => `Content-Type`) - -```js -const headers = new AxiosHeaders({ - foo: '1', -}); - -headers.Foo = '2'; -headers.FOO = '3'; - -console.log(headers.toJSON()); // [Object: null prototype] { foo: '1', Foo: '2', FOO: '3' } -console.log(headers.normalize().toJSON()); // [Object: null prototype] { foo: '3' } -console.log(headers.normalize(true).toJSON()); // [Object: null prototype] { Foo: '3' } -``` - -Returns `this`. - -### AxiosHeaders#concat(...targets) - -``` -concat(...targets: Array): AxiosHeaders; -``` - -Merges the instance with targets into a new `AxiosHeaders` instance. If the target is a string, it will be parsed as RAW HTTP headers. - -Returns a new `AxiosHeaders` instance. - -### AxiosHeaders#toJSON(asStrings?) - -``` -toJSON(asStrings?: boolean): RawAxiosHeaders; -``` - -Resolve all internal header values into a new null prototype object. -Set `asStrings` to true to resolve arrays as a string containing all elements, separated by commas. - -### AxiosHeaders.from(thing?) - -``` -from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders; -``` - -Returns a new `AxiosHeaders` instance created from the raw headers passed in, -or simply returns the given headers object if it's an `AxiosHeaders` instance. - -### AxiosHeaders.concat(...targets) - -``` -concat(...targets: Array): AxiosHeaders; -``` - -Returns a new `AxiosHeaders` instance created by merging the target objects. - -### Shortcuts - -The following shortcuts are available: - -- `setContentType`, `getContentType`, `hasContentType` - -- `setContentLength`, `getContentLength`, `hasContentLength` - -- `setAccept`, `getAccept`, `hasAccept` - -- `setUserAgent`, `getUserAgent`, `hasUserAgent` - -- `setContentEncoding`, `getContentEncoding`, `hasContentEncoding` - -## 🔥 Fetch adapter - -Fetch adapter was introduced in `v1.7.0`. By default, it will be used if `xhr` and `http` adapters are not available in the build, -or not supported by the environment. -To use it by default, it must be selected explicitly: - -```js -const { data } = axios.get(url, { - adapter: 'fetch', // by default ['xhr', 'http', 'fetch'] -}); -``` - -You can create a separate instance for this: - -```js -const fetchAxios = axios.create({ - adapter: 'fetch', -}); - -const { data } = fetchAxios.get(url); -``` - -The adapter supports the same functionality as the `xhr` adapter, **including upload and download progress capturing**. -Also, it supports additional response types such as `stream` and `formdata` (if supported by the environment). - -### 🔥 Custom fetch - -Starting from `v1.12.0`, you can customize the fetch adapter to use a custom fetch API instead of environment globals. -You can pass a custom `fetch` function, `Request`, and `Response` constructors via env config. -This can be helpful in case of custom environments & app frameworks. - -Also, when using a custom fetch, you may need to set custom Request and Response too. If you don't set them, global objects will be used. -If your custom fetch api does not have these objects, and the globals are incompatible with a custom fetch, -you must disable their use inside the fetch adapter by passing null. - -> Note: Setting `Request` & `Response` to `null` will make it impossible for the fetch adapter to capture the upload & download progress. - -Basic example: - -```js -import customFetchFunction from 'customFetchModule'; - -const instance = axios.create({ - adapter: 'fetch', - onDownloadProgress(e) { - console.log('downloadProgress', e); - }, - env: { - fetch: customFetchFunction, - Request: null, // undefined -> use the global constructor - Response: null, - }, -}); -``` - -#### 🔥 Using with Tauri - -A minimal example of setting up Axios for use in a [Tauri](https://tauri.app/plugin/http-client/) app with a platform fetch function that ignores CORS policy for requests. - -```js -import { fetch } from '@tauri-apps/plugin-http'; -import axios from 'axios'; - -const instance = axios.create({ - adapter: 'fetch', - onDownloadProgress(e) { - console.log('downloadProgress', e); - }, - env: { - fetch, - }, -}); - -const { data } = await instance.get('https://google.com'); -``` - -#### 🔥 Using with SvelteKit - -[SvelteKit](https://svelte.dev/docs/kit/web-standards#Fetch-APIs) framework has a custom implementation of the fetch function for server rendering (so called `load` functions), and also uses relative paths, -which makes it incompatible with the standard URL API. So, Axios must be configured to use the custom fetch API: - -```js -export async function load({ fetch }) { - const { data: post } = await axios.get('https://jsonplaceholder.typicode.com/posts/1', { - adapter: 'fetch', - env: { - fetch, - Request: null, - Response: null, - }, - }); - - return { post }; -} -``` - -#### HTTP/2 Support - -Axios supports HTTP/2 via the Node.js `http` adapter (introduced in v1.13.0). - -This support depends on the runtime environment. Since Axios relies on Node.js APIs, HTTP/2 functionality is available in supported Node.js versions, but may not work in other environments (such as Bun or Deno). - -Options like `httpVersion` and `http2Options` are adapter-specific and may not behave consistently across all environments. - -Note: HTTP/2 redirects are currently not supported by the HTTP/2 adapter. - -```js -const form = new FormData(); - -form.append('foo', '123'); - -const { data, headers, status } = await axios.post('https://httpbin.org/post', form, { - onUploadProgress(e) { - console.log('upload progress', e); - }, - onDownloadProgress(e) { - console.log('download progress', e); - }, - responseType: 'arraybuffer', -}); -``` - -## Semver - -Since Axios has reached a `v.1.0.0` we will fully embrace semver as per the spec [here](https://semver.org/) - -## Promises - -axios depends on a native ES6 Promise implementation to be [supported](https://caniuse.com/promises). -If your environment doesn't support ES6 Promises, you can [polyfill](https://github.com/jakearchibald/es6-promise). - -## TypeScript - -axios includes [TypeScript](https://typescriptlang.org) definitions and a type guard for axios errors. - -```typescript -let user: User = null; -try { - const { data } = await axios.get('/user?ID=12345'); - user = data.userDetails; -} catch (error) { - if (axios.isAxiosError(error)) { - handleAxiosError(error); - } else { - handleUnexpectedError(error); - } -} -``` - -Because axios dual publishes with an ESM default export and a CJS `module.exports`, there are some caveats. -The recommended setting is to use `"moduleResolution": "node16"` (this is implied by `"module": "node16"`). Note that this requires TypeScript 4.7 or greater. -If use ESM, your settings should be fine. -If you compile TypeScript to CJS and you can’t use `"moduleResolution": "node 16"`, you have to enable `esModuleInterop`. -If you use TypeScript to type check CJS JavaScript code, your only option is to use `"moduleResolution": "node16"`. - -You can also create a custom instance with typed interceptors: - -```typescript -import axios, { AxiosInstance, InternalAxiosRequestConfig } from 'axios'; - -const apiClient: AxiosInstance = axios.create({ - baseURL: 'https://api.example.com', - timeout: 10000, -}); - -apiClient.interceptors.request.use((config: InternalAxiosRequestConfig) => { - // Add auth token - return config; -}); -``` - -## Online one-click setup - -You can use Gitpod, an online IDE(which is free for Open Source) for contributing or running the examples online. - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/axios/axios/blob/main/examples/server.js) - -## Contributing - -### Local setup - -As a supply-chain hardening measure, this repository ships a project-level `.npmrc` that sets `ignore-scripts=true`. This blocks npm lifecycle scripts (`preinstall`, `install`, `postinstall`, `prepare`) from any direct or transitive dependency when you run `npm install` or `npm ci` inside the repo. See [THREATMODEL.md](./THREATMODEL.md) (threat T-S2) for the rationale. - -One consequence: the repository's own `prepare` hook (which installs Husky's git hooks) will **not** run automatically. After your first install, enable the git hooks manually: - -```bash -npm ci -npm rebuild husky && npx husky -``` - -Run those two commands once per fresh checkout. You do **not** need to re-run them after every subsequent `npm install`. - -Do not remove `ignore-scripts=true` from `.npmrc` to "fix" this — that re-opens the lifecycle-script attack surface for every other package in the tree. All CI workflows already invoke npm with `--ignore-scripts`, so local behaviour matches CI. - -## Resources - -- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) -- [Ecosystem](https://github.com/axios/axios/blob/v1.x/ECOSYSTEM.md) -- [Contributing Guide](https://github.com/axios/axios/blob/v1.x/CONTRIBUTING.md) -- [Code of Conduct](https://github.com/axios/axios/blob/v1.x/CODE_OF_CONDUCT.md) - -## Credits - -axios is heavily inspired by the [$http service](https://docs.angularjs.org/api/ng/service/$http) provided in [AngularJS](https://angularjs.org/). Ultimately axios is an effort to provide a standalone `$http`-like service for use outside of AngularJS. - -## License - -[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) diff --git a/node_modules/axios/dist/axios.js b/node_modules/axios/dist/axios.js deleted file mode 100644 index b5300b9..0000000 --- a/node_modules/axios/dist/axios.js +++ /dev/null @@ -1,4892 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.axios = factory()); -})(this, (function () { 'use strict'; - - function _OverloadYield(e, d) { - this.v = e, this.k = d; - } - function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; - } - function _arrayWithHoles(r) { - if (Array.isArray(r)) return r; - } - function _arrayWithoutHoles(r) { - if (Array.isArray(r)) return _arrayLikeToArray(r); - } - function _assertThisInitialized(e) { - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e; - } - function _asyncGeneratorDelegate(t) { - var e = {}, - n = false; - function pump(e, r) { - return n = true, r = new Promise(function (n) { - n(t[e](r)); - }), { - done: false, - value: new _OverloadYield(r, 1) - }; - } - return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () { - return this; - }, e.next = function (t) { - return n ? (n = false, t) : pump("next", t); - }, "function" == typeof t.throw && (e.throw = function (t) { - if (n) throw n = false, t; - return pump("throw", t); - }), "function" == typeof t.return && (e.return = function (t) { - return n ? (n = false, t) : pump("return", t); - }), e; - } - function _asyncIterator(r) { - var n, - t, - o, - e = 2; - for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { - if (t && null != (n = r[t])) return n.call(r); - if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); - t = "@@asyncIterator", o = "@@iterator"; - } - throw new TypeError("Object is not async iterable"); - } - function AsyncFromSyncIterator(r) { - function AsyncFromSyncIteratorContinuation(r) { - if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); - var n = r.done; - return Promise.resolve(r.value).then(function (r) { - return { - value: r, - done: n - }; - }); - } - return AsyncFromSyncIterator = function (r) { - this.s = r, this.n = r.next; - }, AsyncFromSyncIterator.prototype = { - s: null, - n: null, - next: function () { - return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); - }, - return: function (r) { - var n = this.s.return; - return void 0 === n ? Promise.resolve({ - value: r, - done: true - }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); - }, - throw: function (r) { - var n = this.s.return; - return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); - } - }, new AsyncFromSyncIterator(r); - } - function asyncGeneratorStep(n, t, e, r, o, a, c) { - try { - var i = n[a](c), - u = i.value; - } catch (n) { - return void e(n); - } - i.done ? t(u) : Promise.resolve(u).then(r, o); - } - function _asyncToGenerator(n) { - return function () { - var t = this, - e = arguments; - return new Promise(function (r, o) { - var a = n.apply(t, e); - function _next(n) { - asyncGeneratorStep(a, r, o, _next, _throw, "next", n); - } - function _throw(n) { - asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); - } - _next(void 0); - }); - }; - } - function _awaitAsyncGenerator(e) { - return new _OverloadYield(e, 0); - } - function _callSuper(t, o, e) { - return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); - } - function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); - } - function _construct(t, e, r) { - if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); - var o = [null]; - o.push.apply(o, e); - var p = new (t.bind.apply(t, o))(); - return r && _setPrototypeOf(p, r.prototype), p; - } - function _defineProperties(e, r) { - for (var t = 0; t < r.length; t++) { - var o = r[t]; - o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o); - } - } - function _createClass(e, r, t) { - return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { - writable: false - }), e; - } - function _createForOfIteratorHelper(r, e) { - var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; - if (!t) { - if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { - t && (r = t); - var n = 0, - F = function () {}; - return { - s: F, - n: function () { - return n >= r.length ? { - done: true - } : { - done: false, - value: r[n++] - }; - }, - e: function (r) { - throw r; - }, - f: F - }; - } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - var o, - a = true, - u = false; - return { - s: function () { - t = t.call(r); - }, - n: function () { - var r = t.next(); - return a = r.done, r; - }, - e: function (r) { - u = true, o = r; - }, - f: function () { - try { - a || null == t.return || t.return(); - } finally { - if (u) throw o; - } - } - }; - } - function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: true, - configurable: true, - writable: true - }) : e[r] = t, e; - } - function _getPrototypeOf(t) { - return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { - return t.__proto__ || Object.getPrototypeOf(t); - }, _getPrototypeOf(t); - } - function _inherits(t, e) { - if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); - t.prototype = Object.create(e && e.prototype, { - constructor: { - value: t, - writable: true, - configurable: true - } - }), Object.defineProperty(t, "prototype", { - writable: false - }), e && _setPrototypeOf(t, e); - } - function _isNativeFunction(t) { - try { - return -1 !== Function.toString.call(t).indexOf("[native code]"); - } catch (n) { - return "function" == typeof t; - } - } - function _isNativeReflectConstruct() { - try { - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - } catch (t) {} - return (_isNativeReflectConstruct = function () { - return !!t; - })(); - } - function _iterableToArray(r) { - if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); - } - function _iterableToArrayLimit(r, l) { - var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; - if (null != t) { - var e, - n, - i, - u, - a = [], - f = true, - o = false; - try { - if (i = (t = t.call(r)).next, 0 === l) { - if (Object(t) !== t) return; - f = !1; - } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); - } catch (r) { - o = true, n = r; - } finally { - try { - if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; - } finally { - if (o) throw n; - } - } - return a; - } - } - function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function (r) { - return Object.getOwnPropertyDescriptor(e, r).enumerable; - })), t.push.apply(t, o); - } - return t; - } - function _objectSpread2(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), true).forEach(function (r) { - _defineProperty(e, r, t[r]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); - }); - } - return e; - } - function _possibleConstructorReturn(t, e) { - if (e && ("object" == typeof e || "function" == typeof e)) return e; - if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); - return _assertThisInitialized(t); - } - function _regenerator() { - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ - var e, - t, - r = "function" == typeof Symbol ? Symbol : {}, - n = r.iterator || "@@iterator", - o = r.toStringTag || "@@toStringTag"; - function i(r, n, o, i) { - var c = n && n.prototype instanceof Generator ? n : Generator, - u = Object.create(c.prototype); - return _regeneratorDefine(u, "_invoke", function (r, n, o) { - var i, - c, - u, - f = 0, - p = o || [], - y = false, - G = { - p: 0, - n: 0, - v: e, - a: d, - f: d.bind(e, 4), - d: function (t, r) { - return i = t, c = 0, u = e, G.n = r, a; - } - }; - function d(r, n) { - for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { - var o, - i = p[t], - d = G.p, - l = i[2]; - r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); - } - if (o || r > 1) return a; - throw y = true, n; - } - return function (o, p, l) { - if (f > 1) throw TypeError("Generator is already running"); - for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { - i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); - try { - if (f = 2, i) { - if (c || (o = "next"), t = i[o]) { - if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); - if (!t.done) return t; - u = t.value, c < 2 && (c = 0); - } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); - i = e; - } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; - } catch (t) { - i = e, c = 1, u = t; - } finally { - f = 1; - } - } - return { - value: t, - done: y - }; - }; - }(r, o, i), true), u; - } - var a = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - t = Object.getPrototypeOf; - var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () { - return this; - }), t), - u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); - function f(e) { - return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () { - return this; - }), _regeneratorDefine(u, "toString", function () { - return "[object Generator]"; - }), (_regenerator = function () { - return { - w: i, - m: f - }; - })(); - } - function _regeneratorDefine(e, r, n, t) { - var i = Object.defineProperty; - try { - i({}, "", {}); - } catch (e) { - i = 0; - } - _regeneratorDefine = function (e, r, n, t) { - function o(r, n) { - _regeneratorDefine(e, r, function (e) { - return this._invoke(r, n, e); - }); - } - r ? i ? i(e, r, { - value: n, - enumerable: !t, - configurable: !t, - writable: !t - }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); - }, _regeneratorDefine(e, r, n, t); - } - function _regeneratorValues(e) { - if (null != e) { - var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], - r = 0; - if (t) return t.call(e); - if ("function" == typeof e.next) return e; - if (!isNaN(e.length)) return { - next: function () { - return e && r >= e.length && (e = void 0), { - value: e && e[r++], - done: !e - }; - } - }; - } - throw new TypeError(typeof e + " is not iterable"); - } - function _setPrototypeOf(t, e) { - return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { - return t.__proto__ = e, t; - }, _setPrototypeOf(t, e); - } - function _slicedToArray(r, e) { - return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); - } - function _toConsumableArray(r) { - return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); - } - function _toPrimitive(t, r) { - if ("object" != typeof t || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r); - if ("object" != typeof i) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); - } - function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == typeof i ? i : i + ""; - } - function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); - } - function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return _arrayLikeToArray(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; - } - } - function _wrapAsyncGenerator(e) { - return function () { - return new AsyncGenerator(e.apply(this, arguments)); - }; - } - function AsyncGenerator(e) { - var r, t; - function resume(r, t) { - try { - var n = e[r](t), - o = n.value, - u = o instanceof _OverloadYield; - Promise.resolve(u ? o.v : o).then(function (t) { - if (u) { - var i = "return" === r ? "return" : "next"; - if (!o.k || t.done) return resume(i, t); - t = e[i](t).value; - } - settle(n.done ? "return" : "normal", t); - }, function (e) { - resume("throw", e); - }); - } catch (e) { - settle("throw", e); - } - } - function settle(e, n) { - switch (e) { - case "return": - r.resolve({ - value: n, - done: true - }); - break; - case "throw": - r.reject(n); - break; - default: - r.resolve({ - value: n, - done: false - }); - } - (r = r.next) ? resume(r.key, r.arg) : t = null; - } - this._invoke = function (e, n) { - return new Promise(function (o, u) { - var i = { - key: e, - arg: n, - resolve: o, - reject: u, - next: null - }; - t ? t = t.next = i : (r = t = i, resume(e, n)); - }); - }, "function" != typeof e.return && (this.return = void 0); - } - AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { - return this; - }, AsyncGenerator.prototype.next = function (e) { - return this._invoke("next", e); - }, AsyncGenerator.prototype.throw = function (e) { - return this._invoke("throw", e); - }, AsyncGenerator.prototype.return = function (e) { - return this._invoke("return", e); - }; - function _wrapNativeSuper(t) { - var r = "function" == typeof Map ? new Map() : void 0; - return _wrapNativeSuper = function (t) { - if (null === t || !_isNativeFunction(t)) return t; - if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); - if (void 0 !== r) { - if (r.has(t)) return r.get(t); - r.set(t, Wrapper); - } - function Wrapper() { - return _construct(t, arguments, _getPrototypeOf(this).constructor); - } - return Wrapper.prototype = Object.create(t.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }), _setPrototypeOf(Wrapper, t); - }, _wrapNativeSuper(t); - } - - /** - * Create a bound version of a function with a specified `this` context - * - * @param {Function} fn - The function to bind - * @param {*} thisArg - The value to be passed as the `this` parameter - * @returns {Function} A new function that will call the original function with the specified `this` context - */ - function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; - } - - // utils is a library of generic helper functions non-specific to axios - - var toString = Object.prototype.toString; - var getPrototypeOf = Object.getPrototypeOf; - var iterator = Symbol.iterator, - toStringTag = Symbol.toStringTag; - var kindOf = function (cache) { - return function (thing) { - var str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); - }; - }(Object.create(null)); - var kindOfTest = function kindOfTest(type) { - type = type.toLowerCase(); - return function (thing) { - return kindOf(thing) === type; - }; - }; - var typeOfTest = function typeOfTest(type) { - return function (thing) { - return _typeof(thing) === type; - }; - }; - - /** - * Determine if a value is a non-null object - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ - var isArray = Array.isArray; - - /** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ - var isUndefined = typeOfTest('undefined'); - - /** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ - function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val); - } - - /** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ - var isArrayBuffer = kindOfTest('ArrayBuffer'); - - /** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ - function isArrayBufferView(val) { - var result; - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; - } - - /** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ - var isString = typeOfTest('string'); - - /** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ - var isFunction$1 = typeOfTest('function'); - - /** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ - var isNumber = typeOfTest('number'); - - /** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ - var isObject = function isObject(thing) { - return thing !== null && _typeof(thing) === 'object'; - }; - - /** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ - var isBoolean = function isBoolean(thing) { - return thing === true || thing === false; - }; - - /** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ - var isPlainObject = function isPlainObject(val) { - if (kindOf(val) !== 'object') { - return false; - } - var prototype = getPrototypeOf(val); - return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); - }; - - /** - * Determine if a value is an empty object (safely handles Buffers) - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an empty object, otherwise false - */ - var isEmptyObject = function isEmptyObject(val) { - // Early return for non-objects or Buffers to prevent RangeError - if (!isObject(val) || isBuffer(val)) { - return false; - } - try { - return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; - } catch (e) { - // Fallback for any other objects that might cause RangeError with Object.keys() - return false; - } - }; - - /** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ - var isDate = kindOfTest('Date'); - - /** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ - var isFile = kindOfTest('File'); - - /** - * Determine if a value is a React Native Blob - * React Native "blob": an object with a `uri` attribute. Optionally, it can - * also have a `name` and `type` attribute to specify filename and content type - * - * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * - * @param {*} value The value to test - * - * @returns {boolean} True if value is a React Native Blob, otherwise false - */ - var isReactNativeBlob = function isReactNativeBlob(value) { - return !!(value && typeof value.uri !== 'undefined'); - }; - - /** - * Determine if environment is React Native - * ReactNative `FormData` has a non-standard `getParts()` method - * - * @param {*} formData The formData to test - * - * @returns {boolean} True if environment is React Native, otherwise false - */ - var isReactNative = function isReactNative(formData) { - return formData && typeof formData.getParts !== 'undefined'; - }; - - /** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ - var isBlob = kindOfTest('Blob'); - - /** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a FileList, otherwise false - */ - var isFileList = kindOfTest('FileList'); - - /** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ - var isStream = function isStream(val) { - return isObject(val) && isFunction$1(val.pipe); - }; - - /** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ - function getGlobal() { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - return {}; - } - var G = getGlobal(); - var FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; - var isFormData = function isFormData(thing) { - if (!thing) return false; - if (FormDataCtor && thing instanceof FormDataCtor) return true; - // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. - var proto = getPrototypeOf(thing); - if (!proto || proto === Object.prototype) return false; - if (!isFunction$1(thing.append)) return false; - var kind = kindOf(thing); - return kind === 'formdata' || - // detect form-data instance - kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'; - }; - - /** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ - var isURLSearchParams = kindOfTest('URLSearchParams'); - var _map = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest), - _map2 = _slicedToArray(_map, 4), - isReadableStream = _map2[0], - isRequest = _map2[1], - isResponse = _map2[2], - isHeaders = _map2[3]; - - /** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ - var trim = function trim(str) { - return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); - }; - /** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys = false] - * @returns {any} - */ - function forEach(obj, fn) { - var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - _ref$allOwnKeys = _ref.allOwnKeys, - allOwnKeys = _ref$allOwnKeys === void 0 ? false : _ref$allOwnKeys; - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - var i; - var l; - - // Force an array if not already something iterable - if (_typeof(obj) !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Buffer check - if (isBuffer(obj)) { - return; - } - - // Iterate over object keys - var keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - var len = keys.length; - var key; - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } - } - - /** - * Finds a key in an object, case-insensitive, returning the actual key name. - * Returns null if the object is a Buffer or if no match is found. - * - * @param {Object} obj - The object to search. - * @param {string} key - The key to find (case-insensitive). - * @returns {?string} The actual key name if found, otherwise null. - */ - function findKey(obj, key) { - if (isBuffer(obj)) { - return null; - } - key = key.toLowerCase(); - var keys = Object.keys(obj); - var i = keys.length; - var _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; - } - var _global = function () { - /*eslint no-undef:0*/ - if (typeof globalThis !== 'undefined') return globalThis; - return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; - }(); - var isContextDefined = function isContextDefined(context) { - return !isUndefined(context) && context !== _global; - }; - - /** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * const result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ - function merge() { - var _ref2 = isContextDefined(this) && this || {}, - caseless = _ref2.caseless, - skipUndefined = _ref2.skipUndefined; - var result = {}; - var assignValue = function assignValue(val, key) { - // Skip dangerous property names to prevent prototype pollution - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return; - } - var targetKey = caseless && findKey(result, key) || key; - // Read via own-prop only — a bare `result[targetKey]` walks the prototype - // chain, so a polluted Object.prototype value could surface here and get - // copied into the merged result. - var existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; - if (isPlainObject(existing) && isPlainObject(val)) { - result[targetKey] = merge(existing, val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else if (!skipUndefined || !isUndefined(val)) { - result[targetKey] = val; - } - }; - for (var _len = arguments.length, objs = new Array(_len), _key2 = 0; _key2 < _len; _key2++) { - objs[_key2] = arguments[_key2]; - } - for (var i = 0, l = objs.length; i < l; i++) { - objs[i] && forEach(objs[i], assignValue); - } - return result; - } - - /** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys] - * @returns {Object} The resulting value of object a - */ - var extend = function extend(a, b, thisArg) { - var _ref3 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, - allOwnKeys = _ref3.allOwnKeys; - forEach(b, function (val, key) { - if (thisArg && isFunction$1(val)) { - Object.defineProperty(a, key, { - // Null-proto descriptor so a polluted Object.prototype.get cannot - // hijack defineProperty's accessor-vs-data resolution. - __proto__: null, - value: bind(val, thisArg), - writable: true, - enumerable: true, - configurable: true - }); - } else { - Object.defineProperty(a, key, { - __proto__: null, - value: val, - writable: true, - enumerable: true, - configurable: true - }); - } - }, { - allOwnKeys: allOwnKeys - }); - return a; - }; - - /** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ - var stripBOM = function stripBOM(content) { - if (content.charCodeAt(0) === 0xfeff) { - content = content.slice(1); - } - return content; - }; - - /** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ - var inherits = function inherits(constructor, superConstructor, props, descriptors) { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - Object.defineProperty(constructor.prototype, 'constructor', { - __proto__: null, - value: constructor, - writable: true, - enumerable: false, - configurable: true - }); - Object.defineProperty(constructor, 'super', { - __proto__: null, - value: superConstructor.prototype - }); - props && Object.assign(constructor.prototype, props); - }; - - /** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ - var toFlatObject = function toFlatObject(sourceObj, destObj, filter, propFilter) { - var props; - var i; - var prop; - var merged = {}; - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - return destObj; - }; - - /** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ - var endsWith = function endsWith(str, searchString, position) { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - var lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - - /** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ - var toArray = function toArray(thing) { - if (!thing) return null; - if (isArray(thing)) return thing; - var i = thing.length; - if (!isNumber(i)) return null; - var arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; - }; - - /** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ - // eslint-disable-next-line func-names - var isTypedArray = function (TypedArray) { - // eslint-disable-next-line func-names - return function (thing) { - return TypedArray && thing instanceof TypedArray; - }; - }(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - - /** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ - var forEachEntry = function forEachEntry(obj, fn) { - var generator = obj && obj[iterator]; - var _iterator = generator.call(obj); - var result; - while ((result = _iterator.next()) && !result.done) { - var pair = result.value; - fn.call(obj, pair[0], pair[1]); - } - }; - - /** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ - var matchAll = function matchAll(regExp, str) { - var matches; - var arr = []; - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - return arr; - }; - - /* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ - var isHTMLForm = kindOfTest('HTMLFormElement'); - var toCamelCase = function toCamelCase(str) { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - }); - }; - - /* Creating a function that will check if an object has a property. */ - var hasOwnProperty = function (_ref4) { - var hasOwnProperty = _ref4.hasOwnProperty; - return function (obj, prop) { - return hasOwnProperty.call(obj, prop); - }; - }(Object.prototype); - - /** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ - var isRegExp = kindOfTest('RegExp'); - var reduceDescriptors = function reduceDescriptors(obj, reducer) { - var descriptors = Object.getOwnPropertyDescriptors(obj); - var reducedDescriptors = {}; - forEach(descriptors, function (descriptor, name) { - var ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - Object.defineProperties(obj, reducedDescriptors); - }; - - /** - * Makes all methods read-only - * @param {Object} obj - */ - - var freezeMethods = function freezeMethods(obj) { - reduceDescriptors(obj, function (descriptor, name) { - // skip restricted props in strict mode - if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].includes(name)) { - return false; - } - var value = obj[name]; - if (!isFunction$1(value)) return; - descriptor.enumerable = false; - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - if (!descriptor.set) { - descriptor.set = function () { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); - }; - - /** - * Converts an array or a delimited string into an object set with values as keys and true as values. - * Useful for fast membership checks. - * - * @param {Array|string} arrayOrString - The array or string to convert. - * @param {string} delimiter - The delimiter to use if input is a string. - * @returns {Object} An object with keys from the array or string, values set to true. - */ - var toObjectSet = function toObjectSet(arrayOrString, delimiter) { - var obj = {}; - var define = function define(arr) { - arr.forEach(function (value) { - obj[value] = true; - }); - }; - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - return obj; - }; - var noop = function noop() {}; - var toFiniteNumber = function toFiniteNumber(value, defaultValue) { - return value != null && Number.isFinite(value = +value) ? value : defaultValue; - }; - - /** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ - function isSpecCompliantForm(thing) { - return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); - } - - /** - * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. - * - * @param {Object} obj - The object to convert. - * @returns {Object} The JSON-compatible object. - */ - var toJSONObject = function toJSONObject(obj) { - var visited = new WeakSet(); - var _visit = function visit(source) { - if (isObject(source)) { - if (visited.has(source)) { - return; - } - - //Buffer check - if (isBuffer(source)) { - return source; - } - if (!('toJSON' in source)) { - // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). - visited.add(source); - var target = isArray(source) ? [] : {}; - forEach(source, function (value, key) { - var reducedValue = _visit(value); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - visited["delete"](source); - return target; - } - } - return source; - }; - return _visit(obj); - }; - - /** - * Determines if a value is an async function. - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is an async function, otherwise false. - */ - var isAsyncFn = kindOfTest('AsyncFunction'); - - /** - * Determines if a value is thenable (has then and catch methods). - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is thenable, otherwise false. - */ - var isThenable = function isThenable(thing) { - return thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing["catch"]); - }; - - // original code - // https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - - /** - * Provides a cross-platform setImmediate implementation. - * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. - * - * @param {boolean} setImmediateSupported - Whether setImmediate is supported. - * @param {boolean} postMessageSupported - Whether postMessage is supported. - * @returns {Function} A function to schedule a callback asynchronously. - */ - var _setImmediate = function (setImmediateSupported, postMessageSupported) { - if (setImmediateSupported) { - return setImmediate; - } - return postMessageSupported ? function (token, callbacks) { - _global.addEventListener('message', function (_ref5) { - var source = _ref5.source, - data = _ref5.data; - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, false); - return function (cb) { - callbacks.push(cb); - _global.postMessage(token, '*'); - }; - }("axios@".concat(Math.random()), []) : function (cb) { - return setTimeout(cb); - }; - }(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); - - /** - * Schedules a microtask or asynchronous callback as soon as possible. - * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. - * - * @type {Function} - */ - var asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate; - - // ********************* - - var isIterable = function isIterable(thing) { - return thing != null && isFunction$1(thing[iterator]); - }; - var utils$1 = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isBoolean: isBoolean, - isObject: isObject, - isPlainObject: isPlainObject, - isEmptyObject: isEmptyObject, - isReadableStream: isReadableStream, - isRequest: isRequest, - isResponse: isResponse, - isHeaders: isHeaders, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isReactNativeBlob: isReactNativeBlob, - isReactNative: isReactNative, - isBlob: isBlob, - isRegExp: isRegExp, - isFunction: isFunction$1, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isTypedArray: isTypedArray, - isFileList: isFileList, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM, - inherits: inherits, - toFlatObject: toFlatObject, - kindOf: kindOf, - kindOfTest: kindOfTest, - endsWith: endsWith, - toArray: toArray, - forEachEntry: forEachEntry, - matchAll: matchAll, - isHTMLForm: isHTMLForm, - hasOwnProperty: hasOwnProperty, - hasOwnProp: hasOwnProperty, - // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors: reduceDescriptors, - freezeMethods: freezeMethods, - toObjectSet: toObjectSet, - toCamelCase: toCamelCase, - noop: noop, - toFiniteNumber: toFiniteNumber, - findKey: findKey, - global: _global, - isContextDefined: isContextDefined, - isSpecCompliantForm: isSpecCompliantForm, - toJSONObject: toJSONObject, - isAsyncFn: isAsyncFn, - isThenable: isThenable, - setImmediate: _setImmediate, - asap: asap, - isIterable: isIterable - }; - - // RawAxiosHeaders whose duplicates are ignored by node - // c.f. https://nodejs.org/api/http.html#http_message_headers - var ignoreDuplicateOf = utils$1.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']); - - /** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ - var parseHeaders = (function (rawHeaders) { - var parsed = {}; - var key; - var val; - var i; - rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - if (!key || parsed[key] && ignoreDuplicateOf[key]) { - return; - } - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - return parsed; - }); - - function trimSPorHTAB(str) { - var start = 0; - var end = str.length; - while (start < end) { - var code = str.charCodeAt(start); - if (code !== 0x09 && code !== 0x20) { - break; - } - start += 1; - } - while (end > start) { - var _code = str.charCodeAt(end - 1); - if (_code !== 0x09 && _code !== 0x20) { - break; - } - end -= 1; - } - return start === 0 && end === str.length ? str : str.slice(start, end); - } - - // The control-code ranges are intentional: header sanitization strips C0/DEL bytes. - // eslint-disable-next-line no-control-regex - var INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+", 'g'); - // eslint-disable-next-line no-control-regex - var INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+", 'g'); - function sanitizeValue(value, invalidChars) { - if (utils$1.isArray(value)) { - return value.map(function (item) { - return sanitizeValue(item, invalidChars); - }); - } - return trimSPorHTAB(String(value).replace(invalidChars, '')); - } - var sanitizeHeaderValue = function sanitizeHeaderValue(value) { - return sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); - }; - var sanitizeByteStringHeaderValue = function sanitizeByteStringHeaderValue(value) { - return sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); - }; - function toByteStringHeaderObject(headers) { - var byteStringHeaders = Object.create(null); - utils$1.forEach(headers.toJSON(), function (value, header) { - byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); - }); - return byteStringHeaders; - } - - var $internals = Symbol('internals'); - function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); - } - function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); - } - function parseTokens(str) { - var tokens = Object.create(null); - var tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - var match; - while (match = tokensRE.exec(str)) { - tokens[match[1]] = match[2]; - } - return tokens; - } - var isValidHeaderName = function isValidHeaderName(str) { - return /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - }; - function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (utils$1.isFunction(filter)) { - return filter.call(this, value, header); - } - if (isHeaderNameFilter) { - value = header; - } - if (!utils$1.isString(value)) return; - if (utils$1.isString(filter)) { - return value.indexOf(filter) !== -1; - } - if (utils$1.isRegExp(filter)) { - return filter.test(value); - } - } - function formatHeader(header) { - return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, function (w, _char, str) { - return _char.toUpperCase() + str; - }); - } - function buildAccessors(obj, header) { - var accessorName = utils$1.toCamelCase(' ' + header); - ['get', 'set', 'has'].forEach(function (methodName) { - Object.defineProperty(obj, methodName + accessorName, { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: function value(arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true - }); - }); - } - var AxiosHeaders = /*#__PURE__*/function () { - function AxiosHeaders(headers) { - _classCallCheck(this, AxiosHeaders); - headers && this.set(headers); - } - return _createClass(AxiosHeaders, [{ - key: "set", - value: function set(header, valueOrRewrite, rewrite) { - var self = this; - function setHeader(_value, _header, _rewrite) { - var lHeader = normalizeHeader(_header); - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - var key = utils$1.findKey(self, lHeader); - if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) { - self[key || _header] = normalizeValue(_value); - } - } - var setHeaders = function setHeaders(headers, _rewrite) { - return utils$1.forEach(headers, function (_value, _header) { - return setHeader(_value, _header, _rewrite); - }); - }; - if (utils$1.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders(header), valueOrRewrite); - } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { - var obj = {}, - dest, - key; - var _iterator = _createForOfIteratorHelper(header), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var entry = _step.value; - if (!utils$1.isArray(entry)) { - throw TypeError('Object iterator must return a key-value pair'); - } - obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [].concat(_toConsumableArray(dest), [entry[1]]) : [dest, entry[1]] : entry[1]; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - setHeaders(obj, valueOrRewrite); - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - return this; - } - }, { - key: "get", - value: function get(header, parser) { - header = normalizeHeader(header); - if (header) { - var key = utils$1.findKey(this, header); - if (key) { - var value = this[key]; - if (!parser) { - return value; - } - if (parser === true) { - return parseTokens(value); - } - if (utils$1.isFunction(parser)) { - return parser.call(this, value, key); - } - if (utils$1.isRegExp(parser)) { - return parser.exec(value); - } - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - }, { - key: "has", - value: function has(header, matcher) { - header = normalizeHeader(header); - if (header) { - var key = utils$1.findKey(this, header); - return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); - } - return false; - } - }, { - key: "delete", - value: function _delete(header, matcher) { - var self = this; - var deleted = false; - function deleteHeader(_header) { - _header = normalizeHeader(_header); - if (_header) { - var key = utils$1.findKey(self, _header); - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - deleted = true; - } - } - } - if (utils$1.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - return deleted; - } - }, { - key: "clear", - value: function clear(matcher) { - var keys = Object.keys(this); - var i = keys.length; - var deleted = false; - while (i--) { - var key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - return deleted; - } - }, { - key: "normalize", - value: function normalize(format) { - var self = this; - var headers = {}; - utils$1.forEach(this, function (value, header) { - var key = utils$1.findKey(headers, header); - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - var normalized = format ? formatHeader(header) : String(header).trim(); - if (normalized !== header) { - delete self[header]; - } - self[normalized] = normalizeValue(value); - headers[normalized] = true; - }); - return this; - } - }, { - key: "concat", - value: function concat() { - var _this$constructor; - for (var _len = arguments.length, targets = new Array(_len), _key = 0; _key < _len; _key++) { - targets[_key] = arguments[_key]; - } - return (_this$constructor = this.constructor).concat.apply(_this$constructor, [this].concat(targets)); - } - }, { - key: "toJSON", - value: function toJSON(asStrings) { - var obj = Object.create(null); - utils$1.forEach(this, function (value, header) { - value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); - }); - return obj; - } - }, { - key: Symbol.iterator, - value: function value() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - }, { - key: "toString", - value: function toString() { - return Object.entries(this.toJSON()).map(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - header = _ref2[0], - value = _ref2[1]; - return header + ': ' + value; - }).join('\n'); - } - }, { - key: "getSetCookie", - value: function getSetCookie() { - return this.get('set-cookie') || []; - } - }, { - key: Symbol.toStringTag, - get: function get() { - return 'AxiosHeaders'; - } - }], [{ - key: "from", - value: function from(thing) { - return thing instanceof this ? thing : new this(thing); - } - }, { - key: "concat", - value: function concat(first) { - var computed = new this(first); - for (var _len2 = arguments.length, targets = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - targets[_key2 - 1] = arguments[_key2]; - } - targets.forEach(function (target) { - return computed.set(target); - }); - return computed; - } - }, { - key: "accessor", - value: function accessor(header) { - var internals = this[$internals] = this[$internals] = { - accessors: {} - }; - var accessors = internals.accessors; - var prototype = this.prototype; - function defineAccessor(_header) { - var lHeader = normalizeHeader(_header); - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - return this; - } - }]); - }(); - AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); - - // reserved names hotfix - utils$1.reduceDescriptors(AxiosHeaders.prototype, function (_ref3, key) { - var value = _ref3.value; - var mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: function get() { - return value; - }, - set: function set(headerValue) { - this[mapped] = headerValue; - } - }; - }); - utils$1.freezeMethods(AxiosHeaders); - - var REDACTED = '[REDACTED ****]'; - function hasOwnOrPrototypeToJSON(source) { - if (utils$1.hasOwnProp(source, 'toJSON')) { - return true; - } - var prototype = Object.getPrototypeOf(source); - while (prototype && prototype !== Object.prototype) { - if (utils$1.hasOwnProp(prototype, 'toJSON')) { - return true; - } - prototype = Object.getPrototypeOf(prototype); - } - return false; - } - - // Build a plain-object snapshot of `config` and replace the value of any key - // (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays - // and AxiosHeaders, and short-circuits on circular references. - function redactConfig(config, redactKeys) { - var lowerKeys = new Set(redactKeys.map(function (k) { - return String(k).toLowerCase(); - })); - var seen = []; - var _visit = function visit(source) { - if (source === null || _typeof(source) !== 'object') return source; - if (utils$1.isBuffer(source)) return source; - if (seen.indexOf(source) !== -1) return undefined; - if (source instanceof AxiosHeaders) { - source = source.toJSON(); - } - seen.push(source); - var result; - if (utils$1.isArray(source)) { - result = []; - source.forEach(function (v, i) { - var reducedValue = _visit(v); - if (!utils$1.isUndefined(reducedValue)) { - result[i] = reducedValue; - } - }); - } else { - if (!utils$1.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { - seen.pop(); - return source; - } - result = Object.create(null); - for (var _i = 0, _Object$entries = Object.entries(source); _i < _Object$entries.length; _i++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), - key = _Object$entries$_i[0], - value = _Object$entries$_i[1]; - var reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : _visit(value); - if (!utils$1.isUndefined(reducedValue)) { - result[key] = reducedValue; - } - } - } - seen.pop(); - return result; - }; - return _visit(config); - } - var AxiosError = /*#__PURE__*/function (_Error) { - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - function AxiosError(message, code, config, request, response) { - var _this; - _classCallCheck(this, AxiosError); - _this = _callSuper(this, AxiosError, [message]); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(_this, 'message', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: message, - enumerable: true, - writable: true, - configurable: true - }); - _this.name = 'AxiosError'; - _this.isAxiosError = true; - code && (_this.code = code); - config && (_this.config = config); - request && (_this.request = request); - if (response) { - _this.response = response; - _this.status = response.status; - } - return _this; - } - _inherits(AxiosError, _Error); - return _createClass(AxiosError, [{ - key: "toJSON", - value: function toJSON() { - // Opt-in redaction: when the request config carries a `redact` array, the - // value of any matching key (case-insensitive, at any depth) is replaced - // with REDACTED in the serialized snapshot. Undefined or empty leaves the - // existing serialization behavior unchanged. - var config = this.config; - var redactKeys = config && utils$1.hasOwnProp(config, 'redact') ? config.redact : undefined; - var serializedConfig = utils$1.isArray(redactKeys) && redactKeys.length > 0 ? redactConfig(config, redactKeys) : utils$1.toJSONObject(config); - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: serializedConfig, - code: this.code, - status: this.status - }; - } - }], [{ - key: "from", - value: function from(error, code, config, request, response, customProps) { - var axiosError = new AxiosError(error.message, code || error.code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - - // Preserve status from the original error if not already set from response - if (error.status != null && axiosError.status == null) { - axiosError.status = error.status; - } - customProps && Object.assign(axiosError, customProps); - return axiosError; - } - }]); - }(/*#__PURE__*/_wrapNativeSuper(Error)); // This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. - AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; - AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; - AxiosError.ECONNABORTED = 'ECONNABORTED'; - AxiosError.ETIMEDOUT = 'ETIMEDOUT'; - AxiosError.ECONNREFUSED = 'ECONNREFUSED'; - AxiosError.ERR_NETWORK = 'ERR_NETWORK'; - AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; - AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; - AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; - AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; - AxiosError.ERR_CANCELED = 'ERR_CANCELED'; - AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; - AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; - AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - - // eslint-disable-next-line strict - var httpAdapter = null; - - /** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ - function isVisitable(thing) { - return utils$1.isPlainObject(thing) || utils$1.isArray(thing); - } - - /** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ - function removeBrackets(key) { - return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; - } - - /** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ - function renderKey(path, key, dots) { - if (!path) return key; - return path.concat(key).map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }).join(dots ? '.' : ''); - } - - /** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ - function isFlatArray(arr) { - return utils$1.isArray(arr) && !arr.some(isVisitable); - } - var predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); - }); - - /** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - - /** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ - function toFormData(obj, formData, options) { - if (!utils$1.isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (FormData)(); - - // eslint-disable-next-line no-param-reassign - options = utils$1.toFlatObject(options, { - metaTokens: true, - dots: false, - indexes: false - }, false, function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !utils$1.isUndefined(source[option]); - }); - var metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - var visitor = options.visitor || defaultVisitor; - var dots = options.dots; - var indexes = options.indexes; - var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; - var maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; - var useBlob = _Blob && utils$1.isSpecCompliantForm(formData); - if (!utils$1.isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - function convertValue(value) { - if (value === null) return ''; - if (utils$1.isDate(value)) { - return value.toISOString(); - } - if (utils$1.isBoolean(value)) { - return value.toString(); - } - if (!useBlob && utils$1.isBlob(value)) { - throw new AxiosError('Blob is not supported. Use a Buffer instead.'); - } - if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - var arr = value; - if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - if (value && !path && _typeof(value) === 'object') { - if (utils$1.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - arr.forEach(function each(el, index) { - !(utils$1.isUndefined(el) || el === null) && formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el)); - }); - return false; - } - } - if (isVisitable(value)) { - return true; - } - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - var stack = []; - var exposedHelpers = Object.assign(predicates, { - defaultVisitor: defaultVisitor, - convertValue: convertValue, - isVisitable: isVisitable - }); - function build(value, path) { - var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - if (utils$1.isUndefined(value)) return; - if (depth > maxDepth) { - throw new AxiosError('Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED); - } - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - stack.push(value); - utils$1.forEach(value, function each(el, key) { - var result = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); - if (result === true) { - build(el, path ? path.concat(key) : [key], depth + 1); - } - }); - stack.pop(); - } - if (!utils$1.isObject(obj)) { - throw new TypeError('data must be an object'); - } - build(obj); - return formData; - } - - /** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ - function encode$1(str) { - var charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' - }; - return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { - return charMap[match]; - }); - } - - /** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ - function AxiosURLSearchParams(params, options) { - this._pairs = []; - params && toFormData(params, this, options); - } - var prototype = AxiosURLSearchParams.prototype; - prototype.append = function append(name, value) { - this._pairs.push([name, value]); - }; - prototype.toString = function toString(encoder) { - var _encode = encoder ? function (value) { - return encoder.call(this, value, encode$1); - } : encode$1; - return this._pairs.map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '').join('&'); - }; - - /** - * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with - * their plain counterparts (`:`, `$`, `,`, `+`). - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ - function encode(val) { - return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+'); - } - - /** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ - function buildURL(url, params, options) { - if (!params) { - return url; - } - var _encode = options && options.encode || encode; - var _options = utils$1.isFunction(options) ? { - serialize: options - } : options; - var serializeFn = _options && _options.serialize; - var serializedParams; - if (serializeFn) { - serializedParams = serializeFn(params, _options); - } else { - serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode); - } - if (serializedParams) { - var hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - return url; - } - - var InterceptorManager = /*#__PURE__*/function () { - function InterceptorManager() { - _classCallCheck(this, InterceptorManager); - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * @param {Object} options The options for the interceptor, synchronous and runWhen - * - * @return {Number} An ID used to remove interceptor later - */ - return _createClass(InterceptorManager, [{ - key: "use", - value: function use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {void} - */ - }, { - key: "eject", - value: function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - }, { - key: "clear", - value: function clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - }, { - key: "forEach", - value: function forEach(fn) { - utils$1.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } - }]); - }(); - - var transitionalDefaults = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false, - legacyInterceptorReqResOrdering: true - }; - - var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; - - var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; - - var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; - - var platform$1 = { - isBrowser: true, - classes: { - URLSearchParams: URLSearchParams$1, - FormData: FormData$1, - Blob: Blob$1 - }, - protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] - }; - - var hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; - var _navigator = (typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) === 'object' && navigator || undefined; - - /** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ - var hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - - /** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ - var hasStandardBrowserWebWorkerEnv = function () { - return typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && typeof self.importScripts === 'function'; - }(); - var origin = hasBrowserEnv && window.location.href || 'http://localhost'; - - var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - hasBrowserEnv: hasBrowserEnv, - hasStandardBrowserEnv: hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, - navigator: _navigator, - origin: origin - }); - - var platform = _objectSpread2(_objectSpread2({}, utils), platform$1); - - function toURLEncodedForm(data, options) { - return toFormData(data, new platform.classes.URLSearchParams(), _objectSpread2({ - visitor: function visitor(value, key, path, helpers) { - if (platform.isNode && utils$1.isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - return helpers.defaultVisitor.apply(this, arguments); - } - }, options)); - } - - /** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ - function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(function (match) { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); - } - - /** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ - function arrayToObject(arr) { - var obj = {}; - var keys = Object.keys(arr); - var i; - var len = keys.length; - var key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; - } - - /** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ - function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - var name = path[index++]; - if (name === '__proto__') return true; - var isNumericKey = Number.isFinite(+name); - var isLast = index >= path.length; - name = !name && utils$1.isArray(target) ? target.length : name; - if (isLast) { - if (utils$1.hasOwnProp(target, name)) { - target[name] = utils$1.isArray(target[name]) ? target[name].concat(value) : [target[name], value]; - } else { - target[name] = value; - } - return !isNumericKey; - } - if (!utils$1.hasOwnProp(target, name) || !utils$1.isObject(target[name])) { - target[name] = []; - } - var result = buildPath(path, value, target[name], index); - if (result && utils$1.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - return !isNumericKey; - } - if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { - var obj = {}; - utils$1.forEachEntry(formData, function (name, value) { - buildPath(parsePropPath(name), value, obj, 0); - }); - return obj; - } - return null; - } - - var own = function own(obj, key) { - return obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined; - }; - - /** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ - function stringifySafely(rawValue, parser, encoder) { - if (utils$1.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils$1.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - return (encoder || JSON.stringify)(rawValue); - } - var defaults = { - transitional: transitionalDefaults, - adapter: ['xhr', 'http', 'fetch'], - transformRequest: [function transformRequest(data, headers) { - var contentType = headers.getContentType() || ''; - var hasJSONContentType = contentType.indexOf('application/json') > -1; - var isObjectPayload = utils$1.isObject(data); - if (isObjectPayload && utils$1.isHTMLForm(data)) { - data = new FormData(data); - } - var isFormData = utils$1.isFormData(data); - if (isFormData) { - return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; - } - if (utils$1.isArrayBuffer(data) || utils$1.isBuffer(data) || utils$1.isStream(data) || utils$1.isFile(data) || utils$1.isBlob(data) || utils$1.isReadableStream(data)) { - return data; - } - if (utils$1.isArrayBufferView(data)) { - return data.buffer; - } - if (utils$1.isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - var isFileList; - if (isObjectPayload) { - var formSerializer = own(this, 'formSerializer'); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return toURLEncodedForm(data, formSerializer).toString(); - } - if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { - var env = own(this, 'env'); - var _FormData = env && env.FormData; - return toFormData(isFileList ? { - 'files[]': data - } : data, _FormData && new _FormData(), formSerializer); - } - } - if (isObjectPayload || hasJSONContentType) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - return data; - }], - transformResponse: [function transformResponse(data) { - var transitional = own(this, 'transitional') || defaults.transitional; - var forcedJSONParsing = transitional && transitional.forcedJSONParsing; - var responseType = own(this, 'responseType'); - var JSONRequested = responseType === 'json'; - if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { - return data; - } - if (data && utils$1.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) { - var silentJSONParsing = transitional && transitional.silentJSONParsing; - var strictJSONParsing = !silentJSONParsing && JSONRequested; - try { - return JSON.parse(data, own(this, 'parseReviver')); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); - } - throw e; - } - } - } - return data; - }], - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - maxContentLength: -1, - maxBodyLength: -1, - env: { - FormData: platform.classes.FormData, - Blob: platform.classes.Blob - }, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - headers: { - common: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': undefined - } - } - }; - utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], function (method) { - defaults.headers[method] = {}; - }); - - /** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ - function transformData(fns, response) { - var config = this || defaults; - var context = response || config; - var headers = AxiosHeaders.from(context.headers); - var data = context.data; - utils$1.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - headers.normalize(); - return data; - } - - function isCancel(value) { - return !!(value && value.__CANCEL__); - } - - var CanceledError = /*#__PURE__*/function (_AxiosError) { - /** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ - function CanceledError(message, config, request) { - var _this; - _classCallCheck(this, CanceledError); - _this = _callSuper(this, CanceledError, [message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request]); - _this.name = 'CanceledError'; - _this.__CANCEL__ = true; - return _this; - } - _inherits(CanceledError, _AxiosError); - return _createClass(CanceledError); - }(AxiosError); - - /** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ - function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError('Request failed with status code ' + response.status, response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE, response.config, response.request, response)); - } - } - - function parseProtocol(url) { - var match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); - return match && match[1] || ''; - } - - /** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ - function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - var bytes = new Array(samplesCount); - var timestamps = new Array(samplesCount); - var head = 0; - var tail = 0; - var firstSampleTS; - min = min !== undefined ? min : 1000; - return function push(chunkLength) { - var now = Date.now(); - var startedAt = timestamps[tail]; - if (!firstSampleTS) { - firstSampleTS = now; - } - bytes[head] = chunkLength; - timestamps[head] = now; - var i = tail; - var bytesCount = 0; - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - head = (head + 1) % samplesCount; - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - if (now - firstSampleTS < min) { - return; - } - var passed = startedAt && now - startedAt; - return passed ? Math.round(bytesCount * 1000 / passed) : undefined; - }; - } - - /** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ - function throttle(fn, freq) { - var timestamp = 0; - var threshold = 1000 / freq; - var lastArgs; - var timer; - var invoke = function invoke(args) { - var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Date.now(); - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn.apply(void 0, _toConsumableArray(args)); - }; - var throttled = function throttled() { - var now = Date.now(); - var passed = now - timestamp; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(function () { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - var flush = function flush() { - return lastArgs && invoke(lastArgs); - }; - return [throttled, flush]; - } - - var progressEventReducer = function progressEventReducer(listener, isDownloadStream) { - var freq = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3; - var bytesNotified = 0; - var _speedometer = speedometer(50, 250); - return throttle(function (e) { - if (!e || typeof e.loaded !== 'number') { - return; - } - var rawLoaded = e.loaded; - var total = e.lengthComputable ? e.total : undefined; - var loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; - var progressBytes = Math.max(0, loaded - bytesNotified); - var rate = _speedometer(progressBytes); - bytesNotified = Math.max(bytesNotified, loaded); - var data = _defineProperty({ - loaded: loaded, - total: total, - progress: total ? loaded / total : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null - }, isDownloadStream ? 'download' : 'upload', true); - listener(data); - }, freq); - }; - var progressEventDecorator = function progressEventDecorator(total, throttled) { - var lengthComputable = total != null; - return [function (loaded) { - return throttled[0]({ - lengthComputable: lengthComputable, - total: total, - loaded: loaded - }); - }, throttled[1]]; - }; - var asyncDecorator = function asyncDecorator(fn) { - return function () { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - return utils$1.asap(function () { - return fn.apply(void 0, args); - }); - }; - }; - - var isURLSameOrigin = platform.hasStandardBrowserEnv ? function (origin, isMSIE) { - return function (url) { - url = new URL(url, platform.origin); - return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port); - }; - }(new URL(platform.origin), platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : function () { - return true; - }; - - var cookies = platform.hasStandardBrowserEnv ? - // Standard browser envs support document.cookie - { - write: function write(name, value, expires, path, domain, secure, sameSite) { - if (typeof document === 'undefined') return; - var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))]; - if (utils$1.isNumber(expires)) { - cookie.push("expires=".concat(new Date(expires).toUTCString())); - } - if (utils$1.isString(path)) { - cookie.push("path=".concat(path)); - } - if (utils$1.isString(domain)) { - cookie.push("domain=".concat(domain)); - } - if (secure === true) { - cookie.push('secure'); - } - if (utils$1.isString(sameSite)) { - cookie.push("SameSite=".concat(sameSite)); - } - document.cookie = cookie.join('; '); - }, - read: function read(name) { - if (typeof document === 'undefined') return null; - // Match name=value by splitting on the semicolon separator instead of building a - // RegExp from `name` — interpolating an unescaped string into a RegExp would let - // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or - // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or - // "; ", so ignore optional whitespace before each cookie name. - var cookies = document.cookie.split(';'); - for (var i = 0; i < cookies.length; i++) { - var cookie = cookies[i].replace(/^\s+/, ''); - var eq = cookie.indexOf('='); - if (eq !== -1 && cookie.slice(0, eq) === name) { - return decodeURIComponent(cookie.slice(eq + 1)); - } - } - return null; - }, - remove: function remove(name) { - this.write(name, '', Date.now() - 86400000, '/'); - } - } : - // Non-standard browser env (web workers, react-native) lack needed support. - { - write: function write() {}, - read: function read() { - return null; - }, - remove: function remove() {} - }; - - /** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ - function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - if (typeof url !== 'string') { - return false; - } - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); - } - - /** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ - function combineURLs(baseURL, relativeURL) { - return relativeURL ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; - } - - /** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ - function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - var isRelativeUrl = !isAbsoluteURL(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; - } - - var headersToObject = function headersToObject(thing) { - return thing instanceof AxiosHeaders ? _objectSpread2({}, thing) : thing; - }; - - /** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ - function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - - // Use a null-prototype object so that downstream reads such as `config.auth` - // or `config.baseURL` cannot inherit polluted values from Object.prototype. - // `hasOwnProperty` is restored as a non-enumerable own slot to preserve - // ergonomics for user code that relies on it. - var config = Object.create(null); - Object.defineProperty(config, 'hasOwnProperty', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: Object.prototype.hasOwnProperty, - enumerable: false, - writable: true, - configurable: true - }); - function getMergedValue(target, source, prop, caseless) { - if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { - return utils$1.merge.call({ - caseless: caseless - }, target, source); - } else if (utils$1.isPlainObject(source)) { - return utils$1.merge({}, source); - } else if (utils$1.isArray(source)) { - return source.slice(); - } - return source; - } - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a, prop, caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (utils$1.hasOwnProp(config2, prop)) { - return getMergedValue(a, b); - } else if (utils$1.hasOwnProp(config1, prop)) { - return getMergedValue(undefined, a); - } - } - var mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - allowedSocketPaths: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: function headers(a, b, prop) { - return mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true); - } - }; - utils$1.forEach(Object.keys(_objectSpread2(_objectSpread2({}, config1), config2)), function computeConfigValue(prop) { - if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; - var merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - var a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; - var b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; - var configValue = merge(a, b, prop); - utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); - }); - return config; - } - - var FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; - function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - Object.entries(formHeaders).forEach(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - key = _ref2[0], - val = _ref2[1]; - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); - } - - /** - * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). - * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. - * - * @param {string} str The string to encode - * - * @returns {string} UTF-8 bytes as a Latin-1 string - */ - var encodeUTF8 = function encodeUTF8(str) { - return encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, function (_, hex) { - return String.fromCharCode(parseInt(hex, 16)); - }); - }; - var resolveConfig = (function (config) { - var newConfig = mergeConfig({}, config); - - // Read only own properties to prevent prototype pollution gadgets - // (e.g. Object.prototype.baseURL = 'https://evil.com'). - var own = function own(key) { - return utils$1.hasOwnProp(newConfig, key) ? newConfig[key] : undefined; - }; - var data = own('data'); - var withXSRFToken = own('withXSRFToken'); - var xsrfHeaderName = own('xsrfHeaderName'); - var xsrfCookieName = own('xsrfCookieName'); - var headers = own('headers'); - var auth = own('auth'); - var baseURL = own('baseURL'); - var allowAbsoluteUrls = own('allowAbsoluteUrls'); - var url = own('url'); - newConfig.headers = headers = AxiosHeaders.from(headers); - newConfig.url = buildURL(buildFullPath(baseURL, url, allowAbsoluteUrls), config.params, config.paramsSerializer); - - // HTTP basic authentication - if (auth) { - headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))); - } - if (utils$1.isFormData(data)) { - if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // browser handles it - } else if (utils$1.isFunction(data.getHeaders)) { - // Node.js FormData (like form-data package) - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (platform.hasStandardBrowserEnv) { - if (utils$1.isFunction(withXSRFToken)) { - withXSRFToken = withXSRFToken(newConfig); - } - - // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) - // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking - // the XSRF token cross-origin. - var shouldSendXSRF = withXSRFToken === true || withXSRFToken == null && isURLSameOrigin(newConfig.url); - if (shouldSendXSRF) { - var xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - return newConfig; - }); - - var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; - var xhrAdapter = isXHRAdapterSupported && function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var _config = resolveConfig(config); - var requestData = _config.data; - var requestHeaders = AxiosHeaders.from(_config.headers).normalize(); - var responseType = _config.responseType, - onUploadProgress = _config.onUploadProgress, - onDownloadProgress = _config.onDownloadProgress; - var onCanceled; - var uploadThrottled, downloadThrottled; - var flushUpload, flushDownload; - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - var request = new XMLHttpRequest(); - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - function onloadend() { - if (!request) { - return; - } - // Prepare the response - var responseHeaders = AxiosHeaders.from('getAllResponseHeaders' in request && request.getAllResponseHeaders()); - var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response; - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - }; - settle(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - - // Clean up request - request = null; - } - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.startsWith('file:'))) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError(event) { - // Browsers deliver a ProgressEvent in XHR onerror - // (message may be empty; when present, surface it) - // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event - var msg = event && event.message ? event.message : 'Network Error'; - var err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); - // attach the underlying event for consumers who want details - err.event = event || null; - reject(err); - done(); - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; - var transitional = _config.transitional || transitionalDefaults; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!utils$1.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - var _progressEventReducer = progressEventReducer(onDownloadProgress, true); - var _progressEventReducer2 = _slicedToArray(_progressEventReducer, 2); - downloadThrottled = _progressEventReducer2[0]; - flushDownload = _progressEventReducer2[1]; - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - var _progressEventReducer3 = progressEventReducer(onUploadProgress); - var _progressEventReducer4 = _slicedToArray(_progressEventReducer3, 2); - uploadThrottled = _progressEventReducer4[0]; - flushUpload = _progressEventReducer4[1]; - request.upload.addEventListener('progress', uploadThrottled); - request.upload.addEventListener('loadend', flushUpload); - } - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = function onCanceled(cancel) { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); - request.abort(); - done(); - request = null; - }; - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); - } - } - var protocol = parseProtocol(_config.url); - if (protocol && !platform.protocols.includes(protocol)) { - reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); - return; - } - - // Send the request - request.send(requestData || null); - }); - }; - - var composeSignals = function composeSignals(signals, timeout) { - signals = signals ? signals.filter(Boolean) : []; - if (!timeout && !signals.length) { - return; - } - var controller = new AbortController(); - var aborted = false; - var onabort = function onabort(reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - var err = reason instanceof Error ? reason : this.reason; - controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); - } - }; - var timer = timeout && setTimeout(function () { - timer = null; - onabort(new AxiosError("timeout of ".concat(timeout, "ms exceeded"), AxiosError.ETIMEDOUT)); - }, timeout); - var unsubscribe = function unsubscribe() { - if (!signals) { - return; - } - timer && clearTimeout(timer); - timer = null; - signals.forEach(function (signal) { - signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); - }); - signals = null; - }; - signals.forEach(function (signal) { - return signal.addEventListener('abort', onabort); - }); - var signal = controller.signal; - signal.unsubscribe = function () { - return utils$1.asap(unsubscribe); - }; - return signal; - }; - - var streamChunk = /*#__PURE__*/_regenerator().m(function streamChunk(chunk, chunkSize) { - var len, pos, end; - return _regenerator().w(function (_context) { - while (1) switch (_context.n) { - case 0: - len = chunk.byteLength; - if (!(!chunkSize || len < chunkSize)) { - _context.n = 2; - break; - } - _context.n = 1; - return chunk; - case 1: - return _context.a(2); - case 2: - pos = 0; - case 3: - if (!(pos < len)) { - _context.n = 5; - break; - } - end = pos + chunkSize; - _context.n = 4; - return chunk.slice(pos, end); - case 4: - pos = end; - _context.n = 3; - break; - case 5: - return _context.a(2); - } - }, streamChunk); - }); - var readBytes = /*#__PURE__*/function () { - var _ref = _wrapAsyncGenerator(/*#__PURE__*/_regenerator().m(function _callee(iterable, chunkSize) { - var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, chunk, _t; - return _regenerator().w(function (_context2) { - while (1) switch (_context2.p = _context2.n) { - case 0: - _iteratorAbruptCompletion = false; - _didIteratorError = false; - _context2.p = 1; - _iterator = _asyncIterator(readStream(iterable)); - case 2: - _context2.n = 3; - return _awaitAsyncGenerator(_iterator.next()); - case 3: - if (!(_iteratorAbruptCompletion = !(_step = _context2.v).done)) { - _context2.n = 5; - break; - } - chunk = _step.value; - return _context2.d(_regeneratorValues(_asyncGeneratorDelegate(_asyncIterator(streamChunk(chunk, chunkSize)))), 4); - case 4: - _iteratorAbruptCompletion = false; - _context2.n = 2; - break; - case 5: - _context2.n = 7; - break; - case 6: - _context2.p = 6; - _t = _context2.v; - _didIteratorError = true; - _iteratorError = _t; - case 7: - _context2.p = 7; - _context2.p = 8; - if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) { - _context2.n = 9; - break; - } - _context2.n = 9; - return _awaitAsyncGenerator(_iterator["return"]()); - case 9: - _context2.p = 9; - if (!_didIteratorError) { - _context2.n = 10; - break; - } - throw _iteratorError; - case 10: - return _context2.f(9); - case 11: - return _context2.f(7); - case 12: - return _context2.a(2); - } - }, _callee, null, [[8,, 9, 11], [1, 6, 7, 12]]); - })); - return function readBytes(_x, _x2) { - return _ref.apply(this, arguments); - }; - }(); - var readStream = /*#__PURE__*/function () { - var _ref2 = _wrapAsyncGenerator(/*#__PURE__*/_regenerator().m(function _callee2(stream) { - var reader, _yield$_awaitAsyncGen, done, value; - return _regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { - case 0: - if (!stream[Symbol.asyncIterator]) { - _context3.n = 2; - break; - } - return _context3.d(_regeneratorValues(_asyncGeneratorDelegate(_asyncIterator(stream))), 1); - case 1: - return _context3.a(2); - case 2: - reader = stream.getReader(); - _context3.p = 3; - case 4: - _context3.n = 5; - return _awaitAsyncGenerator(reader.read()); - case 5: - _yield$_awaitAsyncGen = _context3.v; - done = _yield$_awaitAsyncGen.done; - value = _yield$_awaitAsyncGen.value; - if (!done) { - _context3.n = 6; - break; - } - return _context3.a(3, 8); - case 6: - _context3.n = 7; - return value; - case 7: - _context3.n = 4; - break; - case 8: - _context3.p = 8; - _context3.n = 9; - return _awaitAsyncGenerator(reader.cancel()); - case 9: - return _context3.f(8); - case 10: - return _context3.a(2); - } - }, _callee2, null, [[3,, 8, 10]]); - })); - return function readStream(_x3) { - return _ref2.apply(this, arguments); - }; - }(); - var trackStream = function trackStream(stream, chunkSize, onProgress, onFinish) { - var iterator = readBytes(stream, chunkSize); - var bytes = 0; - var done; - var _onFinish = function _onFinish(e) { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - return new ReadableStream({ - pull: function pull(controller) { - return _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { - var _yield$iterator$next, _done, value, len, loadedBytes, _t2; - return _regenerator().w(function (_context4) { - while (1) switch (_context4.p = _context4.n) { - case 0: - _context4.p = 0; - _context4.n = 1; - return iterator.next(); - case 1: - _yield$iterator$next = _context4.v; - _done = _yield$iterator$next.done; - value = _yield$iterator$next.value; - if (!_done) { - _context4.n = 2; - break; - } - _onFinish(); - controller.close(); - return _context4.a(2); - case 2: - len = value.byteLength; - if (onProgress) { - loadedBytes = bytes += len; - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - _context4.n = 4; - break; - case 3: - _context4.p = 3; - _t2 = _context4.v; - _onFinish(_t2); - throw _t2; - case 4: - return _context4.a(2); - } - }, _callee3, null, [[0, 3]]); - }))(); - }, - cancel: function cancel(reason) { - _onFinish(reason); - return iterator["return"](); - } - }, { - highWaterMark: 2 - }); - }; - - /** - * Estimate decoded byte length of a data:// URL *without* allocating large buffers. - * - For base64: compute exact decoded size using length and padding; - * handle %XX at the character-count level (no string allocation). - * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. - * - * @param {string} url - * @returns {number} - */ - function estimateDataURLDecodedBytes(url) { - if (!url || typeof url !== 'string') return 0; - if (!url.startsWith('data:')) return 0; - var comma = url.indexOf(','); - if (comma < 0) return 0; - var meta = url.slice(5, comma); - var body = url.slice(comma + 1); - var isBase64 = /;base64/i.test(meta); - if (isBase64) { - var effectiveLen = body.length; - var len = body.length; // cache length - - for (var i = 0; i < len; i++) { - if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { - var a = body.charCodeAt(i + 1); - var b = body.charCodeAt(i + 2); - var isHex = (a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102) && (b >= 48 && b <= 57 || b >= 65 && b <= 70 || b >= 97 && b <= 102); - if (isHex) { - effectiveLen -= 2; - i += 2; - } - } - } - var pad = 0; - var idx = len - 1; - var tailIsPct3D = function tailIsPct3D(j) { - return j >= 2 && body.charCodeAt(j - 2) === 37 && - // '%' - body.charCodeAt(j - 1) === 51 && ( - // '3' - body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); - }; // 'D' or 'd' - - if (idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - idx--; - } else if (tailIsPct3D(idx)) { - pad++; - idx -= 3; - } - } - if (pad === 1 && idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - } else if (tailIsPct3D(idx)) { - pad++; - } - } - var groups = Math.floor(effectiveLen / 4); - var _bytes = groups * 3 - (pad || 0); - return _bytes > 0 ? _bytes : 0; - } - if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { - return Buffer.byteLength(body, 'utf8'); - } - - // Compute UTF-8 byte length directly from UTF-16 code units without allocating - // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). - // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit - // but 3 UTF-8 bytes). - var bytes = 0; - for (var _i = 0, _len = body.length; _i < _len; _i++) { - var c = body.charCodeAt(_i); - if (c < 0x80) { - bytes += 1; - } else if (c < 0x800) { - bytes += 2; - } else if (c >= 0xd800 && c <= 0xdbff && _i + 1 < _len) { - var next = body.charCodeAt(_i + 1); - if (next >= 0xdc00 && next <= 0xdfff) { - bytes += 4; - _i++; - } else { - bytes += 3; - } - } else { - bytes += 3; - } - } - return bytes; - } - - var VERSION = "1.16.1"; - - var DEFAULT_CHUNK_SIZE = 64 * 1024; - var isFunction = utils$1.isFunction; - var test = function test(fn) { - try { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - return !!fn.apply(void 0, args); - } catch (e) { - return false; - } - }; - var factory = function factory(env) { - var globalObject = utils$1.global !== undefined && utils$1.global !== null ? utils$1.global : globalThis; - var ReadableStream = globalObject.ReadableStream, - TextEncoder = globalObject.TextEncoder; - env = utils$1.merge.call({ - skipUndefined: true - }, { - Request: globalObject.Request, - Response: globalObject.Response - }, env); - var _env = env, - envFetch = _env.fetch, - Request = _env.Request, - Response = _env.Response; - var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; - var isRequestSupported = isFunction(Request); - var isResponseSupported = isFunction(Response); - if (!isFetchSupported) { - return false; - } - var isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); - var encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? function (encoder) { - return function (str) { - return encoder.encode(str); - }; - }(new TextEncoder()) : (/*#__PURE__*/function () { - var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(str) { - var _t, _t2; - return _regenerator().w(function (_context) { - while (1) switch (_context.n) { - case 0: - _t = Uint8Array; - _context.n = 1; - return new Request(str).arrayBuffer(); - case 1: - _t2 = _context.v; - return _context.a(2, new _t(_t2)); - } - }, _callee); - })); - return function (_x) { - return _ref.apply(this, arguments); - }; - }())); - var supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(function () { - var duplexAccessed = false; - var request = new Request(platform.origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - } - }); - var hasContentType = request.headers.has('Content-Type'); - if (request.body != null) { - request.body.cancel(); - } - return duplexAccessed && !hasContentType; - }); - var supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(function () { - return utils$1.isReadableStream(new Response('').body); - }); - var resolvers = { - stream: supportsResponseStream && function (res) { - return res.body; - } - }; - isFetchSupported && function () { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(function (type) { - !resolvers[type] && (resolvers[type] = function (res, config) { - var method = res && res[type]; - if (method) { - return method.call(res); - } - throw new AxiosError("Response type '".concat(type, "' is not supported"), AxiosError.ERR_NOT_SUPPORT, config); - }); - }); - }(); - var getBodyLength = /*#__PURE__*/function () { - var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(body) { - var _request; - return _regenerator().w(function (_context2) { - while (1) switch (_context2.n) { - case 0: - if (!(body == null)) { - _context2.n = 1; - break; - } - return _context2.a(2, 0); - case 1: - if (!utils$1.isBlob(body)) { - _context2.n = 2; - break; - } - return _context2.a(2, body.size); - case 2: - if (!utils$1.isSpecCompliantForm(body)) { - _context2.n = 4; - break; - } - _request = new Request(platform.origin, { - method: 'POST', - body: body - }); - _context2.n = 3; - return _request.arrayBuffer(); - case 3: - return _context2.a(2, _context2.v.byteLength); - case 4: - if (!(utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body))) { - _context2.n = 5; - break; - } - return _context2.a(2, body.byteLength); - case 5: - if (utils$1.isURLSearchParams(body)) { - body = body + ''; - } - if (!utils$1.isString(body)) { - _context2.n = 7; - break; - } - _context2.n = 6; - return encodeText(body); - case 6: - return _context2.a(2, _context2.v.byteLength); - case 7: - return _context2.a(2); - } - }, _callee2); - })); - return function getBodyLength(_x2) { - return _ref2.apply(this, arguments); - }; - }(); - var resolveBodyLength = /*#__PURE__*/function () { - var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(headers, body) { - var length; - return _regenerator().w(function (_context3) { - while (1) switch (_context3.n) { - case 0: - length = utils$1.toFiniteNumber(headers.getContentLength()); - return _context3.a(2, length == null ? getBodyLength(body) : length); - } - }, _callee3); - })); - return function resolveBodyLength(_x3, _x4) { - return _ref3.apply(this, arguments); - }; - }(); - return /*#__PURE__*/function () { - var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(config) { - var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, maxContentLength, maxBodyLength, hasMaxContentLength, hasMaxBodyLength, _fetch, composedSignal, request, unsubscribe, requestContentLength, estimated, outboundLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, contentType, resolvedOptions, response, declaredLength, isStreamResponse, options, responseContentLength, _ref5, _ref6, _onProgress, _flush, bytesRead, onChunkProgress, responseData, materializedSize, canceledError, _t3, _t4, _t5; - return _regenerator().w(function (_context4) { - while (1) switch (_context4.p = _context4.n) { - case 0: - _resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions, maxContentLength = _resolveConfig.maxContentLength, maxBodyLength = _resolveConfig.maxBodyLength; - hasMaxContentLength = utils$1.isNumber(maxContentLength) && maxContentLength > -1; - hasMaxBodyLength = utils$1.isNumber(maxBodyLength) && maxBodyLength > -1; - _fetch = envFetch || fetch; - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout); - request = null; - unsubscribe = composedSignal && composedSignal.unsubscribe && function () { - composedSignal.unsubscribe(); - }; - _context4.p = 1; - if (!(hasMaxContentLength && typeof url === 'string' && url.startsWith('data:'))) { - _context4.n = 2; - break; - } - estimated = estimateDataURLDecodedBytes(url); - if (!(estimated > maxContentLength)) { - _context4.n = 2; - break; - } - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - case 2: - if (!(hasMaxBodyLength && method !== 'get' && method !== 'head')) { - _context4.n = 4; - break; - } - _context4.n = 3; - return resolveBodyLength(headers, data); - case 3: - outboundLength = _context4.v; - if (!(typeof outboundLength === 'number' && isFinite(outboundLength) && outboundLength > maxBodyLength)) { - _context4.n = 4; - break; - } - throw new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config, request); - case 4: - _t3 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head'; - if (!_t3) { - _context4.n = 6; - break; - } - _context4.n = 5; - return resolveBodyLength(headers, data); - case 5: - _t4 = requestContentLength = _context4.v; - _t3 = _t4 !== 0; - case 6: - if (!_t3) { - _context4.n = 7; - break; - } - _request = new Request(url, { - method: 'POST', - body: data, - duplex: 'half' - }); - if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader); - } - if (_request.body) { - _progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1]; - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - case 7: - if (!utils$1.isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; // If data is FormData and Content-Type is multipart/form-data without boundary, - // delete it so fetch can set it correctly with the boundary - if (utils$1.isFormData(data)) { - contentType = headers.getContentType(); - if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) { - headers["delete"]('content-type'); - } - } - - // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) - headers.set('User-Agent', 'axios/' + VERSION, false); - resolvedOptions = _objectSpread2(_objectSpread2({}, fetchOptions), {}, { - signal: composedSignal, - method: method.toUpperCase(), - headers: toByteStringHeaderObject(headers.normalize()), - body: data, - duplex: 'half', - credentials: isCredentialsSupported ? withCredentials : undefined - }); - request = isRequestSupported && new Request(url, resolvedOptions); - _context4.n = 8; - return isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions); - case 8: - response = _context4.v; - if (!hasMaxContentLength) { - _context4.n = 9; - break; - } - declaredLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - if (!(declaredLength != null && declaredLength > maxContentLength)) { - _context4.n = 9; - break; - } - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - case 9: - isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - if (supportsResponseStream && response.body && (onDownloadProgress || hasMaxContentLength || isStreamResponse && unsubscribe)) { - options = {}; - ['status', 'statusText', 'headers'].forEach(function (prop) { - options[prop] = response[prop]; - }); - responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - _ref5 = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || [], _ref6 = _slicedToArray(_ref5, 2), _onProgress = _ref6[0], _flush = _ref6[1]; - bytesRead = 0; - onChunkProgress = function onChunkProgress(loadedBytes) { - if (hasMaxContentLength) { - bytesRead = loadedBytes; - if (bytesRead > maxContentLength) { - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - } - } - _onProgress && _onProgress(loadedBytes); - }; - response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, function () { - _flush && _flush(); - unsubscribe && unsubscribe(); - }), options); - } - responseType = responseType || 'text'; - _context4.n = 10; - return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config); - case 10: - responseData = _context4.v; - if (!(hasMaxContentLength && !supportsResponseStream && !isStreamResponse)) { - _context4.n = 11; - break; - } - if (responseData != null) { - if (typeof responseData.byteLength === 'number') { - materializedSize = responseData.byteLength; - } else if (typeof responseData.size === 'number') { - materializedSize = responseData.size; - } else if (typeof responseData === 'string') { - materializedSize = typeof TextEncoder === 'function' ? new TextEncoder().encode(responseData).byteLength : responseData.length; - } - } - if (!(typeof materializedSize === 'number' && materializedSize > maxContentLength)) { - _context4.n = 11; - break; - } - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - case 11: - !isStreamResponse && unsubscribe && unsubscribe(); - _context4.n = 12; - return new Promise(function (resolve, reject) { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders.from(response.headers), - status: response.status, - statusText: response.statusText, - config: config, - request: request - }); - }); - case 12: - return _context4.a(2, _context4.v); - case 13: - _context4.p = 13; - _t5 = _context4.v; - unsubscribe && unsubscribe(); - - // Safari can surface fetch aborts as a DOMException-like object whose - // branded getters throw. Prefer our composed signal reason before reading - // the caught error, preserving timeout vs cancellation semantics. - if (!(composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError)) { - _context4.n = 14; - break; - } - canceledError = composedSignal.reason; - canceledError.config = config; - request && (canceledError.request = request); - _t5 !== canceledError && (canceledError.cause = _t5); - throw canceledError; - case 14: - if (!(_t5 && _t5.name === 'TypeError' && /Load failed|fetch/i.test(_t5.message))) { - _context4.n = 15; - break; - } - throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, _t5 && _t5.response), { - cause: _t5.cause || _t5 - }); - case 15: - throw AxiosError.from(_t5, _t5 && _t5.code, config, request, _t5 && _t5.response); - case 16: - return _context4.a(2); - } - }, _callee4, null, [[1, 13]]); - })); - return function (_x5) { - return _ref4.apply(this, arguments); - }; - }(); - }; - var seedCache = new Map(); - var getFetch = function getFetch(config) { - var env = config && config.env || {}; - var fetch = env.fetch, - Request = env.Request, - Response = env.Response; - var seeds = [Request, Response, fetch]; - var len = seeds.length, - i = len, - seed, - target, - map = seedCache; - while (i--) { - seed = seeds[i]; - target = map.get(seed); - target === undefined && map.set(seed, target = i ? new Map() : factory(env)); - map = target; - } - return target; - }; - getFetch(); - - /** - * Known adapters mapping. - * Provides environment-specific adapters for Axios: - * - `http` for Node.js - * - `xhr` for browsers - * - `fetch` for fetch API-based requests - * - * @type {Object} - */ - var knownAdapters = { - http: httpAdapter, - xhr: xhrAdapter, - fetch: { - get: getFetch - } - }; - - // Assign adapter names for easier debugging and identification - utils$1.forEach(knownAdapters, function (fn, value) { - if (fn) { - try { - // Null-proto descriptors so a polluted Object.prototype.get cannot turn - // these data descriptors into accessor descriptors on the way in. - Object.defineProperty(fn, 'name', { - __proto__: null, - value: value - }); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', { - __proto__: null, - value: value - }); - } - }); - - /** - * Render a rejection reason string for unknown or unsupported adapters - * - * @param {string} reason - * @returns {string} - */ - var renderReason = function renderReason(reason) { - return "- ".concat(reason); - }; - - /** - * Check if the adapter is resolved (function, null, or false) - * - * @param {Function|null|false} adapter - * @returns {boolean} - */ - var isResolvedHandle = function isResolvedHandle(adapter) { - return utils$1.isFunction(adapter) || adapter === null || adapter === false; - }; - - /** - * Get the first suitable adapter from the provided list. - * Tries each adapter in order until a supported one is found. - * Throws an AxiosError if no adapter is suitable. - * - * @param {Array|string|Function} adapters - Adapter(s) by name or function. - * @param {Object} config - Axios request configuration - * @throws {AxiosError} If no suitable adapter is available - * @returns {Function} The resolved adapter function - */ - function getAdapter(adapters, config) { - adapters = utils$1.isArray(adapters) ? adapters : [adapters]; - var _adapters = adapters, - length = _adapters.length; - var nameOrAdapter; - var adapter; - var rejectedReasons = {}; - for (var i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - var id = void 0; - adapter = nameOrAdapter; - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - if (adapter === undefined) { - throw new AxiosError("Unknown adapter '".concat(id, "'")); - } - } - if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { - break; - } - rejectedReasons[id || '#' + i] = adapter; - } - if (!adapter) { - var reasons = Object.entries(rejectedReasons).map(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - id = _ref2[0], - state = _ref2[1]; - return "adapter ".concat(id, " ") + (state === false ? 'is not supported by the environment' : 'is not available in the build'); - }); - var s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified'; - throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT'); - } - return adapter; - } - - /** - * Exports Axios adapters and utility to resolve an adapter - */ - var adapters = { - /** - * Resolve an adapter from a list of adapter names or functions. - * @type {Function} - */ - getAdapter: getAdapter, - /** - * Exposes all known adapters - * @type {Object} - */ - adapters: knownAdapters - }; - - /** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ - function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - if (config.signal && config.signal.aborted) { - throw new CanceledError(null, config); - } - } - - /** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ - function dispatchRequest(config) { - throwIfCancellationRequested(config); - config.headers = AxiosHeaders.from(config.headers); - - // Transform request data - config.data = transformData.call(config, config.transformRequest); - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - var adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Expose the current response on config so that transformResponse can - // attach it to any AxiosError it throws (e.g. on JSON parse failure). - // We clean it up afterwards to avoid polluting the config object. - config.response = response; - try { - response.data = transformData.call(config, config.transformResponse, response); - } finally { - delete config.response; - } - response.headers = AxiosHeaders.from(response.headers); - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - config.response = reason.response; - try { - reason.response.data = transformData.call(config, config.transformResponse, reason.response); - } finally { - delete config.response; - } - reason.response.headers = AxiosHeaders.from(reason.response.headers); - } - } - return Promise.reject(reason); - }); - } - - var validators$1 = {}; - - // eslint-disable-next-line func-names - ['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) { - validators$1[type] = function validator(thing) { - return _typeof(thing) === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; - }); - var deprecatedWarnings = {}; - - /** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ - validators$1.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return '[Axios v' + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return function (value, opt, opts) { - if (validator === false) { - throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED); - } - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future')); - } - return validator ? validator(value, opt, opts) : true; - }; - }; - validators$1.spelling = function spelling(correctSpelling) { - return function (value, opt) { - // eslint-disable-next-line no-console - console.warn("".concat(opt, " is likely a misspelling of ").concat(correctSpelling)); - return true; - }; - }; - - /** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - - function assertOptions(options, schema, allowUnknown) { - if (_typeof(options) !== 'object') { - throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); - } - var keys = Object.keys(options); - var i = keys.length; - while (i-- > 0) { - var opt = keys[i]; - // Use hasOwnProperty so a polluted Object.prototype. cannot supply - // a non-function validator and cause a TypeError. - var validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; - if (validator) { - var value = options[opt]; - var result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); - } - } - } - var validator = { - assertOptions: assertOptions, - validators: validators$1 - }; - - var validators = validator.validators; - - /** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ - var Axios = /*#__PURE__*/function () { - function Axios(instanceConfig) { - _classCallCheck(this, Axios); - this.defaults = instanceConfig || {}; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - return _createClass(Axios, [{ - key: "request", - value: (function () { - var _request2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(configOrUrl, config) { - var dummy, stack, firstNewlineIndex, secondNewlineIndex, stackWithoutTwoTopLines, _t; - return _regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { - case 0: - _context.p = 0; - _context.n = 1; - return this._request(configOrUrl, config); - case 1: - return _context.a(2, _context.v); - case 2: - _context.p = 2; - _t = _context.v; - if (_t instanceof Error) { - dummy = {}; - Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error(); - - // slice off the Error: ... line - stack = function () { - if (!dummy.stack) { - return ''; - } - var firstNewlineIndex = dummy.stack.indexOf('\n'); - return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); - }(); - try { - if (!_t.stack) { - _t.stack = stack; - // match without the 2 top stack lines - } else if (stack) { - firstNewlineIndex = stack.indexOf('\n'); - secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); - stackWithoutTwoTopLines = secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); - if (!String(_t.stack).endsWith(stackWithoutTwoTopLines)) { - _t.stack += '\n' + stack; - } - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - throw _t; - case 3: - return _context.a(2); - } - }, _callee, this, [[0, 2]]); - })); - function request(_x, _x2) { - return _request2.apply(this, arguments); - } - return request; - }()) - }, { - key: "_request", - value: function _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - config = mergeConfig(this.defaults, config); - var _config = config, - transitional = _config.transitional, - paramsSerializer = _config.paramsSerializer, - headers = _config.headers; - if (transitional !== undefined) { - validator.assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators["boolean"]), - forcedJSONParsing: validators.transitional(validators["boolean"]), - clarifyTimeoutError: validators.transitional(validators["boolean"]), - legacyInterceptorReqResOrdering: validators.transitional(validators["boolean"]) - }, false); - } - if (paramsSerializer != null) { - if (utils$1.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer - }; - } else { - validator.assertOptions(paramsSerializer, { - encode: validators["function"], - serialize: validators["function"] - }, true); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - validator.assertOptions(config, { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken') - }, true); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - var contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); - headers && utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], function (method) { - delete headers[method]; - }); - config.headers = AxiosHeaders.concat(contextHeaders, headers); - - // filter out skipped interceptors - var requestInterceptorChain = []; - var synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - var transitional = config.transitional || transitionalDefaults; - var legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering; - if (legacyInterceptorReqResOrdering) { - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - } else { - requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - } - }); - var responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - var promise; - var i = 0; - var len; - if (!synchronousRequestInterceptors) { - var chain = [dispatchRequest.bind(this), undefined]; - chain.unshift.apply(chain, requestInterceptorChain); - chain.push.apply(chain, responseInterceptorChain); - len = chain.length; - promise = Promise.resolve(config); - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - return promise; - } - len = requestInterceptorChain.length; - var newConfig = config; - while (i < len) { - var onFulfilled = requestInterceptorChain[i++]; - var onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - i = 0; - len = responseInterceptorChain.length; - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - return promise; - } - }, { - key: "getUri", - value: function getUri(config) { - config = mergeConfig(this.defaults, config); - var fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - return buildURL(fullPath, config.params, config.paramsSerializer); - } - }]); - }(); // Provide aliases for supported request methods - utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function (url, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: (config || {}).data - })); - }; - }); - utils$1.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request(mergeConfig(config || {}, { - method: method, - headers: isForm ? { - 'Content-Type': 'multipart/form-data' - } : {}, - url: url, - data: data - })); - }; - } - Axios.prototype[method] = generateHTTPMethod(); - - // QUERY is a safe/idempotent read method; multipart form bodies don't fit - // its semantics, so no queryForm shorthand is generated. - if (method !== 'query') { - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); - } - }); - - /** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ - var CancelToken = /*#__PURE__*/function () { - function CancelToken(executor) { - _classCallCheck(this, CancelToken); - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - var resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - var token = this; - - // eslint-disable-next-line func-names - this.promise.then(function (cancel) { - if (!token._listeners) return; - var i = token._listeners.length; - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = function (onfulfilled) { - var _resolve; - // eslint-disable-next-line func-names - var promise = new Promise(function (resolve) { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - return promise; - }; - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - token.reason = new CanceledError(message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - return _createClass(CancelToken, [{ - key: "throwIfRequested", - value: function throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - }, { - key: "subscribe", - value: function subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - }, { - key: "unsubscribe", - value: function unsubscribe(listener) { - if (!this._listeners) { - return; - } - var index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - }, { - key: "toAbortSignal", - value: function toAbortSignal() { - var _this = this; - var controller = new AbortController(); - var abort = function abort(err) { - controller.abort(err); - }; - this.subscribe(abort); - controller.signal.unsubscribe = function () { - return _this.unsubscribe(abort); - }; - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - }], [{ - key: "source", - value: function source() { - var cancel; - var token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token: token, - cancel: cancel - }; - } - }]); - }(); - - /** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * const args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ - function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; - } - - /** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ - function isAxiosError(payload) { - return utils$1.isObject(payload) && payload.isAxiosError === true; - } - - var HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, - WebServerIsDown: 521, - ConnectionTimedOut: 522, - OriginIsUnreachable: 523, - TimeoutOccurred: 524, - SslHandshakeFailed: 525, - InvalidSslCertificate: 526 - }; - Object.entries(HttpStatusCode).forEach(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - key = _ref2[0], - value = _ref2[1]; - HttpStatusCode[value] = key; - }); - - /** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ - function createInstance(defaultConfig) { - var context = new Axios(defaultConfig); - var instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils$1.extend(instance, Axios.prototype, context, { - allOwnKeys: true - }); - - // Copy context to instance - utils$1.extend(instance, context, null, { - allOwnKeys: true - }); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - return instance; - } - - // Create the default instance to be exported - var axios = createInstance(defaults); - - // Expose Axios class to allow class inheritance - axios.Axios = Axios; - - // Expose Cancel & CancelToken - axios.CanceledError = CanceledError; - axios.CancelToken = CancelToken; - axios.isCancel = isCancel; - axios.VERSION = VERSION; - axios.toFormData = toFormData; - - // Expose AxiosError class - axios.AxiosError = AxiosError; - - // alias for CanceledError for backward compatibility - axios.Cancel = axios.CanceledError; - - // Expose all/spread - axios.all = function all(promises) { - return Promise.all(promises); - }; - axios.spread = spread; - - // Expose isAxiosError - axios.isAxiosError = isAxiosError; - - // Expose mergeConfig - axios.mergeConfig = mergeConfig; - axios.AxiosHeaders = AxiosHeaders; - axios.formToJSON = function (thing) { - return formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); - }; - axios.getAdapter = adapters.getAdapter; - axios.HttpStatusCode = HttpStatusCode; - axios["default"] = axios; - - return axios; - -})); -//# sourceMappingURL=axios.js.map diff --git a/node_modules/axios/dist/axios.js.map b/node_modules/axios/dist/axios.js.map deleted file mode 100644 index 56cbb7b..0000000 --- a/node_modules/axios/dist/axios.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/helpers/parseHeaders.js","../lib/helpers/sanitizeHeaderValue.js","../lib/core/AxiosHeaders.js","../lib/core/AxiosError.js","../lib/helpers/null.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/defaults/transitional.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/browser/index.js","../lib/platform/common/utils.js","../lib/platform/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/parseProtocol.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/buildFullPath.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/xhr.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/helpers/estimateDataURLDecodedBytes.js","../lib/env/data.js","../lib/adapters/fetch.js","../lib/adapters/adapters.js","../lib/core/dispatchRequest.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.16.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","Symbol","toStringTag","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","isEmptyObject","keys","length","e","isDate","isFile","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isBlob","isFileList","isStream","pipe","getGlobal","globalThis","self","window","global","G","FormDataCtor","FormData","undefined","isFormData","proto","append","kind","isURLSearchParams","_map","map","_map2","_slicedToArray","isReadableStream","isRequest","isResponse","isHeaders","trim","replace","forEach","obj","_ref","_ref$allOwnKeys","allOwnKeys","i","l","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","merge","_ref2","caseless","skipUndefined","assignValue","targetKey","existing","hasOwnProperty","_len","objs","_key2","extend","a","b","_ref3","defineProperty","__proto__","writable","enumerable","configurable","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","_iterator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","_ref4","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","includes","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","visited","WeakSet","visit","source","has","add","target","reducedValue","isAsyncFn","isThenable","then","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","_ref5","data","shift","cb","postMessage","concat","Math","random","setTimeout","asap","queueMicrotask","process","nextTick","isIterable","hasOwnProp","ignoreDuplicateOf","utils","rawHeaders","parsed","parser","line","substring","trimSPorHTAB","start","end","code","INVALID_UNICODE_HEADER_VALUE_CHARS","RegExp","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","item","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","toJSON","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","match","isValidHeaderName","test","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","_classCallCheck","_createClass","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","_createForOfIteratorHelper","_step","s","n","entry","TypeError","_toConsumableArray","err","f","get","matcher","delete","deleted","deleteHeader","clear","normalize","format","normalized","_this$constructor","targets","asStrings","join","entries","getSetCookie","from","first","computed","_len2","accessor","internals","accessors","defineAccessor","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","config","redactKeys","lowerKeys","Set","k","seen","v","pop","_i","_Object$entries","_Object$entries$_i","AxiosError","_Error","message","request","response","_this","_callSuper","isAxiosError","status","_inherits","redact","serializedConfig","description","number","fileName","lineNumber","columnNumber","stack","error","customProps","axiosError","cause","_wrapNativeSuper","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","each","isFlatArray","some","predicates","toFormData","options","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","depth","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","URLSearchParams","isBrowser","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","_objectSpread","platform","toURLEncodedForm","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","rawValue","parse","defaults","transitional","transitionalDefaults","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","env","_FormData","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","transformData","fns","transform","isCancel","__CANCEL__","CanceledError","_AxiosError","settle","resolve","reject","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","Date","startedAt","bytesCount","passed","round","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","rawLoaded","total","lengthComputable","progressBytes","max","rate","_defineProperty","progress","estimated","event","progressEventDecorator","asyncDecorator","isMSIE","URL","protocol","host","port","userAgent","write","expires","domain","secure","sameSite","cookie","toUTCString","read","cookies","eq","decodeURIComponent","remove","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","computeConfigValue","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","policy","encodeUTF8","_","hex","fromCharCode","parseInt","newConfig","auth","btoa","username","password","getHeaders","shouldSendXSRF","isURLSameOrigin","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","Promise","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","open","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_resolve","_reject","onreadystatechange","handleLoad","readyState","responseURL","startsWith","onabort","handleAbort","onerror","handleError","msg","ontimeout","handleTimeout","timeoutErrorMessage","setRequestHeader","_progressEventReducer","_progressEventReducer2","upload","_progressEventReducer3","_progressEventReducer4","cancel","abort","subscribe","aborted","send","composeSignals","signals","Boolean","controller","AbortController","reason","streamChunk","_regenerator","chunk","chunkSize","pos","_context","byteLength","readBytes","_wrapAsyncGenerator","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_t","_context2","p","_asyncIterator","readStream","_awaitAsyncGenerator","d","_regeneratorValues","_asyncGeneratorDelegate","_x","_x2","_callee2","stream","reader","_yield$_awaitAsyncGen","_context3","asyncIterator","getReader","_x3","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","_asyncToGenerator","_callee3","_yield$iterator$next","_done","loadedBytes","_t2","_context4","close","enqueue","highWaterMark","estimateDataURLDecodedBytes","comma","meta","body","isBase64","effectiveLen","isHex","pad","idx","tailIsPct3D","j","groups","floor","c","VERSION","DEFAULT_CHUNK_SIZE","factory","globalObject","TextEncoder","Request","Response","_env","envFetch","fetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","_request","size","resolveBodyLength","getContentLength","_x4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","outboundLength","contentTypeHeader","_progressEventDecorat","_progressEventDecorat2","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","_ref6","_onProgress","_flush","bytesRead","onChunkProgress","materializedSize","canceledError","_t3","_t4","_t5","toAbortSignal","credentials","_x5","seedCache","Map","getFetch","seeds","seed","knownAdapters","http","httpAdapter","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","getAdapter","adapters","_adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","validators","validator","deprecatedWarnings","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","captureStackTrace","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","getUri","fullPath","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","splice","spread","callback","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/dist/axios.min.js b/node_modules/axios/dist/axios.min.js deleted file mode 100644 index 57dfafd..0000000 --- a/node_modules/axios/dist/axios.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,function(){"use strict";function e(e,t){this.v=e,this.k=t}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n3?(o=h===r)&&(s=i[(u=i[4])?5:(u=3,3)],i[4]=i[5]=e):i[0]<=p&&((o=n<2&&pr||r>h)&&(i[4]=n,i[5]=r,d.n=h,u=0))}if(o||n>1)return a;throw l=!0,r}return function(o,f,h){if(c>1)throw TypeError("Generator is already running");for(l&&1===f&&p(f,h),u=f,s=h;(t=u<2?e:s)||!l;){i||(u?u<3?(u>1&&(d.n=-1),p(u,s)):d.n=s:d.v=s);try{if(c=2,i){if(u||(o="next"),t=i[o]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,u<2&&(u=0)}else 1===u&&(t=i.return)&&t.call(i),u<2&&(s=TypeError("The iterator does not provide a '"+o+"' method"),u=1);i=e}else if((t=(l=d.n<0)?s:n.call(r,d))!==a)break}catch(t){i=e,u=1,s=t}finally{c=1}}return{value:t,done:l}}}(n,o,i),!0),c}var a={};function u(){}function s(){}function c(){}t=Object.getPrototypeOf;var f=[][r]?t(t([][r]())):(g(t={},r,function(){return this}),t),l=c.prototype=u.prototype=Object.create(f);function d(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,g(e,o,"GeneratorFunction")),e.prototype=Object.create(l),e}return s.prototype=c,g(l,"constructor",c),g(c,"constructor",s),s.displayName="GeneratorFunction",g(c,o,"GeneratorFunction"),g(l),g(l,o,"Generator"),g(l,r,function(){return this}),g(l,"toString",function(){return"[object Generator]"}),(m=function(){return{w:i,m:d}})()}function g(e,t,n,r){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}g=function(e,t,n,r){function i(t,n){g(e,t,function(e){return this._invoke(t,n,e)})}t?o?o(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))},g(e,t,n,r)}function w(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],n=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function O(e,t){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},O(e,t)}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,u=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(e,t)||A(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||A(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function _(e){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}function A(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function T(e){return function(){return new j(e.apply(this,arguments))}}function j(t){var n,r;function o(n,r){try{var a=t[n](r),u=a.value,s=u instanceof e;Promise.resolve(s?u.v:u).then(function(e){if(s){var r="return"===n?"return":"next";if(!u.k||e.done)return o(r,e);e=t[r](e).value}i(a.done?"return":"normal",e)},function(e){o("throw",e)})}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};r?r=r.next=u:(n=r=u,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}function P(e){var t="function"==typeof Map?new Map:void 0;return P=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(y())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&O(o,n.prototype),o}(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),O(n,e)},P(e)}function k(e,t){return function(){return e.apply(t,arguments)}}j.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},j.prototype.next=function(e){return this._invoke("next",e)},j.prototype.throw=function(e){return this._invoke("throw",e)},j.prototype.return=function(e){return this._invoke("return",e)};var x,C=Object.prototype.toString,N=Object.getPrototypeOf,D=Symbol.iterator,U=Symbol.toStringTag,L=(x=Object.create(null),function(e){var t=C.call(e);return x[t]||(x[t]=t.slice(8,-1).toLowerCase())}),F=function(e){return e=e.toLowerCase(),function(t){return L(t)===e}},B=function(e){return function(t){return _(t)===e}},I=Array.isArray,q=B("undefined");function M(e){return null!==e&&!q(e)&&null!==e.constructor&&!q(e.constructor)&&W(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var z=F("ArrayBuffer");var H=B("string"),W=B("function"),J=B("number"),K=function(e){return null!==e&&"object"===_(e)},V=function(e){if("object"!==L(e))return!1;var t=N(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||U in e||D in e)},X=F("Date"),G=F("File"),$=F("Blob"),Q=F("FileList");var Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},Z=void 0!==Y.FormData?Y.FormData:void 0,ee=F("URLSearchParams"),te=E(["ReadableStream","Request","Response","Headers"].map(F),4),ne=te[0],re=te[1],oe=te[2],ie=te[3];function ae(e,t){var n,r,o=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).allOwnKeys,i=void 0!==o&&o;if(null!=e)if("object"!==_(e)&&(e=[e]),I(e))for(n=0,r=e.length;n0;)if(t===(n=r[o]).toLowerCase())return n;return null}var se="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,ce=function(e){return!q(e)&&e!==se};var fe,le=(fe="undefined"!=typeof Uint8Array&&N(Uint8Array),function(e){return fe&&e instanceof fe}),de=F("HTMLFormElement"),pe=function(){var e=Object.prototype.hasOwnProperty;return function(t,n){return e.call(t,n)}}(),he=F("RegExp"),ye=function(e,t){var n=Object.getOwnPropertyDescriptors(e),r={};ae(n,function(n,o){var i;!1!==(i=t(n,o,e))&&(r[o]=i||n)}),Object.defineProperties(e,r)};var ve,be,me,ge,we=F("AsyncFunction"),Oe=(ve="function"==typeof setImmediate,be=W(se.postMessage),ve?setImmediate:be?(me="axios@".concat(Math.random()),ge=[],se.addEventListener("message",function(e){var t=e.source,n=e.data;t===se&&n===me&&ge.length&&ge.shift()()},!1),function(e){ge.push(e),se.postMessage(me,"*")}):function(e){return setTimeout(e)}),Ee="undefined"!=typeof queueMicrotask?queueMicrotask.bind(se):"undefined"!=typeof process&&process.nextTick||Oe,Re={isArray:I,isArrayBuffer:z,isBuffer:M,isFormData:function(e){if(!e)return!1;if(Z&&e instanceof Z)return!0;var t=N(e);if(!t||t===Object.prototype)return!1;if(!W(e.append))return!1;var n=L(e);return"formdata"===n||"object"===n&&W(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&z(e.buffer)},isString:H,isNumber:J,isBoolean:function(e){return!0===e||!1===e},isObject:K,isPlainObject:V,isEmptyObject:function(e){if(!K(e)||M(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:ne,isRequest:re,isResponse:oe,isHeaders:ie,isUndefined:q,isDate:X,isFile:G,isReactNativeBlob:function(e){return!(!e||void 0===e.uri)},isReactNative:function(e){return e&&void 0!==e.getParts},isBlob:$,isRegExp:he,isFunction:W,isStream:function(e){return K(e)&&W(e.pipe)},isURLSearchParams:ee,isTypedArray:le,isFileList:Q,forEach:ae,merge:function e(){for(var t=ce(this)&&this||{},n=t.caseless,r=t.skipUndefined,o={},i=function(t,i){if("__proto__"!==i&&"constructor"!==i&&"prototype"!==i){var a=n&&ue(o,i)||i,u=pe(o,a)?o[a]:void 0;V(u)&&V(t)?o[a]=e(u,t):V(t)?o[a]=e({},t):I(t)?o[a]=t.slice():r&&q(t)||(o[a]=t)}},a=arguments.length,u=new Array(a),s=0;s3&&void 0!==arguments[3]?arguments[3]:{}).allOwnKeys}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,n,r){e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],r&&!r(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==n&&N(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:L,kindOfTest:F,endsWith:function(e,t,n){e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;var r=e.indexOf(t,n);return-1!==r&&r===n},toArray:function(e){if(!e)return null;if(I(e))return e;var t=e.length;if(!J(t))return null;for(var n=new Array(t);t-- >0;)n[t]=e[t];return n},forEachEntry:function(e,t){for(var n,r=(e&&e[D]).call(e);(n=r.next())&&!n.done;){var o=n.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var n,r=[];null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:de,hasOwnProperty:pe,hasOwnProp:pe,reduceDescriptors:ye,freezeMethods:function(e){ye(e,function(t,n){if(W(e)&&["arguments","caller","callee"].includes(n))return!1;var r=e[n];W(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:function(e,t){var n={},r=function(e){e.forEach(function(e){n[e]=!0})};return I(e)?r(e):r(String(e).split(t)),n},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n})},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:ue,global:se,isContextDefined:ce,isSpecCompliantForm:function(e){return!!(e&&W(e.append)&&"FormData"===e[U]&&e[D])},toJSONObject:function(e){var t=new WeakSet,n=function(e){if(K(e)){if(t.has(e))return;if(M(e))return e;if(!("toJSON"in e)){t.add(e);var r=I(e)?[]:{};return ae(e,function(e,t){var o=n(e);!q(o)&&(r[t]=o)}),t.delete(e),r}}return e};return n(e)},isAsyncFn:we,isThenable:function(e){return e&&(K(e)||W(e))&&W(e.then)&&W(e.catch)},setImmediate:Oe,asap:Ee,isIterable:function(e){return null!=e&&W(e[D])}},Se=Re.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var _e=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),Ae=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function Te(e,t){return Re.isArray(e)?e.map(function(e){return Te(e,t)}):function(e){for(var t=0,n=e.length;tt;){var o=e.charCodeAt(n-1);if(9!==o&&32!==o)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(t,""))}function je(e){var t=Object.create(null);return Re.forEach(e.toJSON(),function(e,n){t[n]=function(e){return Te(e,Ae)}(e)}),t}var Pe=Symbol("internals");function ke(e){return e&&String(e).trim().toLowerCase()}function xe(e){return!1===e||null==e?e:Re.isArray(e)?e.map(xe):function(e){return Te(e,_e)}(String(e))}function Ce(e,t,n,r,o){return Re.isFunction(r)?r.call(this,t,n):(o&&(t=n),Re.isString(t)?Re.isString(r)?-1!==t.indexOf(r):Re.isRegExp(r)?r.test(t):void 0:void 0)}var Ne=function(){return l(function e(t){c(this,e),t&&this.set(t)},[{key:"set",value:function(e,t,n){var r=this;function o(e,t,n){var o=ke(t);if(!o)throw new Error("header name must be a non-empty string");var i=Re.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=xe(e))}var i=function(e,t){return Re.forEach(e,function(e,n){return o(e,n,t)})};if(Re.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(Re.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,n,r,o={};return e&&e.split("\n").forEach(function(e){r=e.indexOf(":"),t=e.substring(0,r).trim().toLowerCase(),n=e.substring(r+1).trim(),!t||o[t]&&Se[t]||("set-cookie"===t?o[t]?o[t].push(n):o[t]=[n]:o[t]=o[t]?o[t]+", "+n:n)}),o}(e),t);else if(Re.isObject(e)&&Re.isIterable(e)){var a,u,s,c={},f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=A(e))||t){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw i}}}}(e);try{for(f.s();!(s=f.n()).done;){var l=s.value;if(!Re.isArray(l))throw TypeError("Object iterator must return a key-value pair");c[u=l[0]]=(a=c[u])?Re.isArray(a)?[].concat(R(a),[l[1]]):[a,l[1]]:l[1]}}catch(e){f.e(e)}finally{f.f()}i(c,t)}else null!=e&&o(t,e,n);return this}},{key:"get",value:function(e,t){if(e=ke(e)){var n=Re.findKey(this,e);if(n){var r=this[n];if(!t)return r;if(!0===t)return function(e){for(var t,n=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=r.exec(e);)n[t[1]]=t[2];return n}(r);if(Re.isFunction(t))return t.call(this,r,n);if(Re.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=ke(e)){var n=Re.findKey(this,e);return!(!n||void 0===this[n]||t&&!Ce(0,this[n],n,t))}return!1}},{key:"delete",value:function(e,t){var n=this,r=!1;function o(e){if(e=ke(e)){var o=Re.findKey(n,e);!o||t&&!Ce(0,n[o],o,t)||(delete n[o],r=!0)}}return Re.isArray(e)?e.forEach(o):o(e),r}},{key:"clear",value:function(e){for(var t=Object.keys(this),n=t.length,r=!1;n--;){var o=t[n];e&&!Ce(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}},{key:"normalize",value:function(e){var t=this,n={};return Re.forEach(this,function(r,o){var i=Re.findKey(n,o);if(i)return t[i]=xe(r),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n})}(o):String(o).trim();a!==o&&delete t[o],t[a]=xe(r),n[a]=!0}),this}},{key:"concat",value:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r1?n-1:0),o=1;o0?De(e,t):Re.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}}],[{key:"from",value:function(e,n,r,o,i,a){var u=new t(e.message,n||e.code,r,o,i);return u.cause=e,u.name=e.name,null!=e.status&&null==u.status&&(u.status=e.status),a&&Object.assign(u,a),u}}])}(P(Error));Ue.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",Ue.ERR_BAD_OPTION="ERR_BAD_OPTION",Ue.ECONNABORTED="ECONNABORTED",Ue.ETIMEDOUT="ETIMEDOUT",Ue.ECONNREFUSED="ECONNREFUSED",Ue.ERR_NETWORK="ERR_NETWORK",Ue.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",Ue.ERR_DEPRECATED="ERR_DEPRECATED",Ue.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",Ue.ERR_BAD_REQUEST="ERR_BAD_REQUEST",Ue.ERR_CANCELED="ERR_CANCELED",Ue.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",Ue.ERR_INVALID_URL="ERR_INVALID_URL",Ue.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";function Le(e){return Re.isPlainObject(e)||Re.isArray(e)}function Fe(e){return Re.endsWith(e,"[]")?e.slice(0,-2):e}function Be(e,t,n){return e?e.concat(t).map(function(e,t){return e=Fe(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}var Ie=Re.toFlatObject(Re,{},null,function(e){return/^is[A-Z]/.test(e)});function qe(e,t,n){if(!Re.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var r=(n=Re.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!Re.isUndefined(t[e])})).metaTokens,o=n.visitor||l,i=n.dots,a=n.indexes,u=n.Blob||"undefined"!=typeof Blob&&Blob,s=void 0===n.maxDepth?100:n.maxDepth,c=u&&Re.isSpecCompliantForm(t);if(!Re.isFunction(o))throw new TypeError("visitor must be a function");function f(e){if(null===e)return"";if(Re.isDate(e))return e.toISOString();if(Re.isBoolean(e))return e.toString();if(!c&&Re.isBlob(e))throw new Ue("Blob is not supported. Use a Buffer instead.");return Re.isArrayBuffer(e)||Re.isTypedArray(e)?c&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,n,o){var u=e;if(Re.isReactNative(t)&&Re.isReactNativeBlob(e))return t.append(Be(o,n,i),f(e)),!1;if(e&&!o&&"object"===_(e))if(Re.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Re.isArray(e)&&function(e){return Re.isArray(e)&&!e.some(Le)}(e)||(Re.isFileList(e)||Re.endsWith(n,"[]"))&&(u=Re.toArray(e)))return n=Fe(n),u.forEach(function(e,r){!Re.isUndefined(e)&&null!==e&&t.append(!0===a?Be([n],r,i):null===a?n:n+"[]",f(e))}),!1;return!!Le(e)||(t.append(Be(o,n,i),f(e)),!1)}var d=[],p=Object.assign(Ie,{defaultVisitor:l,convertValue:f,isVisitable:Le});if(!Re.isObject(e))throw new TypeError("data must be an object");return function e(n,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!Re.isUndefined(n)){if(i>s)throw new Ue("Object is too deeply nested ("+i+" levels). Max depth: "+s,Ue.ERR_FORM_DATA_DEPTH_EXCEEDED);if(-1!==d.indexOf(n))throw Error("Circular reference detected in "+r.join("."));d.push(n),Re.forEach(n,function(n,a){!0===(!(Re.isUndefined(n)||null===n)&&o.call(t,n,Re.isString(a)?a.trim():a,r,p))&&e(n,r?r.concat(a):[a],i+1)}),d.pop()}}(e),t}function Me(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function ze(e,t){this._pairs=[],e&&qe(e,this,t)}var He=ze.prototype;function We(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Je(e,t,n){if(!t)return e;var r,o=n&&n.encode||We,i=Re.isFunction(n)?{serialize:n}:n,a=i&&i.serialize;if(r=a?a(t,i):Re.isURLSearchParams(t)?t.toString():new ze(t,i).toString(o)){var u=e.indexOf("#");-1!==u&&(e=e.slice(0,u)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}He.append=function(e,t){this._pairs.push([e,t])},He.toString=function(e){var t=e?function(t){return e.call(this,t,Me)}:Me;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var Ke=function(){return l(function e(){c(this,e),this.handlers=[]},[{key:"use",value:function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){Re.forEach(this.handlers,function(t){null!==t&&e(t)})}}])}(),Ve={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},Xe={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ze,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Ge="undefined"!=typeof window&&"undefined"!=typeof document,$e="object"===("undefined"==typeof navigator?"undefined":_(navigator))&&navigator||void 0,Qe=Ge&&(!$e||["ReactNative","NativeScript","NS"].indexOf($e.product)<0),Ye="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Ze=Ge&&window.location.href||"http://localhost",et=b(b({},Object.freeze({__proto__:null,hasBrowserEnv:Ge,hasStandardBrowserEnv:Qe,hasStandardBrowserWebWorkerEnv:Ye,navigator:$e,origin:Ze})),Xe);function tt(e){function t(e,n,r,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&Re.isArray(r)?r.length:i,u?(Re.hasOwnProp(r,i)?r[i]=Re.isArray(r[i])?r[i].concat(n):[r[i],n]:r[i]=n,!a):(Re.hasOwnProp(r,i)&&Re.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&Re.isArray(r[i])&&(r[i]=function(e){var t,n,r={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=Re.isObject(e);if(i&&Re.isHTMLForm(e)&&(e=new FormData(e)),Re.isFormData(e))return o?JSON.stringify(tt(e)):e;if(Re.isArrayBuffer(e)||Re.isBuffer(e)||Re.isStream(e)||Re.isFile(e)||Re.isBlob(e)||Re.isReadableStream(e))return e;if(Re.isArrayBufferView(e))return e.buffer;if(Re.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){var a=nt(this,"formSerializer");if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return qe(e,new et.classes.URLSearchParams,b({visitor:function(e,t,n,r){return et.isNode&&Re.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,a).toString();if((n=Re.isFileList(e))||r.indexOf("multipart/form-data")>-1){var u=nt(this,"env"),s=u&&u.FormData;return qe(n?{"files[]":e}:e,s&&new s,a)}}return i||o?(t.setContentType("application/json",!1),function(e,t,n){if(Re.isString(e))try{return(t||JSON.parse)(e),Re.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=nt(this,"transitional")||rt.transitional,n=t&&t.forcedJSONParsing,r=nt(this,"responseType"),o="json"===r;if(Re.isResponse(e)||Re.isReadableStream(e))return e;if(e&&Re.isString(e)&&(n&&!r||o)){var i=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e,nt(this,"parseReviver"))}catch(e){if(i){if("SyntaxError"===e.name)throw Ue.from(e,Ue.ERR_BAD_RESPONSE,this,null,nt(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:et.classes.FormData,Blob:et.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};function ot(e,t){var n=this||rt,r=t||n,o=Ne.from(r.headers),i=r.data;return Re.forEach(e,function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)}),o.normalize(),i}function it(e){return!(!e||!e.__CANCEL__)}Re.forEach(["delete","get","head","post","put","patch","query"],function(e){rt.headers[e]={}});var at=function(e){function t(e,n,r){var o;return c(this,t),(o=s(this,t,[null==e?"canceled":e,Ue.ERR_CANCELED,n,r])).name="CanceledError",o.__CANCEL__=!0,o}return h(t,e),l(t)}(Ue);function ut(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new Ue("Request failed with status code "+n.status,n.status>=400&&n.status<500?Ue.ERR_BAD_REQUEST:Ue.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}var st=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,r=0,o=function(e,t){e=e||10;var n,r=new Array(e),o=new Array(e),i=0,a=0;return t=void 0!==t?t:1e3,function(u){var s=Date.now(),c=o[a];n||(n=s),r[i]=u,o[i]=s;for(var f=a,l=0;f!==i;)l+=r[f++],f%=e;if((i=(i+1)%e)===a&&(a=(a+1)%e),!(s-n1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(void 0,R(t))};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(n=s,r||(r=setTimeout(function(){r=null,a(n)},i-t)))},function(){return n&&a(n)}]}(function(n){if(n&&"number"==typeof n.loaded){var i=n.loaded,a=n.lengthComputable?n.total:void 0,u=null!=a?Math.min(i,a):i,s=Math.max(0,u-r),c=o(s);r=Math.max(r,u);var f=d({loaded:u,total:a,progress:a?u/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a?(a-u)/c:void 0,event:n,lengthComputable:null!=a},t?"download":"upload",!0);e(f)}},n)},ct=function(e,t){var n=null!=e;return[function(r){return t[0]({lengthComputable:n,total:e,loaded:r})},t[1]]},ft=function(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r=48&&u<=57||u>=65&&u<=70||u>=97&&u<=102)&&(s>=48&&s<=57||s>=65&&s<=70||s>=97&&s<=102)&&(o-=2,a+=2)}var c=0,f=i-1,l=function(e){return e>=2&&37===r.charCodeAt(e-2)&&51===r.charCodeAt(e-1)&&(68===r.charCodeAt(e)||100===r.charCodeAt(e))};f>=0&&(61===r.charCodeAt(f)?(c++,f--):l(f)&&(c++,f-=3)),1===c&&f>=0&&(61===r.charCodeAt(f)||l(f))&&c++;var d=3*Math.floor(o/4)-(c||0);return d>0?d:0}if("undefined"!=typeof Buffer&&"function"==typeof Buffer.byteLength)return Buffer.byteLength(r,"utf8");for(var p=0,h=0,y=r.length;h=55296&&v<=56319&&h+1=56320&&b<=57343?(p+=4,h++):p+=3}else p+=3}return p}var _t="1.16.1",At=Re.isFunction,Tt=function(e){try{for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r-1,x=Re.isNumber(P)&&P>-1,C=i||fetch,R=R?(R+"").toLowerCase():"text",N=gt([l,d&&d.toAbortSignal()],p),D=null,U=N&&N.unsubscribe&&function(){N.unsubscribe()},e.p=1,!k||"string"!=typeof o||!o.startsWith("data:")){e.n=2;break}if(!(St(o)>j)){e.n=2;break}throw new Ue("maxContentLength size of "+j+" exceeded",Ue.ERR_BAD_RESPONSE,t,D);case 2:if(!x||"get"===a||"head"===a){e.n=4;break}return e.n=3,O(S,c);case 3:if(!("number"==typeof(F=e.v)&&isFinite(F)&&F>P)){e.n=4;break}throw new Ue("Request body larger than maxBodyLength limit",Ue.ERR_BAD_REQUEST,t,D);case 4:if(!(ae=w&&y&&"get"!==a&&"head"!==a)){e.n=6;break}return e.n=5,O(S,c);case 5:ue=L=e.v,ae=0!==ue;case 6:if(!ae){e.n=7;break}B=new u(o,{method:"POST",body:c,duplex:"half"}),Re.isFormData(c)&&(I=B.headers.get("content-type"))&&S.setContentType(I),B.body&&(q=ct(L,st(ft(w))),M=E(q,2),z=M[0],H=M[1],c=Rt(B.body,65536,z,H));case 7:return Re.isString(A)||(A=A?"include":"omit"),W=f&&"credentials"in u.prototype,Re.isFormData(c)&&(J=S.getContentType())&&/^multipart\/form-data/i.test(J)&&!/boundary=/i.test(J)&&S.delete("content-type"),S.set("User-Agent","axios/"+_t,!1),K=b(b({},T),{},{signal:N,method:a.toUpperCase(),headers:je(S.normalize()),body:c,duplex:"half",credentials:W?A:void 0}),D=f&&new u(o,K),e.n=8,f?C(D,T):C(o,K);case 8:if(V=e.v,!k){e.n=9;break}if(!(null!=(X=Re.toFiniteNumber(V.headers.get("content-length")))&&X>j)){e.n=9;break}throw new Ue("maxContentLength size of "+j+" exceeded",Ue.ERR_BAD_RESPONSE,t,D);case 9:return G=v&&("stream"===R||"response"===R),v&&V.body&&(h||k||G&&U)&&($={},["status","statusText","headers"].forEach(function(e){$[e]=V[e]}),Q=Re.toFiniteNumber(V.headers.get("content-length")),Y=h&&ct(Q,st(ft(h),!0))||[],Z=E(Y,2),ee=Z[0],te=Z[1],ne=function(e){if(k&&e>j)throw new Ue("maxContentLength size of "+j+" exceeded",Ue.ERR_BAD_RESPONSE,t,D);ee&&ee(e)},V=new s(Rt(V.body,65536,ne,function(){te&&te(),U&&U()}),$)),R=R||"text",e.n=10,g[Re.findKey(g,R)||"text"](V,t);case 10:if(re=e.v,!k||v||G){e.n=11;break}if(null!=re&&("number"==typeof re.byteLength?oe=re.byteLength:"number"==typeof re.size?oe=re.size:"string"==typeof re&&(oe="function"==typeof r?(new r).encode(re).byteLength:re.length)),!("number"==typeof oe&&oe>j)){e.n=11;break}throw new Ue("maxContentLength size of "+j+" exceeded",Ue.ERR_BAD_RESPONSE,t,D);case 11:return!G&&U&&U(),e.n=12,new Promise(function(e,n){ut(e,n,{data:re,headers:Ne.from(V.headers),status:V.status,statusText:V.statusText,config:t,request:D})});case 12:return e.a(2,e.v);case 13:if(e.p=13,se=e.v,U&&U(),!(N&&N.aborted&&N.reason instanceof Ue)){e.n=14;break}throw(ie=N.reason).config=t,D&&(ie.request=D),se!==ie&&(ie.cause=se),ie;case 14:if(!se||"TypeError"!==se.name||!/Load failed|fetch/i.test(se.message)){e.n=15;break}throw Object.assign(new Ue("Network Error",Ue.ERR_NETWORK,t,D,se&&se.response),{cause:se.cause||se});case 15:throw Ue.from(se,se&&se.code,t,D,se&&se.response);case 16:return e.a(2)}},e,null,[[1,13]])}));return function(t){return e.apply(this,arguments)}}()},Pt=new Map,kt=function(e){for(var t,n,r=e&&e.env||{},o=r.fetch,i=[r.Request,r.Response,o],a=i.length,u=Pt;a--;)t=i[a],void 0===(n=u.get(t))&&u.set(t,n=a?new Map:jt(r)),u=n;return n};kt();var xt={http:null,xhr:mt,fetch:{get:kt}};Re.forEach(xt,function(e,t){if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var Ct=function(e){return"- ".concat(e)},Nt=function(e){return Re.isFunction(e)||null===e||!1===e};var Dt={getAdapter:function(e,t){for(var n,r,o=(e=Re.isArray(e)?e:[e]).length,i={},a=0;a1?"since :\n"+s.map(Ct).join("\n"):" "+Ct(s[0]):"as no adapter specified";throw new Ue("There is no suitable adapter to dispatch the request "+c,"ERR_NOT_SUPPORT")}return r},adapters:xt};function Ut(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new at(null,e)}function Lt(e){return Ut(e),e.headers=Ne.from(e.headers),e.data=ot.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Dt.getAdapter(e.adapter||rt.adapter,e)(e).then(function(t){Ut(e),e.response=t;try{t.data=ot.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Ne.from(t.headers),t},function(t){if(!it(t)&&(Ut(e),t&&t.response)){e.response=t.response;try{t.response.data=ot.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Ne.from(t.response.headers)}return Promise.reject(t)})}var Ft={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){Ft[e]=function(n){return _(n)===e||"a"+(t<1?"n ":" ")+e}});var Bt={};Ft.transitional=function(e,t,n){function r(e,t){return"[Axios v"+_t+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,o,i){if(!1===e)throw new Ue(r(o," has been removed"+(t?" in "+t:"")),Ue.ERR_DEPRECATED);return t&&!Bt[o]&&(Bt[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}},Ft.spelling=function(e){return function(t,n){return console.warn("".concat(n," is likely a misspelling of ").concat(e)),!0}};var It={assertOptions:function(e,t,n){if("object"!==_(e))throw new Ue("options must be an object",Ue.ERR_BAD_OPTION_VALUE);for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],a=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0;if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new Ue("option "+i+" must be "+s,Ue.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Ue("Unknown option "+i,Ue.ERR_BAD_OPTION)}},validators:Ft},qt=It.validators,Mt=function(){return l(function e(t){c(this,e),this.defaults=t||{},this.interceptors={request:new Ke,response:new Ke}},[{key:"request",value:(e=a(m().m(function e(t,n){var r,o,i,a,u,s;return m().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,this._request(t,n);case 1:return e.a(2,e.v);case 2:if(e.p=2,(s=e.v)instanceof Error){r={},Error.captureStackTrace?Error.captureStackTrace(r):r=new Error,o=function(){if(!r.stack)return"";var e=r.stack.indexOf("\n");return-1===e?"":r.stack.slice(e+1)}();try{s.stack?o&&(i=o.indexOf("\n"),a=-1===i?-1:o.indexOf("\n",i+1),u=-1===a?"":o.slice(a+1),String(s.stack).endsWith(u)||(s.stack+="\n"+o)):s.stack=o}catch(e){}}throw s;case 3:return e.a(2)}},e,this,[[0,2]])})),function(t,n){return e.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n=t=yt(this.defaults,t),r=n.transitional,o=n.paramsSerializer,i=n.headers;void 0!==r&&It.assertOptions(r,{silentJSONParsing:qt.transitional(qt.boolean),forcedJSONParsing:qt.transitional(qt.boolean),clarifyTimeoutError:qt.transitional(qt.boolean),legacyInterceptorReqResOrdering:qt.transitional(qt.boolean)},!1),null!=o&&(Re.isFunction(o)?t.paramsSerializer={serialize:o}:It.assertOptions(o,{encode:qt.function,serialize:qt.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),It.assertOptions(t,{baseUrl:qt.spelling("baseURL"),withXsrfToken:qt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&Re.merge(i.common,i[t.method]);i&&Re.forEach(["delete","get","head","post","put","patch","query","common"],function(e){delete i[e]}),t.headers=Ne.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach(function(e){if("function"!=typeof e.runWhen||!1!==e.runWhen(t)){s=s&&e.synchronous;var n=t.transitional||Ve;n&&n.legacyInterceptorReqResOrdering?u.unshift(e.fulfilled,e.rejected):u.push(e.fulfilled,e.rejected)}});var c,f=[];this.interceptors.response.forEach(function(e){f.push(e.fulfilled,e.rejected)});var l,d=0;if(!s){var p=[Lt.bind(this),void 0];for(p.unshift.apply(p,u),p.push.apply(p,f),l=p.length,c=Promise.resolve(t);d0;)r._listeners[t](e);r._listeners=null}}),this.promise.then=function(e){var t,n=new Promise(function(e){r.subscribe(e),t=e}).then(e);return n.cancel=function(){r.unsubscribe(t)},n},t(function(e,t,o){r.reason||(r.reason=new at(e,t,o),n(r.reason))})}return l(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,n=function(e){t.abort(e)};return this.subscribe(n),t.signal.unsubscribe=function(){return e.unsubscribe(n)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e(function(e){t=e}),cancel:t}}}])}();var Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Ht).forEach(function(e){var t=E(e,2),n=t[0],r=t[1];Ht[r]=n});var Wt=function e(t){var n=new Mt(t),r=k(Mt.prototype.request,n);return Re.extend(r,Mt.prototype,n,{allOwnKeys:!0}),Re.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(yt(t,n))},r}(rt);return Wt.Axios=Mt,Wt.CanceledError=at,Wt.CancelToken=zt,Wt.isCancel=it,Wt.VERSION=_t,Wt.toFormData=qe,Wt.AxiosError=Ue,Wt.Cancel=Wt.CanceledError,Wt.all=function(e){return Promise.all(e)},Wt.spread=function(e){return function(t){return e.apply(null,t)}},Wt.isAxiosError=function(e){return Re.isObject(e)&&!0===e.isAxiosError},Wt.mergeConfig=yt,Wt.AxiosHeaders=Ne,Wt.formToJSON=function(e){return tt(Re.isHTMLForm(e)?new FormData(e):e)},Wt.getAdapter=Dt.getAdapter,Wt.HttpStatusCode=Ht,Wt.default=Wt,Wt}); -//# sourceMappingURL=axios.min.js.map diff --git a/node_modules/axios/dist/axios.min.js.map b/node_modules/axios/dist/axios.min.js.map deleted file mode 100644 index 5034cf4..0000000 --- a/node_modules/axios/dist/axios.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.min.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/helpers/parseHeaders.js","../lib/helpers/sanitizeHeaderValue.js","../lib/core/AxiosHeaders.js","../lib/core/AxiosError.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/defaults/transitional.js","../lib/platform/browser/index.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/platform/browser/classes/Blob.js","../lib/platform/common/utils.js","../lib/platform/index.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/toURLEncodedForm.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/progressEventReducer.js","../lib/helpers/speedometer.js","../lib/helpers/throttle.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/cookies.js","../lib/core/buildFullPath.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/mergeConfig.js","../lib/helpers/resolveConfig.js","../lib/adapters/xhr.js","../lib/helpers/parseProtocol.js","../lib/helpers/composeSignals.js","../lib/helpers/trackStream.js","../lib/helpers/estimateDataURLDecodedBytes.js","../lib/env/data.js","../lib/adapters/fetch.js","../lib/adapters/adapters.js","../lib/helpers/null.js","../lib/core/dispatchRequest.js","../lib/helpers/validator.js","../lib/core/Axios.js","../lib/cancel/CancelToken.js","../lib/helpers/HttpStatusCode.js","../lib/axios.js","../lib/helpers/spread.js","../lib/helpers/isAxiosError.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.16.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n"],"names":["bind","fn","thisArg","apply","arguments","cache","toString","Object","prototype","getPrototypeOf","iterator","Symbol","toStringTag","kindOf","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","G","globalThis","self","window","global","FormDataCtor","FormData","undefined","isURLSearchParams","_map2","_slicedToArray","map","isReadableStream","isRequest","isResponse","isHeaders","forEach","obj","i","l","_ref$allOwnKeys","length","allOwnKeys","key","keys","getOwnPropertyNames","len","findKey","_key","_global","isContextDefined","context","TypedArray","isTypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","setImmediateSupported","postMessageSupported","token","callbacks","isAsyncFn","_setImmediate","setImmediate","postMessage","concat","Math","random","addEventListener","_ref5","source","data","shift","cb","push","setTimeout","asap","queueMicrotask","process","nextTick","utils$1","isFormData","proto","append","kind","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","e","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isStream","pipe","merge","_ref2","this","caseless","skipUndefined","result","assignValue","targetKey","existing","_len","objs","_key2","extend","a","b","defineProperty","__proto__","writable","enumerable","configurable","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","_iterator","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","includes","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","visited","WeakSet","visit","has","add","target","reducedValue","isThenable","then","isIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","RegExp","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","item","start","end","code","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","toJSON","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","test","AxiosHeaders","_createClass","_classCallCheck","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","_step","_createForOfIteratorHelper","s","n","entry","TypeError","_toConsumableArray","err","f","parser","match","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","w","char","formatHeader","_this$constructor","targets","asStrings","join","entries","_ref","get","first","computed","_len2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","accessor","_ref3","mapped","headerValue","redactConfig","config","redactKeys","lowerKeys","Set","k","seen","v","hasOwnOrPrototypeToJSON","pop","_i","_Object$entries","_Object$entries$_i","AxiosError","_Error","message","request","response","_this","_callSuper","isAxiosError","status","_inherits","redact","serializedConfig","description","number","fileName","lineNumber","columnNumber","stack","error","customProps","axiosError","cause","_wrapNativeSuper","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","predicates","toFormData","options","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","from","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","depth","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","buildURL","url","serializedParams","_encode","_options","serialize","serializeFn","hashmarkIndex","encoder","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","id","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","_objectSpread","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","helpers","isNode","toURLEncodedForm","env","_FormData","rawValue","parse","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","fns","normalize","isCancel","__CANCEL__","method","CanceledError","_AxiosError","settle","resolve","reject","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","firstSampleTS","bytes","timestamps","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","throttle","loaded","rawLoaded","total","lengthComputable","progressBytes","max","rate","_defineProperty","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","URL","protocol","host","port","userAgent","cookies","write","expires","domain","secure","sameSite","cookie","toUTCString","read","eq","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","FORM_DATA_CONTENT_HEADERS","resolveConfig","newConfig","auth","btoa","username","password","_","hex","fromCharCode","parseInt","getHeaders","formHeaders","policy","setFormDataHeaders","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","_config","requestData","requestHeaders","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","startsWith","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","_progressEventReducer2","upload","_progressEventReducer4","cancel","abort","subscribe","aborted","send","composeSignals","signals","Boolean","controller","AbortController","reason","streamChunk","_regenerator","chunk","chunkSize","pos","_context","byteLength","readBytes","_wrapAsyncGenerator","_callee","iterable","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_t","_context2","p","_asyncIterator","readStream","_awaitAsyncGenerator","d","_regeneratorValues","_asyncGeneratorDelegate","_x","_x2","_callee2","stream","reader","_yield$_awaitAsyncGen","_context3","asyncIterator","getReader","_x3","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","_asyncToGenerator","_callee3","_yield$iterator$next","_done","loadedBytes","_t2","_context4","close","enqueue","highWaterMark","estimateDataURLDecodedBytes","comma","meta","body","effectiveLen","pad","idx","tailIsPct3D","j","floor","c","VERSION","factory","globalObject","TextEncoder","_env","Request","Response","envFetch","fetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","_request","size","resolveBodyLength","getContentLength","_x4","_ref4","_callee4","_resolveConfig","_resolveConfig$withCr","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","outboundLength","contentTypeHeader","_progressEventDecorat","_progressEventDecorat2","flush","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","_ref6","_onProgress","_flush","onChunkProgress","responseData","materializedSize","canceledError","_t3","_t4","_t5","toAbortSignal","credentials","_x5","seedCache","Map","getFetch","seed","seeds","knownAdapters","http","xhr","fetchAdapter","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","_request2","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","captureStackTrace","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","Cancel","all","promises","spread","callback","payload","formToJSON"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/dist/browser/axios.cjs b/node_modules/axios/dist/browser/axios.cjs deleted file mode 100644 index 9538599..0000000 --- a/node_modules/axios/dist/browser/axios.cjs +++ /dev/null @@ -1,4733 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -'use strict'; - -/** - * Create a bound version of a function with a specified `this` context - * - * @param {Function} fn - The function to bind - * @param {*} thisArg - The value to be passed as the `this` parameter - * @returns {Function} A new function that will call the original function with the specified `this` context - */ -function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} - -// utils is a library of generic helper functions non-specific to axios - -const { toString } = Object.prototype; -const { getPrototypeOf } = Object; -const { iterator, toStringTag } = Symbol; - -const kindOf = ((cache) => (thing) => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(Object.create(null)); - -const kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type; -}; - -const typeOfTest = (type) => (thing) => typeof thing === type; - -/** - * Determine if a value is a non-null object - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ -const { isArray } = Array; - -/** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ -const isUndefined = typeOfTest('undefined'); - -/** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return ( - val !== null && - !isUndefined(val) && - val.constructor !== null && - !isUndefined(val.constructor) && - isFunction$1(val.constructor.isBuffer) && - val.constructor.isBuffer(val) - ); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -const isArrayBuffer = kindOfTest('ArrayBuffer'); - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ -const isString = typeOfTest('string'); - -/** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -const isFunction$1 = typeOfTest('function'); - -/** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ -const isNumber = typeOfTest('number'); - -/** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ -const isObject = (thing) => thing !== null && typeof thing === 'object'; - -/** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ -const isBoolean = (thing) => thing === true || thing === false; - -/** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ -const isPlainObject = (val) => { - if (kindOf(val) !== 'object') { - return false; - } - - const prototype = getPrototypeOf(val); - return ( - (prototype === null || - prototype === Object.prototype || - Object.getPrototypeOf(prototype) === null) && - !(toStringTag in val) && - !(iterator in val) - ); -}; - -/** - * Determine if a value is an empty object (safely handles Buffers) - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an empty object, otherwise false - */ -const isEmptyObject = (val) => { - // Early return for non-objects or Buffers to prevent RangeError - if (!isObject(val) || isBuffer(val)) { - return false; - } - - try { - return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; - } catch (e) { - // Fallback for any other objects that might cause RangeError with Object.keys() - return false; - } -}; - -/** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ -const isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFile = kindOfTest('File'); - -/** - * Determine if a value is a React Native Blob - * React Native "blob": an object with a `uri` attribute. Optionally, it can - * also have a `name` and `type` attribute to specify filename and content type - * - * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * - * @param {*} value The value to test - * - * @returns {boolean} True if value is a React Native Blob, otherwise false - */ -const isReactNativeBlob = (value) => { - return !!(value && typeof value.uri !== 'undefined'); -}; - -/** - * Determine if environment is React Native - * ReactNative `FormData` has a non-standard `getParts()` method - * - * @param {*} formData The formData to test - * - * @returns {boolean} True if environment is React Native, otherwise false - */ -const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; - -/** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ -const isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a FileList, otherwise false - */ -const isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ -const isStream = (val) => isObject(val) && isFunction$1(val.pipe); - -/** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - return {}; -} - -const G = getGlobal(); -const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; - -const isFormData = (thing) => { - if (!thing) return false; - if (FormDataCtor && thing instanceof FormDataCtor) return true; - // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. - const proto = getPrototypeOf(thing); - if (!proto || proto === Object.prototype) return false; - if (!isFunction$1(thing.append)) return false; - const kind = kindOf(thing); - return ( - kind === 'formdata' || - // detect form-data instance - (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]') - ); -}; - -/** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -const isURLSearchParams = kindOfTest('URLSearchParams'); - -const [isReadableStream, isRequest, isResponse, isHeaders] = [ - 'ReadableStream', - 'Request', - 'Response', - 'Headers', -].map(kindOfTest); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ -const trim = (str) => { - return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); -}; -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys = false] - * @returns {any} - */ -function forEach(obj, fn, { allOwnKeys = false } = {}) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - let i; - let l; - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Buffer check - if (isBuffer(obj)) { - return; - } - - // Iterate over object keys - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} - -/** - * Finds a key in an object, case-insensitive, returning the actual key name. - * Returns null if the object is a Buffer or if no match is found. - * - * @param {Object} obj - The object to search. - * @param {string} key - The key to find (case-insensitive). - * @returns {?string} The actual key name if found, otherwise null. - */ -function findKey(obj, key) { - if (isBuffer(obj)) { - return null; - } - - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} - -const _global = (() => { - /*eslint no-undef:0*/ - if (typeof globalThis !== 'undefined') return globalThis; - return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; -})(); - -const isContextDefined = (context) => !isUndefined(context) && context !== _global; - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * const result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ -function merge(...objs) { - const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; - const result = {}; - const assignValue = (val, key) => { - // Skip dangerous property names to prevent prototype pollution - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return; - } - - const targetKey = (caseless && findKey(result, key)) || key; - // Read via own-prop only — a bare `result[targetKey]` walks the prototype - // chain, so a polluted Object.prototype value could surface here and get - // copied into the merged result. - const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; - if (isPlainObject(existing) && isPlainObject(val)) { - result[targetKey] = merge(existing, val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else if (!skipUndefined || !isUndefined(val)) { - result[targetKey] = val; - } - }; - - for (let i = 0, l = objs.length; i < l; i++) { - objs[i] && forEach(objs[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys] - * @returns {Object} The resulting value of object a - */ -const extend = (a, b, thisArg, { allOwnKeys } = {}) => { - forEach( - b, - (val, key) => { - if (thisArg && isFunction$1(val)) { - Object.defineProperty(a, key, { - // Null-proto descriptor so a polluted Object.prototype.get cannot - // hijack defineProperty's accessor-vs-data resolution. - __proto__: null, - value: bind(val, thisArg), - writable: true, - enumerable: true, - configurable: true, - }); - } else { - Object.defineProperty(a, key, { - __proto__: null, - value: val, - writable: true, - enumerable: true, - configurable: true, - }); - } - }, - { allOwnKeys } - ); - return a; -}; - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ -const stripBOM = (content) => { - if (content.charCodeAt(0) === 0xfeff) { - content = content.slice(1); - } - return content; -}; - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ -const inherits = (constructor, superConstructor, props, descriptors) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - Object.defineProperty(constructor.prototype, 'constructor', { - __proto__: null, - value: constructor, - writable: true, - enumerable: false, - configurable: true, - }); - Object.defineProperty(constructor, 'super', { - __proto__: null, - value: superConstructor.prototype, - }); - props && Object.assign(constructor.prototype, props); -}; - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ -const toFlatObject = (sourceObj, destObj, filter, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - - return destObj; -}; - -/** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ -const endsWith = (str, searchString, position) => { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; - -/** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ -const toArray = (thing) => { - if (!thing) return null; - if (isArray(thing)) return thing; - let i = thing.length; - if (!isNumber(i)) return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -}; - -/** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ -// eslint-disable-next-line func-names -const isTypedArray = ((TypedArray) => { - // eslint-disable-next-line func-names - return (thing) => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - -/** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ -const forEachEntry = (obj, fn) => { - const generator = obj && obj[iterator]; - - const _iterator = generator.call(obj); - - let result; - - while ((result = _iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -}; - -/** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ -const matchAll = (regExp, str) => { - let matches; - const arr = []; - - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - - return arr; -}; - -/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ -const isHTMLForm = kindOfTest('HTMLFormElement'); - -const toCamelCase = (str) => { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - }); -}; - -/* Creating a function that will check if an object has a property. */ -const hasOwnProperty = ( - ({ hasOwnProperty }) => - (obj, prop) => - hasOwnProperty.call(obj, prop) -)(Object.prototype); - -/** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ -const isRegExp = kindOfTest('RegExp'); - -const reduceDescriptors = (obj, reducer) => { - const descriptors = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - - forEach(descriptors, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - - Object.defineProperties(obj, reducedDescriptors); -}; - -/** - * Makes all methods read-only - * @param {Object} obj - */ - -const freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - // skip restricted props in strict mode - if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].includes(name)) { - return false; - } - - const value = obj[name]; - - if (!isFunction$1(value)) return; - - descriptor.enumerable = false; - - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); -}; - -/** - * Converts an array or a delimited string into an object set with values as keys and true as values. - * Useful for fast membership checks. - * - * @param {Array|string} arrayOrString - The array or string to convert. - * @param {string} delimiter - The delimiter to use if input is a string. - * @returns {Object} An object with keys from the array or string, values set to true. - */ -const toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - - const define = (arr) => { - arr.forEach((value) => { - obj[value] = true; - }); - }; - - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - - return obj; -}; - -const noop = () => {}; - -const toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite((value = +value)) ? value : defaultValue; -}; - -/** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ -function isSpecCompliantForm(thing) { - return !!( - thing && - isFunction$1(thing.append) && - thing[toStringTag] === 'FormData' && - thing[iterator] - ); -} - -/** - * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. - * - * @param {Object} obj - The object to convert. - * @returns {Object} The JSON-compatible object. - */ -const toJSONObject = (obj) => { - const visited = new WeakSet(); - - const visit = (source) => { - if (isObject(source)) { - if (visited.has(source)) { - return; - } - - //Buffer check - if (isBuffer(source)) { - return source; - } - - if (!('toJSON' in source)) { - // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). - visited.add(source); - const target = isArray(source) ? [] : {}; - - forEach(source, (value, key) => { - const reducedValue = visit(value); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - - visited.delete(source); - - return target; - } - } - - return source; - }; - - return visit(obj); -}; - -/** - * Determines if a value is an async function. - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is an async function, otherwise false. - */ -const isAsyncFn = kindOfTest('AsyncFunction'); - -/** - * Determines if a value is thenable (has then and catch methods). - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is thenable, otherwise false. - */ -const isThenable = (thing) => - thing && - (isObject(thing) || isFunction$1(thing)) && - isFunction$1(thing.then) && - isFunction$1(thing.catch); - -// original code -// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - -/** - * Provides a cross-platform setImmediate implementation. - * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. - * - * @param {boolean} setImmediateSupported - Whether setImmediate is supported. - * @param {boolean} postMessageSupported - Whether postMessage is supported. - * @returns {Function} A function to schedule a callback asynchronously. - */ -const _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - - return postMessageSupported - ? ((token, callbacks) => { - _global.addEventListener( - 'message', - ({ source, data }) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, - false - ); - - return (cb) => { - callbacks.push(cb); - _global.postMessage(token, '*'); - }; - })(`axios@${Math.random()}`, []) - : (cb) => setTimeout(cb); -})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); - -/** - * Schedules a microtask or asynchronous callback as soon as possible. - * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. - * - * @type {Function} - */ -const asap = - typeof queueMicrotask !== 'undefined' - ? queueMicrotask.bind(_global) - : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; - -// ********************* - -const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]); - -var utils$1 = { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isEmptyObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isReactNativeBlob, - isReactNative, - isBlob, - isRegExp, - isFunction: isFunction$1, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap, - isIterable, -}; - -// RawAxiosHeaders whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -const ignoreDuplicateOf = utils$1.toObjectSet([ - 'age', - 'authorization', - 'content-length', - 'content-type', - 'etag', - 'expires', - 'from', - 'host', - 'if-modified-since', - 'if-unmodified-since', - 'last-modified', - 'location', - 'max-forwards', - 'proxy-authorization', - 'referer', - 'retry-after', - 'user-agent', -]); - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ -var parseHeaders = (rawHeaders) => { - const parsed = {}; - let key; - let val; - let i; - - rawHeaders && - rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - - if (!key || (parsed[key] && ignoreDuplicateOf[key])) { - return; - } - - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - - return parsed; -}; - -function trimSPorHTAB(str) { - let start = 0; - let end = str.length; - - while (start < end) { - const code = str.charCodeAt(start); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - start += 1; - } - - while (end > start) { - const code = str.charCodeAt(end - 1); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - end -= 1; - } - - return start === 0 && end === str.length ? str : str.slice(start, end); -} - -// The control-code ranges are intentional: header sanitization strips C0/DEL bytes. -// eslint-disable-next-line no-control-regex -const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g'); -// eslint-disable-next-line no-control-regex -const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g'); - -function sanitizeValue(value, invalidChars) { - if (utils$1.isArray(value)) { - return value.map((item) => sanitizeValue(item, invalidChars)); - } - - return trimSPorHTAB(String(value).replace(invalidChars, '')); -} - -const sanitizeHeaderValue = (value) => - sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); - -const sanitizeByteStringHeaderValue = (value) => - sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); - -function toByteStringHeaderObject(headers) { - const byteStringHeaders = Object.create(null); - - utils$1.forEach(headers.toJSON(), (value, header) => { - byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); - }); - - return byteStringHeaders; -} - -const $internals = Symbol('internals'); - -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} - -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - - return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); -} - -function parseTokens(str) { - const tokens = Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - - while ((match = tokensRE.exec(str))) { - tokens[match[1]] = match[2]; - } - - return tokens; -} - -const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - -function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (utils$1.isFunction(filter)) { - return filter.call(this, value, header); - } - - if (isHeaderNameFilter) { - value = header; - } - - if (!utils$1.isString(value)) return; - - if (utils$1.isString(filter)) { - return value.indexOf(filter) !== -1; - } - - if (utils$1.isRegExp(filter)) { - return filter.test(value); - } -} - -function formatHeader(header) { - return header - .trim() - .toLowerCase() - .replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} - -function buildAccessors(obj, header) { - const accessorName = utils$1.toCamelCase(' ' + header); - - ['get', 'set', 'has'].forEach((methodName) => { - Object.defineProperty(obj, methodName + accessorName, { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: function (arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true, - }); - }); -} - -class AxiosHeaders { - constructor(headers) { - headers && this.set(headers); - } - - set(header, valueOrRewrite, rewrite) { - const self = this; - - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - - const key = utils$1.findKey(self, lHeader); - - if ( - !key || - self[key] === undefined || - _rewrite === true || - (_rewrite === undefined && self[key] !== false) - ) { - self[key || _header] = normalizeValue(_value); - } - } - - const setHeaders = (headers, _rewrite) => - utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - - if (utils$1.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders(header), valueOrRewrite); - } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { - let obj = {}, - dest, - key; - for (const entry of header) { - if (!utils$1.isArray(entry)) { - throw TypeError('Object iterator must return a key-value pair'); - } - - obj[(key = entry[0])] = (dest = obj[key]) - ? utils$1.isArray(dest) - ? [...dest, entry[1]] - : [dest, entry[1]] - : entry[1]; - } - - setHeaders(obj, valueOrRewrite); - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - - return this; - } - - get(header, parser) { - header = normalizeHeader(header); - - if (header) { - const key = utils$1.findKey(this, header); - - if (key) { - const value = this[key]; - - if (!parser) { - return value; - } - - if (parser === true) { - return parseTokens(value); - } - - if (utils$1.isFunction(parser)) { - return parser.call(this, value, key); - } - - if (utils$1.isRegExp(parser)) { - return parser.exec(value); - } - - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - - has(header, matcher) { - header = normalizeHeader(header); - - if (header) { - const key = utils$1.findKey(this, header); - - return !!( - key && - this[key] !== undefined && - (!matcher || matchHeaderValue(this, this[key], key, matcher)) - ); - } - - return false; - } - - delete(header, matcher) { - const self = this; - let deleted = false; - - function deleteHeader(_header) { - _header = normalizeHeader(_header); - - if (_header) { - const key = utils$1.findKey(self, _header); - - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - - deleted = true; - } - } - } - - if (utils$1.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - - return deleted; - } - - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - - while (i--) { - const key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - - return deleted; - } - - normalize(format) { - const self = this; - const headers = {}; - - utils$1.forEach(this, (value, header) => { - const key = utils$1.findKey(headers, header); - - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - - const normalized = format ? formatHeader(header) : String(header).trim(); - - if (normalized !== header) { - delete self[header]; - } - - self[normalized] = normalizeValue(value); - - headers[normalized] = true; - }); - - return this; - } - - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - - toJSON(asStrings) { - const obj = Object.create(null); - - utils$1.forEach(this, (value, header) => { - value != null && - value !== false && - (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); - }); - - return obj; - } - - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - - toString() { - return Object.entries(this.toJSON()) - .map(([header, value]) => header + ': ' + value) - .join('\n'); - } - - getSetCookie() { - return this.get('set-cookie') || []; - } - - get [Symbol.toStringTag]() { - return 'AxiosHeaders'; - } - - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - - static concat(first, ...targets) { - const computed = new this(first); - - targets.forEach((target) => computed.set(target)); - - return computed; - } - - static accessor(header) { - const internals = - (this[$internals] = - this[$internals] = - { - accessors: {}, - }); - - const accessors = internals.accessors; - const prototype = this.prototype; - - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - - utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - - return this; - } -} - -AxiosHeaders.accessor([ - 'Content-Type', - 'Content-Length', - 'Accept', - 'Accept-Encoding', - 'User-Agent', - 'Authorization', -]); - -// reserved names hotfix -utils$1.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - }, - }; -}); - -utils$1.freezeMethods(AxiosHeaders); - -const REDACTED = '[REDACTED ****]'; - -function hasOwnOrPrototypeToJSON(source) { - if (utils$1.hasOwnProp(source, 'toJSON')) { - return true; - } - - let prototype = Object.getPrototypeOf(source); - - while (prototype && prototype !== Object.prototype) { - if (utils$1.hasOwnProp(prototype, 'toJSON')) { - return true; - } - - prototype = Object.getPrototypeOf(prototype); - } - - return false; -} - -// Build a plain-object snapshot of `config` and replace the value of any key -// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays -// and AxiosHeaders, and short-circuits on circular references. -function redactConfig(config, redactKeys) { - const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase())); - const seen = []; - - const visit = (source) => { - if (source === null || typeof source !== 'object') return source; - if (utils$1.isBuffer(source)) return source; - if (seen.indexOf(source) !== -1) return undefined; - - if (source instanceof AxiosHeaders) { - source = source.toJSON(); - } - - seen.push(source); - - let result; - if (utils$1.isArray(source)) { - result = []; - source.forEach((v, i) => { - const reducedValue = visit(v); - if (!utils$1.isUndefined(reducedValue)) { - result[i] = reducedValue; - } - }); - } else { - if (!utils$1.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { - seen.pop(); - return source; - } - - result = Object.create(null); - for (const [key, value] of Object.entries(source)) { - const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); - if (!utils$1.isUndefined(reducedValue)) { - result[key] = reducedValue; - } - } - } - - seen.pop(); - return result; - }; - - return visit(config); -} - -class AxiosError extends Error { - static from(error, code, config, request, response, customProps) { - const axiosError = new AxiosError(error.message, code || error.code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - - // Preserve status from the original error if not already set from response - if (error.status != null && axiosError.status == null) { - axiosError.status = error.status; - } - - customProps && Object.assign(axiosError, customProps); - return axiosError; - } - - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - constructor(message, code, config, request, response) { - super(message); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(this, 'message', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: message, - enumerable: true, - writable: true, - configurable: true, - }); - - this.name = 'AxiosError'; - this.isAxiosError = true; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status; - } - } - - toJSON() { - // Opt-in redaction: when the request config carries a `redact` array, the - // value of any matching key (case-insensitive, at any depth) is replaced - // with REDACTED in the serialized snapshot. Undefined or empty leaves the - // existing serialization behavior unchanged. - const config = this.config; - const redactKeys = config && utils$1.hasOwnProp(config, 'redact') ? config.redact : undefined; - const serializedConfig = - utils$1.isArray(redactKeys) && redactKeys.length > 0 - ? redactConfig(config, redactKeys) - : utils$1.toJSONObject(config); - - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: serializedConfig, - code: this.code, - status: this.status, - }; - } -} - -// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. -AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; -AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; -AxiosError.ECONNABORTED = 'ECONNABORTED'; -AxiosError.ETIMEDOUT = 'ETIMEDOUT'; -AxiosError.ECONNREFUSED = 'ECONNREFUSED'; -AxiosError.ERR_NETWORK = 'ERR_NETWORK'; -AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; -AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; -AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; -AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; -AxiosError.ERR_CANCELED = 'ERR_CANCELED'; -AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; -AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; -AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - -// eslint-disable-next-line strict -var httpAdapter = null; - -/** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ -function isVisitable(thing) { - return utils$1.isPlainObject(thing) || utils$1.isArray(thing); -} - -/** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ -function removeBrackets(key) { - return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; -} - -/** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ -function renderKey(path, key, dots) { - if (!path) return key; - return path - .concat(key) - .map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }) - .join(dots ? '.' : ''); -} - -/** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ -function isFlatArray(arr) { - return utils$1.isArray(arr) && !arr.some(isVisitable); -} - -const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); - -/** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - -/** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ -function toFormData(obj, formData, options) { - if (!utils$1.isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (FormData)(); - - // eslint-disable-next-line no-param-reassign - options = utils$1.toFlatObject( - options, - { - metaTokens: true, - dots: false, - indexes: false, - }, - false, - function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !utils$1.isUndefined(source[option]); - } - ); - - const metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); - const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; - const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); - - if (!utils$1.isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - - function convertValue(value) { - if (value === null) return ''; - - if (utils$1.isDate(value)) { - return value.toISOString(); - } - - if (utils$1.isBoolean(value)) { - return value.toString(); - } - - if (!useBlob && utils$1.isBlob(value)) { - throw new AxiosError('Blob is not supported. Use a Buffer instead.'); - } - - if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - let arr = value; - - if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - - if (value && !path && typeof value === 'object') { - if (utils$1.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if ( - (utils$1.isArray(value) && isFlatArray(value)) || - ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) - ) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - - arr.forEach(function each(el, index) { - !(utils$1.isUndefined(el) || el === null) && - formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true - ? renderKey([key], index, dots) - : indexes === null - ? key - : key + '[]', - convertValue(el) - ); - }); - return false; - } - } - - if (isVisitable(value)) { - return true; - } - - formData.append(renderKey(path, key, dots), convertValue(value)); - - return false; - } - - const stack = []; - - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable, - }); - - function build(value, path, depth = 0) { - if (utils$1.isUndefined(value)) return; - - if (depth > maxDepth) { - throw new AxiosError( - 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, - AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED - ); - } - - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - - stack.push(value); - - utils$1.forEach(value, function each(el, key) { - const result = - !(utils$1.isUndefined(el) || el === null) && - visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); - - if (result === true) { - build(el, path ? path.concat(key) : [key], depth + 1); - } - }); - - stack.pop(); - } - - if (!utils$1.isObject(obj)) { - throw new TypeError('data must be an object'); - } - - build(obj); - - return formData; -} - -/** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ -function encode$1(str) { - const charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+', - }; - return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { - return charMap[match]; - }); -} - -/** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ -function AxiosURLSearchParams(params, options) { - this._pairs = []; - - params && toFormData(params, this, options); -} - -const prototype = AxiosURLSearchParams.prototype; - -prototype.append = function append(name, value) { - this._pairs.push([name, value]); -}; - -prototype.toString = function toString(encoder) { - const _encode = encoder - ? function (value) { - return encoder.call(this, value, encode$1); - } - : encode$1; - - return this._pairs - .map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '') - .join('&'); -}; - -/** - * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with - * their plain counterparts (`:`, `$`, `,`, `+`). - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ -function encode(val) { - return encodeURIComponent(val) - .replace(/%3A/gi, ':') - .replace(/%24/g, '$') - .replace(/%2C/gi, ',') - .replace(/%20/g, '+'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ -function buildURL(url, params, options) { - if (!params) { - return url; - } - - const _encode = (options && options.encode) || encode; - - const _options = utils$1.isFunction(options) - ? { - serialize: options, - } - : options; - - const serializeFn = _options && _options.serialize; - - let serializedParams; - - if (serializeFn) { - serializedParams = serializeFn(params, _options); - } else { - serializedParams = utils$1.isURLSearchParams(params) - ? params.toString() - : new AxiosURLSearchParams(params, _options).toString(_encode); - } - - if (serializedParams) { - const hashmarkIndex = url.indexOf('#'); - - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -} - -class InterceptorManager { - constructor() { - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * @param {Object} options The options for the interceptor, synchronous and runWhen - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null, - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {void} - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils$1.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -} - -var transitionalDefaults = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false, - legacyInterceptorReqResOrdering: true, -}; - -var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; - -var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; - -var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; - -var platform$1 = { - isBrowser: true, - classes: { - URLSearchParams: URLSearchParams$1, - FormData: FormData$1, - Blob: Blob$1, - }, - protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], -}; - -const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; - -const _navigator = (typeof navigator === 'object' && navigator) || undefined; - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ -const hasStandardBrowserEnv = - hasBrowserEnv && - (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - -/** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ -const hasStandardBrowserWebWorkerEnv = (() => { - return ( - typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && - typeof self.importScripts === 'function' - ); -})(); - -const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; - -var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - hasBrowserEnv: hasBrowserEnv, - hasStandardBrowserEnv: hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, - navigator: _navigator, - origin: origin -}); - -var platform = { - ...utils, - ...platform$1, -}; - -function toURLEncodedForm(data, options) { - return toFormData(data, new platform.classes.URLSearchParams(), { - visitor: function (value, key, path, helpers) { - if (platform.isNode && utils$1.isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - - return helpers.defaultVisitor.apply(this, arguments); - }, - ...options, - }); -} - -/** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ -function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); -} - -/** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} - -/** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - - if (name === '__proto__') return true; - - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && utils$1.isArray(target) ? target.length : name; - - if (isLast) { - if (utils$1.hasOwnProp(target, name)) { - target[name] = utils$1.isArray(target[name]) - ? target[name].concat(value) - : [target[name], value]; - } else { - target[name] = value; - } - - return !isNumericKey; - } - - if (!utils$1.hasOwnProp(target, name) || !utils$1.isObject(target[name])) { - target[name] = []; - } - - const result = buildPath(path, value, target[name], index); - - if (result && utils$1.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - - return !isNumericKey; - } - - if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { - const obj = {}; - - utils$1.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - - return obj; - } - - return null; -} - -const own = (obj, key) => (obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined); - -/** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ -function stringifySafely(rawValue, parser, encoder) { - if (utils$1.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils$1.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -const defaults = { - transitional: transitionalDefaults, - - adapter: ['xhr', 'http', 'fetch'], - - transformRequest: [ - function transformRequest(data, headers) { - const contentType = headers.getContentType() || ''; - const hasJSONContentType = contentType.indexOf('application/json') > -1; - const isObjectPayload = utils$1.isObject(data); - - if (isObjectPayload && utils$1.isHTMLForm(data)) { - data = new FormData(data); - } - - const isFormData = utils$1.isFormData(data); - - if (isFormData) { - return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; - } - - if ( - utils$1.isArrayBuffer(data) || - utils$1.isBuffer(data) || - utils$1.isStream(data) || - utils$1.isFile(data) || - utils$1.isBlob(data) || - utils$1.isReadableStream(data) - ) { - return data; - } - if (utils$1.isArrayBufferView(data)) { - return data.buffer; - } - if (utils$1.isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - - let isFileList; - - if (isObjectPayload) { - const formSerializer = own(this, 'formSerializer'); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return toURLEncodedForm(data, formSerializer).toString(); - } - - if ( - (isFileList = utils$1.isFileList(data)) || - contentType.indexOf('multipart/form-data') > -1 - ) { - const env = own(this, 'env'); - const _FormData = env && env.FormData; - - return toFormData( - isFileList ? { 'files[]': data } : data, - _FormData && new _FormData(), - formSerializer - ); - } - } - - if (isObjectPayload || hasJSONContentType) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - - return data; - }, - ], - - transformResponse: [ - function transformResponse(data) { - const transitional = own(this, 'transitional') || defaults.transitional; - const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const responseType = own(this, 'responseType'); - const JSONRequested = responseType === 'json'; - - if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { - return data; - } - - if ( - data && - utils$1.isString(data) && - ((forcedJSONParsing && !responseType) || JSONRequested) - ) { - const silentJSONParsing = transitional && transitional.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - - try { - return JSON.parse(data, own(this, 'parseReviver')); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); - } - throw e; - } - } - } - - return data; - }, - ], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - env: { - FormData: platform.classes.FormData, - Blob: platform.classes.Blob, - }, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - - headers: { - common: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': undefined, - }, - }, -}; - -utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => { - defaults.headers[method] = {}; -}); - -/** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ -function transformData(fns, response) { - const config = this || defaults; - const context = response || config; - const headers = AxiosHeaders.from(context.headers); - let data = context.data; - - utils$1.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - - headers.normalize(); - - return data; -} - -function isCancel(value) { - return !!(value && value.__CANCEL__); -} - -class CanceledError extends AxiosError { - /** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ - constructor(message, config, request) { - super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); - this.name = 'CanceledError'; - this.__CANCEL__ = true; - } -} - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ -function settle(resolve, reject, response) { - const validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError( - 'Request failed with status code ' + response.status, - response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE, - response.config, - response.request, - response - )); - } -} - -function parseProtocol(url) { - const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); - return (match && match[1]) || ''; -} - -/** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - - min = min !== undefined ? min : 1000; - - return function push(chunkLength) { - const now = Date.now(); - - const startedAt = timestamps[tail]; - - if (!firstSampleTS) { - firstSampleTS = now; - } - - bytes[head] = chunkLength; - timestamps[head] = now; - - let i = tail; - let bytesCount = 0; - - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - - head = (head + 1) % samplesCount; - - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - - if (now - firstSampleTS < min) { - return; - } - - const passed = startedAt && now - startedAt; - - return passed ? Math.round((bytesCount * 1000) / passed) : undefined; - }; -} - -/** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1000 / freq; - let lastArgs; - let timer; - - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn(...args); - }; - - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - - const flush = () => lastArgs && invoke(lastArgs); - - return [throttled, flush]; -} - -const progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer(50, 250); - - return throttle((e) => { - if (!e || typeof e.loaded !== 'number') { - return; - } - const rawLoaded = e.loaded; - const total = e.lengthComputable ? e.total : undefined; - const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; - const progressBytes = Math.max(0, loaded - bytesNotified); - const rate = _speedometer(progressBytes); - - bytesNotified = Math.max(bytesNotified, loaded); - - const data = { - loaded, - total, - progress: total ? loaded / total : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null, - [isDownloadStream ? 'download' : 'upload']: true, - }; - - listener(data); - }, freq); -}; - -const progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - - return [ - (loaded) => - throttled[0]({ - lengthComputable, - total, - loaded, - }), - throttled[1], - ]; -}; - -const asyncDecorator = - (fn) => - (...args) => - utils$1.asap(() => fn(...args)); - -var isURLSameOrigin = platform.hasStandardBrowserEnv - ? ((origin, isMSIE) => (url) => { - url = new URL(url, platform.origin); - - return ( - origin.protocol === url.protocol && - origin.host === url.host && - (isMSIE || origin.port === url.port) - ); - })( - new URL(platform.origin), - platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) - ) - : () => true; - -var cookies = platform.hasStandardBrowserEnv - ? // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure, sameSite) { - if (typeof document === 'undefined') return; - - const cookie = [`${name}=${encodeURIComponent(value)}`]; - - if (utils$1.isNumber(expires)) { - cookie.push(`expires=${new Date(expires).toUTCString()}`); - } - if (utils$1.isString(path)) { - cookie.push(`path=${path}`); - } - if (utils$1.isString(domain)) { - cookie.push(`domain=${domain}`); - } - if (secure === true) { - cookie.push('secure'); - } - if (utils$1.isString(sameSite)) { - cookie.push(`SameSite=${sameSite}`); - } - - document.cookie = cookie.join('; '); - }, - - read(name) { - if (typeof document === 'undefined') return null; - // Match name=value by splitting on the semicolon separator instead of building a - // RegExp from `name` — interpolating an unescaped string into a RegExp would let - // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or - // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or - // "; ", so ignore optional whitespace before each cookie name. - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].replace(/^\s+/, ''); - const eq = cookie.indexOf('='); - if (eq !== -1 && cookie.slice(0, eq) === name) { - return decodeURIComponent(cookie.slice(eq + 1)); - } - } - return null; - }, - - remove(name) { - this.write(name, '', Date.now() - 86400000, '/'); - }, - } - : // Non-standard browser env (web workers, react-native) lack needed support. - { - write() {}, - read() { - return null; - }, - remove() {}, - }; - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - if (typeof url !== 'string') { - return false; - } - - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ -function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -} - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ -function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - let isRelativeUrl = !isAbsoluteURL(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -} - -const headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ -function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - - // Use a null-prototype object so that downstream reads such as `config.auth` - // or `config.baseURL` cannot inherit polluted values from Object.prototype. - // `hasOwnProperty` is restored as a non-enumerable own slot to preserve - // ergonomics for user code that relies on it. - const config = Object.create(null); - Object.defineProperty(config, 'hasOwnProperty', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: Object.prototype.hasOwnProperty, - enumerable: false, - writable: true, - configurable: true, - }); - - function getMergedValue(target, source, prop, caseless) { - if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { - return utils$1.merge.call({ caseless }, target, source); - } else if (utils$1.isPlainObject(source)) { - return utils$1.merge({}, source); - } else if (utils$1.isArray(source)) { - return source.slice(); - } - return source; - } - - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a, prop, caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (utils$1.hasOwnProp(config2, prop)) { - return getMergedValue(a, b); - } else if (utils$1.hasOwnProp(config1, prop)) { - return getMergedValue(undefined, a); - } - } - - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - allowedSocketPaths: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b, prop) => - mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), - }; - - utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { - if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; - const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; - const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; - const configValue = merge(a, b, prop); - (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); - }); - - return config; -} - -const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; - -function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -/** - * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). - * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. - * - * @param {string} str The string to encode - * - * @returns {string} UTF-8 bytes as a Latin-1 string - */ -const encodeUTF8 = (str) => - encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => - String.fromCharCode(parseInt(hex, 16)) - ); - -var resolveConfig = (config) => { - const newConfig = mergeConfig({}, config); - - // Read only own properties to prevent prototype pollution gadgets - // (e.g. Object.prototype.baseURL = 'https://evil.com'). - const own = (key) => (utils$1.hasOwnProp(newConfig, key) ? newConfig[key] : undefined); - - const data = own('data'); - let withXSRFToken = own('withXSRFToken'); - const xsrfHeaderName = own('xsrfHeaderName'); - const xsrfCookieName = own('xsrfCookieName'); - let headers = own('headers'); - const auth = own('auth'); - const baseURL = own('baseURL'); - const allowAbsoluteUrls = own('allowAbsoluteUrls'); - const url = own('url'); - - newConfig.headers = headers = AxiosHeaders.from(headers); - - newConfig.url = buildURL( - buildFullPath(baseURL, url, allowAbsoluteUrls), - config.params, - config.paramsSerializer - ); - - // HTTP basic authentication - if (auth) { - headers.set( - 'Authorization', - 'Basic ' + - btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : '')) - ); - } - - if (utils$1.isFormData(data)) { - if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // browser handles it - } else if (utils$1.isFunction(data.getHeaders)) { - // Node.js FormData (like form-data package) - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (platform.hasStandardBrowserEnv) { - if (utils$1.isFunction(withXSRFToken)) { - withXSRFToken = withXSRFToken(newConfig); - } - - // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) - // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking - // the XSRF token cross-origin. - const shouldSendXSRF = - withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url)); - - if (shouldSendXSRF) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); - - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - - return newConfig; -}; - -const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; - -var xhrAdapter = isXHRAdapterSupported && - function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); - let { responseType, onUploadProgress, onDownloadProgress } = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - - let request = new XMLHttpRequest(); - - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - const responseHeaders = AxiosHeaders.from( - 'getAllResponseHeaders' in request && request.getAllResponseHeaders() - ); - const responseData = - !responseType || responseType === 'text' || responseType === 'json' - ? request.responseText - : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request, - }; - - settle( - function _resolve(value) { - resolve(value); - done(); - }, - function _reject(err) { - reject(err); - done(); - }, - response - ); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if ( - request.status === 0 && - !(request.responseURL && request.responseURL.startsWith('file:')) - ) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError(event) { - // Browsers deliver a ProgressEvent in XHR onerror - // (message may be empty; when present, surface it) - // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event - const msg = event && event.message ? event.message : 'Network Error'; - const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); - // attach the underlying event for consumers who want details - err.event = event || null; - reject(err); - done(); - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout - ? 'timeout of ' + _config.timeout + 'ms exceeded' - : 'timeout exceeded'; - const transitional = _config.transitional || transitionalDefaults; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject( - new AxiosError( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, - config, - request - ) - ); - done(); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!utils$1.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); - - request.upload.addEventListener('progress', uploadThrottled); - - request.upload.addEventListener('loadend', flushUpload); - } - - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = (cancel) => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); - request.abort(); - done(); - request = null; - }; - - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted - ? onCanceled() - : _config.signal.addEventListener('abort', onCanceled); - } - } - - const protocol = parseProtocol(_config.url); - - if (protocol && !platform.protocols.includes(protocol)) { - reject( - new AxiosError( - 'Unsupported protocol ' + protocol + ':', - AxiosError.ERR_BAD_REQUEST, - config - ) - ); - return; - } - - // Send the request - request.send(requestData || null); - }); - }; - -const composeSignals = (signals, timeout) => { - signals = signals ? signals.filter(Boolean) : []; - - if (!timeout && !signals.length) { - return; - } - - const controller = new AbortController(); - - let aborted = false; - - const onabort = function (reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort( - err instanceof AxiosError - ? err - : new CanceledError(err instanceof Error ? err.message : err) - ); - } - }; - - let timer = - timeout && - setTimeout(() => { - timer = null; - onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); - }, timeout); - - const unsubscribe = () => { - if (!signals) { return; } - timer && clearTimeout(timer); - timer = null; - signals.forEach((signal) => { - signal.unsubscribe - ? signal.unsubscribe(onabort) - : signal.removeEventListener('abort', onabort); - }); - signals = null; - }; - - signals.forEach((signal) => signal.addEventListener('abort', onabort)); - - const { signal } = controller; - - signal.unsubscribe = () => utils$1.asap(unsubscribe); - - return signal; -}; - -const streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - - if (len < chunkSize) { - yield chunk; - return; - } - - let pos = 0; - let end; - - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -}; - -const readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -}; - -const readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - - const reader = stream.getReader(); - try { - for (;;) { - const { done, value } = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -}; - -const trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - - let bytes = 0; - let done; - let _onFinish = (e) => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - - return new ReadableStream( - { - async pull(controller) { - try { - const { done, value } = await iterator.next(); - - if (done) { - _onFinish(); - controller.close(); - return; - } - - let len = value.byteLength; - if (onProgress) { - let loadedBytes = (bytes += len); - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - }, - }, - { - highWaterMark: 2, - } - ); -}; - -/** - * Estimate decoded byte length of a data:// URL *without* allocating large buffers. - * - For base64: compute exact decoded size using length and padding; - * handle %XX at the character-count level (no string allocation). - * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. - * - * @param {string} url - * @returns {number} - */ -function estimateDataURLDecodedBytes(url) { - if (!url || typeof url !== 'string') return 0; - if (!url.startsWith('data:')) return 0; - - const comma = url.indexOf(','); - if (comma < 0) return 0; - - const meta = url.slice(5, comma); - const body = url.slice(comma + 1); - const isBase64 = /;base64/i.test(meta); - - if (isBase64) { - let effectiveLen = body.length; - const len = body.length; // cache length - - for (let i = 0; i < len; i++) { - if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { - const a = body.charCodeAt(i + 1); - const b = body.charCodeAt(i + 2); - const isHex = - ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) && - ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102)); - - if (isHex) { - effectiveLen -= 2; - i += 2; - } - } - } - - let pad = 0; - let idx = len - 1; - - const tailIsPct3D = (j) => - j >= 2 && - body.charCodeAt(j - 2) === 37 && // '%' - body.charCodeAt(j - 1) === 51 && // '3' - (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' - - if (idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - idx--; - } else if (tailIsPct3D(idx)) { - pad++; - idx -= 3; - } - } - - if (pad === 1 && idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - } else if (tailIsPct3D(idx)) { - pad++; - } - } - - const groups = Math.floor(effectiveLen / 4); - const bytes = groups * 3 - (pad || 0); - return bytes > 0 ? bytes : 0; - } - - if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { - return Buffer.byteLength(body, 'utf8'); - } - - // Compute UTF-8 byte length directly from UTF-16 code units without allocating - // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). - // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit - // but 3 UTF-8 bytes). - let bytes = 0; - for (let i = 0, len = body.length; i < len; i++) { - const c = body.charCodeAt(i); - if (c < 0x80) { - bytes += 1; - } else if (c < 0x800) { - bytes += 2; - } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { - const next = body.charCodeAt(i + 1); - if (next >= 0xdc00 && next <= 0xdfff) { - bytes += 4; - i++; - } else { - bytes += 3; - } - } else { - bytes += 3; - } - } - return bytes; -} - -const VERSION = "1.16.1"; - -const DEFAULT_CHUNK_SIZE = 64 * 1024; - -const { isFunction } = utils$1; - -const test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false; - } -}; - -const factory = (env) => { - const globalObject = - utils$1.global !== undefined && utils$1.global !== null - ? utils$1.global - : globalThis; - const { ReadableStream, TextEncoder } = globalObject; - - env = utils$1.merge.call( - { - skipUndefined: true, - }, - { - Request: globalObject.Request, - Response: globalObject.Response, - }, - env - ); - - const { fetch: envFetch, Request, Response } = env; - const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; - const isRequestSupported = isFunction(Request); - const isResponseSupported = isFunction(Response); - - if (!isFetchSupported) { - return false; - } - - const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); - - const encodeText = - isFetchSupported && - (typeof TextEncoder === 'function' - ? ( - (encoder) => (str) => - encoder.encode(str) - )(new TextEncoder()) - : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); - - const supportsRequestStream = - isRequestSupported && - isReadableStreamSupported && - test(() => { - let duplexAccessed = false; - - const request = new Request(platform.origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - }, - }); - - const hasContentType = request.headers.has('Content-Type'); - - if (request.body != null) { - request.body.cancel(); - } - - return duplexAccessed && !hasContentType; - }); - - const supportsResponseStream = - isResponseSupported && - isReadableStreamSupported && - test(() => utils$1.isReadableStream(new Response('').body)); - - const resolvers = { - stream: supportsResponseStream && ((res) => res.body), - }; - - isFetchSupported && - (() => { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { - !resolvers[type] && - (resolvers[type] = (res, config) => { - let method = res && res[type]; - - if (method) { - return method.call(res); - } - - throw new AxiosError( - `Response type '${type}' is not supported`, - AxiosError.ERR_NOT_SUPPORT, - config - ); - }); - }); - })(); - - const getBodyLength = async (body) => { - if (body == null) { - return 0; - } - - if (utils$1.isBlob(body)) { - return body.size; - } - - if (utils$1.isSpecCompliantForm(body)) { - const _request = new Request(platform.origin, { - method: 'POST', - body, - }); - return (await _request.arrayBuffer()).byteLength; - } - - if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { - return body.byteLength; - } - - if (utils$1.isURLSearchParams(body)) { - body = body + ''; - } - - if (utils$1.isString(body)) { - return (await encodeText(body)).byteLength; - } - }; - - const resolveBodyLength = async (headers, body) => { - const length = utils$1.toFiniteNumber(headers.getContentLength()); - - return length == null ? getBodyLength(body) : length; - }; - - return async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = 'same-origin', - fetchOptions, - maxContentLength, - maxBodyLength, - } = resolveConfig(config); - - const hasMaxContentLength = utils$1.isNumber(maxContentLength) && maxContentLength > -1; - const hasMaxBodyLength = utils$1.isNumber(maxBodyLength) && maxBodyLength > -1; - - let _fetch = envFetch || fetch; - - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - - let composedSignal = composeSignals( - [signal, cancelToken && cancelToken.toAbortSignal()], - timeout - ); - - let request = null; - - const unsubscribe = - composedSignal && - composedSignal.unsubscribe && - (() => { - composedSignal.unsubscribe(); - }); - - let requestContentLength; - - try { - // Enforce maxContentLength for data: URLs up-front so we never materialize - // an oversized payload. The HTTP adapter applies the same check (see http.js - // "if (protocol === 'data:')" branch). - if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { - const estimated = estimateDataURLDecodedBytes(url); - if (estimated > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - // Enforce maxBodyLength against the outbound request body before dispatch. - // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than - // maxBodyLength limit'). Skip when the body length cannot be determined - // (e.g. a live ReadableStream supplied by the caller). - if (hasMaxBodyLength && method !== 'get' && method !== 'head') { - const outboundLength = await resolveBodyLength(headers, data); - if ( - typeof outboundLength === 'number' && - isFinite(outboundLength) && - outboundLength > maxBodyLength - ) { - throw new AxiosError( - 'Request body larger than maxBodyLength limit', - AxiosError.ERR_BAD_REQUEST, - config, - request - ); - } - } - - if ( - onUploadProgress && - supportsRequestStream && - method !== 'get' && - method !== 'head' && - (requestContentLength = await resolveBodyLength(headers, data)) !== 0 - ) { - let _request = new Request(url, { - method: 'POST', - body: data, - duplex: 'half', - }); - - let contentTypeHeader; - - if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader); - } - - if (_request.body) { - const [onProgress, flush] = progressEventDecorator( - requestContentLength, - progressEventReducer(asyncDecorator(onUploadProgress)) - ); - - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - - if (!utils$1.isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; - - // If data is FormData and Content-Type is multipart/form-data without boundary, - // delete it so fetch can set it correctly with the boundary - if (utils$1.isFormData(data)) { - const contentType = headers.getContentType(); - if ( - contentType && - /^multipart\/form-data/i.test(contentType) && - !/boundary=/i.test(contentType) - ) { - headers.delete('content-type'); - } - } - - // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) - headers.set('User-Agent', 'axios/' + VERSION, false); - - const resolvedOptions = { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: toByteStringHeaderObject(headers.normalize()), - body: data, - duplex: 'half', - credentials: isCredentialsSupported ? withCredentials : undefined, - }; - - request = isRequestSupported && new Request(url, resolvedOptions); - - let response = await (isRequestSupported - ? _fetch(request, fetchOptions) - : _fetch(url, resolvedOptions)); - - // Cheap pre-check: if the server honestly declares a content-length that - // already exceeds the cap, reject before we start streaming. - if (hasMaxContentLength) { - const declaredLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - if (declaredLength != null && declaredLength > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - const isStreamResponse = - supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - - if ( - supportsResponseStream && - response.body && - (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe)) - ) { - const options = {}; - - ['status', 'statusText', 'headers'].forEach((prop) => { - options[prop] = response[prop]; - }); - - const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - - const [onProgress, flush] = - (onDownloadProgress && - progressEventDecorator( - responseContentLength, - progressEventReducer(asyncDecorator(onDownloadProgress), true) - )) || - []; - - let bytesRead = 0; - const onChunkProgress = (loadedBytes) => { - if (hasMaxContentLength) { - bytesRead = loadedBytes; - if (bytesRead > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - onProgress && onProgress(loadedBytes); - }; - - response = new Response( - trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), - options - ); - } - - responseType = responseType || 'text'; - - let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text']( - response, - config - ); - - // Fallback enforcement for environments without ReadableStream support - // (legacy runtimes). Detect materialized size from typed output; skip - // streams/Response passthrough since the user will read those themselves. - if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { - let materializedSize; - if (responseData != null) { - if (typeof responseData.byteLength === 'number') { - materializedSize = responseData.byteLength; - } else if (typeof responseData.size === 'number') { - materializedSize = responseData.size; - } else if (typeof responseData === 'string') { - materializedSize = - typeof TextEncoder === 'function' - ? new TextEncoder().encode(responseData).byteLength - : responseData.length; - } - } - if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - !isStreamResponse && unsubscribe && unsubscribe(); - - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request, - }); - }); - } catch (err) { - unsubscribe && unsubscribe(); - - // Safari can surface fetch aborts as a DOMException-like object whose - // branded getters throw. Prefer our composed signal reason before reading - // the caught error, preserving timeout vs cancellation semantics. - if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) { - const canceledError = composedSignal.reason; - canceledError.config = config; - request && (canceledError.request = request); - err !== canceledError && (canceledError.cause = err); - throw canceledError; - } - - if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { - throw Object.assign( - new AxiosError( - 'Network Error', - AxiosError.ERR_NETWORK, - config, - request, - err && err.response - ), - { - cause: err.cause || err, - } - ); - } - - throw AxiosError.from(err, err && err.code, config, request, err && err.response); - } - }; -}; - -const seedCache = new Map(); - -const getFetch = (config) => { - let env = (config && config.env) || {}; - const { fetch, Request, Response } = env; - const seeds = [Request, Response, fetch]; - - let len = seeds.length, - i = len, - seed, - target, - map = seedCache; - - while (i--) { - seed = seeds[i]; - target = map.get(seed); - - target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); - - map = target; - } - - return target; -}; - -getFetch(); - -/** - * Known adapters mapping. - * Provides environment-specific adapters for Axios: - * - `http` for Node.js - * - `xhr` for browsers - * - `fetch` for fetch API-based requests - * - * @type {Object} - */ -const knownAdapters = { - http: httpAdapter, - xhr: xhrAdapter, - fetch: { - get: getFetch, - }, -}; - -// Assign adapter names for easier debugging and identification -utils$1.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - // Null-proto descriptors so a polluted Object.prototype.get cannot turn - // these data descriptors into accessor descriptors on the way in. - Object.defineProperty(fn, 'name', { __proto__: null, value }); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', { __proto__: null, value }); - } -}); - -/** - * Render a rejection reason string for unknown or unsupported adapters - * - * @param {string} reason - * @returns {string} - */ -const renderReason = (reason) => `- ${reason}`; - -/** - * Check if the adapter is resolved (function, null, or false) - * - * @param {Function|null|false} adapter - * @returns {boolean} - */ -const isResolvedHandle = (adapter) => - utils$1.isFunction(adapter) || adapter === null || adapter === false; - -/** - * Get the first suitable adapter from the provided list. - * Tries each adapter in order until a supported one is found. - * Throws an AxiosError if no adapter is suitable. - * - * @param {Array|string|Function} adapters - Adapter(s) by name or function. - * @param {Object} config - Axios request configuration - * @throws {AxiosError} If no suitable adapter is available - * @returns {Function} The resolved adapter function - */ -function getAdapter(adapters, config) { - adapters = utils$1.isArray(adapters) ? adapters : [adapters]; - - const { length } = adapters; - let nameOrAdapter; - let adapter; - - const rejectedReasons = {}; - - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - - adapter = nameOrAdapter; - - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - - if (adapter === undefined) { - throw new AxiosError(`Unknown adapter '${id}'`); - } - } - - if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { - break; - } - - rejectedReasons[id || '#' + i] = adapter; - } - - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map( - ([id, state]) => - `adapter ${id} ` + - (state === false ? 'is not supported by the environment' : 'is not available in the build') - ); - - let s = length - ? reasons.length > 1 - ? 'since :\n' + reasons.map(renderReason).join('\n') - : ' ' + renderReason(reasons[0]) - : 'as no adapter specified'; - - throw new AxiosError( - `There is no suitable adapter to dispatch the request ` + s, - 'ERR_NOT_SUPPORT' - ); - } - - return adapter; -} - -/** - * Exports Axios adapters and utility to resolve an adapter - */ -var adapters = { - /** - * Resolve an adapter from a list of adapter names or functions. - * @type {Function} - */ - getAdapter, - - /** - * Exposes all known adapters - * @type {Object} - */ - adapters: knownAdapters, -}; - -/** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - - if (config.signal && config.signal.aborted) { - throw new CanceledError(null, config); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ -function dispatchRequest(config) { - throwIfCancellationRequested(config); - - config.headers = AxiosHeaders.from(config.headers); - - // Transform request data - config.data = transformData.call(config, config.transformRequest); - - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - - const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); - - return adapter(config).then( - function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Expose the current response on config so that transformResponse can - // attach it to any AxiosError it throws (e.g. on JSON parse failure). - // We clean it up afterwards to avoid polluting the config object. - config.response = response; - try { - response.data = transformData.call(config, config.transformResponse, response); - } finally { - delete config.response; - } - - response.headers = AxiosHeaders.from(response.headers); - - return response; - }, - function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - config.response = reason.response; - try { - reason.response.data = transformData.call( - config, - config.transformResponse, - reason.response - ); - } finally { - delete config.response; - } - reason.response.headers = AxiosHeaders.from(reason.response.headers); - } - } - - return Promise.reject(reason); - } - ); -} - -const validators$1 = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { - validators$1[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -const deprecatedWarnings = {}; - -/** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ -validators$1.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return ( - '[Axios v' + - VERSION + - "] Transitional option '" + - opt + - "'" + - desc + - (message ? '. ' + message : '') - ); - } - - // eslint-disable-next-line func-names - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), - AxiosError.ERR_DEPRECATED - ); - } - - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -validators$1.spelling = function spelling(correctSpelling) { - return (value, opt) => { - // eslint-disable-next-line no-console - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - }; -}; - -/** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - // Use hasOwnProperty so a polluted Object.prototype. cannot supply - // a non-function validator and cause a TypeError. - const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; - if (validator) { - const value = options[opt]; - const result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError( - 'option ' + opt + ' must be ' + result, - AxiosError.ERR_BAD_OPTION_VALUE - ); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); - } - } -} - -var validator = { - assertOptions, - validators: validators$1, -}; - -const validators = validator.validators; - -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ -class Axios { - constructor(instanceConfig) { - this.defaults = instanceConfig || {}; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager(), - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - - Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); - - // slice off the Error: ... line - const stack = (() => { - if (!dummy.stack) { - return ''; - } - - const firstNewlineIndex = dummy.stack.indexOf('\n'); - - return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); - })(); - try { - if (!err.stack) { - err.stack = stack; - // match without the 2 top stack lines - } else if (stack) { - const firstNewlineIndex = stack.indexOf('\n'); - const secondNewlineIndex = - firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); - const stackWithoutTwoTopLines = - secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); - - if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { - err.stack += '\n' + stack; - } - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - - throw err; - } - } - - _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - - config = mergeConfig(this.defaults, config); - - const { transitional, paramsSerializer, headers } = config; - - if (transitional !== undefined) { - validator.assertOptions( - transitional, - { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean), - legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), - }, - false - ); - } - - if (paramsSerializer != null) { - if (utils$1.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer, - }; - } else { - validator.assertOptions( - paramsSerializer, - { - encode: validators.function, - serialize: validators.function, - }, - true - ); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - - validator.assertOptions( - config, - { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken'), - }, - true - ); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); - - headers && - utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => { - delete headers[method]; - }); - - config.headers = AxiosHeaders.concat(contextHeaders, headers); - - // filter out skipped interceptors - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - const transitional = config.transitional || transitionalDefaults; - const legacyInterceptorReqResOrdering = - transitional && transitional.legacyInterceptorReqResOrdering; - - if (legacyInterceptorReqResOrdering) { - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - } else { - requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - } - }); - - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - let promise; - let i = 0; - let len; - - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), undefined]; - chain.unshift(...requestInterceptorChain); - chain.push(...responseInterceptorChain); - len = chain.length; - - promise = Promise.resolve(config); - - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - - return promise; - } - - len = requestInterceptorChain.length; - - let newConfig = config; - - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - - i = 0; - len = responseInterceptorChain.length; - - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - - return promise; - } - - getUri(config) { - config = mergeConfig(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - return buildURL(fullPath, config.params, config.paramsSerializer); - } -} - -// Provide aliases for supported request methods -utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function (url, config) { - return this.request( - mergeConfig(config || {}, { - method, - url, - data: (config || {}).data, - }) - ); - }; -}); - -utils$1.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request( - mergeConfig(config || {}, { - method, - headers: isForm - ? { - 'Content-Type': 'multipart/form-data', - } - : {}, - url, - data, - }) - ); - }; - } - - Axios.prototype[method] = generateHTTPMethod(); - - // QUERY is a safe/idempotent read method; multipart form bodies don't fit - // its semantics, so no queryForm shorthand is generated. - if (method !== 'query') { - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); - } -}); - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ -class CancelToken { - constructor(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - let resolvePromise; - - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - const token = this; - - // eslint-disable-next-line func-names - this.promise.then((cancel) => { - if (!token._listeners) return; - - let i = token._listeners.length; - - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = (onfulfilled) => { - let _resolve; - // eslint-disable-next-line func-names - const promise = new Promise((resolve) => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - - return promise; - }; - - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new CanceledError(message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - - toAbortSignal() { - const controller = new AbortController(); - - const abort = (err) => { - controller.abort(err); - }; - - this.subscribe(abort); - - controller.signal.unsubscribe = () => this.unsubscribe(abort); - - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel, - }; - } -} - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * const args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ -function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -function isAxiosError(payload) { - return utils$1.isObject(payload) && payload.isAxiosError === true; -} - -const HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, - WebServerIsDown: 521, - ConnectionTimedOut: 522, - OriginIsUnreachable: 523, - TimeoutOccurred: 524, - SslHandshakeFailed: 525, - InvalidSslCertificate: 526, -}; - -Object.entries(HttpStatusCode).forEach(([key, value]) => { - HttpStatusCode[value] = key; -}); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - const context = new Axios(defaultConfig); - const instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils$1.extend(instance, Axios.prototype, context, { allOwnKeys: true }); - - // Copy context to instance - utils$1.extend(instance, context, null, { allOwnKeys: true }); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - - return instance; -} - -// Create the default instance to be exported -const axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Expose Cancel & CancelToken -axios.CanceledError = CanceledError; -axios.CancelToken = CancelToken; -axios.isCancel = isCancel; -axios.VERSION = VERSION; -axios.toFormData = toFormData; - -// Expose AxiosError class -axios.AxiosError = AxiosError; - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; - -axios.spread = spread; - -// Expose isAxiosError -axios.isAxiosError = isAxiosError; - -// Expose mergeConfig -axios.mergeConfig = mergeConfig; - -axios.AxiosHeaders = AxiosHeaders; - -axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); - -axios.getAdapter = adapters.getAdapter; - -axios.HttpStatusCode = HttpStatusCode; - -axios.default = axios; - -module.exports = axios; -//# sourceMappingURL=axios.cjs.map diff --git a/node_modules/axios/dist/browser/axios.cjs.map b/node_modules/axios/dist/browser/axios.cjs.map deleted file mode 100644 index 2236aa6..0000000 --- a/node_modules/axios/dist/browser/axios.cjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/helpers/parseHeaders.js","../../lib/helpers/sanitizeHeaderValue.js","../../lib/core/AxiosHeaders.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/helpers/estimateDataURLDecodedBytes.js","../../lib/env/data.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.16.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["isFunction","utils","encode","URLSearchParams","FormData","Blob","platform","fetchAdapter.getFetch","validators"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/dist/esm/axios.js b/node_modules/axios/dist/esm/axios.js deleted file mode 100644 index 8669c13..0000000 --- a/node_modules/axios/dist/esm/axios.js +++ /dev/null @@ -1,4754 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -/** - * Create a bound version of a function with a specified `this` context - * - * @param {Function} fn - The function to bind - * @param {*} thisArg - The value to be passed as the `this` parameter - * @returns {Function} A new function that will call the original function with the specified `this` context - */ -function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} - -// utils is a library of generic helper functions non-specific to axios - -const { toString } = Object.prototype; -const { getPrototypeOf } = Object; -const { iterator, toStringTag } = Symbol; - -const kindOf = ((cache) => (thing) => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(Object.create(null)); - -const kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type; -}; - -const typeOfTest = (type) => (thing) => typeof thing === type; - -/** - * Determine if a value is a non-null object - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ -const { isArray } = Array; - -/** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ -const isUndefined = typeOfTest('undefined'); - -/** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return ( - val !== null && - !isUndefined(val) && - val.constructor !== null && - !isUndefined(val.constructor) && - isFunction$1(val.constructor.isBuffer) && - val.constructor.isBuffer(val) - ); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -const isArrayBuffer = kindOfTest('ArrayBuffer'); - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ -const isString = typeOfTest('string'); - -/** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -const isFunction$1 = typeOfTest('function'); - -/** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ -const isNumber = typeOfTest('number'); - -/** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ -const isObject = (thing) => thing !== null && typeof thing === 'object'; - -/** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ -const isBoolean = (thing) => thing === true || thing === false; - -/** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ -const isPlainObject = (val) => { - if (kindOf(val) !== 'object') { - return false; - } - - const prototype = getPrototypeOf(val); - return ( - (prototype === null || - prototype === Object.prototype || - Object.getPrototypeOf(prototype) === null) && - !(toStringTag in val) && - !(iterator in val) - ); -}; - -/** - * Determine if a value is an empty object (safely handles Buffers) - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an empty object, otherwise false - */ -const isEmptyObject = (val) => { - // Early return for non-objects or Buffers to prevent RangeError - if (!isObject(val) || isBuffer(val)) { - return false; - } - - try { - return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; - } catch (e) { - // Fallback for any other objects that might cause RangeError with Object.keys() - return false; - } -}; - -/** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ -const isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFile = kindOfTest('File'); - -/** - * Determine if a value is a React Native Blob - * React Native "blob": an object with a `uri` attribute. Optionally, it can - * also have a `name` and `type` attribute to specify filename and content type - * - * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * - * @param {*} value The value to test - * - * @returns {boolean} True if value is a React Native Blob, otherwise false - */ -const isReactNativeBlob = (value) => { - return !!(value && typeof value.uri !== 'undefined'); -}; - -/** - * Determine if environment is React Native - * ReactNative `FormData` has a non-standard `getParts()` method - * - * @param {*} formData The formData to test - * - * @returns {boolean} True if environment is React Native, otherwise false - */ -const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; - -/** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ -const isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a FileList, otherwise false - */ -const isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ -const isStream = (val) => isObject(val) && isFunction$1(val.pipe); - -/** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - return {}; -} - -const G = getGlobal(); -const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; - -const isFormData = (thing) => { - if (!thing) return false; - if (FormDataCtor && thing instanceof FormDataCtor) return true; - // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. - const proto = getPrototypeOf(thing); - if (!proto || proto === Object.prototype) return false; - if (!isFunction$1(thing.append)) return false; - const kind = kindOf(thing); - return ( - kind === 'formdata' || - // detect form-data instance - (kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]') - ); -}; - -/** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -const isURLSearchParams = kindOfTest('URLSearchParams'); - -const [isReadableStream, isRequest, isResponse, isHeaders] = [ - 'ReadableStream', - 'Request', - 'Response', - 'Headers', -].map(kindOfTest); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ -const trim = (str) => { - return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); -}; -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys = false] - * @returns {any} - */ -function forEach(obj, fn, { allOwnKeys = false } = {}) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - let i; - let l; - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Buffer check - if (isBuffer(obj)) { - return; - } - - // Iterate over object keys - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} - -/** - * Finds a key in an object, case-insensitive, returning the actual key name. - * Returns null if the object is a Buffer or if no match is found. - * - * @param {Object} obj - The object to search. - * @param {string} key - The key to find (case-insensitive). - * @returns {?string} The actual key name if found, otherwise null. - */ -function findKey(obj, key) { - if (isBuffer(obj)) { - return null; - } - - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} - -const _global = (() => { - /*eslint no-undef:0*/ - if (typeof globalThis !== 'undefined') return globalThis; - return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; -})(); - -const isContextDefined = (context) => !isUndefined(context) && context !== _global; - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * const result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ -function merge(...objs) { - const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; - const result = {}; - const assignValue = (val, key) => { - // Skip dangerous property names to prevent prototype pollution - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return; - } - - const targetKey = (caseless && findKey(result, key)) || key; - // Read via own-prop only — a bare `result[targetKey]` walks the prototype - // chain, so a polluted Object.prototype value could surface here and get - // copied into the merged result. - const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; - if (isPlainObject(existing) && isPlainObject(val)) { - result[targetKey] = merge(existing, val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else if (!skipUndefined || !isUndefined(val)) { - result[targetKey] = val; - } - }; - - for (let i = 0, l = objs.length; i < l; i++) { - objs[i] && forEach(objs[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys] - * @returns {Object} The resulting value of object a - */ -const extend = (a, b, thisArg, { allOwnKeys } = {}) => { - forEach( - b, - (val, key) => { - if (thisArg && isFunction$1(val)) { - Object.defineProperty(a, key, { - // Null-proto descriptor so a polluted Object.prototype.get cannot - // hijack defineProperty's accessor-vs-data resolution. - __proto__: null, - value: bind(val, thisArg), - writable: true, - enumerable: true, - configurable: true, - }); - } else { - Object.defineProperty(a, key, { - __proto__: null, - value: val, - writable: true, - enumerable: true, - configurable: true, - }); - } - }, - { allOwnKeys } - ); - return a; -}; - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ -const stripBOM = (content) => { - if (content.charCodeAt(0) === 0xfeff) { - content = content.slice(1); - } - return content; -}; - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ -const inherits = (constructor, superConstructor, props, descriptors) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - Object.defineProperty(constructor.prototype, 'constructor', { - __proto__: null, - value: constructor, - writable: true, - enumerable: false, - configurable: true, - }); - Object.defineProperty(constructor, 'super', { - __proto__: null, - value: superConstructor.prototype, - }); - props && Object.assign(constructor.prototype, props); -}; - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ -const toFlatObject = (sourceObj, destObj, filter, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - - return destObj; -}; - -/** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ -const endsWith = (str, searchString, position) => { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; - -/** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ -const toArray = (thing) => { - if (!thing) return null; - if (isArray(thing)) return thing; - let i = thing.length; - if (!isNumber(i)) return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -}; - -/** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ -// eslint-disable-next-line func-names -const isTypedArray = ((TypedArray) => { - // eslint-disable-next-line func-names - return (thing) => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - -/** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ -const forEachEntry = (obj, fn) => { - const generator = obj && obj[iterator]; - - const _iterator = generator.call(obj); - - let result; - - while ((result = _iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -}; - -/** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ -const matchAll = (regExp, str) => { - let matches; - const arr = []; - - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - - return arr; -}; - -/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ -const isHTMLForm = kindOfTest('HTMLFormElement'); - -const toCamelCase = (str) => { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - }); -}; - -/* Creating a function that will check if an object has a property. */ -const hasOwnProperty = ( - ({ hasOwnProperty }) => - (obj, prop) => - hasOwnProperty.call(obj, prop) -)(Object.prototype); - -/** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ -const isRegExp = kindOfTest('RegExp'); - -const reduceDescriptors = (obj, reducer) => { - const descriptors = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - - forEach(descriptors, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - - Object.defineProperties(obj, reducedDescriptors); -}; - -/** - * Makes all methods read-only - * @param {Object} obj - */ - -const freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - // skip restricted props in strict mode - if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].includes(name)) { - return false; - } - - const value = obj[name]; - - if (!isFunction$1(value)) return; - - descriptor.enumerable = false; - - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); -}; - -/** - * Converts an array or a delimited string into an object set with values as keys and true as values. - * Useful for fast membership checks. - * - * @param {Array|string} arrayOrString - The array or string to convert. - * @param {string} delimiter - The delimiter to use if input is a string. - * @returns {Object} An object with keys from the array or string, values set to true. - */ -const toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - - const define = (arr) => { - arr.forEach((value) => { - obj[value] = true; - }); - }; - - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - - return obj; -}; - -const noop = () => {}; - -const toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite((value = +value)) ? value : defaultValue; -}; - -/** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ -function isSpecCompliantForm(thing) { - return !!( - thing && - isFunction$1(thing.append) && - thing[toStringTag] === 'FormData' && - thing[iterator] - ); -} - -/** - * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. - * - * @param {Object} obj - The object to convert. - * @returns {Object} The JSON-compatible object. - */ -const toJSONObject = (obj) => { - const visited = new WeakSet(); - - const visit = (source) => { - if (isObject(source)) { - if (visited.has(source)) { - return; - } - - //Buffer check - if (isBuffer(source)) { - return source; - } - - if (!('toJSON' in source)) { - // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). - visited.add(source); - const target = isArray(source) ? [] : {}; - - forEach(source, (value, key) => { - const reducedValue = visit(value); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - - visited.delete(source); - - return target; - } - } - - return source; - }; - - return visit(obj); -}; - -/** - * Determines if a value is an async function. - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is an async function, otherwise false. - */ -const isAsyncFn = kindOfTest('AsyncFunction'); - -/** - * Determines if a value is thenable (has then and catch methods). - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is thenable, otherwise false. - */ -const isThenable = (thing) => - thing && - (isObject(thing) || isFunction$1(thing)) && - isFunction$1(thing.then) && - isFunction$1(thing.catch); - -// original code -// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - -/** - * Provides a cross-platform setImmediate implementation. - * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. - * - * @param {boolean} setImmediateSupported - Whether setImmediate is supported. - * @param {boolean} postMessageSupported - Whether postMessage is supported. - * @returns {Function} A function to schedule a callback asynchronously. - */ -const _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - - return postMessageSupported - ? ((token, callbacks) => { - _global.addEventListener( - 'message', - ({ source, data }) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, - false - ); - - return (cb) => { - callbacks.push(cb); - _global.postMessage(token, '*'); - }; - })(`axios@${Math.random()}`, []) - : (cb) => setTimeout(cb); -})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); - -/** - * Schedules a microtask or asynchronous callback as soon as possible. - * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. - * - * @type {Function} - */ -const asap = - typeof queueMicrotask !== 'undefined' - ? queueMicrotask.bind(_global) - : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; - -// ********************* - -const isIterable = (thing) => thing != null && isFunction$1(thing[iterator]); - -var utils$1 = { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isEmptyObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isReactNativeBlob, - isReactNative, - isBlob, - isRegExp, - isFunction: isFunction$1, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap, - isIterable, -}; - -// RawAxiosHeaders whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -const ignoreDuplicateOf = utils$1.toObjectSet([ - 'age', - 'authorization', - 'content-length', - 'content-type', - 'etag', - 'expires', - 'from', - 'host', - 'if-modified-since', - 'if-unmodified-since', - 'last-modified', - 'location', - 'max-forwards', - 'proxy-authorization', - 'referer', - 'retry-after', - 'user-agent', -]); - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ -var parseHeaders = (rawHeaders) => { - const parsed = {}; - let key; - let val; - let i; - - rawHeaders && - rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - - if (!key || (parsed[key] && ignoreDuplicateOf[key])) { - return; - } - - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - - return parsed; -}; - -function trimSPorHTAB(str) { - let start = 0; - let end = str.length; - - while (start < end) { - const code = str.charCodeAt(start); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - start += 1; - } - - while (end > start) { - const code = str.charCodeAt(end - 1); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - end -= 1; - } - - return start === 0 && end === str.length ? str : str.slice(start, end); -} - -// The control-code ranges are intentional: header sanitization strips C0/DEL bytes. -// eslint-disable-next-line no-control-regex -const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g'); -// eslint-disable-next-line no-control-regex -const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g'); - -function sanitizeValue(value, invalidChars) { - if (utils$1.isArray(value)) { - return value.map((item) => sanitizeValue(item, invalidChars)); - } - - return trimSPorHTAB(String(value).replace(invalidChars, '')); -} - -const sanitizeHeaderValue = (value) => - sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); - -const sanitizeByteStringHeaderValue = (value) => - sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); - -function toByteStringHeaderObject(headers) { - const byteStringHeaders = Object.create(null); - - utils$1.forEach(headers.toJSON(), (value, header) => { - byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); - }); - - return byteStringHeaders; -} - -const $internals = Symbol('internals'); - -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} - -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - - return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); -} - -function parseTokens(str) { - const tokens = Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - - while ((match = tokensRE.exec(str))) { - tokens[match[1]] = match[2]; - } - - return tokens; -} - -const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - -function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (utils$1.isFunction(filter)) { - return filter.call(this, value, header); - } - - if (isHeaderNameFilter) { - value = header; - } - - if (!utils$1.isString(value)) return; - - if (utils$1.isString(filter)) { - return value.indexOf(filter) !== -1; - } - - if (utils$1.isRegExp(filter)) { - return filter.test(value); - } -} - -function formatHeader(header) { - return header - .trim() - .toLowerCase() - .replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} - -function buildAccessors(obj, header) { - const accessorName = utils$1.toCamelCase(' ' + header); - - ['get', 'set', 'has'].forEach((methodName) => { - Object.defineProperty(obj, methodName + accessorName, { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: function (arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true, - }); - }); -} - -let AxiosHeaders$1 = class AxiosHeaders { - constructor(headers) { - headers && this.set(headers); - } - - set(header, valueOrRewrite, rewrite) { - const self = this; - - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - - const key = utils$1.findKey(self, lHeader); - - if ( - !key || - self[key] === undefined || - _rewrite === true || - (_rewrite === undefined && self[key] !== false) - ) { - self[key || _header] = normalizeValue(_value); - } - } - - const setHeaders = (headers, _rewrite) => - utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - - if (utils$1.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders(header), valueOrRewrite); - } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { - let obj = {}, - dest, - key; - for (const entry of header) { - if (!utils$1.isArray(entry)) { - throw TypeError('Object iterator must return a key-value pair'); - } - - obj[(key = entry[0])] = (dest = obj[key]) - ? utils$1.isArray(dest) - ? [...dest, entry[1]] - : [dest, entry[1]] - : entry[1]; - } - - setHeaders(obj, valueOrRewrite); - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - - return this; - } - - get(header, parser) { - header = normalizeHeader(header); - - if (header) { - const key = utils$1.findKey(this, header); - - if (key) { - const value = this[key]; - - if (!parser) { - return value; - } - - if (parser === true) { - return parseTokens(value); - } - - if (utils$1.isFunction(parser)) { - return parser.call(this, value, key); - } - - if (utils$1.isRegExp(parser)) { - return parser.exec(value); - } - - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - - has(header, matcher) { - header = normalizeHeader(header); - - if (header) { - const key = utils$1.findKey(this, header); - - return !!( - key && - this[key] !== undefined && - (!matcher || matchHeaderValue(this, this[key], key, matcher)) - ); - } - - return false; - } - - delete(header, matcher) { - const self = this; - let deleted = false; - - function deleteHeader(_header) { - _header = normalizeHeader(_header); - - if (_header) { - const key = utils$1.findKey(self, _header); - - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - - deleted = true; - } - } - } - - if (utils$1.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - - return deleted; - } - - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - - while (i--) { - const key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - - return deleted; - } - - normalize(format) { - const self = this; - const headers = {}; - - utils$1.forEach(this, (value, header) => { - const key = utils$1.findKey(headers, header); - - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - - const normalized = format ? formatHeader(header) : String(header).trim(); - - if (normalized !== header) { - delete self[header]; - } - - self[normalized] = normalizeValue(value); - - headers[normalized] = true; - }); - - return this; - } - - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - - toJSON(asStrings) { - const obj = Object.create(null); - - utils$1.forEach(this, (value, header) => { - value != null && - value !== false && - (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); - }); - - return obj; - } - - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - - toString() { - return Object.entries(this.toJSON()) - .map(([header, value]) => header + ': ' + value) - .join('\n'); - } - - getSetCookie() { - return this.get('set-cookie') || []; - } - - get [Symbol.toStringTag]() { - return 'AxiosHeaders'; - } - - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - - static concat(first, ...targets) { - const computed = new this(first); - - targets.forEach((target) => computed.set(target)); - - return computed; - } - - static accessor(header) { - const internals = - (this[$internals] = - this[$internals] = - { - accessors: {}, - }); - - const accessors = internals.accessors; - const prototype = this.prototype; - - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - - utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - - return this; - } -}; - -AxiosHeaders$1.accessor([ - 'Content-Type', - 'Content-Length', - 'Accept', - 'Accept-Encoding', - 'User-Agent', - 'Authorization', -]); - -// reserved names hotfix -utils$1.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - }, - }; -}); - -utils$1.freezeMethods(AxiosHeaders$1); - -const REDACTED = '[REDACTED ****]'; - -function hasOwnOrPrototypeToJSON(source) { - if (utils$1.hasOwnProp(source, 'toJSON')) { - return true; - } - - let prototype = Object.getPrototypeOf(source); - - while (prototype && prototype !== Object.prototype) { - if (utils$1.hasOwnProp(prototype, 'toJSON')) { - return true; - } - - prototype = Object.getPrototypeOf(prototype); - } - - return false; -} - -// Build a plain-object snapshot of `config` and replace the value of any key -// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays -// and AxiosHeaders, and short-circuits on circular references. -function redactConfig(config, redactKeys) { - const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase())); - const seen = []; - - const visit = (source) => { - if (source === null || typeof source !== 'object') return source; - if (utils$1.isBuffer(source)) return source; - if (seen.indexOf(source) !== -1) return undefined; - - if (source instanceof AxiosHeaders$1) { - source = source.toJSON(); - } - - seen.push(source); - - let result; - if (utils$1.isArray(source)) { - result = []; - source.forEach((v, i) => { - const reducedValue = visit(v); - if (!utils$1.isUndefined(reducedValue)) { - result[i] = reducedValue; - } - }); - } else { - if (!utils$1.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { - seen.pop(); - return source; - } - - result = Object.create(null); - for (const [key, value] of Object.entries(source)) { - const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); - if (!utils$1.isUndefined(reducedValue)) { - result[key] = reducedValue; - } - } - } - - seen.pop(); - return result; - }; - - return visit(config); -} - -let AxiosError$1 = class AxiosError extends Error { - static from(error, code, config, request, response, customProps) { - const axiosError = new AxiosError(error.message, code || error.code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - - // Preserve status from the original error if not already set from response - if (error.status != null && axiosError.status == null) { - axiosError.status = error.status; - } - - customProps && Object.assign(axiosError, customProps); - return axiosError; - } - - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - constructor(message, code, config, request, response) { - super(message); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(this, 'message', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: message, - enumerable: true, - writable: true, - configurable: true, - }); - - this.name = 'AxiosError'; - this.isAxiosError = true; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status; - } - } - - toJSON() { - // Opt-in redaction: when the request config carries a `redact` array, the - // value of any matching key (case-insensitive, at any depth) is replaced - // with REDACTED in the serialized snapshot. Undefined or empty leaves the - // existing serialization behavior unchanged. - const config = this.config; - const redactKeys = config && utils$1.hasOwnProp(config, 'redact') ? config.redact : undefined; - const serializedConfig = - utils$1.isArray(redactKeys) && redactKeys.length > 0 - ? redactConfig(config, redactKeys) - : utils$1.toJSONObject(config); - - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: serializedConfig, - code: this.code, - status: this.status, - }; - } -}; - -// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. -AxiosError$1.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; -AxiosError$1.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; -AxiosError$1.ECONNABORTED = 'ECONNABORTED'; -AxiosError$1.ETIMEDOUT = 'ETIMEDOUT'; -AxiosError$1.ECONNREFUSED = 'ECONNREFUSED'; -AxiosError$1.ERR_NETWORK = 'ERR_NETWORK'; -AxiosError$1.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; -AxiosError$1.ERR_DEPRECATED = 'ERR_DEPRECATED'; -AxiosError$1.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; -AxiosError$1.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; -AxiosError$1.ERR_CANCELED = 'ERR_CANCELED'; -AxiosError$1.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; -AxiosError$1.ERR_INVALID_URL = 'ERR_INVALID_URL'; -AxiosError$1.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - -// eslint-disable-next-line strict -var httpAdapter = null; - -/** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ -function isVisitable(thing) { - return utils$1.isPlainObject(thing) || utils$1.isArray(thing); -} - -/** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ -function removeBrackets(key) { - return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; -} - -/** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ -function renderKey(path, key, dots) { - if (!path) return key; - return path - .concat(key) - .map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }) - .join(dots ? '.' : ''); -} - -/** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ -function isFlatArray(arr) { - return utils$1.isArray(arr) && !arr.some(isVisitable); -} - -const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); - -/** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - -/** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ -function toFormData$1(obj, formData, options) { - if (!utils$1.isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (FormData)(); - - // eslint-disable-next-line no-param-reassign - options = utils$1.toFlatObject( - options, - { - metaTokens: true, - dots: false, - indexes: false, - }, - false, - function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !utils$1.isUndefined(source[option]); - } - ); - - const metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); - const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; - const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); - - if (!utils$1.isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - - function convertValue(value) { - if (value === null) return ''; - - if (utils$1.isDate(value)) { - return value.toISOString(); - } - - if (utils$1.isBoolean(value)) { - return value.toString(); - } - - if (!useBlob && utils$1.isBlob(value)) { - throw new AxiosError$1('Blob is not supported. Use a Buffer instead.'); - } - - if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - let arr = value; - - if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - - if (value && !path && typeof value === 'object') { - if (utils$1.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if ( - (utils$1.isArray(value) && isFlatArray(value)) || - ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) - ) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - - arr.forEach(function each(el, index) { - !(utils$1.isUndefined(el) || el === null) && - formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true - ? renderKey([key], index, dots) - : indexes === null - ? key - : key + '[]', - convertValue(el) - ); - }); - return false; - } - } - - if (isVisitable(value)) { - return true; - } - - formData.append(renderKey(path, key, dots), convertValue(value)); - - return false; - } - - const stack = []; - - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable, - }); - - function build(value, path, depth = 0) { - if (utils$1.isUndefined(value)) return; - - if (depth > maxDepth) { - throw new AxiosError$1( - 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, - AxiosError$1.ERR_FORM_DATA_DEPTH_EXCEEDED - ); - } - - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - - stack.push(value); - - utils$1.forEach(value, function each(el, key) { - const result = - !(utils$1.isUndefined(el) || el === null) && - visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); - - if (result === true) { - build(el, path ? path.concat(key) : [key], depth + 1); - } - }); - - stack.pop(); - } - - if (!utils$1.isObject(obj)) { - throw new TypeError('data must be an object'); - } - - build(obj); - - return formData; -} - -/** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ -function encode$1(str) { - const charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+', - }; - return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { - return charMap[match]; - }); -} - -/** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ -function AxiosURLSearchParams(params, options) { - this._pairs = []; - - params && toFormData$1(params, this, options); -} - -const prototype = AxiosURLSearchParams.prototype; - -prototype.append = function append(name, value) { - this._pairs.push([name, value]); -}; - -prototype.toString = function toString(encoder) { - const _encode = encoder - ? function (value) { - return encoder.call(this, value, encode$1); - } - : encode$1; - - return this._pairs - .map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '') - .join('&'); -}; - -/** - * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with - * their plain counterparts (`:`, `$`, `,`, `+`). - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ -function encode(val) { - return encodeURIComponent(val) - .replace(/%3A/gi, ':') - .replace(/%24/g, '$') - .replace(/%2C/gi, ',') - .replace(/%20/g, '+'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ -function buildURL(url, params, options) { - if (!params) { - return url; - } - - const _encode = (options && options.encode) || encode; - - const _options = utils$1.isFunction(options) - ? { - serialize: options, - } - : options; - - const serializeFn = _options && _options.serialize; - - let serializedParams; - - if (serializeFn) { - serializedParams = serializeFn(params, _options); - } else { - serializedParams = utils$1.isURLSearchParams(params) - ? params.toString() - : new AxiosURLSearchParams(params, _options).toString(_encode); - } - - if (serializedParams) { - const hashmarkIndex = url.indexOf('#'); - - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -} - -class InterceptorManager { - constructor() { - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * @param {Object} options The options for the interceptor, synchronous and runWhen - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null, - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {void} - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils$1.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -} - -var transitionalDefaults = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false, - legacyInterceptorReqResOrdering: true, -}; - -var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; - -var FormData$1 = typeof FormData !== 'undefined' ? FormData : null; - -var Blob$1 = typeof Blob !== 'undefined' ? Blob : null; - -var platform$1 = { - isBrowser: true, - classes: { - URLSearchParams: URLSearchParams$1, - FormData: FormData$1, - Blob: Blob$1, - }, - protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], -}; - -const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; - -const _navigator = (typeof navigator === 'object' && navigator) || undefined; - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ -const hasStandardBrowserEnv = - hasBrowserEnv && - (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - -/** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ -const hasStandardBrowserWebWorkerEnv = (() => { - return ( - typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && - typeof self.importScripts === 'function' - ); -})(); - -const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; - -var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - hasBrowserEnv: hasBrowserEnv, - hasStandardBrowserEnv: hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, - navigator: _navigator, - origin: origin -}); - -var platform = { - ...utils, - ...platform$1, -}; - -function toURLEncodedForm(data, options) { - return toFormData$1(data, new platform.classes.URLSearchParams(), { - visitor: function (value, key, path, helpers) { - if (platform.isNode && utils$1.isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - - return helpers.defaultVisitor.apply(this, arguments); - }, - ...options, - }); -} - -/** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ -function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); -} - -/** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} - -/** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - - if (name === '__proto__') return true; - - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && utils$1.isArray(target) ? target.length : name; - - if (isLast) { - if (utils$1.hasOwnProp(target, name)) { - target[name] = utils$1.isArray(target[name]) - ? target[name].concat(value) - : [target[name], value]; - } else { - target[name] = value; - } - - return !isNumericKey; - } - - if (!utils$1.hasOwnProp(target, name) || !utils$1.isObject(target[name])) { - target[name] = []; - } - - const result = buildPath(path, value, target[name], index); - - if (result && utils$1.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - - return !isNumericKey; - } - - if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { - const obj = {}; - - utils$1.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - - return obj; - } - - return null; -} - -const own = (obj, key) => (obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined); - -/** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ -function stringifySafely(rawValue, parser, encoder) { - if (utils$1.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils$1.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -const defaults = { - transitional: transitionalDefaults, - - adapter: ['xhr', 'http', 'fetch'], - - transformRequest: [ - function transformRequest(data, headers) { - const contentType = headers.getContentType() || ''; - const hasJSONContentType = contentType.indexOf('application/json') > -1; - const isObjectPayload = utils$1.isObject(data); - - if (isObjectPayload && utils$1.isHTMLForm(data)) { - data = new FormData(data); - } - - const isFormData = utils$1.isFormData(data); - - if (isFormData) { - return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; - } - - if ( - utils$1.isArrayBuffer(data) || - utils$1.isBuffer(data) || - utils$1.isStream(data) || - utils$1.isFile(data) || - utils$1.isBlob(data) || - utils$1.isReadableStream(data) - ) { - return data; - } - if (utils$1.isArrayBufferView(data)) { - return data.buffer; - } - if (utils$1.isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - - let isFileList; - - if (isObjectPayload) { - const formSerializer = own(this, 'formSerializer'); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return toURLEncodedForm(data, formSerializer).toString(); - } - - if ( - (isFileList = utils$1.isFileList(data)) || - contentType.indexOf('multipart/form-data') > -1 - ) { - const env = own(this, 'env'); - const _FormData = env && env.FormData; - - return toFormData$1( - isFileList ? { 'files[]': data } : data, - _FormData && new _FormData(), - formSerializer - ); - } - } - - if (isObjectPayload || hasJSONContentType) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - - return data; - }, - ], - - transformResponse: [ - function transformResponse(data) { - const transitional = own(this, 'transitional') || defaults.transitional; - const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const responseType = own(this, 'responseType'); - const JSONRequested = responseType === 'json'; - - if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { - return data; - } - - if ( - data && - utils$1.isString(data) && - ((forcedJSONParsing && !responseType) || JSONRequested) - ) { - const silentJSONParsing = transitional && transitional.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - - try { - return JSON.parse(data, own(this, 'parseReviver')); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, own(this, 'response')); - } - throw e; - } - } - } - - return data; - }, - ], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - env: { - FormData: platform.classes.FormData, - Blob: platform.classes.Blob, - }, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - - headers: { - common: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': undefined, - }, - }, -}; - -utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => { - defaults.headers[method] = {}; -}); - -/** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ -function transformData(fns, response) { - const config = this || defaults; - const context = response || config; - const headers = AxiosHeaders$1.from(context.headers); - let data = context.data; - - utils$1.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - - headers.normalize(); - - return data; -} - -function isCancel$1(value) { - return !!(value && value.__CANCEL__); -} - -let CanceledError$1 = class CanceledError extends AxiosError$1 { - /** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ - constructor(message, config, request) { - super(message == null ? 'canceled' : message, AxiosError$1.ERR_CANCELED, config, request); - this.name = 'CanceledError'; - this.__CANCEL__ = true; - } -}; - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ -function settle(resolve, reject, response) { - const validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError$1( - 'Request failed with status code ' + response.status, - response.status >= 400 && response.status < 500 ? AxiosError$1.ERR_BAD_REQUEST : AxiosError$1.ERR_BAD_RESPONSE, - response.config, - response.request, - response - )); - } -} - -function parseProtocol(url) { - const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); - return (match && match[1]) || ''; -} - -/** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - - min = min !== undefined ? min : 1000; - - return function push(chunkLength) { - const now = Date.now(); - - const startedAt = timestamps[tail]; - - if (!firstSampleTS) { - firstSampleTS = now; - } - - bytes[head] = chunkLength; - timestamps[head] = now; - - let i = tail; - let bytesCount = 0; - - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - - head = (head + 1) % samplesCount; - - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - - if (now - firstSampleTS < min) { - return; - } - - const passed = startedAt && now - startedAt; - - return passed ? Math.round((bytesCount * 1000) / passed) : undefined; - }; -} - -/** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1000 / freq; - let lastArgs; - let timer; - - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn(...args); - }; - - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - - const flush = () => lastArgs && invoke(lastArgs); - - return [throttled, flush]; -} - -const progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer(50, 250); - - return throttle((e) => { - if (!e || typeof e.loaded !== 'number') { - return; - } - const rawLoaded = e.loaded; - const total = e.lengthComputable ? e.total : undefined; - const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; - const progressBytes = Math.max(0, loaded - bytesNotified); - const rate = _speedometer(progressBytes); - - bytesNotified = Math.max(bytesNotified, loaded); - - const data = { - loaded, - total, - progress: total ? loaded / total : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null, - [isDownloadStream ? 'download' : 'upload']: true, - }; - - listener(data); - }, freq); -}; - -const progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - - return [ - (loaded) => - throttled[0]({ - lengthComputable, - total, - loaded, - }), - throttled[1], - ]; -}; - -const asyncDecorator = - (fn) => - (...args) => - utils$1.asap(() => fn(...args)); - -var isURLSameOrigin = platform.hasStandardBrowserEnv - ? ((origin, isMSIE) => (url) => { - url = new URL(url, platform.origin); - - return ( - origin.protocol === url.protocol && - origin.host === url.host && - (isMSIE || origin.port === url.port) - ); - })( - new URL(platform.origin), - platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) - ) - : () => true; - -var cookies = platform.hasStandardBrowserEnv - ? // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure, sameSite) { - if (typeof document === 'undefined') return; - - const cookie = [`${name}=${encodeURIComponent(value)}`]; - - if (utils$1.isNumber(expires)) { - cookie.push(`expires=${new Date(expires).toUTCString()}`); - } - if (utils$1.isString(path)) { - cookie.push(`path=${path}`); - } - if (utils$1.isString(domain)) { - cookie.push(`domain=${domain}`); - } - if (secure === true) { - cookie.push('secure'); - } - if (utils$1.isString(sameSite)) { - cookie.push(`SameSite=${sameSite}`); - } - - document.cookie = cookie.join('; '); - }, - - read(name) { - if (typeof document === 'undefined') return null; - // Match name=value by splitting on the semicolon separator instead of building a - // RegExp from `name` — interpolating an unescaped string into a RegExp would let - // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or - // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or - // "; ", so ignore optional whitespace before each cookie name. - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].replace(/^\s+/, ''); - const eq = cookie.indexOf('='); - if (eq !== -1 && cookie.slice(0, eq) === name) { - return decodeURIComponent(cookie.slice(eq + 1)); - } - } - return null; - }, - - remove(name) { - this.write(name, '', Date.now() - 86400000, '/'); - }, - } - : // Non-standard browser env (web workers, react-native) lack needed support. - { - write() {}, - read() { - return null; - }, - remove() {}, - }; - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - if (typeof url !== 'string') { - return false; - } - - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ -function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -} - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ -function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - let isRelativeUrl = !isAbsoluteURL(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -} - -const headersToObject = (thing) => (thing instanceof AxiosHeaders$1 ? { ...thing } : thing); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ -function mergeConfig$1(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - - // Use a null-prototype object so that downstream reads such as `config.auth` - // or `config.baseURL` cannot inherit polluted values from Object.prototype. - // `hasOwnProperty` is restored as a non-enumerable own slot to preserve - // ergonomics for user code that relies on it. - const config = Object.create(null); - Object.defineProperty(config, 'hasOwnProperty', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: Object.prototype.hasOwnProperty, - enumerable: false, - writable: true, - configurable: true, - }); - - function getMergedValue(target, source, prop, caseless) { - if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { - return utils$1.merge.call({ caseless }, target, source); - } else if (utils$1.isPlainObject(source)) { - return utils$1.merge({}, source); - } else if (utils$1.isArray(source)) { - return source.slice(); - } - return source; - } - - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a, prop, caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (utils$1.hasOwnProp(config2, prop)) { - return getMergedValue(a, b); - } else if (utils$1.hasOwnProp(config1, prop)) { - return getMergedValue(undefined, a); - } - } - - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - allowedSocketPaths: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b, prop) => - mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), - }; - - utils$1.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { - if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; - const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; - const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; - const configValue = merge(a, b, prop); - (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); - }); - - return config; -} - -const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; - -function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -/** - * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). - * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. - * - * @param {string} str The string to encode - * - * @returns {string} UTF-8 bytes as a Latin-1 string - */ -const encodeUTF8 = (str) => - encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => - String.fromCharCode(parseInt(hex, 16)) - ); - -var resolveConfig = (config) => { - const newConfig = mergeConfig$1({}, config); - - // Read only own properties to prevent prototype pollution gadgets - // (e.g. Object.prototype.baseURL = 'https://evil.com'). - const own = (key) => (utils$1.hasOwnProp(newConfig, key) ? newConfig[key] : undefined); - - const data = own('data'); - let withXSRFToken = own('withXSRFToken'); - const xsrfHeaderName = own('xsrfHeaderName'); - const xsrfCookieName = own('xsrfCookieName'); - let headers = own('headers'); - const auth = own('auth'); - const baseURL = own('baseURL'); - const allowAbsoluteUrls = own('allowAbsoluteUrls'); - const url = own('url'); - - newConfig.headers = headers = AxiosHeaders$1.from(headers); - - newConfig.url = buildURL( - buildFullPath(baseURL, url, allowAbsoluteUrls), - config.params, - config.paramsSerializer - ); - - // HTTP basic authentication - if (auth) { - headers.set( - 'Authorization', - 'Basic ' + - btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : '')) - ); - } - - if (utils$1.isFormData(data)) { - if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // browser handles it - } else if (utils$1.isFunction(data.getHeaders)) { - // Node.js FormData (like form-data package) - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (platform.hasStandardBrowserEnv) { - if (utils$1.isFunction(withXSRFToken)) { - withXSRFToken = withXSRFToken(newConfig); - } - - // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) - // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking - // the XSRF token cross-origin. - const shouldSendXSRF = - withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url)); - - if (shouldSendXSRF) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); - - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - - return newConfig; -}; - -const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; - -var xhrAdapter = isXHRAdapterSupported && - function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders$1.from(_config.headers).normalize(); - let { responseType, onUploadProgress, onDownloadProgress } = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - - let request = new XMLHttpRequest(); - - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - const responseHeaders = AxiosHeaders$1.from( - 'getAllResponseHeaders' in request && request.getAllResponseHeaders() - ); - const responseData = - !responseType || responseType === 'text' || responseType === 'json' - ? request.responseText - : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request, - }; - - settle( - function _resolve(value) { - resolve(value); - done(); - }, - function _reject(err) { - reject(err); - done(); - }, - response - ); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if ( - request.status === 0 && - !(request.responseURL && request.responseURL.startsWith('file:')) - ) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(new AxiosError$1('Request aborted', AxiosError$1.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError(event) { - // Browsers deliver a ProgressEvent in XHR onerror - // (message may be empty; when present, surface it) - // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event - const msg = event && event.message ? event.message : 'Network Error'; - const err = new AxiosError$1(msg, AxiosError$1.ERR_NETWORK, config, request); - // attach the underlying event for consumers who want details - err.event = event || null; - reject(err); - done(); - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout - ? 'timeout of ' + _config.timeout + 'ms exceeded' - : 'timeout exceeded'; - const transitional = _config.transitional || transitionalDefaults; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject( - new AxiosError$1( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? AxiosError$1.ETIMEDOUT : AxiosError$1.ECONNABORTED, - config, - request - ) - ); - done(); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!utils$1.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); - - request.upload.addEventListener('progress', uploadThrottled); - - request.upload.addEventListener('loadend', flushUpload); - } - - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = (cancel) => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError$1(null, config, request) : cancel); - request.abort(); - done(); - request = null; - }; - - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted - ? onCanceled() - : _config.signal.addEventListener('abort', onCanceled); - } - } - - const protocol = parseProtocol(_config.url); - - if (protocol && !platform.protocols.includes(protocol)) { - reject( - new AxiosError$1( - 'Unsupported protocol ' + protocol + ':', - AxiosError$1.ERR_BAD_REQUEST, - config - ) - ); - return; - } - - // Send the request - request.send(requestData || null); - }); - }; - -const composeSignals = (signals, timeout) => { - signals = signals ? signals.filter(Boolean) : []; - - if (!timeout && !signals.length) { - return; - } - - const controller = new AbortController(); - - let aborted = false; - - const onabort = function (reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort( - err instanceof AxiosError$1 - ? err - : new CanceledError$1(err instanceof Error ? err.message : err) - ); - } - }; - - let timer = - timeout && - setTimeout(() => { - timer = null; - onabort(new AxiosError$1(`timeout of ${timeout}ms exceeded`, AxiosError$1.ETIMEDOUT)); - }, timeout); - - const unsubscribe = () => { - if (!signals) { return; } - timer && clearTimeout(timer); - timer = null; - signals.forEach((signal) => { - signal.unsubscribe - ? signal.unsubscribe(onabort) - : signal.removeEventListener('abort', onabort); - }); - signals = null; - }; - - signals.forEach((signal) => signal.addEventListener('abort', onabort)); - - const { signal } = controller; - - signal.unsubscribe = () => utils$1.asap(unsubscribe); - - return signal; -}; - -const streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - - if (len < chunkSize) { - yield chunk; - return; - } - - let pos = 0; - let end; - - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -}; - -const readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -}; - -const readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - - const reader = stream.getReader(); - try { - for (;;) { - const { done, value } = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -}; - -const trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - - let bytes = 0; - let done; - let _onFinish = (e) => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - - return new ReadableStream( - { - async pull(controller) { - try { - const { done, value } = await iterator.next(); - - if (done) { - _onFinish(); - controller.close(); - return; - } - - let len = value.byteLength; - if (onProgress) { - let loadedBytes = (bytes += len); - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - }, - }, - { - highWaterMark: 2, - } - ); -}; - -/** - * Estimate decoded byte length of a data:// URL *without* allocating large buffers. - * - For base64: compute exact decoded size using length and padding; - * handle %XX at the character-count level (no string allocation). - * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. - * - * @param {string} url - * @returns {number} - */ -function estimateDataURLDecodedBytes(url) { - if (!url || typeof url !== 'string') return 0; - if (!url.startsWith('data:')) return 0; - - const comma = url.indexOf(','); - if (comma < 0) return 0; - - const meta = url.slice(5, comma); - const body = url.slice(comma + 1); - const isBase64 = /;base64/i.test(meta); - - if (isBase64) { - let effectiveLen = body.length; - const len = body.length; // cache length - - for (let i = 0; i < len; i++) { - if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { - const a = body.charCodeAt(i + 1); - const b = body.charCodeAt(i + 2); - const isHex = - ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) && - ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102)); - - if (isHex) { - effectiveLen -= 2; - i += 2; - } - } - } - - let pad = 0; - let idx = len - 1; - - const tailIsPct3D = (j) => - j >= 2 && - body.charCodeAt(j - 2) === 37 && // '%' - body.charCodeAt(j - 1) === 51 && // '3' - (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' - - if (idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - idx--; - } else if (tailIsPct3D(idx)) { - pad++; - idx -= 3; - } - } - - if (pad === 1 && idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - } else if (tailIsPct3D(idx)) { - pad++; - } - } - - const groups = Math.floor(effectiveLen / 4); - const bytes = groups * 3 - (pad || 0); - return bytes > 0 ? bytes : 0; - } - - if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { - return Buffer.byteLength(body, 'utf8'); - } - - // Compute UTF-8 byte length directly from UTF-16 code units without allocating - // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). - // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit - // but 3 UTF-8 bytes). - let bytes = 0; - for (let i = 0, len = body.length; i < len; i++) { - const c = body.charCodeAt(i); - if (c < 0x80) { - bytes += 1; - } else if (c < 0x800) { - bytes += 2; - } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { - const next = body.charCodeAt(i + 1); - if (next >= 0xdc00 && next <= 0xdfff) { - bytes += 4; - i++; - } else { - bytes += 3; - } - } else { - bytes += 3; - } - } - return bytes; -} - -const VERSION$1 = "1.16.1"; - -const DEFAULT_CHUNK_SIZE = 64 * 1024; - -const { isFunction } = utils$1; - -const test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false; - } -}; - -const factory = (env) => { - const globalObject = - utils$1.global !== undefined && utils$1.global !== null - ? utils$1.global - : globalThis; - const { ReadableStream, TextEncoder } = globalObject; - - env = utils$1.merge.call( - { - skipUndefined: true, - }, - { - Request: globalObject.Request, - Response: globalObject.Response, - }, - env - ); - - const { fetch: envFetch, Request, Response } = env; - const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; - const isRequestSupported = isFunction(Request); - const isResponseSupported = isFunction(Response); - - if (!isFetchSupported) { - return false; - } - - const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); - - const encodeText = - isFetchSupported && - (typeof TextEncoder === 'function' - ? ( - (encoder) => (str) => - encoder.encode(str) - )(new TextEncoder()) - : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); - - const supportsRequestStream = - isRequestSupported && - isReadableStreamSupported && - test(() => { - let duplexAccessed = false; - - const request = new Request(platform.origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - }, - }); - - const hasContentType = request.headers.has('Content-Type'); - - if (request.body != null) { - request.body.cancel(); - } - - return duplexAccessed && !hasContentType; - }); - - const supportsResponseStream = - isResponseSupported && - isReadableStreamSupported && - test(() => utils$1.isReadableStream(new Response('').body)); - - const resolvers = { - stream: supportsResponseStream && ((res) => res.body), - }; - - isFetchSupported && - (() => { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { - !resolvers[type] && - (resolvers[type] = (res, config) => { - let method = res && res[type]; - - if (method) { - return method.call(res); - } - - throw new AxiosError$1( - `Response type '${type}' is not supported`, - AxiosError$1.ERR_NOT_SUPPORT, - config - ); - }); - }); - })(); - - const getBodyLength = async (body) => { - if (body == null) { - return 0; - } - - if (utils$1.isBlob(body)) { - return body.size; - } - - if (utils$1.isSpecCompliantForm(body)) { - const _request = new Request(platform.origin, { - method: 'POST', - body, - }); - return (await _request.arrayBuffer()).byteLength; - } - - if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { - return body.byteLength; - } - - if (utils$1.isURLSearchParams(body)) { - body = body + ''; - } - - if (utils$1.isString(body)) { - return (await encodeText(body)).byteLength; - } - }; - - const resolveBodyLength = async (headers, body) => { - const length = utils$1.toFiniteNumber(headers.getContentLength()); - - return length == null ? getBodyLength(body) : length; - }; - - return async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = 'same-origin', - fetchOptions, - maxContentLength, - maxBodyLength, - } = resolveConfig(config); - - const hasMaxContentLength = utils$1.isNumber(maxContentLength) && maxContentLength > -1; - const hasMaxBodyLength = utils$1.isNumber(maxBodyLength) && maxBodyLength > -1; - - let _fetch = envFetch || fetch; - - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - - let composedSignal = composeSignals( - [signal, cancelToken && cancelToken.toAbortSignal()], - timeout - ); - - let request = null; - - const unsubscribe = - composedSignal && - composedSignal.unsubscribe && - (() => { - composedSignal.unsubscribe(); - }); - - let requestContentLength; - - try { - // Enforce maxContentLength for data: URLs up-front so we never materialize - // an oversized payload. The HTTP adapter applies the same check (see http.js - // "if (protocol === 'data:')" branch). - if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { - const estimated = estimateDataURLDecodedBytes(url); - if (estimated > maxContentLength) { - throw new AxiosError$1( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError$1.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - // Enforce maxBodyLength against the outbound request body before dispatch. - // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than - // maxBodyLength limit'). Skip when the body length cannot be determined - // (e.g. a live ReadableStream supplied by the caller). - if (hasMaxBodyLength && method !== 'get' && method !== 'head') { - const outboundLength = await resolveBodyLength(headers, data); - if ( - typeof outboundLength === 'number' && - isFinite(outboundLength) && - outboundLength > maxBodyLength - ) { - throw new AxiosError$1( - 'Request body larger than maxBodyLength limit', - AxiosError$1.ERR_BAD_REQUEST, - config, - request - ); - } - } - - if ( - onUploadProgress && - supportsRequestStream && - method !== 'get' && - method !== 'head' && - (requestContentLength = await resolveBodyLength(headers, data)) !== 0 - ) { - let _request = new Request(url, { - method: 'POST', - body: data, - duplex: 'half', - }); - - let contentTypeHeader; - - if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader); - } - - if (_request.body) { - const [onProgress, flush] = progressEventDecorator( - requestContentLength, - progressEventReducer(asyncDecorator(onUploadProgress)) - ); - - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - - if (!utils$1.isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; - - // If data is FormData and Content-Type is multipart/form-data without boundary, - // delete it so fetch can set it correctly with the boundary - if (utils$1.isFormData(data)) { - const contentType = headers.getContentType(); - if ( - contentType && - /^multipart\/form-data/i.test(contentType) && - !/boundary=/i.test(contentType) - ) { - headers.delete('content-type'); - } - } - - // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) - headers.set('User-Agent', 'axios/' + VERSION$1, false); - - const resolvedOptions = { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: toByteStringHeaderObject(headers.normalize()), - body: data, - duplex: 'half', - credentials: isCredentialsSupported ? withCredentials : undefined, - }; - - request = isRequestSupported && new Request(url, resolvedOptions); - - let response = await (isRequestSupported - ? _fetch(request, fetchOptions) - : _fetch(url, resolvedOptions)); - - // Cheap pre-check: if the server honestly declares a content-length that - // already exceeds the cap, reject before we start streaming. - if (hasMaxContentLength) { - const declaredLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - if (declaredLength != null && declaredLength > maxContentLength) { - throw new AxiosError$1( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError$1.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - const isStreamResponse = - supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - - if ( - supportsResponseStream && - response.body && - (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe)) - ) { - const options = {}; - - ['status', 'statusText', 'headers'].forEach((prop) => { - options[prop] = response[prop]; - }); - - const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - - const [onProgress, flush] = - (onDownloadProgress && - progressEventDecorator( - responseContentLength, - progressEventReducer(asyncDecorator(onDownloadProgress), true) - )) || - []; - - let bytesRead = 0; - const onChunkProgress = (loadedBytes) => { - if (hasMaxContentLength) { - bytesRead = loadedBytes; - if (bytesRead > maxContentLength) { - throw new AxiosError$1( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError$1.ERR_BAD_RESPONSE, - config, - request - ); - } - } - onProgress && onProgress(loadedBytes); - }; - - response = new Response( - trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), - options - ); - } - - responseType = responseType || 'text'; - - let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text']( - response, - config - ); - - // Fallback enforcement for environments without ReadableStream support - // (legacy runtimes). Detect materialized size from typed output; skip - // streams/Response passthrough since the user will read those themselves. - if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { - let materializedSize; - if (responseData != null) { - if (typeof responseData.byteLength === 'number') { - materializedSize = responseData.byteLength; - } else if (typeof responseData.size === 'number') { - materializedSize = responseData.size; - } else if (typeof responseData === 'string') { - materializedSize = - typeof TextEncoder === 'function' - ? new TextEncoder().encode(responseData).byteLength - : responseData.length; - } - } - if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { - throw new AxiosError$1( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError$1.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - !isStreamResponse && unsubscribe && unsubscribe(); - - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders$1.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request, - }); - }); - } catch (err) { - unsubscribe && unsubscribe(); - - // Safari can surface fetch aborts as a DOMException-like object whose - // branded getters throw. Prefer our composed signal reason before reading - // the caught error, preserving timeout vs cancellation semantics. - if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError$1) { - const canceledError = composedSignal.reason; - canceledError.config = config; - request && (canceledError.request = request); - err !== canceledError && (canceledError.cause = err); - throw canceledError; - } - - if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { - throw Object.assign( - new AxiosError$1( - 'Network Error', - AxiosError$1.ERR_NETWORK, - config, - request, - err && err.response - ), - { - cause: err.cause || err, - } - ); - } - - throw AxiosError$1.from(err, err && err.code, config, request, err && err.response); - } - }; -}; - -const seedCache = new Map(); - -const getFetch = (config) => { - let env = (config && config.env) || {}; - const { fetch, Request, Response } = env; - const seeds = [Request, Response, fetch]; - - let len = seeds.length, - i = len, - seed, - target, - map = seedCache; - - while (i--) { - seed = seeds[i]; - target = map.get(seed); - - target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); - - map = target; - } - - return target; -}; - -getFetch(); - -/** - * Known adapters mapping. - * Provides environment-specific adapters for Axios: - * - `http` for Node.js - * - `xhr` for browsers - * - `fetch` for fetch API-based requests - * - * @type {Object} - */ -const knownAdapters = { - http: httpAdapter, - xhr: xhrAdapter, - fetch: { - get: getFetch, - }, -}; - -// Assign adapter names for easier debugging and identification -utils$1.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - // Null-proto descriptors so a polluted Object.prototype.get cannot turn - // these data descriptors into accessor descriptors on the way in. - Object.defineProperty(fn, 'name', { __proto__: null, value }); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', { __proto__: null, value }); - } -}); - -/** - * Render a rejection reason string for unknown or unsupported adapters - * - * @param {string} reason - * @returns {string} - */ -const renderReason = (reason) => `- ${reason}`; - -/** - * Check if the adapter is resolved (function, null, or false) - * - * @param {Function|null|false} adapter - * @returns {boolean} - */ -const isResolvedHandle = (adapter) => - utils$1.isFunction(adapter) || adapter === null || adapter === false; - -/** - * Get the first suitable adapter from the provided list. - * Tries each adapter in order until a supported one is found. - * Throws an AxiosError if no adapter is suitable. - * - * @param {Array|string|Function} adapters - Adapter(s) by name or function. - * @param {Object} config - Axios request configuration - * @throws {AxiosError} If no suitable adapter is available - * @returns {Function} The resolved adapter function - */ -function getAdapter$1(adapters, config) { - adapters = utils$1.isArray(adapters) ? adapters : [adapters]; - - const { length } = adapters; - let nameOrAdapter; - let adapter; - - const rejectedReasons = {}; - - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - - adapter = nameOrAdapter; - - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - - if (adapter === undefined) { - throw new AxiosError$1(`Unknown adapter '${id}'`); - } - } - - if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { - break; - } - - rejectedReasons[id || '#' + i] = adapter; - } - - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map( - ([id, state]) => - `adapter ${id} ` + - (state === false ? 'is not supported by the environment' : 'is not available in the build') - ); - - let s = length - ? reasons.length > 1 - ? 'since :\n' + reasons.map(renderReason).join('\n') - : ' ' + renderReason(reasons[0]) - : 'as no adapter specified'; - - throw new AxiosError$1( - `There is no suitable adapter to dispatch the request ` + s, - 'ERR_NOT_SUPPORT' - ); - } - - return adapter; -} - -/** - * Exports Axios adapters and utility to resolve an adapter - */ -var adapters = { - /** - * Resolve an adapter from a list of adapter names or functions. - * @type {Function} - */ - getAdapter: getAdapter$1, - - /** - * Exposes all known adapters - * @type {Object} - */ - adapters: knownAdapters, -}; - -/** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - - if (config.signal && config.signal.aborted) { - throw new CanceledError$1(null, config); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ -function dispatchRequest(config) { - throwIfCancellationRequested(config); - - config.headers = AxiosHeaders$1.from(config.headers); - - // Transform request data - config.data = transformData.call(config, config.transformRequest); - - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - - const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); - - return adapter(config).then( - function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Expose the current response on config so that transformResponse can - // attach it to any AxiosError it throws (e.g. on JSON parse failure). - // We clean it up afterwards to avoid polluting the config object. - config.response = response; - try { - response.data = transformData.call(config, config.transformResponse, response); - } finally { - delete config.response; - } - - response.headers = AxiosHeaders$1.from(response.headers); - - return response; - }, - function onAdapterRejection(reason) { - if (!isCancel$1(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - config.response = reason.response; - try { - reason.response.data = transformData.call( - config, - config.transformResponse, - reason.response - ); - } finally { - delete config.response; - } - reason.response.headers = AxiosHeaders$1.from(reason.response.headers); - } - } - - return Promise.reject(reason); - } - ); -} - -const validators$1 = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { - validators$1[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -const deprecatedWarnings = {}; - -/** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ -validators$1.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return ( - '[Axios v' + - VERSION$1 + - "] Transitional option '" + - opt + - "'" + - desc + - (message ? '. ' + message : '') - ); - } - - // eslint-disable-next-line func-names - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError$1( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), - AxiosError$1.ERR_DEPRECATED - ); - } - - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -validators$1.spelling = function spelling(correctSpelling) { - return (value, opt) => { - // eslint-disable-next-line no-console - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - }; -}; - -/** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new AxiosError$1('options must be an object', AxiosError$1.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - // Use hasOwnProperty so a polluted Object.prototype. cannot supply - // a non-function validator and cause a TypeError. - const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; - if (validator) { - const value = options[opt]; - const result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError$1( - 'option ' + opt + ' must be ' + result, - AxiosError$1.ERR_BAD_OPTION_VALUE - ); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError$1('Unknown option ' + opt, AxiosError$1.ERR_BAD_OPTION); - } - } -} - -var validator = { - assertOptions, - validators: validators$1, -}; - -const validators = validator.validators; - -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ -let Axios$1 = class Axios { - constructor(instanceConfig) { - this.defaults = instanceConfig || {}; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager(), - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - - Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); - - // slice off the Error: ... line - const stack = (() => { - if (!dummy.stack) { - return ''; - } - - const firstNewlineIndex = dummy.stack.indexOf('\n'); - - return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); - })(); - try { - if (!err.stack) { - err.stack = stack; - // match without the 2 top stack lines - } else if (stack) { - const firstNewlineIndex = stack.indexOf('\n'); - const secondNewlineIndex = - firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); - const stackWithoutTwoTopLines = - secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); - - if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { - err.stack += '\n' + stack; - } - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - - throw err; - } - } - - _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - - config = mergeConfig$1(this.defaults, config); - - const { transitional, paramsSerializer, headers } = config; - - if (transitional !== undefined) { - validator.assertOptions( - transitional, - { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean), - legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), - }, - false - ); - } - - if (paramsSerializer != null) { - if (utils$1.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer, - }; - } else { - validator.assertOptions( - paramsSerializer, - { - encode: validators.function, - serialize: validators.function, - }, - true - ); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - - validator.assertOptions( - config, - { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken'), - }, - true - ); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); - - headers && - utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => { - delete headers[method]; - }); - - config.headers = AxiosHeaders$1.concat(contextHeaders, headers); - - // filter out skipped interceptors - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - const transitional = config.transitional || transitionalDefaults; - const legacyInterceptorReqResOrdering = - transitional && transitional.legacyInterceptorReqResOrdering; - - if (legacyInterceptorReqResOrdering) { - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - } else { - requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - } - }); - - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - let promise; - let i = 0; - let len; - - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), undefined]; - chain.unshift(...requestInterceptorChain); - chain.push(...responseInterceptorChain); - len = chain.length; - - promise = Promise.resolve(config); - - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - - return promise; - } - - len = requestInterceptorChain.length; - - let newConfig = config; - - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - - i = 0; - len = responseInterceptorChain.length; - - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - - return promise; - } - - getUri(config) { - config = mergeConfig$1(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - return buildURL(fullPath, config.params, config.paramsSerializer); - } -}; - -// Provide aliases for supported request methods -utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios$1.prototype[method] = function (url, config) { - return this.request( - mergeConfig$1(config || {}, { - method, - url, - data: (config || {}).data, - }) - ); - }; -}); - -utils$1.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request( - mergeConfig$1(config || {}, { - method, - headers: isForm - ? { - 'Content-Type': 'multipart/form-data', - } - : {}, - url, - data, - }) - ); - }; - } - - Axios$1.prototype[method] = generateHTTPMethod(); - - // QUERY is a safe/idempotent read method; multipart form bodies don't fit - // its semantics, so no queryForm shorthand is generated. - if (method !== 'query') { - Axios$1.prototype[method + 'Form'] = generateHTTPMethod(true); - } -}); - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ -let CancelToken$1 = class CancelToken { - constructor(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - let resolvePromise; - - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - const token = this; - - // eslint-disable-next-line func-names - this.promise.then((cancel) => { - if (!token._listeners) return; - - let i = token._listeners.length; - - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = (onfulfilled) => { - let _resolve; - // eslint-disable-next-line func-names - const promise = new Promise((resolve) => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - - return promise; - }; - - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new CanceledError$1(message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - - toAbortSignal() { - const controller = new AbortController(); - - const abort = (err) => { - controller.abort(err); - }; - - this.subscribe(abort); - - controller.signal.unsubscribe = () => this.unsubscribe(abort); - - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel, - }; - } -}; - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * const args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ -function spread$1(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -function isAxiosError$1(payload) { - return utils$1.isObject(payload) && payload.isAxiosError === true; -} - -const HttpStatusCode$1 = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, - WebServerIsDown: 521, - ConnectionTimedOut: 522, - OriginIsUnreachable: 523, - TimeoutOccurred: 524, - SslHandshakeFailed: 525, - InvalidSslCertificate: 526, -}; - -Object.entries(HttpStatusCode$1).forEach(([key, value]) => { - HttpStatusCode$1[value] = key; -}); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - const context = new Axios$1(defaultConfig); - const instance = bind(Axios$1.prototype.request, context); - - // Copy axios.prototype to instance - utils$1.extend(instance, Axios$1.prototype, context, { allOwnKeys: true }); - - // Copy context to instance - utils$1.extend(instance, context, null, { allOwnKeys: true }); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig$1(defaultConfig, instanceConfig)); - }; - - return instance; -} - -// Create the default instance to be exported -const axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios$1; - -// Expose Cancel & CancelToken -axios.CanceledError = CanceledError$1; -axios.CancelToken = CancelToken$1; -axios.isCancel = isCancel$1; -axios.VERSION = VERSION$1; -axios.toFormData = toFormData$1; - -// Expose AxiosError class -axios.AxiosError = AxiosError$1; - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; - -axios.spread = spread$1; - -// Expose isAxiosError -axios.isAxiosError = isAxiosError$1; - -// Expose mergeConfig -axios.mergeConfig = mergeConfig$1; - -axios.AxiosHeaders = AxiosHeaders$1; - -axios.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); - -axios.getAdapter = adapters.getAdapter; - -axios.HttpStatusCode = HttpStatusCode$1; - -axios.default = axios; - -// This module is intended to unwrap Axios default export as named. -// Keep top-level export same with static properties -// so that it can keep same with es module or cjs -const { - Axios, - AxiosError, - CanceledError, - isCancel, - CancelToken, - VERSION, - all, - Cancel, - isAxiosError, - spread, - toFormData, - AxiosHeaders, - HttpStatusCode, - formToJSON, - getAdapter, - mergeConfig, - create, -} = axios; - -export { Axios, AxiosError, AxiosHeaders, Cancel, CancelToken, CanceledError, HttpStatusCode, VERSION, all, create, axios as default, formToJSON, getAdapter, isAxiosError, isCancel, mergeConfig, spread, toFormData }; -//# sourceMappingURL=axios.js.map diff --git a/node_modules/axios/dist/esm/axios.js.map b/node_modules/axios/dist/esm/axios.js.map deleted file mode 100644 index 92b9989..0000000 --- a/node_modules/axios/dist/esm/axios.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/helpers/parseHeaders.js","../../lib/helpers/sanitizeHeaderValue.js","../../lib/core/AxiosHeaders.js","../../lib/core/AxiosError.js","../../lib/helpers/null.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/browser/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/helpers/estimateDataURLDecodedBytes.js","../../lib/env/data.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.16.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n"],"names":["isFunction","utils","AxiosHeaders","AxiosError","toFormData","encode","URLSearchParams","FormData","Blob","platform","isCancel","mergeConfig","CanceledError","VERSION","fetchAdapter.getFetch","getAdapter","validators","Axios","spread","isAxiosError","HttpStatusCode","CancelToken"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/dist/esm/axios.min.js b/node_modules/axios/dist/esm/axios.min.js deleted file mode 100644 index a1ed110..0000000 --- a/node_modules/axios/dist/esm/axios.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -function e(e,t){return function(){return e.apply(t,arguments)}}const{toString:t}=Object.prototype,{getPrototypeOf:n}=Object,{iterator:r,toStringTag:o}=Symbol,s=(i=Object.create(null),e=>{const n=t.call(e);return i[n]||(i[n]=n.slice(8,-1).toLowerCase())});var i;const a=e=>(e=e.toLowerCase(),t=>s(t)===e),c=e=>t=>typeof t===e,{isArray:l}=Array,u=c("undefined");function f(e){return null!==e&&!u(e)&&null!==e.constructor&&!u(e.constructor)&&h(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const d=a("ArrayBuffer");const p=c("string"),h=c("function"),m=c("number"),b=e=>null!==e&&"object"==typeof e,y=e=>{if("object"!==s(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||o in e||r in e)},g=a("Date"),w=a("File"),E=a("Blob"),R=a("FileList");const O="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},S=void 0!==O.FormData?O.FormData:void 0,A=a("URLSearchParams"),[_,T,v,C]=["ReadableStream","Request","Response","Headers"].map(a);function x(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),l(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,j=e=>!u(e)&&e!==P;const D=(U="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>U&&e instanceof U);var U;const L=a("HTMLFormElement"),F=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),B=a("RegExp"),k=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};x(n,(n,o)=>{let s;!1!==(s=t(n,o,e))&&(r[o]=s||n)}),Object.defineProperties(e,r)};const q=a("AsyncFunction"),I=(M="function"==typeof setImmediate,z=h(P.postMessage),M?setImmediate:z?(H=`axios@${Math.random()}`,W=[],P.addEventListener("message",({source:e,data:t})=>{e===P&&t===H&&W.length&&W.shift()()},!1),e=>{W.push(e),P.postMessage(H,"*")}):e=>setTimeout(e));var M,z,H,W;const J="undefined"!=typeof queueMicrotask?queueMicrotask.bind(P):"undefined"!=typeof process&&process.nextTick||I;var V={isArray:l,isArrayBuffer:d,isBuffer:f,isFormData:e=>{if(!e)return!1;if(S&&e instanceof S)return!0;const t=n(e);if(!t||t===Object.prototype)return!1;if(!h(e.append))return!1;const r=s(e);return"formdata"===r||"object"===r&&h(e.toString)&&"[object FormData]"===e.toString()},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&d(e.buffer),t},isString:p,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:b,isPlainObject:y,isEmptyObject:e=>{if(!b(e)||f(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:_,isRequest:T,isResponse:v,isHeaders:C,isUndefined:u,isDate:g,isFile:w,isReactNativeBlob:e=>!(!e||void 0===e.uri),isReactNative:e=>e&&void 0!==e.getParts,isBlob:E,isRegExp:B,isFunction:h,isStream:e=>b(e)&&h(e.pipe),isURLSearchParams:A,isTypedArray:D,isFileList:R,forEach:x,merge:function e(...t){const{caseless:n,skipUndefined:r}=j(this)&&this||{},o={},s=(t,s)=>{if("__proto__"===s||"constructor"===s||"prototype"===s)return;const i=n&&N(o,s)||s,a=F(o,i)?o[i]:void 0;y(a)&&y(t)?o[i]=e(a,t):y(t)?o[i]=e({},t):l(t)?o[i]=t.slice():r&&u(t)||(o[i]=t)};for(let e=0,n=t.length;e(x(n,(n,o)=>{r&&h(n)?Object.defineProperty(t,o,{__proto__:null,value:e(n,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,o,{__proto__:null,value:n,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:o}),t),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,r,o)=>{let s,i,a;const c={};if(t=t||{},null==e)return t;do{for(s=Object.getOwnPropertyNames(e),i=s.length;i-- >0;)a=s[i],o&&!o(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&n(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:s,kindOfTest:a,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(l(e))return e;let t=e.length;if(!m(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[r]).call(e);let o;for(;(o=n.next())&&!o.done;){const n=o.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:L,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:k,freezeMethods:e=>{k(e,(t,n)=>{if(h(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];h(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach(e=>{n[e]=!0})};return l(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:N,global:P,isContextDefined:j,isSpecCompliantForm:function(e){return!!(e&&h(e.append)&&"FormData"===e[o]&&e[r])},toJSONObject:e=>{const t=new WeakSet,n=e=>{if(b(e)){if(t.has(e))return;if(f(e))return e;if(!("toJSON"in e)){t.add(e);const r=l(e)?[]:{};return x(e,(e,t)=>{const o=n(e);!u(o)&&(r[t]=o)}),t.delete(e),r}}return e};return n(e)},isAsyncFn:q,isThenable:e=>e&&(b(e)||h(e))&&h(e.then)&&h(e.catch),setImmediate:I,asap:J,isIterable:e=>null!=e&&h(e[r])};const $=V.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const K=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),X=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function G(e,t){return V.isArray(e)?e.map(e=>G(e,t)):function(e){let t=0,n=e.length;for(;tt;){const t=e.charCodeAt(n-1);if(9!==t&&32!==t)break;n-=1}return 0===t&&n===e.length?e:e.slice(t,n)}(String(e).replace(t,""))}function Q(e){const t=Object.create(null);return V.forEach(e.toJSON(),(e,n)=>{t[n]=(e=>G(e,X))(e)}),t}const Y=Symbol("internals");function Z(e){return e&&String(e).trim().toLowerCase()}function ee(e){return!1===e||null==e?e:V.isArray(e)?e.map(ee):(e=>G(e,K))(String(e))}function te(e,t,n,r,o){return V.isFunction(r)?r.call(this,t,n):(o&&(t=n),V.isString(t)?V.isString(r)?-1!==t.indexOf(r):V.isRegExp(r)?r.test(t):void 0:void 0)}let ne=class{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Z(t);if(!o)throw new Error("header name must be a non-empty string");const s=V.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=ee(e))}const s=(e,t)=>V.forEach(e,(e,n)=>o(e,n,t));if(V.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(V.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach(function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&$[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t})(e),t);else if(V.isObject(e)&&V.isIterable(e)){let n,r,o={};for(const t of e){if(!V.isArray(t))throw TypeError("Object iterator must return a key-value pair");o[r=t[0]]=(n=o[r])?V.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}s(o,t)}else null!=e&&o(t,e,n);return this}get(e,t){if(e=Z(e)){const n=V.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(V.isFunction(t))return t.call(this,e,n);if(V.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Z(e)){const n=V.findKey(this,e);return!(!n||void 0===this[n]||t&&!te(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Z(e)){const o=V.findKey(n,e);!o||t&&!te(0,n[o],o,t)||(delete n[o],r=!0)}}return V.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!te(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return V.forEach(this,(r,o)=>{const s=V.findKey(n,o);if(s)return t[s]=ee(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(o):String(o).trim();i!==o&&delete t[o],t[i]=ee(r),n[i]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return V.forEach(this,(n,r)=>{null!=n&&!1!==n&&(t[r]=e&&V.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[Y]=this[Y]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Z(e);t[r]||(!function(e,t){const n=V.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})})}(n,e),t[r]=!0)}return V.isArray(e)?e.forEach(r):r(e),this}};ne.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),V.reduceDescriptors(ne.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),V.freezeMethods(ne);function re(e,t){const n=new Set(t.map(e=>String(e).toLowerCase())),r=[],o=e=>{if(null===e||"object"!=typeof e)return e;if(V.isBuffer(e))return e;if(-1!==r.indexOf(e))return;let t;if(e instanceof ne&&(e=e.toJSON()),r.push(e),V.isArray(e))t=[],e.forEach((e,n)=>{const r=o(e);V.isUndefined(r)||(t[n]=r)});else{if(!V.isPlainObject(e)&&function(e){if(V.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(V.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}(e))return r.pop(),e;t=Object.create(null);for(const[r,s]of Object.entries(e)){const e=n.has(r.toLowerCase())?"[REDACTED ****]":o(s);V.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return o(e)}let oe=class e extends Error{static from(t,n,r,o,s,i){const a=new e(t.message,n||t.code,r,o,s);return a.cause=t,a.name=t.name,null!=t.status&&null==a.status&&(a.status=t.status),i&&Object.assign(a,i),a}constructor(e,t,n,r,o){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status)}toJSON(){const e=this.config,t=e&&V.hasOwnProp(e,"redact")?e.redact:void 0,n=V.isArray(t)&&t.length>0?re(e,t):V.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};oe.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",oe.ERR_BAD_OPTION="ERR_BAD_OPTION",oe.ECONNABORTED="ECONNABORTED",oe.ETIMEDOUT="ETIMEDOUT",oe.ECONNREFUSED="ECONNREFUSED",oe.ERR_NETWORK="ERR_NETWORK",oe.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",oe.ERR_DEPRECATED="ERR_DEPRECATED",oe.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",oe.ERR_BAD_REQUEST="ERR_BAD_REQUEST",oe.ERR_CANCELED="ERR_CANCELED",oe.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",oe.ERR_INVALID_URL="ERR_INVALID_URL",oe.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";function se(e){return V.isPlainObject(e)||V.isArray(e)}function ie(e){return V.endsWith(e,"[]")?e.slice(0,-2):e}function ae(e,t,n){return e?e.concat(t).map(function(e,t){return e=ie(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const ce=V.toFlatObject(V,{},null,function(e){return/^is[A-Z]/.test(e)});function le(e,t,n){if(!V.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=V.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!V.isUndefined(t[e])})).metaTokens,o=n.visitor||f,s=n.dots,i=n.indexes,a=n.Blob||"undefined"!=typeof Blob&&Blob,c=void 0===n.maxDepth?100:n.maxDepth,l=a&&V.isSpecCompliantForm(t);if(!V.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(V.isDate(e))return e.toISOString();if(V.isBoolean(e))return e.toString();if(!l&&V.isBlob(e))throw new oe("Blob is not supported. Use a Buffer instead.");return V.isArrayBuffer(e)||V.isTypedArray(e)?l&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function f(e,n,o){let a=e;if(V.isReactNative(t)&&V.isReactNativeBlob(e))return t.append(ae(o,n,s),u(e)),!1;if(e&&!o&&"object"==typeof e)if(V.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(V.isArray(e)&&function(e){return V.isArray(e)&&!e.some(se)}(e)||(V.isFileList(e)||V.endsWith(n,"[]"))&&(a=V.toArray(e)))return n=ie(n),a.forEach(function(e,r){!V.isUndefined(e)&&null!==e&&t.append(!0===i?ae([n],r,s):null===i?n:n+"[]",u(e))}),!1;return!!se(e)||(t.append(ae(o,n,s),u(e)),!1)}const d=[],p=Object.assign(ce,{defaultVisitor:f,convertValue:u,isVisitable:se});if(!V.isObject(e))throw new TypeError("data must be an object");return function e(n,r,s=0){if(!V.isUndefined(n)){if(s>c)throw new oe("Object is too deeply nested ("+s+" levels). Max depth: "+c,oe.ERR_FORM_DATA_DEPTH_EXCEEDED);if(-1!==d.indexOf(n))throw Error("Circular reference detected in "+r.join("."));d.push(n),V.forEach(n,function(n,i){!0===(!(V.isUndefined(n)||null===n)&&o.call(t,n,V.isString(i)?i.trim():i,r,p))&&e(n,r?r.concat(i):[i],s+1)}),d.pop()}}(e),t}function ue(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function fe(e,t){this._pairs=[],e&&le(e,this,t)}const de=fe.prototype;function pe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function he(e,t,n){if(!t)return e;const r=n&&n.encode||pe,o=V.isFunction(n)?{serialize:n}:n,s=o&&o.serialize;let i;if(i=s?s(t,o):V.isURLSearchParams(t)?t.toString():new fe(t,o).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}de.append=function(e,t){this._pairs.push([e,t])},de.toString=function(e){const t=e?function(t){return e.call(this,t,ue)}:ue;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};class me{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){V.forEach(this.handlers,function(t){null!==t&&e(t)})}}var be={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},ye={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:fe,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const ge="undefined"!=typeof window&&"undefined"!=typeof document,we="object"==typeof navigator&&navigator||void 0,Ee=ge&&(!we||["ReactNative","NativeScript","NS"].indexOf(we.product)<0),Re="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Oe=ge&&window.location.href||"http://localhost";var Se={...Object.freeze({__proto__:null,hasBrowserEnv:ge,hasStandardBrowserEnv:Ee,hasStandardBrowserWebWorkerEnv:Re,navigator:we,origin:Oe}),...ye};function Ae(e){function t(e,n,r,o){let s=e[o++];if("__proto__"===s)return!0;const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&V.isArray(r)?r.length:s,a)return V.hasOwnProp(r,s)?r[s]=V.isArray(r[s])?r[s].concat(n):[r[s],n]:r[s]=n,!i;V.hasOwnProp(r,s)&&V.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&V.isArray(r[s])&&(r[s]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let s;for(r=0;r{t(function(e){return V.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),r,n,0)}),n}return null}const _e=(e,t)=>null!=e&&V.hasOwnProp(e,t)?e[t]:void 0;const Te={transitional:be,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=V.isObject(e);o&&V.isHTMLForm(e)&&(e=new FormData(e));if(V.isFormData(e))return r?JSON.stringify(Ae(e)):e;if(V.isArrayBuffer(e)||V.isBuffer(e)||V.isStream(e)||V.isFile(e)||V.isBlob(e)||V.isReadableStream(e))return e;if(V.isArrayBufferView(e))return e.buffer;if(V.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){const t=_e(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return le(e,new Se.classes.URLSearchParams,{visitor:function(e,t,n,r){return Se.isNode&&V.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...t})}(e,t).toString();if((s=V.isFileList(e))||n.indexOf("multipart/form-data")>-1){const n=_e(this,"env"),r=n&&n.FormData;return le(s?{"files[]":e}:e,r&&new r,t)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(V.isString(e))try{return(t||JSON.parse)(e),V.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=_e(this,"transitional")||Te.transitional,n=t&&t.forcedJSONParsing,r=_e(this,"responseType"),o="json"===r;if(V.isResponse(e)||V.isReadableStream(e))return e;if(e&&V.isString(e)&&(n&&!r||o)){const n=!(t&&t.silentJSONParsing)&&o;try{return JSON.parse(e,_e(this,"parseReviver"))}catch(e){if(n){if("SyntaxError"===e.name)throw oe.from(e,oe.ERR_BAD_RESPONSE,this,null,_e(this,"response"));throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Se.classes.FormData,Blob:Se.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};function ve(e,t){const n=this||Te,r=t||n,o=ne.from(r.headers);let s=r.data;return V.forEach(e,function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function Ce(e){return!(!e||!e.__CANCEL__)}V.forEach(["delete","get","head","post","put","patch","query"],e=>{Te.headers[e]={}});let xe=class extends oe{constructor(e,t,n){super(null==e?"canceled":e,oe.ERR_CANCELED,t,n),this.name="CanceledError",this.__CANCEL__=!0}};function Ne(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new oe("Request failed with status code "+n.status,n.status>=400&&n.status<500?oe.ERR_BAD_REQUEST:oe.ERR_BAD_RESPONSE,n.config,n.request,n)):e(n)}const Pe=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,s=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=r[i];o||(o=c),n[s]=a,r[s]=c;let u=i,f=0;for(;u!==s;)f+=n[u++],u%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o{o=s,n=null,r&&(clearTimeout(r),r=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-o;a>=s?i(e,t):(n=e,r||(r=setTimeout(()=>{r=null,i(n)},s-a)))},()=>n&&i(n)]}(n=>{if(!n||"number"!=typeof n.loaded)return;const s=n.loaded,i=n.lengthComputable?n.total:void 0,a=null!=i?Math.min(s,i):s,c=Math.max(0,a-r),l=o(c);r=Math.max(r,a);e({loaded:a,total:i,progress:i?a/i:void 0,bytes:c,rate:l||void 0,estimated:l&&i?(i-a)/l:void 0,event:n,lengthComputable:null!=i,[t?"download":"upload"]:!0})},n)},je=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},De=e=>(...t)=>V.asap(()=>e(...t));var Ue=Se.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Se.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Se.origin),Se.navigator&&/(msie|trident)/i.test(Se.navigator.userAgent)):()=>!0,Le=Se.hasStandardBrowserEnv?{write(e,t,n,r,o,s,i){if("undefined"==typeof document)return;const a=[`${e}=${encodeURIComponent(t)}`];V.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),V.isString(r)&&a.push(`path=${r}`),V.isString(o)&&a.push(`domain=${o}`),!0===s&&a.push("secure"),V.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if("undefined"==typeof document)return null;const t=document.cookie.split(";");for(let n=0;nnull,remove(){}};function Fe(e,t,n){let r=!("string"==typeof(o=t)&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(o));var o;return e&&(r||!1===n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Be=e=>e instanceof ne?{...e}:e;function ke(e,t){t=t||{};const n=Object.create(null);function r(e,t,n,r){return V.isPlainObject(e)&&V.isPlainObject(t)?V.merge.call({caseless:r},e,t):V.isPlainObject(t)?V.merge({},t):V.isArray(t)?t.slice():t}function o(e,t,n,o){return V.isUndefined(t)?V.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function s(e,t){if(!V.isUndefined(t))return r(void 0,t)}function i(e,t){return V.isUndefined(t)?V.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return V.hasOwnProp(t,s)?r(n,o):V.hasOwnProp(e,s)?r(void 0,n):void 0}Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,allowedSocketPaths:i,responseEncoding:i,validateStatus:a,headers:(e,t,n)=>o(Be(e),Be(t),0,!0)};return V.forEach(Object.keys({...e,...t}),function(r){if("__proto__"===r||"constructor"===r||"prototype"===r)return;const s=V.hasOwnProp(c,r)?c[r]:o,i=s(V.hasOwnProp(e,r)?e[r]:void 0,V.hasOwnProp(t,r)?t[r]:void 0,r);V.isUndefined(i)&&s!==a||(n[r]=i)}),n}const qe=["content-type","content-length"];var Ie=e=>{const t=ke({},e),n=e=>V.hasOwnProp(t,e)?t[e]:void 0,r=n("data");let o=n("withXSRFToken");const s=n("xsrfHeaderName"),i=n("xsrfCookieName");let a=n("headers");const c=n("auth"),l=n("baseURL"),u=n("allowAbsoluteUrls"),f=n("url");var d;if(t.headers=a=ne.from(a),t.url=he(Fe(l,f,u),e.params,e.paramsSerializer),c&&a.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?(d=c.password,encodeURIComponent(d).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)))):""))),V.isFormData(r)&&(Se.hasStandardBrowserEnv||Se.hasStandardBrowserWebWorkerEnv?a.setContentType(void 0):V.isFunction(r.getHeaders)&&function(e,t,n){"content-only"===n?Object.entries(t).forEach(([t,n])=>{qe.includes(t.toLowerCase())&&e.set(t,n)}):e.set(t)}(a,r.getHeaders(),n("formDataHeaderPolicy"))),Se.hasStandardBrowserEnv){V.isFunction(o)&&(o=o(t));if(!0===o||null==o&&Ue(t.url)){const e=s&&i&&Le.read(i);e&&a.set(s,e)}}return t};var Me="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const r=Ie(e);let o=r.data;const s=ne.from(r.headers).normalize();let i,a,c,l,u,{responseType:f,onUploadProgress:d,onDownloadProgress:p}=r;function h(){l&&l(),u&&u(),r.cancelToken&&r.cancelToken.unsubscribe(i),r.signal&&r.signal.removeEventListener("abort",i)}let m=new XMLHttpRequest;function b(){if(!m)return;const r=ne.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Ne(function(e){t(e),h()},function(e){n(e),h()},{data:f&&"text"!==f&&"json"!==f?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m}),m=null}m.open(r.method.toUpperCase(),r.url,!0),m.timeout=r.timeout,"onloadend"in m?m.onloadend=b:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&m.responseURL.startsWith("file:"))&&setTimeout(b)},m.onabort=function(){m&&(n(new oe("Request aborted",oe.ECONNABORTED,e,m)),h(),m=null)},m.onerror=function(t){const r=t&&t.message?t.message:"Network Error",o=new oe(r,oe.ERR_NETWORK,e,m);o.event=t||null,n(o),h(),m=null},m.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||be;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new oe(t,o.clarifyTimeoutError?oe.ETIMEDOUT:oe.ECONNABORTED,e,m)),h(),m=null},void 0===o&&s.setContentType(null),"setRequestHeader"in m&&V.forEach(Q(s),function(e,t){m.setRequestHeader(t,e)}),V.isUndefined(r.withCredentials)||(m.withCredentials=!!r.withCredentials),f&&"json"!==f&&(m.responseType=r.responseType),p&&([c,u]=Pe(p,!0),m.addEventListener("progress",c)),d&&m.upload&&([a,l]=Pe(d),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",l)),(r.cancelToken||r.signal)&&(i=t=>{m&&(n(!t||t.type?new xe(null,e,m):t),m.abort(),h(),m=null)},r.cancelToken&&r.cancelToken.subscribe(i),r.signal&&(r.signal.aborted?i():r.signal.addEventListener("abort",i)));const y=function(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}(r.url);!y||Se.protocols.includes(y)?m.send(o||null):n(new oe("Unsupported protocol "+y+":",oe.ERR_BAD_REQUEST,e))})};const ze=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let r=!1;const o=function(e){if(!r){r=!0,i();const t=e instanceof Error?e:this.reason;n.abort(t instanceof oe?t:new xe(t instanceof Error?t.message:t))}};let s=t&&setTimeout(()=>{s=null,o(new oe(`timeout of ${t}ms exceeded`,oe.ETIMEDOUT))},t);const i=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)}),e=null)};e.forEach(e=>e.addEventListener("abort",o));const{signal:a}=n;return a.unsubscribe=()=>V.asap(i),a},He=function*(e,t){let n=e.byteLength;if(n{const o=async function*(e,t){for await(const n of We(e))yield*He(n,t)}(e,t);let s,i=0,a=e=>{s||(s=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await o.next();if(t)return a(),void e.close();let s=r.byteLength;if(n){let e=i+=s;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw a(e),e}},cancel:e=>(a(e),o.return())},{highWaterMark:2})};const Ve="1.16.1",{isFunction:$e}=V,Ke=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},Xe=e=>{const t=void 0!==V.global&&null!==V.global?V.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=V.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:o,Request:s,Response:i}=e,a=o?$e(o):"function"==typeof fetch,c=$e(s),l=$e(i);if(!a)return!1;const u=a&&$e(n),f=a&&("function"==typeof r?(d=new r,e=>d.encode(e)):async e=>new Uint8Array(await new s(e).arrayBuffer()));var d;const p=c&&u&&Ke(()=>{let e=!1;const t=new s(Se.origin,{body:new n,method:"POST",get duplex(){return e=!0,"half"}}),r=t.headers.has("Content-Type");return null!=t.body&&t.body.cancel(),e&&!r}),h=l&&u&&Ke(()=>V.isReadableStream(new i("").body)),m={stream:h&&(e=>e.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new oe(`Response type '${e}' is not supported`,oe.ERR_NOT_SUPPORT,n)})});const b=async(e,t)=>{const n=V.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(V.isBlob(e))return e.size;if(V.isSpecCompliantForm(e)){const t=new s(Se.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return V.isArrayBufferView(e)||V.isArrayBuffer(e)?e.byteLength:(V.isURLSearchParams(e)&&(e+=""),V.isString(e)?(await f(e)).byteLength:void 0)})(t):n};return async e=>{let{url:t,method:n,data:a,signal:l,cancelToken:u,timeout:f,onDownloadProgress:d,onUploadProgress:y,responseType:g,headers:w,withCredentials:E="same-origin",fetchOptions:R,maxContentLength:O,maxBodyLength:S}=Ie(e);const A=V.isNumber(O)&&O>-1,_=V.isNumber(S)&&S>-1;let T=o||fetch;g=g?(g+"").toLowerCase():"text";let v=ze([l,u&&u.toAbortSignal()],f),C=null;const x=v&&v.unsubscribe&&(()=>{v.unsubscribe()});let N;try{if(A&&"string"==typeof t&&t.startsWith("data:")){const n=function(e){if(!e||"string"!=typeof e)return 0;if(!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let e=r.length;const t=r.length;for(let n=0;n=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102)&&(o>=48&&o<=57||o>=65&&o<=70||o>=97&&o<=102)&&(e-=2,n+=2)}let n=0,o=t-1;const s=e=>e>=2&&37===r.charCodeAt(e-2)&&51===r.charCodeAt(e-1)&&(68===r.charCodeAt(e)||100===r.charCodeAt(e));o>=0&&(61===r.charCodeAt(o)?(n++,o--):s(o)&&(n++,o-=3)),1===n&&o>=0&&(61===r.charCodeAt(o)||s(o))&&n++;const i=3*Math.floor(e/4)-(n||0);return i>0?i:0}if("undefined"!=typeof Buffer&&"function"==typeof Buffer.byteLength)return Buffer.byteLength(r,"utf8");let o=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(o+=4,e++):o+=3}else o+=3}return o}(t);if(n>O)throw new oe("maxContentLength size of "+O+" exceeded",oe.ERR_BAD_RESPONSE,e,C)}if(_&&"get"!==n&&"head"!==n){const t=await b(w,a);if("number"==typeof t&&isFinite(t)&&t>S)throw new oe("Request body larger than maxBodyLength limit",oe.ERR_BAD_REQUEST,e,C)}if(y&&p&&"get"!==n&&"head"!==n&&0!==(N=await b(w,a))){let e,n=new s(t,{method:"POST",body:a,duplex:"half"});if(V.isFormData(a)&&(e=n.headers.get("content-type"))&&w.setContentType(e),n.body){const[e,t]=je(N,Pe(De(y)));a=Je(n.body,65536,e,t)}}V.isString(E)||(E=E?"include":"omit");const o=c&&"credentials"in s.prototype;if(V.isFormData(a)){const e=w.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&w.delete("content-type")}w.set("User-Agent","axios/"+Ve,!1);const l={...R,signal:v,method:n.toUpperCase(),headers:Q(w.normalize()),body:a,duplex:"half",credentials:o?E:void 0};C=c&&new s(t,l);let u=await(c?T(C,R):T(t,l));if(A){const t=V.toFiniteNumber(u.headers.get("content-length"));if(null!=t&&t>O)throw new oe("maxContentLength size of "+O+" exceeded",oe.ERR_BAD_RESPONSE,e,C)}const f=h&&("stream"===g||"response"===g);if(h&&u.body&&(d||A||f&&x)){const t={};["status","statusText","headers"].forEach(e=>{t[e]=u[e]});const n=V.toFiniteNumber(u.headers.get("content-length")),[r,o]=d&&je(n,Pe(De(d),!0))||[];let s=0;const a=t=>{if(A&&(s=t,s>O))throw new oe("maxContentLength size of "+O+" exceeded",oe.ERR_BAD_RESPONSE,e,C);r&&r(t)};u=new i(Je(u.body,65536,a,()=>{o&&o(),x&&x()}),t)}g=g||"text";let P=await m[V.findKey(m,g)||"text"](u,e);if(A&&!h&&!f){let t;if(null!=P&&("number"==typeof P.byteLength?t=P.byteLength:"number"==typeof P.size?t=P.size:"string"==typeof P&&(t="function"==typeof r?(new r).encode(P).byteLength:P.length)),"number"==typeof t&&t>O)throw new oe("maxContentLength size of "+O+" exceeded",oe.ERR_BAD_RESPONSE,e,C)}return!f&&x&&x(),await new Promise((t,n)=>{Ne(t,n,{data:P,headers:ne.from(u.headers),status:u.status,statusText:u.statusText,config:e,request:C})})}catch(t){if(x&&x(),v&&v.aborted&&v.reason instanceof oe){const n=v.reason;throw n.config=e,C&&(n.request=C),t!==n&&(n.cause=t),n}if(t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new oe("Network Error",oe.ERR_NETWORK,e,C,t&&t.response),{cause:t.cause||t});throw oe.from(t,t&&t.code,e,C,t&&t.response)}}},Ge=new Map,Qe=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:o}=t,s=[r,o,n];let i,a,c=s.length,l=Ge;for(;c--;)i=s[c],a=l.get(i),void 0===a&&l.set(i,a=c?new Map:Xe(t)),l=a;return a};Qe();const Ye={http:null,xhr:Me,fetch:{get:Qe}};V.forEach(Ye,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch(e){}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const Ze=e=>`- ${e}`,et=e=>V.isFunction(e)||null===e||!1===e;var tt={getAdapter:function(e,t){e=V.isArray(e)?e:[e];const{length:n}=e;let r,o;const s={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));let t=n?e.length>1?"since :\n"+e.map(Ze).join("\n"):" "+Ze(e[0]):"as no adapter specified";throw new oe("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return o},adapters:Ye};function nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new xe(null,e)}function rt(e){nt(e),e.headers=ne.from(e.headers),e.data=ve.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return tt.getAdapter(e.adapter||Te.adapter,e)(e).then(function(t){nt(e),e.response=t;try{t.data=ve.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=ne.from(t.headers),t},function(t){if(!Ce(t)&&(nt(e),t&&t.response)){e.response=t.response;try{t.response.data=ve.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=ne.from(t.response.headers)}return Promise.reject(t)})}const ot={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ot[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const st={};ot.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Ve+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new oe(r(o," has been removed"+(t?" in "+t:"")),oe.ERR_DEPRECATED);return t&&!st[o]&&(st[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,s)}},ot.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var it={assertOptions:function(e,t,n){if("object"!=typeof e)throw new oe("options must be an object",oe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=Object.prototype.hasOwnProperty.call(t,s)?t[s]:void 0;if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new oe("option "+s+" must be "+n,oe.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new oe("Unknown option "+s,oe.ERR_BAD_OPTION)}},validators:ot};const at=it.validators;let ct=class{constructor(e){this.defaults=e||{},this.interceptors={request:new me,response:new me}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=(()=>{if(!t.stack)return"";const e=t.stack.indexOf("\n");return-1===e?"":t.stack.slice(e+1)})();try{if(e.stack){if(n){const t=n.indexOf("\n"),r=-1===t?-1:n.indexOf("\n",t+1),o=-1===r?"":n.slice(r+1);String(e.stack).endsWith(o)||(e.stack+="\n"+n)}}else e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=ke(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&it.assertOptions(n,{silentJSONParsing:at.transitional(at.boolean),forcedJSONParsing:at.transitional(at.boolean),clarifyTimeoutError:at.transitional(at.boolean),legacyInterceptorReqResOrdering:at.transitional(at.boolean)},!1),null!=r&&(V.isFunction(r)?t.paramsSerializer={serialize:r}:it.assertOptions(r,{encode:at.function,serialize:at.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),it.assertOptions(t,{baseUrl:at.spelling("baseURL"),withXsrfToken:at.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&V.merge(o.common,o[t.method]);o&&V.forEach(["delete","get","head","post","put","patch","query","common"],e=>{delete o[e]}),t.headers=ne.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach(function(e){if("function"==typeof e.runWhen&&!1===e.runWhen(t))return;a=a&&e.synchronous;const n=t.transitional||be;n&&n.legacyInterceptorReqResOrdering?i.unshift(e.fulfilled,e.rejected):i.push(e.fulfilled,e.rejected)});const c=[];let l;this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let u,f=0;if(!a){const e=[rt.bind(this),void 0];for(e.unshift(...i),e.push(...c),u=e.length,l=Promise.resolve(t);f{lt[t]=e});const ut=function t(n){const r=new ct(n),o=e(ct.prototype.request,r);return V.extend(o,ct.prototype,r,{allOwnKeys:!0}),V.extend(o,r,null,{allOwnKeys:!0}),o.create=function(e){return t(ke(n,e))},o}(Te);ut.Axios=ct,ut.CanceledError=xe,ut.CancelToken=class e{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,o){n.reason||(n.reason=new xe(e,r,o),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}},ut.isCancel=Ce,ut.VERSION=Ve,ut.toFormData=le,ut.AxiosError=oe,ut.Cancel=ut.CanceledError,ut.all=function(e){return Promise.all(e)},ut.spread=function(e){return function(t){return e.apply(null,t)}},ut.isAxiosError=function(e){return V.isObject(e)&&!0===e.isAxiosError},ut.mergeConfig=ke,ut.AxiosHeaders=ne,ut.formToJSON=e=>Ae(V.isHTMLForm(e)?new FormData(e):e),ut.getAdapter=tt.getAdapter,ut.HttpStatusCode=lt,ut.default=ut;const{Axios:ft,AxiosError:dt,CanceledError:pt,isCancel:ht,CancelToken:mt,VERSION:bt,all:yt,Cancel:gt,isAxiosError:wt,spread:Et,toFormData:Rt,AxiosHeaders:Ot,HttpStatusCode:St,formToJSON:At,getAdapter:_t,mergeConfig:Tt,create:vt}=ut;export{ft as Axios,dt as AxiosError,Ot as AxiosHeaders,gt as Cancel,mt as CancelToken,pt as CanceledError,St as HttpStatusCode,bt as VERSION,yt as all,vt as create,ut as default,At as formToJSON,_t as getAdapter,wt as isAxiosError,ht as isCancel,Tt as mergeConfig,Et as spread,Rt as toFormData}; -//# sourceMappingURL=axios.min.js.map diff --git a/node_modules/axios/dist/esm/axios.min.js.map b/node_modules/axios/dist/esm/axios.min.js.map deleted file mode 100644 index 0a3431c..0000000 --- a/node_modules/axios/dist/esm/axios.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.min.js","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/helpers/parseHeaders.js","../../lib/helpers/sanitizeHeaderValue.js","../../lib/core/AxiosHeaders.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/browser/index.js","../../lib/platform/browser/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/classes/Blob.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/buildFullPath.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/env/data.js","../../lib/adapters/fetch.js","../../lib/helpers/estimateDataURLDecodedBytes.js","../../lib/adapters/adapters.js","../../lib/helpers/null.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","export const VERSION = \"1.16.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n"],"names":["bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","G","globalThis","self","window","global","FormDataCtor","FormData","undefined","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","addEventListener","source","data","shift","cb","push","setTimeout","asap","queueMicrotask","process","nextTick","utils$1","isFormData","proto","append","kind","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","e","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isStream","pipe","merge","objs","caseless","skipUndefined","this","assignValue","targetKey","existing","extend","a","b","defineProperty","__proto__","writable","enumerable","configurable","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","_iterator","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","includes","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","visited","WeakSet","visit","has","add","target","reducedValue","delete","isThenable","then","catch","isIterable","ignoreDuplicateOf","utils","INVALID_UNICODE_HEADER_VALUE_CHARS","RegExp","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","item","start","end","code","trimSPorHTAB","toByteStringHeaderObject","headers","byteStringHeaders","toJSON","header","sanitizeByteStringHeaderValue","$internals","normalizeHeader","normalizeValue","sanitizeHeaderValue","matchHeaderValue","isHeaderNameFilter","test","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","entry","TypeError","get","parser","tokens","tokensRE","match","parseTokens","matcher","deleted","deleteHeader","clear","normalize","format","normalized","w","char","formatHeader","concat","targets","asStrings","join","entries","getSetCookie","from","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","AxiosHeaders","mapped","headerValue","redactConfig","config","redactKeys","lowerKeys","Set","k","seen","v","hasOwnOrPrototypeToJSON","pop","AxiosError","error","request","response","customProps","axiosError","message","cause","status","super","isAxiosError","redact","serializedConfig","description","number","fileName","lineNumber","columnNumber","stack","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","predicates","toFormData","options","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","depth","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","_options","serialize","serializeFn","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","own","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","helpers","isNode","toURLEncodedForm","env","_FormData","rawValue","parse","stringifySafely","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","transformData","fns","isCancel","__CANCEL__","method","settle","resolve","reject","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","throttle","loaded","rawLoaded","total","lengthComputable","progressBytes","max","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","isMSIE","URL","protocol","host","port","userAgent","cookies","write","expires","domain","secure","sameSite","cookie","toUTCString","read","eq","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","allowedSocketPaths","responseEncoding","configValue","FORM_DATA_CONTENT_HEADERS","resolveConfig","newConfig","auth","btoa","username","password","_","hex","fromCharCode","parseInt","getHeaders","formHeaders","policy","setFormDataHeaders","xsrfValue","xhrAdapter","XMLHttpRequest","Promise","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","startsWith","onabort","onerror","msg","ontimeout","timeoutErrorMessage","setRequestHeader","upload","cancel","CanceledError","abort","subscribe","aborted","parseProtocol","send","composeSignals","signals","Boolean","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","readStream","async","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","VERSION","factory","globalObject","TextEncoder","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","arrayBuffer","supportsRequestStream","duplexAccessed","body","duplex","hasContentType","supportsResponseStream","resolvers","res","resolveBodyLength","getContentLength","size","_request","getBodyLength","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","comma","meta","effectiveLen","pad","idx","tailIsPct3D","j","floor","c","estimateDataURLDecodedBytes","outboundLength","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","seedCache","Map","getFetch","seeds","seed","knownAdapters","http","xhr","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapters","getAdapter","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","console","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","Axios","generateHTTPMethod","isForm","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","axios","createInstance","defaultConfig","instance","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","Cancel","all","promises","spread","callback","payload","formToJSON","default"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/dist/node/axios.cjs b/node_modules/axios/dist/node/axios.cjs deleted file mode 100644 index 697c75c..0000000 --- a/node_modules/axios/dist/node/axios.cjs +++ /dev/null @@ -1,5469 +0,0 @@ -/*! Axios v1.16.1 Copyright (c) 2026 Matt Zabriskie and contributors */ -'use strict'; - -var FormData$1 = require('form-data'); -var crypto = require('crypto'); -var url = require('url'); -var HttpsProxyAgent = require('https-proxy-agent'); -var http = require('http'); -var https = require('https'); -var http2 = require('http2'); -var util = require('util'); -var path = require('path'); -var followRedirects = require('follow-redirects'); -var zlib = require('zlib'); -var stream = require('stream'); -var events = require('events'); - -/** - * Create a bound version of a function with a specified `this` context - * - * @param {Function} fn - The function to bind - * @param {*} thisArg - The value to be passed as the `this` parameter - * @returns {Function} A new function that will call the original function with the specified `this` context - */ -function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} - -// utils is a library of generic helper functions non-specific to axios - -const { - toString -} = Object.prototype; -const { - getPrototypeOf -} = Object; -const { - iterator, - toStringTag -} = Symbol; -const kindOf = (cache => thing => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(Object.create(null)); -const kindOfTest = type => { - type = type.toLowerCase(); - return thing => kindOf(thing) === type; -}; -const typeOfTest = type => thing => typeof thing === type; - -/** - * Determine if a value is a non-null object - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ -const { - isArray -} = Array; - -/** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ -const isUndefined = typeOfTest('undefined'); - -/** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction$1(val.constructor.isBuffer) && val.constructor.isBuffer(val); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -const isArrayBuffer = kindOfTest('ArrayBuffer'); - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ -const isString = typeOfTest('string'); - -/** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -const isFunction$1 = typeOfTest('function'); - -/** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ -const isNumber = typeOfTest('number'); - -/** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ -const isObject = thing => thing !== null && typeof thing === 'object'; - -/** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ -const isBoolean = thing => thing === true || thing === false; - -/** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ -const isPlainObject = val => { - if (kindOf(val) !== 'object') { - return false; - } - const prototype = getPrototypeOf(val); - return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val); -}; - -/** - * Determine if a value is an empty object (safely handles Buffers) - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an empty object, otherwise false - */ -const isEmptyObject = val => { - // Early return for non-objects or Buffers to prevent RangeError - if (!isObject(val) || isBuffer(val)) { - return false; - } - try { - return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; - } catch (e) { - // Fallback for any other objects that might cause RangeError with Object.keys() - return false; - } -}; - -/** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ -const isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFile = kindOfTest('File'); - -/** - * Determine if a value is a React Native Blob - * React Native "blob": an object with a `uri` attribute. Optionally, it can - * also have a `name` and `type` attribute to specify filename and content type - * - * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * - * @param {*} value The value to test - * - * @returns {boolean} True if value is a React Native Blob, otherwise false - */ -const isReactNativeBlob = value => { - return !!(value && typeof value.uri !== 'undefined'); -}; - -/** - * Determine if environment is React Native - * ReactNative `FormData` has a non-standard `getParts()` method - * - * @param {*} formData The formData to test - * - * @returns {boolean} True if environment is React Native, otherwise false - */ -const isReactNative = formData => formData && typeof formData.getParts !== 'undefined'; - -/** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ -const isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a FileList, otherwise false - */ -const isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ -const isStream = val => isObject(val) && isFunction$1(val.pipe); - -/** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - return {}; -} -const G = getGlobal(); -const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; -const isFormData = thing => { - if (!thing) return false; - if (FormDataCtor && thing instanceof FormDataCtor) return true; - // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. - const proto = getPrototypeOf(thing); - if (!proto || proto === Object.prototype) return false; - if (!isFunction$1(thing.append)) return false; - const kind = kindOf(thing); - return kind === 'formdata' || - // detect form-data instance - kind === 'object' && isFunction$1(thing.toString) && thing.toString() === '[object FormData]'; -}; - -/** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -const isURLSearchParams = kindOfTest('URLSearchParams'); -const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ -const trim = str => { - return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); -}; -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys = false] - * @returns {any} - */ -function forEach(obj, fn, { - allOwnKeys = false -} = {}) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - let i; - let l; - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Buffer check - if (isBuffer(obj)) { - return; - } - - // Iterate over object keys - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} - -/** - * Finds a key in an object, case-insensitive, returning the actual key name. - * Returns null if the object is a Buffer or if no match is found. - * - * @param {Object} obj - The object to search. - * @param {string} key - The key to find (case-insensitive). - * @returns {?string} The actual key name if found, otherwise null. - */ -function findKey(obj, key) { - if (isBuffer(obj)) { - return null; - } - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} -const _global = (() => { - /*eslint no-undef:0*/ - if (typeof globalThis !== 'undefined') return globalThis; - return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; -})(); -const isContextDefined = context => !isUndefined(context) && context !== _global; - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * const result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ -function merge(...objs) { - const { - caseless, - skipUndefined - } = isContextDefined(this) && this || {}; - const result = {}; - const assignValue = (val, key) => { - // Skip dangerous property names to prevent prototype pollution - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return; - } - const targetKey = caseless && findKey(result, key) || key; - // Read via own-prop only — a bare `result[targetKey]` walks the prototype - // chain, so a polluted Object.prototype value could surface here and get - // copied into the merged result. - const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; - if (isPlainObject(existing) && isPlainObject(val)) { - result[targetKey] = merge(existing, val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else if (!skipUndefined || !isUndefined(val)) { - result[targetKey] = val; - } - }; - for (let i = 0, l = objs.length; i < l; i++) { - objs[i] && forEach(objs[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys] - * @returns {Object} The resulting value of object a - */ -const extend = (a, b, thisArg, { - allOwnKeys -} = {}) => { - forEach(b, (val, key) => { - if (thisArg && isFunction$1(val)) { - Object.defineProperty(a, key, { - // Null-proto descriptor so a polluted Object.prototype.get cannot - // hijack defineProperty's accessor-vs-data resolution. - __proto__: null, - value: bind(val, thisArg), - writable: true, - enumerable: true, - configurable: true - }); - } else { - Object.defineProperty(a, key, { - __proto__: null, - value: val, - writable: true, - enumerable: true, - configurable: true - }); - } - }, { - allOwnKeys - }); - return a; -}; - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ -const stripBOM = content => { - if (content.charCodeAt(0) === 0xfeff) { - content = content.slice(1); - } - return content; -}; - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ -const inherits = (constructor, superConstructor, props, descriptors) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - Object.defineProperty(constructor.prototype, 'constructor', { - __proto__: null, - value: constructor, - writable: true, - enumerable: false, - configurable: true - }); - Object.defineProperty(constructor, 'super', { - __proto__: null, - value: superConstructor.prototype - }); - props && Object.assign(constructor.prototype, props); -}; - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ -const toFlatObject = (sourceObj, destObj, filter, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - return destObj; -}; - -/** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ -const endsWith = (str, searchString, position) => { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; - -/** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ -const toArray = thing => { - if (!thing) return null; - if (isArray(thing)) return thing; - let i = thing.length; - if (!isNumber(i)) return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -}; - -/** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ -// eslint-disable-next-line func-names -const isTypedArray = (TypedArray => { - // eslint-disable-next-line func-names - return thing => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - -/** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ -const forEachEntry = (obj, fn) => { - const generator = obj && obj[iterator]; - const _iterator = generator.call(obj); - let result; - while ((result = _iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -}; - -/** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ -const matchAll = (regExp, str) => { - let matches; - const arr = []; - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - return arr; -}; - -/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ -const isHTMLForm = kindOfTest('HTMLFormElement'); -const toCamelCase = str => { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - }); -}; - -/* Creating a function that will check if an object has a property. */ -const hasOwnProperty = (({ - hasOwnProperty -}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); - -/** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ -const isRegExp = kindOfTest('RegExp'); -const reduceDescriptors = (obj, reducer) => { - const descriptors = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - forEach(descriptors, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - Object.defineProperties(obj, reducedDescriptors); -}; - -/** - * Makes all methods read-only - * @param {Object} obj - */ - -const freezeMethods = obj => { - reduceDescriptors(obj, (descriptor, name) => { - // skip restricted props in strict mode - if (isFunction$1(obj) && ['arguments', 'caller', 'callee'].includes(name)) { - return false; - } - const value = obj[name]; - if (!isFunction$1(value)) return; - descriptor.enumerable = false; - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); -}; - -/** - * Converts an array or a delimited string into an object set with values as keys and true as values. - * Useful for fast membership checks. - * - * @param {Array|string} arrayOrString - The array or string to convert. - * @param {string} delimiter - The delimiter to use if input is a string. - * @returns {Object} An object with keys from the array or string, values set to true. - */ -const toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - const define = arr => { - arr.forEach(value => { - obj[value] = true; - }); - }; - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - return obj; -}; -const noop = () => {}; -const toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite(value = +value) ? value : defaultValue; -}; - -/** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ -function isSpecCompliantForm(thing) { - return !!(thing && isFunction$1(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]); -} - -/** - * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. - * - * @param {Object} obj - The object to convert. - * @returns {Object} The JSON-compatible object. - */ -const toJSONObject = obj => { - const visited = new WeakSet(); - const visit = source => { - if (isObject(source)) { - if (visited.has(source)) { - return; - } - - //Buffer check - if (isBuffer(source)) { - return source; - } - if (!('toJSON' in source)) { - // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). - visited.add(source); - const target = isArray(source) ? [] : {}; - forEach(source, (value, key) => { - const reducedValue = visit(value); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - visited.delete(source); - return target; - } - } - return source; - }; - return visit(obj); -}; - -/** - * Determines if a value is an async function. - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is an async function, otherwise false. - */ -const isAsyncFn = kindOfTest('AsyncFunction'); - -/** - * Determines if a value is thenable (has then and catch methods). - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is thenable, otherwise false. - */ -const isThenable = thing => thing && (isObject(thing) || isFunction$1(thing)) && isFunction$1(thing.then) && isFunction$1(thing.catch); - -// original code -// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - -/** - * Provides a cross-platform setImmediate implementation. - * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. - * - * @param {boolean} setImmediateSupported - Whether setImmediate is supported. - * @param {boolean} postMessageSupported - Whether postMessage is supported. - * @returns {Function} A function to schedule a callback asynchronously. - */ -const _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - return postMessageSupported ? ((token, callbacks) => { - _global.addEventListener('message', ({ - source, - data - }) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, false); - return cb => { - callbacks.push(cb); - _global.postMessage(token, '*'); - }; - })(`axios@${Math.random()}`, []) : cb => setTimeout(cb); -})(typeof setImmediate === 'function', isFunction$1(_global.postMessage)); - -/** - * Schedules a microtask or asynchronous callback as soon as possible. - * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. - * - * @type {Function} - */ -const asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate; - -// ********************* - -const isIterable = thing => thing != null && isFunction$1(thing[iterator]); -var utils$1 = { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isEmptyObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isReactNativeBlob, - isReactNative, - isBlob, - isRegExp, - isFunction: isFunction$1, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, - // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap, - isIterable -}; - -// RawAxiosHeaders whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -const ignoreDuplicateOf = utils$1.toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']); - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ -var parseHeaders = rawHeaders => { - const parsed = {}; - let key; - let val; - let i; - rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - if (!key || parsed[key] && ignoreDuplicateOf[key]) { - return; - } - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - return parsed; -}; - -function trimSPorHTAB(str) { - let start = 0; - let end = str.length; - while (start < end) { - const code = str.charCodeAt(start); - if (code !== 0x09 && code !== 0x20) { - break; - } - start += 1; - } - while (end > start) { - const code = str.charCodeAt(end - 1); - if (code !== 0x09 && code !== 0x20) { - break; - } - end -= 1; - } - return start === 0 && end === str.length ? str : str.slice(start, end); -} - -// The control-code ranges are intentional: header sanitization strips C0/DEL bytes. -// eslint-disable-next-line no-control-regex -const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g'); -// eslint-disable-next-line no-control-regex -const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g'); -function sanitizeValue(value, invalidChars) { - if (utils$1.isArray(value)) { - return value.map(item => sanitizeValue(item, invalidChars)); - } - return trimSPorHTAB(String(value).replace(invalidChars, '')); -} -const sanitizeHeaderValue = value => sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); -const sanitizeByteStringHeaderValue = value => sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); -function toByteStringHeaderObject(headers) { - const byteStringHeaders = Object.create(null); - utils$1.forEach(headers.toJSON(), (value, header) => { - byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); - }); - return byteStringHeaders; -} - -const $internals = Symbol('internals'); -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - return utils$1.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); -} -function parseTokens(str) { - const tokens = Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - while (match = tokensRE.exec(str)) { - tokens[match[1]] = match[2]; - } - return tokens; -} -const isValidHeaderName = str => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); -function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (utils$1.isFunction(filter)) { - return filter.call(this, value, header); - } - if (isHeaderNameFilter) { - value = header; - } - if (!utils$1.isString(value)) return; - if (utils$1.isString(filter)) { - return value.indexOf(filter) !== -1; - } - if (utils$1.isRegExp(filter)) { - return filter.test(value); - } -} -function formatHeader(header) { - return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} -function buildAccessors(obj, header) { - const accessorName = utils$1.toCamelCase(' ' + header); - ['get', 'set', 'has'].forEach(methodName => { - Object.defineProperty(obj, methodName + accessorName, { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: function (arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true - }); - }); -} -class AxiosHeaders { - constructor(headers) { - headers && this.set(headers); - } - set(header, valueOrRewrite, rewrite) { - const self = this; - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - const key = utils$1.findKey(self, lHeader); - if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) { - self[key || _header] = normalizeValue(_value); - } - } - const setHeaders = (headers, _rewrite) => utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - if (utils$1.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders(header), valueOrRewrite); - } else if (utils$1.isObject(header) && utils$1.isIterable(header)) { - let obj = {}, - dest, - key; - for (const entry of header) { - if (!utils$1.isArray(entry)) { - throw TypeError('Object iterator must return a key-value pair'); - } - obj[key = entry[0]] = (dest = obj[key]) ? utils$1.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1]; - } - setHeaders(obj, valueOrRewrite); - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - return this; - } - get(header, parser) { - header = normalizeHeader(header); - if (header) { - const key = utils$1.findKey(this, header); - if (key) { - const value = this[key]; - if (!parser) { - return value; - } - if (parser === true) { - return parseTokens(value); - } - if (utils$1.isFunction(parser)) { - return parser.call(this, value, key); - } - if (utils$1.isRegExp(parser)) { - return parser.exec(value); - } - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - has(header, matcher) { - header = normalizeHeader(header); - if (header) { - const key = utils$1.findKey(this, header); - return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); - } - return false; - } - delete(header, matcher) { - const self = this; - let deleted = false; - function deleteHeader(_header) { - _header = normalizeHeader(_header); - if (_header) { - const key = utils$1.findKey(self, _header); - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - deleted = true; - } - } - } - if (utils$1.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - return deleted; - } - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - while (i--) { - const key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - return deleted; - } - normalize(format) { - const self = this; - const headers = {}; - utils$1.forEach(this, (value, header) => { - const key = utils$1.findKey(headers, header); - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - const normalized = format ? formatHeader(header) : String(header).trim(); - if (normalized !== header) { - delete self[header]; - } - self[normalized] = normalizeValue(value); - headers[normalized] = true; - }); - return this; - } - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - toJSON(asStrings) { - const obj = Object.create(null); - utils$1.forEach(this, (value, header) => { - value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value); - }); - return obj; - } - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - toString() { - return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); - } - getSetCookie() { - return this.get('set-cookie') || []; - } - get [Symbol.toStringTag]() { - return 'AxiosHeaders'; - } - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - static concat(first, ...targets) { - const computed = new this(first); - targets.forEach(target => computed.set(target)); - return computed; - } - static accessor(header) { - const internals = this[$internals] = this[$internals] = { - accessors: {} - }; - const accessors = internals.accessors; - const prototype = this.prototype; - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - return this; - } -} -AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); - -// reserved names hotfix -utils$1.reduceDescriptors(AxiosHeaders.prototype, ({ - value -}, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - } - }; -}); -utils$1.freezeMethods(AxiosHeaders); - -const REDACTED = '[REDACTED ****]'; -function hasOwnOrPrototypeToJSON(source) { - if (utils$1.hasOwnProp(source, 'toJSON')) { - return true; - } - let prototype = Object.getPrototypeOf(source); - while (prototype && prototype !== Object.prototype) { - if (utils$1.hasOwnProp(prototype, 'toJSON')) { - return true; - } - prototype = Object.getPrototypeOf(prototype); - } - return false; -} - -// Build a plain-object snapshot of `config` and replace the value of any key -// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays -// and AxiosHeaders, and short-circuits on circular references. -function redactConfig(config, redactKeys) { - const lowerKeys = new Set(redactKeys.map(k => String(k).toLowerCase())); - const seen = []; - const visit = source => { - if (source === null || typeof source !== 'object') return source; - if (utils$1.isBuffer(source)) return source; - if (seen.indexOf(source) !== -1) return undefined; - if (source instanceof AxiosHeaders) { - source = source.toJSON(); - } - seen.push(source); - let result; - if (utils$1.isArray(source)) { - result = []; - source.forEach((v, i) => { - const reducedValue = visit(v); - if (!utils$1.isUndefined(reducedValue)) { - result[i] = reducedValue; - } - }); - } else { - if (!utils$1.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { - seen.pop(); - return source; - } - result = Object.create(null); - for (const [key, value] of Object.entries(source)) { - const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); - if (!utils$1.isUndefined(reducedValue)) { - result[key] = reducedValue; - } - } - } - seen.pop(); - return result; - }; - return visit(config); -} -class AxiosError extends Error { - static from(error, code, config, request, response, customProps) { - const axiosError = new AxiosError(error.message, code || error.code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - - // Preserve status from the original error if not already set from response - if (error.status != null && axiosError.status == null) { - axiosError.status = error.status; - } - customProps && Object.assign(axiosError, customProps); - return axiosError; - } - - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - constructor(message, code, config, request, response) { - super(message); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(this, 'message', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: message, - enumerable: true, - writable: true, - configurable: true - }); - this.name = 'AxiosError'; - this.isAxiosError = true; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status; - } - } - toJSON() { - // Opt-in redaction: when the request config carries a `redact` array, the - // value of any matching key (case-insensitive, at any depth) is replaced - // with REDACTED in the serialized snapshot. Undefined or empty leaves the - // existing serialization behavior unchanged. - const config = this.config; - const redactKeys = config && utils$1.hasOwnProp(config, 'redact') ? config.redact : undefined; - const serializedConfig = utils$1.isArray(redactKeys) && redactKeys.length > 0 ? redactConfig(config, redactKeys) : utils$1.toJSONObject(config); - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: serializedConfig, - code: this.code, - status: this.status - }; - } -} - -// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. -AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; -AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; -AxiosError.ECONNABORTED = 'ECONNABORTED'; -AxiosError.ETIMEDOUT = 'ETIMEDOUT'; -AxiosError.ECONNREFUSED = 'ECONNREFUSED'; -AxiosError.ERR_NETWORK = 'ERR_NETWORK'; -AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; -AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; -AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; -AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; -AxiosError.ERR_CANCELED = 'ERR_CANCELED'; -AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; -AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; -AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - -/** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ -function isVisitable(thing) { - return utils$1.isPlainObject(thing) || utils$1.isArray(thing); -} - -/** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ -function removeBrackets(key) { - return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key; -} - -/** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ -function renderKey(path, key, dots) { - if (!path) return key; - return path.concat(key).map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }).join(dots ? '.' : ''); -} - -/** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ -function isFlatArray(arr) { - return utils$1.isArray(arr) && !arr.some(isVisitable); -} -const predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); - -/** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - -/** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ -function toFormData(obj, formData, options) { - if (!utils$1.isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (FormData$1 || FormData)(); - - // eslint-disable-next-line no-param-reassign - options = utils$1.toFlatObject(options, { - metaTokens: true, - dots: false, - indexes: false - }, false, function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !utils$1.isUndefined(source[option]); - }); - const metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; - const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; - const useBlob = _Blob && utils$1.isSpecCompliantForm(formData); - if (!utils$1.isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - function convertValue(value) { - if (value === null) return ''; - if (utils$1.isDate(value)) { - return value.toISOString(); - } - if (utils$1.isBoolean(value)) { - return value.toString(); - } - if (!useBlob && utils$1.isBlob(value)) { - throw new AxiosError('Blob is not supported. Use a Buffer instead.'); - } - if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - let arr = value; - if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) { - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - if (value && !path && typeof value === 'object') { - if (utils$1.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if (utils$1.isArray(value) && isFlatArray(value) || (utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - arr.forEach(function each(el, index) { - !(utils$1.isUndefined(el) || el === null) && formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el)); - }); - return false; - } - } - if (isVisitable(value)) { - return true; - } - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - const stack = []; - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable - }); - function build(value, path, depth = 0) { - if (utils$1.isUndefined(value)) return; - if (depth > maxDepth) { - throw new AxiosError('Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED); - } - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - stack.push(value); - utils$1.forEach(value, function each(el, key) { - const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers); - if (result === true) { - build(el, path ? path.concat(key) : [key], depth + 1); - } - }); - stack.pop(); - } - if (!utils$1.isObject(obj)) { - throw new TypeError('data must be an object'); - } - build(obj); - return formData; -} - -/** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ -function encode$1(str) { - const charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' - }; - return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { - return charMap[match]; - }); -} - -/** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ -function AxiosURLSearchParams(params, options) { - this._pairs = []; - params && toFormData(params, this, options); -} -const prototype = AxiosURLSearchParams.prototype; -prototype.append = function append(name, value) { - this._pairs.push([name, value]); -}; -prototype.toString = function toString(encoder) { - const _encode = encoder ? function (value) { - return encoder.call(this, value, encode$1); - } : encode$1; - return this._pairs.map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '').join('&'); -}; - -/** - * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with - * their plain counterparts (`:`, `$`, `,`, `+`). - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ -function encode(val) { - return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ -function buildURL(url, params, options) { - if (!params) { - return url; - } - const _encode = options && options.encode || encode; - const _options = utils$1.isFunction(options) ? { - serialize: options - } : options; - const serializeFn = _options && _options.serialize; - let serializedParams; - if (serializeFn) { - serializedParams = serializeFn(params, _options); - } else { - serializedParams = utils$1.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams(params, _options).toString(_encode); - } - if (serializedParams) { - const hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - return url; -} - -class InterceptorManager { - constructor() { - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * @param {Object} options The options for the interceptor, synchronous and runWhen - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {void} - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils$1.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -} - -var transitionalDefaults = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false, - legacyInterceptorReqResOrdering: true -}; - -var URLSearchParams = url.URLSearchParams; - -const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; -const DIGIT = '0123456789'; -const ALPHABET = { - DIGIT, - ALPHA, - ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT -}; -const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { - let str = ''; - const { - length - } = alphabet; - const randomValues = new Uint32Array(size); - crypto.randomFillSync(randomValues); - for (let i = 0; i < size; i++) { - str += alphabet[randomValues[i] % length]; - } - return str; -}; -var platform$1 = { - isNode: true, - classes: { - URLSearchParams, - FormData: FormData$1, - Blob: typeof Blob !== 'undefined' && Blob || null - }, - ALPHABET, - generateString, - protocols: ['http', 'https', 'file', 'data'] -}; - -const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; -const _navigator = typeof navigator === 'object' && navigator || undefined; - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ -const hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - -/** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ -const hasStandardBrowserWebWorkerEnv = (() => { - return typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && typeof self.importScripts === 'function'; -})(); -const origin = hasBrowserEnv && window.location.href || 'http://localhost'; - -var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - hasBrowserEnv: hasBrowserEnv, - hasStandardBrowserEnv: hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv, - navigator: _navigator, - origin: origin -}); - -var platform = { - ...utils, - ...platform$1 -}; - -function toURLEncodedForm(data, options) { - return toFormData(data, new platform.classes.URLSearchParams(), { - visitor: function (value, key, path, helpers) { - if (platform.isNode && utils$1.isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - return helpers.defaultVisitor.apply(this, arguments); - }, - ...options - }); -} - -/** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ -function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return utils$1.matchAll(/\w+|\[(\w*)]/g, name).map(match => { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); -} - -/** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} - -/** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - if (name === '__proto__') return true; - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && utils$1.isArray(target) ? target.length : name; - if (isLast) { - if (utils$1.hasOwnProp(target, name)) { - target[name] = utils$1.isArray(target[name]) ? target[name].concat(value) : [target[name], value]; - } else { - target[name] = value; - } - return !isNumericKey; - } - if (!utils$1.hasOwnProp(target, name) || !utils$1.isObject(target[name])) { - target[name] = []; - } - const result = buildPath(path, value, target[name], index); - if (result && utils$1.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - return !isNumericKey; - } - if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) { - const obj = {}; - utils$1.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - return obj; - } - return null; -} - -const own = (obj, key) => obj != null && utils$1.hasOwnProp(obj, key) ? obj[key] : undefined; - -/** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ -function stringifySafely(rawValue, parser, encoder) { - if (utils$1.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils$1.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - return (encoder || JSON.stringify)(rawValue); -} -const defaults = { - transitional: transitionalDefaults, - adapter: ['xhr', 'http', 'fetch'], - transformRequest: [function transformRequest(data, headers) { - const contentType = headers.getContentType() || ''; - const hasJSONContentType = contentType.indexOf('application/json') > -1; - const isObjectPayload = utils$1.isObject(data); - if (isObjectPayload && utils$1.isHTMLForm(data)) { - data = new FormData(data); - } - const isFormData = utils$1.isFormData(data); - if (isFormData) { - return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; - } - if (utils$1.isArrayBuffer(data) || utils$1.isBuffer(data) || utils$1.isStream(data) || utils$1.isFile(data) || utils$1.isBlob(data) || utils$1.isReadableStream(data)) { - return data; - } - if (utils$1.isArrayBufferView(data)) { - return data.buffer; - } - if (utils$1.isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - let isFileList; - if (isObjectPayload) { - const formSerializer = own(this, 'formSerializer'); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return toURLEncodedForm(data, formSerializer).toString(); - } - if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { - const env = own(this, 'env'); - const _FormData = env && env.FormData; - return toFormData(isFileList ? { - 'files[]': data - } : data, _FormData && new _FormData(), formSerializer); - } - } - if (isObjectPayload || hasJSONContentType) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - return data; - }], - transformResponse: [function transformResponse(data) { - const transitional = own(this, 'transitional') || defaults.transitional; - const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const responseType = own(this, 'responseType'); - const JSONRequested = responseType === 'json'; - if (utils$1.isResponse(data) || utils$1.isReadableStream(data)) { - return data; - } - if (data && utils$1.isString(data) && (forcedJSONParsing && !responseType || JSONRequested)) { - const silentJSONParsing = transitional && transitional.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - try { - return JSON.parse(data, own(this, 'parseReviver')); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); - } - throw e; - } - } - } - return data; - }], - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - maxContentLength: -1, - maxBodyLength: -1, - env: { - FormData: platform.classes.FormData, - Blob: platform.classes.Blob - }, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - headers: { - common: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': undefined - } - } -}; -utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], method => { - defaults.headers[method] = {}; -}); - -/** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ -function transformData(fns, response) { - const config = this || defaults; - const context = response || config; - const headers = AxiosHeaders.from(context.headers); - let data = context.data; - utils$1.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - headers.normalize(); - return data; -} - -function isCancel(value) { - return !!(value && value.__CANCEL__); -} - -class CanceledError extends AxiosError { - /** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ - constructor(message, config, request) { - super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); - this.name = 'CanceledError'; - this.__CANCEL__ = true; - } -} - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ -function settle(resolve, reject, response) { - const validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError('Request failed with status code ' + response.status, response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE, response.config, response.request, response)); - } -} - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - if (typeof url !== 'string') { - return false; - } - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ -function combineURLs(baseURL, relativeURL) { - return relativeURL ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; -} - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ -function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - let isRelativeUrl = !isAbsoluteURL(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -} - -var DEFAULT_PORTS$1 = { - ftp: 21, - gopher: 70, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; -function parseUrl(urlString) { - try { - return new URL(urlString); - } catch { - return null; - } -} - -/** - * @param {string|object|URL} url - The URL as a string or URL instance, or a - * compatible object (such as the result from legacy url.parse). - * @return {string} The URL of the proxy that should handle the request to the - * given URL. If no proxy is set, this will be an empty string. - */ -function getProxyForUrl(url) { - var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {}; - var proto = parsedUrl.protocol; - var hostname = parsedUrl.host; - var port = parsedUrl.port; - if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { - return ''; // Don't proxy URLs without a valid scheme or host. - } - proto = proto.split(':', 1)[0]; - // Stripping ports in this way instead of using parsedUrl.hostname to make - // sure that the brackets around IPv6 addresses are kept. - hostname = hostname.replace(/:\d*$/, ''); - port = parseInt(port) || DEFAULT_PORTS$1[proto] || 0; - if (!shouldProxy(hostname, port)) { - return ''; // Don't proxy URLs that match NO_PROXY. - } - var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy'); - if (proxy && proxy.indexOf('://') === -1) { - // Missing scheme in proxy, default to the requested URL's scheme. - proxy = proto + '://' + proxy; - } - return proxy; -} - -/** - * Determines whether a given URL should be proxied. - * - * @param {string} hostname - The host name of the URL. - * @param {number} port - The effective port of the URL. - * @returns {boolean} Whether the given URL should be proxied. - * @private - */ -function shouldProxy(hostname, port) { - var NO_PROXY = getEnv('no_proxy').toLowerCase(); - if (!NO_PROXY) { - return true; // Always proxy if NO_PROXY is not set. - } - if (NO_PROXY === '*') { - return false; // Never proxy if wildcard is set. - } - return NO_PROXY.split(/[,\s]/).every(function (proxy) { - if (!proxy) { - return true; // Skip zero-length hosts. - } - var parsedProxy = proxy.match(/^(.+):(\d+)$/); - var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; - var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; - if (parsedProxyPort && parsedProxyPort !== port) { - return true; // Skip if ports don't match. - } - if (!/^[.*]/.test(parsedProxyHostname)) { - // No wildcards, so stop proxying if there is an exact match. - return hostname !== parsedProxyHostname; - } - if (parsedProxyHostname.charAt(0) === '*') { - // Remove leading wildcard. - parsedProxyHostname = parsedProxyHostname.slice(1); - } - // Stop proxying if the hostname ends with the no_proxy host. - return !hostname.endsWith(parsedProxyHostname); - }); -} - -/** - * Get the value for an environment variable. - * - * @param {string} key - The name of the environment variable. - * @return {string} The value of the environment variable. - * @private - */ -function getEnv(key) { - return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; -} - -const VERSION = "1.16.1"; - -function parseProtocol(url) { - const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); - return match && match[1] || ''; -} - -// RFC 2397: data:[][;base64], -// mediatype = type/subtype followed by optional ;name=value parameters -const DATA_URL_PATTERN = /^([^,;]+\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\s\S]*)$/; - -/** - * Parse data uri to a Buffer or Blob - * - * @param {String} uri - * @param {?Boolean} asBlob - * @param {?Object} options - * @param {?Function} options.Blob - * - * @returns {Buffer|Blob} - */ -function fromDataURI(uri, asBlob, options) { - const _Blob = options && options.Blob || platform.classes.Blob; - const protocol = parseProtocol(uri); - if (asBlob === undefined && _Blob) { - asBlob = true; - } - if (protocol === 'data') { - uri = protocol.length ? uri.slice(protocol.length + 1) : uri; - const match = DATA_URL_PATTERN.exec(uri); - if (!match) { - throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); - } - const type = match[1]; - const params = match[2]; - const encoding = match[3] ? 'base64' : 'utf8'; - const body = match[4]; - - // RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII - // Bare `data:,` leaves mime undefined; Blob normalises that to "" per spec. - let mime; - if (type) { - mime = params ? type + params : type; - } else if (params) { - mime = 'text/plain' + params; - } - const buffer = Buffer.from(decodeURIComponent(body), encoding); - if (asBlob) { - if (!_Blob) { - throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); - } - return new _Blob([buffer], { - type: mime - }); - } - return buffer; - } - throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); -} - -const kInternals = Symbol('internals'); -class AxiosTransformStream extends stream.Transform { - constructor(options) { - options = utils$1.toFlatObject(options, { - maxRate: 0, - chunkSize: 64 * 1024, - minChunkSize: 100, - timeWindow: 500, - ticksRate: 2, - samplesCount: 15 - }, null, (prop, source) => { - return !utils$1.isUndefined(source[prop]); - }); - super({ - readableHighWaterMark: options.chunkSize - }); - const internals = this[kInternals] = { - timeWindow: options.timeWindow, - chunkSize: options.chunkSize, - maxRate: options.maxRate, - minChunkSize: options.minChunkSize, - bytesSeen: 0, - isCaptured: false, - notifiedBytesLoaded: 0, - ts: Date.now(), - bytes: 0, - onReadCallback: null - }; - this.on('newListener', event => { - if (event === 'progress') { - if (!internals.isCaptured) { - internals.isCaptured = true; - } - } - }); - } - _read(size) { - const internals = this[kInternals]; - if (internals.onReadCallback) { - internals.onReadCallback(); - } - return super._read(size); - } - _transform(chunk, encoding, callback) { - const internals = this[kInternals]; - const maxRate = internals.maxRate; - const readableHighWaterMark = this.readableHighWaterMark; - const timeWindow = internals.timeWindow; - const divider = 1000 / timeWindow; - const bytesThreshold = maxRate / divider; - const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; - const pushChunk = (_chunk, _callback) => { - const bytes = Buffer.byteLength(_chunk); - internals.bytesSeen += bytes; - internals.bytes += bytes; - internals.isCaptured && this.emit('progress', internals.bytesSeen); - if (this.push(_chunk)) { - process.nextTick(_callback); - } else { - internals.onReadCallback = () => { - internals.onReadCallback = null; - process.nextTick(_callback); - }; - } - }; - const transformChunk = (_chunk, _callback) => { - const chunkSize = Buffer.byteLength(_chunk); - let chunkRemainder = null; - let maxChunkSize = readableHighWaterMark; - let bytesLeft; - let passed = 0; - if (maxRate) { - const now = Date.now(); - if (!internals.ts || (passed = now - internals.ts) >= timeWindow) { - internals.ts = now; - bytesLeft = bytesThreshold - internals.bytes; - internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; - passed = 0; - } - bytesLeft = bytesThreshold - internals.bytes; - } - if (maxRate) { - if (bytesLeft <= 0) { - // next time window - return setTimeout(() => { - _callback(null, _chunk); - }, timeWindow - passed); - } - if (bytesLeft < maxChunkSize) { - maxChunkSize = bytesLeft; - } - } - if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) { - chunkRemainder = _chunk.subarray(maxChunkSize); - _chunk = _chunk.subarray(0, maxChunkSize); - } - pushChunk(_chunk, chunkRemainder ? () => { - process.nextTick(_callback, null, chunkRemainder); - } : _callback); - }; - transformChunk(chunk, function transformNextChunk(err, _chunk) { - if (err) { - return callback(err); - } - if (_chunk) { - transformChunk(_chunk, transformNextChunk); - } else { - callback(null); - } - }); - } -} - -const { - asyncIterator -} = Symbol; -const readBlob = async function* (blob) { - if (blob.stream) { - yield* blob.stream(); - } else if (blob.arrayBuffer) { - yield await blob.arrayBuffer(); - } else if (blob[asyncIterator]) { - yield* blob[asyncIterator](); - } else { - yield blob; - } -}; - -const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_'; -const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder(); -const CRLF = '\r\n'; -const CRLF_BYTES = textEncoder.encode(CRLF); -const CRLF_BYTES_COUNT = 2; -class FormDataPart { - constructor(name, value) { - const { - escapeName - } = this.constructor; - const isStringValue = utils$1.isString(value); - let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${!isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : ''}${CRLF}`; - if (isStringValue) { - value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); - } else { - const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, ''); - headers += `Content-Type: ${safeType}${CRLF}`; - } - this.headers = textEncoder.encode(headers + CRLF); - this.contentLength = isStringValue ? value.byteLength : value.size; - this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; - this.name = name; - this.value = value; - } - async *encode() { - yield this.headers; - const { - value - } = this; - if (utils$1.isTypedArray(value)) { - yield value; - } else { - yield* readBlob(value); - } - yield CRLF_BYTES; - } - static escapeName(name) { - return String(name).replace(/[\r\n"]/g, match => ({ - '\r': '%0D', - '\n': '%0A', - '"': '%22' - })[match]); - } -} -const formDataToStream = (form, headersHandler, options) => { - const { - tag = 'form-data-boundary', - size = 25, - boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET) - } = options || {}; - if (!utils$1.isFormData(form)) { - throw TypeError('FormData instance required'); - } - if (boundary.length < 1 || boundary.length > 70) { - throw Error('boundary must be 1-70 characters long'); - } - const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); - const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); - let contentLength = footerBytes.byteLength; - const parts = Array.from(form.entries()).map(([name, value]) => { - const part = new FormDataPart(name, value); - contentLength += part.size; - return part; - }); - contentLength += boundaryBytes.byteLength * parts.length; - contentLength = utils$1.toFiniteNumber(contentLength); - const computedHeaders = { - 'Content-Type': `multipart/form-data; boundary=${boundary}` - }; - if (Number.isFinite(contentLength)) { - computedHeaders['Content-Length'] = contentLength; - } - headersHandler && headersHandler(computedHeaders); - return stream.Readable.from(async function* () { - for (const part of parts) { - yield boundaryBytes; - yield* part.encode(); - } - yield footerBytes; - }()); -}; - -class ZlibHeaderTransformStream extends stream.Transform { - __transform(chunk, encoding, callback) { - this.push(chunk); - callback(); - } - _transform(chunk, encoding, callback) { - if (chunk.length !== 0) { - this._transform = this.__transform; - - // Add Default Compression headers if no zlib headers are present - if (chunk[0] !== 120) { - // Hex: 78 - const header = Buffer.alloc(2); - header[0] = 120; // Hex: 78 - header[1] = 156; // Hex: 9C - this.push(header, encoding); - } - } - this.__transform(chunk, encoding, callback); - } -} - -const callbackify = (fn, reducer) => { - return utils$1.isAsyncFn(fn) ? function (...args) { - const cb = args.pop(); - fn.apply(this, args).then(value => { - try { - reducer ? cb(null, ...reducer(value)) : cb(null, value); - } catch (err) { - cb(err); - } - }, cb); - } : fn; -}; - -const LOOPBACK_HOSTNAMES = new Set(['localhost']); -const isIPv4Loopback = host => { - const parts = host.split('.'); - if (parts.length !== 4) return false; - if (parts[0] !== '127') return false; - return parts.every(p => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255); -}; -const isIPv6Loopback = host => { - // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1 - // First, strip any leading "::" by normalising with Set lookup of common forms, - // then fall back to structural check. - if (host === '::1') return true; - - // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff: - // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1 - const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i); - if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]); - const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i); - if (v4MappedHex) { - const high = parseInt(v4MappedHex[1], 16); - // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff - return high >= 0x7f00 && high <= 0x7fff; - } - - // Full-form ::1 variants: any number of zero groups followed by trailing 1 - // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001 - const groups = host.split(':'); - if (groups.length === 8) { - for (let i = 0; i < 7; i++) { - if (!/^0+$/.test(groups[i])) return false; - } - return /^0*1$/.test(groups[7]); - } - return false; -}; -const isLoopback = host => { - if (!host) return false; - if (LOOPBACK_HOSTNAMES.has(host)) return true; - if (isIPv4Loopback(host)) return true; - return isIPv6Loopback(host); -}; -const DEFAULT_PORTS = { - http: 80, - https: 443, - ws: 80, - wss: 443, - ftp: 21 -}; -const parseNoProxyEntry = entry => { - let entryHost = entry; - let entryPort = 0; - if (entryHost.charAt(0) === '[') { - const bracketIndex = entryHost.indexOf(']'); - if (bracketIndex !== -1) { - const host = entryHost.slice(1, bracketIndex); - const rest = entryHost.slice(bracketIndex + 1); - if (rest.charAt(0) === ':' && /^\d+$/.test(rest.slice(1))) { - entryPort = Number.parseInt(rest.slice(1), 10); - } - return [host, entryPort]; - } - } - const firstColon = entryHost.indexOf(':'); - const lastColon = entryHost.lastIndexOf(':'); - if (firstColon !== -1 && firstColon === lastColon && /^\d+$/.test(entryHost.slice(lastColon + 1))) { - entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10); - entryHost = entryHost.slice(0, lastColon); - } - return [entryHost, entryPort]; -}; - -// Convert IPv4-mapped IPv6 (::ffff:0:0/96 prefix) to IPv4 dotted form so both -// sides of a NO_PROXY comparison see the same canonical address. Without this, -// `NO_PROXY=192.168.1.5` would not match a request to `http://[::ffff:192.168.1.5]/` -// (Node's URL parser normalises that to `[::ffff:c0a8:105]`), and vice-versa, -// allowing the proxy-bypass policy to be circumvented by using the alternate -// representation. Returns the input unchanged when not IPv4-mapped. -const IPV4_MAPPED_DOTTED_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\d+\.\d+\.\d+\.\d+)$/i; -const IPV4_MAPPED_HEX_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i; -const unmapIPv4MappedIPv6 = host => { - if (typeof host !== 'string' || host.indexOf(':') === -1) return host; - const dotted = host.match(IPV4_MAPPED_DOTTED_RE); - if (dotted) return dotted[1]; - const hex = host.match(IPV4_MAPPED_HEX_RE); - if (hex) { - const high = parseInt(hex[1], 16); - const low = parseInt(hex[2], 16); - return `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`; - } - return host; -}; -const normalizeNoProxyHost = hostname => { - if (!hostname) { - return hostname; - } - if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') { - hostname = hostname.slice(1, -1); - } - return unmapIPv4MappedIPv6(hostname.replace(/\.+$/, '')); -}; -function shouldBypassProxy(location) { - let parsed; - try { - parsed = new URL(location); - } catch (_err) { - return false; - } - const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase(); - if (!noProxy) { - return false; - } - if (noProxy === '*') { - return true; - } - const port = Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0; - const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase()); - return noProxy.split(/[\s,]+/).some(entry => { - if (!entry) { - return false; - } - let [entryHost, entryPort] = parseNoProxyEntry(entry); - entryHost = normalizeNoProxyHost(entryHost); - if (!entryHost) { - return false; - } - if (entryPort && entryPort !== port) { - return false; - } - if (entryHost.charAt(0) === '*') { - entryHost = entryHost.slice(1); - } - if (entryHost.charAt(0) === '.') { - return hostname.endsWith(entryHost); - } - return hostname === entryHost || isLoopback(hostname) && isLoopback(entryHost); - }); -} - -/** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - min = min !== undefined ? min : 1000; - return function push(chunkLength) { - const now = Date.now(); - const startedAt = timestamps[tail]; - if (!firstSampleTS) { - firstSampleTS = now; - } - bytes[head] = chunkLength; - timestamps[head] = now; - let i = tail; - let bytesCount = 0; - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - head = (head + 1) % samplesCount; - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - if (now - firstSampleTS < min) { - return; - } - const passed = startedAt && now - startedAt; - return passed ? Math.round(bytesCount * 1000 / passed) : undefined; - }; -} - -/** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1000 / freq; - let lastArgs; - let timer; - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn(...args); - }; - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - const flush = () => lastArgs && invoke(lastArgs); - return [throttled, flush]; -} - -const progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer(50, 250); - return throttle(e => { - if (!e || typeof e.loaded !== 'number') { - return; - } - const rawLoaded = e.loaded; - const total = e.lengthComputable ? e.total : undefined; - const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; - const progressBytes = Math.max(0, loaded - bytesNotified); - const rate = _speedometer(progressBytes); - bytesNotified = Math.max(bytesNotified, loaded); - const data = { - loaded, - total, - progress: total ? loaded / total : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null, - [isDownloadStream ? 'download' : 'upload']: true - }; - listener(data); - }, freq); -}; -const progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - return [loaded => throttled[0]({ - lengthComputable, - total, - loaded - }), throttled[1]]; -}; -const asyncDecorator = fn => (...args) => utils$1.asap(() => fn(...args)); - -/** - * Estimate decoded byte length of a data:// URL *without* allocating large buffers. - * - For base64: compute exact decoded size using length and padding; - * handle %XX at the character-count level (no string allocation). - * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. - * - * @param {string} url - * @returns {number} - */ -function estimateDataURLDecodedBytes(url) { - if (!url || typeof url !== 'string') return 0; - if (!url.startsWith('data:')) return 0; - const comma = url.indexOf(','); - if (comma < 0) return 0; - const meta = url.slice(5, comma); - const body = url.slice(comma + 1); - const isBase64 = /;base64/i.test(meta); - if (isBase64) { - let effectiveLen = body.length; - const len = body.length; // cache length - - for (let i = 0; i < len; i++) { - if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { - const a = body.charCodeAt(i + 1); - const b = body.charCodeAt(i + 2); - const isHex = (a >= 48 && a <= 57 || a >= 65 && a <= 70 || a >= 97 && a <= 102) && (b >= 48 && b <= 57 || b >= 65 && b <= 70 || b >= 97 && b <= 102); - if (isHex) { - effectiveLen -= 2; - i += 2; - } - } - } - let pad = 0; - let idx = len - 1; - const tailIsPct3D = j => j >= 2 && body.charCodeAt(j - 2) === 37 && - // '%' - body.charCodeAt(j - 1) === 51 && ( - // '3' - body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' - - if (idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - idx--; - } else if (tailIsPct3D(idx)) { - pad++; - idx -= 3; - } - } - if (pad === 1 && idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - } else if (tailIsPct3D(idx)) { - pad++; - } - } - const groups = Math.floor(effectiveLen / 4); - const bytes = groups * 3 - (pad || 0); - return bytes > 0 ? bytes : 0; - } - if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { - return Buffer.byteLength(body, 'utf8'); - } - - // Compute UTF-8 byte length directly from UTF-16 code units without allocating - // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). - // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit - // but 3 UTF-8 bytes). - let bytes = 0; - for (let i = 0, len = body.length; i < len; i++) { - const c = body.charCodeAt(i); - if (c < 0x80) { - bytes += 1; - } else if (c < 0x800) { - bytes += 2; - } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { - const next = body.charCodeAt(i + 1); - if (next >= 0xdc00 && next <= 0xdfff) { - bytes += 4; - i++; - } else { - bytes += 3; - } - } else { - bytes += 3; - } - } - return bytes; -} - -const zlibOptions = { - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH -}; -const brotliOptions = { - flush: zlib.constants.BROTLI_OPERATION_FLUSH, - finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH -}; -const isBrotliSupported = utils$1.isFunction(zlib.createBrotliDecompress); -const { - http: httpFollow, - https: httpsFollow -} = followRedirects; -const isHttps = /https:?/; -const FORM_DATA_CONTENT_HEADERS$1 = ['content-type', 'content-length']; -function setFormDataHeaders$1(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS$1.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -// Symbols used to bind a single 'error' listener to a pooled socket and track -// the request currently owning that socket across keep-alive reuse (issue #10780). -const kAxiosSocketListener = Symbol('axios.http.socketListener'); -const kAxiosCurrentReq = Symbol('axios.http.currentReq'); - -// Tags HttpsProxyAgent instances installed by setProxy() so the redirect path -// can strip them without clobbering a user-supplied agent that happens to be -// an HttpsProxyAgent. -const kAxiosInstalledTunnel = Symbol('axios.http.installedTunnel'); - -// Cache of CONNECT-tunneling agents keyed by proxy config so repeat requests -// through the same proxy reuse a single agent (and its socket pool). The -// keyspace is bounded by the set of distinct proxy configs the process uses, -// so unbounded growth is not a concern in practice. -const tunnelingAgentCache = new Map(); -const tunnelingAgentCacheUser = new WeakMap(); -function getTunnelingAgent(agentOptions, userHttpsAgent) { - const key = agentOptions.protocol + '//' + agentOptions.hostname + ':' + (agentOptions.port || '') + '#' + (agentOptions.auth || ''); - const cache = userHttpsAgent ? tunnelingAgentCacheUser.get(userHttpsAgent) || tunnelingAgentCacheUser.set(userHttpsAgent, new Map()).get(userHttpsAgent) : tunnelingAgentCache; - let agent = cache.get(key); - if (agent) return agent; - // Forward the user's TLS options (custom CA, rejectUnauthorized, client cert, - // etc.) into the tunneling agent so they apply to the origin TLS upgrade - // performed after CONNECT. Our proxy fields take precedence on conflict. - const merged = userHttpsAgent && userHttpsAgent.options ? { - ...userHttpsAgent.options, - ...agentOptions - } : agentOptions; - agent = new HttpsProxyAgent(merged); - agent[kAxiosInstalledTunnel] = true; - cache.set(key, agent); - return agent; -} -const supportedProtocols = platform.protocols.map(protocol => { - return protocol + ':'; -}); - -// Node's WHATWG URL parser returns `username` and `password` percent-encoded. -// Decode before composing the `auth` option so credentials such as -// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the -// original value for malformed input so a bad encoding never throws. -const decodeURIComponentSafe = value => { - if (!utils$1.isString(value)) { - return value; - } - try { - return decodeURIComponent(value); - } catch (error) { - return value; - } -}; -const flushOnFinish = (stream, [throttled, flush]) => { - stream.on('end', flush).on('error', flush); - return throttled; -}; -class Http2Sessions { - constructor() { - this.sessions = Object.create(null); - } - getSession(authority, options) { - options = Object.assign({ - sessionTimeout: 1000 - }, options); - let authoritySessions = this.sessions[authority]; - if (authoritySessions) { - let len = authoritySessions.length; - for (let i = 0; i < len; i++) { - const [sessionHandle, sessionOptions] = authoritySessions[i]; - if (!sessionHandle.destroyed && !sessionHandle.closed && util.isDeepStrictEqual(sessionOptions, options)) { - return sessionHandle; - } - } - } - const session = http2.connect(authority, options); - let removed; - const removeSession = () => { - if (removed) { - return; - } - removed = true; - let entries = authoritySessions, - len = entries.length, - i = len; - while (i--) { - if (entries[i][0] === session) { - if (len === 1) { - delete this.sessions[authority]; - } else { - entries.splice(i, 1); - } - if (!session.closed) { - session.close(); - } - return; - } - } - }; - const originalRequestFn = session.request; - const { - sessionTimeout - } = options; - if (sessionTimeout != null) { - let timer; - let streamsCount = 0; - session.request = function () { - const stream = originalRequestFn.apply(this, arguments); - streamsCount++; - if (timer) { - clearTimeout(timer); - timer = null; - } - stream.once('close', () => { - if (! --streamsCount) { - timer = setTimeout(() => { - timer = null; - removeSession(); - }, sessionTimeout); - } - }); - return stream; - }; - } - session.once('close', removeSession); - let entry = [session, options]; - authoritySessions ? authoritySessions.push(entry) : authoritySessions = this.sessions[authority] = [entry]; - return session; - } -} -const http2Sessions = new Http2Sessions(); - -/** - * If the proxy or config beforeRedirects functions are defined, call them with the options - * object. - * - * @param {Object} options - The options object that was passed to the request. - * - * @returns {Object} - */ -function dispatchBeforeRedirect(options, responseDetails, requestDetails) { - if (options.beforeRedirects.proxy) { - options.beforeRedirects.proxy(options); - } - if (options.beforeRedirects.config) { - options.beforeRedirects.config(options, responseDetails, requestDetails); - } -} - -/** - * If the proxy or config afterRedirects functions are defined, call them with the options - * - * @param {http.ClientRequestArgs} options - * @param {AxiosProxyConfig} configProxy configuration from Axios options object - * @param {string} location - * - * @returns {http.ClientRequestArgs} - */ -function setProxy(options, configProxy, location, isRedirect, configHttpsAgent) { - let proxy = configProxy; - if (!proxy && proxy !== false) { - const proxyUrl = getProxyForUrl(location); - if (proxyUrl) { - if (!shouldBypassProxy(location)) { - proxy = new URL(proxyUrl); - } - } - } - // On redirect re-invocation, strip any stale Proxy-Authorization header carried - // over from the prior request (e.g. new target no longer uses a proxy, or uses - // a different proxy). Skip on the initial request so user-supplied headers are - // preserved. Header names are case-insensitive, so remove every case variant. - if (isRedirect && options.headers) { - for (const name of Object.keys(options.headers)) { - if (name.toLowerCase() === 'proxy-authorization') { - delete options.headers[name]; - } - } - } - // Strip any tunneling agent we installed for the previous hop so a redirect - // that drops the proxy or crosses an HTTPS↔HTTP boundary doesn't reuse a - // stale one. Match on our Symbol marker so a user-supplied HttpsProxyAgent - // (which won't carry the marker) is left alone. - if (isRedirect && options.agent && options.agent[kAxiosInstalledTunnel]) { - options.agent = undefined; - } - if (proxy) { - // Read proxy fields without traversing the prototype chain. URL instances expose - // username/password/hostname/host/port/protocol via getters on URL.prototype (so - // direct reads are shielded), but plain object proxies — and the `auth` field - // (which URL does not expose) — must be guarded so a polluted Object.prototype - // (e.g. Object.prototype.auth = { username, password }) cannot inject - // attacker-controlled credentials into the Proxy-Authorization header or - // redirect proxying to an attacker-controlled host. - const isProxyURL = proxy instanceof URL; - const readProxyField = key => isProxyURL || utils$1.hasOwnProp(proxy, key) ? proxy[key] : undefined; - const proxyUsername = readProxyField('username'); - const proxyPassword = readProxyField('password'); - let proxyAuth = utils$1.hasOwnProp(proxy, 'auth') ? proxy.auth : undefined; - - // Basic proxy authorization - if (proxyUsername) { - proxyAuth = (proxyUsername || '') + ':' + (proxyPassword || ''); - } - if (proxyAuth) { - // Support proxy auth object form. Read sub-fields via own-prop checks so a - // plain object inheriting from polluted Object.prototype cannot leak creds. - const authIsObject = typeof proxyAuth === 'object'; - const authUsername = authIsObject && utils$1.hasOwnProp(proxyAuth, 'username') ? proxyAuth.username : undefined; - const authPassword = authIsObject && utils$1.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined; - const validProxyAuth = Boolean(authUsername || authPassword); - if (validProxyAuth) { - proxyAuth = (authUsername || '') + ':' + (authPassword || ''); - } else if (authIsObject) { - throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { - proxy - }); - } - } - const targetIsHttps = isHttps.test(options.protocol); - if (targetIsHttps) { - // CONNECT-tunneling path for HTTPS targets. Preserves end-to-end TLS to - // the origin so the proxy cannot inspect the URL, headers, or body — the - // behavior already promised by THREATMODEL.md (T-R9). HttpsProxyAgent - // sends Proxy-Authorization on the CONNECT request only, never on the - // wrapped TLS request, which is why we don't stamp it onto - // options.headers here. If the user already supplied an HttpsProxyAgent, - // they own tunneling end-to-end and we leave them alone; otherwise we - // install our own tunneling agent and forward their TLS options (if any) - // so a custom httpsAgent for cert pinning / rejectUnauthorized still - // applies to the origin TLS upgrade. - if (!(configHttpsAgent instanceof HttpsProxyAgent)) { - const proxyHost = readProxyField('hostname') || readProxyField('host'); - const proxyPort = readProxyField('port'); - const rawProxyProtocol = readProxyField('protocol'); - const normalizedProtocol = rawProxyProtocol ? rawProxyProtocol.includes(':') ? rawProxyProtocol : `${rawProxyProtocol}:` : 'http:'; - // Bracket IPv6 literals for URL parsing; URL.hostname strips the - // brackets again on read so the agent receives the raw form. - const proxyHostForURL = proxyHost && proxyHost.includes(':') && !proxyHost.startsWith('[') ? `[${proxyHost}]` : proxyHost; - const proxyURL = new URL(`${normalizedProtocol}//${proxyHostForURL}${proxyPort ? ':' + proxyPort : ''}`); - const agentOptions = { - protocol: proxyURL.protocol, - hostname: proxyURL.hostname.replace(/^\[|\]$/g, ''), - port: proxyURL.port, - auth: proxyAuth && typeof proxyAuth === 'string' ? proxyAuth : undefined - }; - if (proxyURL.protocol === 'https:') { - agentOptions.ALPNProtocols = ['http/1.1']; - } - const tunnelingAgent = getTunnelingAgent(agentOptions, configHttpsAgent); - // Set both: `options.agent` is consumed by the native https.request path - // (config.maxRedirects === 0); `options.agents.https` is consumed by - // follow-redirects, which ignores `options.agent` when `options.agents` - // is present. - options.agent = tunnelingAgent; - if (options.agents) { - options.agents.https = tunnelingAgent; - } - } - } else { - // Forward-proxy mode for plaintext HTTP targets. The request line carries - // the absolute URL and the proxy sees everything — acceptable for plain - // HTTP since the wire was already plaintext. - if (proxyAuth) { - const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64'); - options.headers['Proxy-Authorization'] = 'Basic ' + base64; - } - - // Preserve a user-supplied Host header (case-insensitive) so callers can override - // the value forwarded to the proxy; otherwise default to the request URL's host. - let hasUserHostHeader = false; - for (const name of Object.keys(options.headers)) { - if (name.toLowerCase() === 'host') { - hasUserHostHeader = true; - break; - } - } - if (!hasUserHostHeader) { - options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); - } - const proxyHost = readProxyField('hostname') || readProxyField('host'); - options.hostname = proxyHost; - // Replace 'host' since options is not a URL object - options.host = proxyHost; - options.port = readProxyField('port'); - options.path = location; - const proxyProtocol = readProxyField('protocol'); - if (proxyProtocol) { - options.protocol = proxyProtocol.includes(':') ? proxyProtocol : `${proxyProtocol}:`; - } - } - } - options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { - // Configure proxy for redirected request, passing the original config proxy to apply - // the exact same logic as if the redirected request was performed by axios directly. - setProxy(redirectOptions, configProxy, redirectOptions.href, true, configHttpsAgent); - }; -} -const isHttpAdapterSupported = typeof process !== 'undefined' && utils$1.kindOf(process) === 'process'; - -// temporary hotfix - -const wrapAsync = asyncExecutor => { - return new Promise((resolve, reject) => { - let onDone; - let isDone; - const done = (value, isRejected) => { - if (isDone) return; - isDone = true; - onDone && onDone(value, isRejected); - }; - const _resolve = value => { - done(value); - resolve(value); - }; - const _reject = reason => { - done(reason, true); - reject(reason); - }; - asyncExecutor(_resolve, _reject, onDoneHandler => onDone = onDoneHandler).catch(_reject); - }); -}; -const resolveFamily = ({ - address, - family -}) => { - if (!utils$1.isString(address)) { - throw TypeError('address must be a string'); - } - return { - address, - family: family || (address.indexOf('.') < 0 ? 6 : 4) - }; -}; -const buildAddressEntry = (address, family) => resolveFamily(utils$1.isObject(address) ? address : { - address, - family -}); -const http2Transport = { - request(options, cb) { - const authority = options.protocol + '//' + options.hostname + ':' + (options.port || (options.protocol === 'https:' ? 443 : 80)); - const { - http2Options, - headers - } = options; - const session = http2Sessions.getSession(authority, http2Options); - const { - HTTP2_HEADER_SCHEME, - HTTP2_HEADER_METHOD, - HTTP2_HEADER_PATH, - HTTP2_HEADER_STATUS - } = http2.constants; - const http2Headers = { - [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), - [HTTP2_HEADER_METHOD]: options.method, - [HTTP2_HEADER_PATH]: options.path - }; - utils$1.forEach(headers, (header, name) => { - name.charAt(0) !== ':' && (http2Headers[name] = header); - }); - const req = session.request(http2Headers); - req.once('response', responseHeaders => { - const response = req; //duplex - - responseHeaders = Object.assign({}, responseHeaders); - const status = responseHeaders[HTTP2_HEADER_STATUS]; - delete responseHeaders[HTTP2_HEADER_STATUS]; - response.headers = responseHeaders; - response.statusCode = +status; - cb(response); - }); - return req; - } -}; - -/*eslint consistent-return:0*/ -var httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { - return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { - const own = key => utils$1.hasOwnProp(config, key) ? config[key] : undefined; - let data = own('data'); - let lookup = own('lookup'); - let family = own('family'); - let httpVersion = own('httpVersion'); - if (httpVersion === undefined) httpVersion = 1; - let http2Options = own('http2Options'); - const responseType = own('responseType'); - const responseEncoding = own('responseEncoding'); - const method = config.method.toUpperCase(); - let isDone; - let rejected = false; - let req; - let connectPhaseTimer; - httpVersion = +httpVersion; - if (Number.isNaN(httpVersion)) { - throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`); - } - if (httpVersion !== 1 && httpVersion !== 2) { - throw TypeError(`Unsupported protocol version '${httpVersion}'`); - } - const isHttp2 = httpVersion === 2; - if (lookup) { - const _lookup = callbackify(lookup, value => utils$1.isArray(value) ? value : [value]); - // hotfix to support opt.all option which is required for node 20.x - lookup = (hostname, opt, cb) => { - _lookup(hostname, opt, (err, arg0, arg1) => { - if (err) { - return cb(err); - } - const addresses = utils$1.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; - opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); - }); - }; - } - const abortEmitter = new events.EventEmitter(); - function abort(reason) { - try { - abortEmitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); - } catch (err) { - console.warn('emit error', err); - } - } - function clearConnectPhaseTimer() { - if (connectPhaseTimer) { - clearTimeout(connectPhaseTimer); - connectPhaseTimer = null; - } - } - function createTimeoutError() { - let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; - const transitional = config.transitional || transitionalDefaults; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - return new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, req); - } - abortEmitter.once('abort', reject); - const onFinished = () => { - clearConnectPhaseTimer(); - if (config.cancelToken) { - config.cancelToken.unsubscribe(abort); - } - if (config.signal) { - config.signal.removeEventListener('abort', abort); - } - abortEmitter.removeAllListeners(); - }; - if (config.cancelToken || config.signal) { - config.cancelToken && config.cancelToken.subscribe(abort); - if (config.signal) { - config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); - } - } - onDone((response, isRejected) => { - isDone = true; - clearConnectPhaseTimer(); - if (isRejected) { - rejected = true; - onFinished(); - return; - } - const { - data - } = response; - if (data instanceof stream.Readable || data instanceof stream.Duplex) { - const offListeners = stream.finished(data, () => { - offListeners(); - onFinished(); - }); - } else { - onFinished(); - } - }); - - // Parse url - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined); - const protocol = parsed.protocol || supportedProtocols[0]; - if (protocol === 'data:') { - // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set. - if (config.maxContentLength > -1) { - // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed. - const dataUrl = String(config.url || fullPath || ''); - const estimated = estimateDataURLDecodedBytes(dataUrl); - if (estimated > config.maxContentLength) { - return reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config)); - } - } - let convertedData; - if (method !== 'GET') { - return settle(resolve, reject, { - status: 405, - statusText: 'method not allowed', - headers: {}, - config - }); - } - try { - convertedData = fromDataURI(config.url, responseType === 'blob', { - Blob: config.env && config.env.Blob - }); - } catch (err) { - throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); - } - if (responseType === 'text') { - convertedData = convertedData.toString(responseEncoding); - if (!responseEncoding || responseEncoding === 'utf8') { - convertedData = utils$1.stripBOM(convertedData); - } - } else if (responseType === 'stream') { - convertedData = stream.Readable.from(convertedData); - } - return settle(resolve, reject, { - data: convertedData, - status: 200, - statusText: 'OK', - headers: new AxiosHeaders(), - config - }); - } - if (supportedProtocols.indexOf(protocol) === -1) { - return reject(new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config)); - } - const headers = AxiosHeaders.from(config.headers).normalize(); - - // Set User-Agent (required by some servers) - // See https://github.com/axios/axios/issues/69 - // User-Agent is specified; handle case where no UA header is desired - // Only set header if it hasn't been set in config - headers.set('User-Agent', 'axios/' + VERSION, false); - const { - onUploadProgress, - onDownloadProgress - } = config; - const maxRate = config.maxRate; - let maxUploadRate = undefined; - let maxDownloadRate = undefined; - - // support for spec compliant FormData objects - if (utils$1.isSpecCompliantForm(data)) { - const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); - data = formDataToStream(data, formHeaders => { - headers.set(formHeaders); - }, { - tag: `axios-${VERSION}-boundary`, - boundary: userBoundary && userBoundary[1] || undefined - }); - // support for https://www.npmjs.com/package/form-data api - } else if (utils$1.isFormData(data) && utils$1.isFunction(data.getHeaders) && data.getHeaders !== Object.prototype.getHeaders) { - setFormDataHeaders$1(headers, data.getHeaders(), own('formDataHeaderPolicy')); - if (!headers.hasContentLength()) { - try { - const knownLength = await util.promisify(data.getLength).call(data); - Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); - /*eslint no-empty:0*/ - } catch (e) {} - } - } else if (utils$1.isBlob(data) || utils$1.isFile(data)) { - data.size && headers.setContentType(data.type || 'application/octet-stream'); - headers.setContentLength(data.size || 0); - data = stream.Readable.from(readBlob(data)); - } else if (data && !utils$1.isStream(data)) { - if (Buffer.isBuffer(data)) ; else if (utils$1.isArrayBuffer(data)) { - data = Buffer.from(new Uint8Array(data)); - } else if (utils$1.isString(data)) { - data = Buffer.from(data, 'utf-8'); - } else { - return reject(new AxiosError('Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', AxiosError.ERR_BAD_REQUEST, config)); - } - - // Add Content-Length header if data exists - headers.setContentLength(data.length, false); - if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { - return reject(new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config)); - } - } - const contentLength = utils$1.toFiniteNumber(headers.getContentLength()); - if (utils$1.isArray(maxRate)) { - maxUploadRate = maxRate[0]; - maxDownloadRate = maxRate[1]; - } else { - maxUploadRate = maxDownloadRate = maxRate; - } - if (data && (onUploadProgress || maxUploadRate)) { - if (!utils$1.isStream(data)) { - data = stream.Readable.from(data, { - objectMode: false - }); - } - data = stream.pipeline([data, new AxiosTransformStream({ - maxRate: utils$1.toFiniteNumber(maxUploadRate) - })], utils$1.noop); - onUploadProgress && data.on('progress', flushOnFinish(data, progressEventDecorator(contentLength, progressEventReducer(asyncDecorator(onUploadProgress), false, 3)))); - } - - // HTTP basic authentication - let auth = undefined; - const configAuth = own('auth'); - if (configAuth) { - const username = configAuth.username || ''; - const password = configAuth.password || ''; - auth = username + ':' + password; - } - if (!auth && parsed.username) { - const urlUsername = decodeURIComponentSafe(parsed.username); - const urlPassword = decodeURIComponentSafe(parsed.password); - auth = urlUsername + ':' + urlPassword; - } - auth && headers.delete('authorization'); - let path$1; - try { - path$1 = buildURL(parsed.pathname + parsed.search, config.params, config.paramsSerializer).replace(/^\?/, ''); - } catch (err) { - const customErr = new Error(err.message); - customErr.config = config; - customErr.url = config.url; - customErr.exists = true; - return reject(customErr); - } - headers.set('Accept-Encoding', 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false); - - // Null-prototype to block prototype pollution gadgets on properties read - // directly by Node's http.request (e.g. insecureHTTPParser, lookup). - const options = Object.assign(Object.create(null), { - path: path$1, - method: method, - headers: toByteStringHeaderObject(headers), - agents: { - http: config.httpAgent, - https: config.httpsAgent - }, - auth, - protocol, - family, - beforeRedirect: dispatchBeforeRedirect, - beforeRedirects: Object.create(null), - http2Options - }); - - // cacheable-lookup integration hotfix - !utils$1.isUndefined(lookup) && (options.lookup = lookup); - if (config.socketPath) { - if (typeof config.socketPath !== 'string') { - return reject(new AxiosError('socketPath must be a string', AxiosError.ERR_BAD_OPTION_VALUE, config)); - } - if (config.allowedSocketPaths != null) { - const allowed = Array.isArray(config.allowedSocketPaths) ? config.allowedSocketPaths : [config.allowedSocketPaths]; - const resolvedSocket = path.resolve(config.socketPath); - const isAllowed = allowed.some(entry => typeof entry === 'string' && path.resolve(entry) === resolvedSocket); - if (!isAllowed) { - return reject(new AxiosError(`socketPath "${config.socketPath}" is not permitted by allowedSocketPaths`, AxiosError.ERR_BAD_OPTION_VALUE, config)); - } - } - options.socketPath = config.socketPath; - } else { - options.hostname = parsed.hostname.startsWith('[') ? parsed.hostname.slice(1, -1) : parsed.hostname; - options.port = parsed.port; - setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path, false, config.httpsAgent); - } - let transport; - let isNativeTransport = false; - const isHttpsRequest = isHttps.test(options.protocol); - // Don't clobber a CONNECT-tunneling agent installed by setProxy() for an - // HTTPS target. - if (options.agent == null) { - options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; - } - if (isHttp2) { - transport = http2Transport; - } else { - const configTransport = own('transport'); - if (configTransport) { - transport = configTransport; - } else if (config.maxRedirects === 0) { - transport = isHttpsRequest ? https : http; - isNativeTransport = true; - } else { - if (config.maxRedirects) { - options.maxRedirects = config.maxRedirects; - } - const configBeforeRedirect = own('beforeRedirect'); - if (configBeforeRedirect) { - options.beforeRedirects.config = configBeforeRedirect; - } - transport = isHttpsRequest ? httpsFollow : httpFollow; - } - } - if (config.maxBodyLength > -1) { - options.maxBodyLength = config.maxBodyLength; - } else { - // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited - options.maxBodyLength = Infinity; - } - - // Always set an explicit own value so a polluted - // Object.prototype.insecureHTTPParser cannot enable the lenient parser - // through Node's internal options copy - options.insecureHTTPParser = Boolean(own('insecureHTTPParser')); - - // Create the request - req = transport.request(options, function handleResponse(res) { - clearConnectPhaseTimer(); - if (req.destroyed) return; - const streams = [res]; - const responseLength = utils$1.toFiniteNumber(res.headers['content-length']); - if (onDownloadProgress || maxDownloadRate) { - const transformStream = new AxiosTransformStream({ - maxRate: utils$1.toFiniteNumber(maxDownloadRate) - }); - onDownloadProgress && transformStream.on('progress', flushOnFinish(transformStream, progressEventDecorator(responseLength, progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)))); - streams.push(transformStream); - } - - // decompress the response body transparently if required - let responseStream = res; - - // return the last request in case of redirects - const lastRequest = res.req || req; - - // if decompress disabled we should not decompress - if (config.decompress !== false && res.headers['content-encoding']) { - // if no content, but headers still say that it is encoded, - // remove the header not confuse downstream operations - if (method === 'HEAD' || res.statusCode === 204) { - delete res.headers['content-encoding']; - } - switch ((res.headers['content-encoding'] || '').toLowerCase()) { - /*eslint default-case:0*/ - case 'gzip': - case 'x-gzip': - case 'compress': - case 'x-compress': - // add the unzipper to the body stream processing pipeline - streams.push(zlib.createUnzip(zlibOptions)); - - // remove the content-encoding in order to not confuse downstream operations - delete res.headers['content-encoding']; - break; - case 'deflate': - streams.push(new ZlibHeaderTransformStream()); - - // add the unzipper to the body stream processing pipeline - streams.push(zlib.createUnzip(zlibOptions)); - - // remove the content-encoding in order to not confuse downstream operations - delete res.headers['content-encoding']; - break; - case 'br': - if (isBrotliSupported) { - streams.push(zlib.createBrotliDecompress(brotliOptions)); - delete res.headers['content-encoding']; - } - } - } - responseStream = streams.length > 1 ? stream.pipeline(streams, utils$1.noop) : streams[0]; - const response = { - status: res.statusCode, - statusText: res.statusMessage, - headers: new AxiosHeaders(res.headers), - config, - request: lastRequest - }; - if (responseType === 'stream') { - // Enforce maxContentLength on streamed responses; previously this - // was applied only to buffered responses. - if (config.maxContentLength > -1) { - const limit = config.maxContentLength; - const source = responseStream; - async function* enforceMaxContentLength() { - let totalResponseBytes = 0; - for await (const chunk of source) { - totalResponseBytes += chunk.length; - if (totalResponseBytes > limit) { - throw new AxiosError('maxContentLength size of ' + limit + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, lastRequest); - } - yield chunk; - } - } - responseStream = stream.Readable.from(enforceMaxContentLength(), { - objectMode: false - }); - } - response.data = responseStream; - settle(resolve, reject, response); - } else { - const responseBuffer = []; - let totalResponseBytes = 0; - responseStream.on('data', function handleStreamData(chunk) { - responseBuffer.push(chunk); - totalResponseBytes += chunk.length; - - // make sure the content length is not over the maxContentLength if specified - if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { - // stream.destroy() emit aborted event before calling reject() on Node.js v16 - rejected = true; - responseStream.destroy(); - abort(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); - } - }); - responseStream.on('aborted', function handlerStreamAborted() { - if (rejected) { - return; - } - const err = new AxiosError('stream has been aborted', AxiosError.ERR_BAD_RESPONSE, config, lastRequest, response); - responseStream.destroy(err); - reject(err); - }); - responseStream.on('error', function handleStreamError(err) { - if (rejected) return; - reject(AxiosError.from(err, null, config, lastRequest, response)); - }); - responseStream.on('end', function handleStreamEnd() { - try { - let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); - if (responseType !== 'arraybuffer') { - responseData = responseData.toString(responseEncoding); - if (!responseEncoding || responseEncoding === 'utf8') { - responseData = utils$1.stripBOM(responseData); - } - } - response.data = responseData; - } catch (err) { - return reject(AxiosError.from(err, null, config, response.request, response)); - } - settle(resolve, reject, response); - }); - } - abortEmitter.once('abort', err => { - if (!responseStream.destroyed) { - responseStream.emit('error', err); - responseStream.destroy(); - } - }); - }); - abortEmitter.once('abort', err => { - if (req.close) { - req.close(); - } else { - req.destroy(err); - } - }); - - // Handle errors - req.on('error', function handleRequestError(err) { - reject(AxiosError.from(err, null, config, req)); - }); - - // set tcp keep alive to prevent drop connection by peer - // Track every socket bound to this outer RedirectableRequest so a single - // 'close' listener can release ownership on all of them. follow-redirects - // re-emits the 'socket' event for each hop's native request onto the same - // outer request, so attaching per-request listeners inside this handler - // would accumulate across hops and trigger MaxListenersExceededWarning at - // >= 11 redirects. Clearing only the last-bound socket would leave stale - // kAxiosCurrentReq refs on earlier hop sockets returned to the keep-alive - // pool, causing an idle-pool 'error' to be attributed to a closed req. - const boundSockets = new Set(); - req.on('socket', function handleRequestSocket(socket) { - // default interval of sending ack packet is 1 minute - socket.setKeepAlive(true, 1000 * 60); - - // Install a single 'error' listener per socket (not per request) to avoid - // accumulating listeners on pooled keep-alive sockets that get reassigned - // to new requests before the previous request's 'close' fires (issue #10780). - // The listener is bound to the socket's currently-active request via a - // symbol, which is swapped as the socket is reassigned. - if (!socket[kAxiosSocketListener]) { - socket.on('error', function handleSocketError(err) { - const current = socket[kAxiosCurrentReq]; - if (current && !current.destroyed) { - current.destroy(err); - } - }); - socket[kAxiosSocketListener] = true; - } - socket[kAxiosCurrentReq] = req; - boundSockets.add(socket); - }); - req.once('close', function clearCurrentReq() { - clearConnectPhaseTimer(); - for (const socket of boundSockets) { - if (socket[kAxiosCurrentReq] === req) { - socket[kAxiosCurrentReq] = null; - } - } - boundSockets.clear(); - }); - - // Handle request timeout - if (config.timeout) { - // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. - const timeout = parseInt(config.timeout, 10); - if (Number.isNaN(timeout)) { - abort(new AxiosError('error trying to parse `config.timeout` to int', AxiosError.ERR_BAD_OPTION_VALUE, config, req)); - return; - } - const handleTimeout = function handleTimeout() { - if (isDone) return; - abort(createTimeoutError()); - }; - if (isNativeTransport && timeout > 0) { - // Native ClientRequest#setTimeout starts from the socket lifecycle and - // may not fire while TCP connect is still pending. Mirror the - // follow-redirects wall-clock timer for the maxRedirects === 0 path. - connectPhaseTimer = setTimeout(handleTimeout, timeout); - } - - // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. - // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. - // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. - // And then these socket which be hang up will devouring CPU little by little. - // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. - req.setTimeout(timeout, handleTimeout); - } else { - // explicitly reset the socket timeout value for a possible `keep-alive` request - req.setTimeout(0); - } - - // Send the request - if (utils$1.isStream(data)) { - let ended = false; - let errored = false; - data.on('end', () => { - ended = true; - }); - data.once('error', err => { - errored = true; - req.destroy(err); - }); - data.on('close', () => { - if (!ended && !errored) { - abort(new CanceledError('Request stream has been aborted', config, req)); - } - }); - - // Enforce maxBodyLength for streamed uploads on the native http/https - // transport (maxRedirects === 0); follow-redirects enforces it on the - // other path. - let uploadStream = data; - if (config.maxBodyLength > -1 && config.maxRedirects === 0) { - const limit = config.maxBodyLength; - let bytesSent = 0; - uploadStream = stream.pipeline([data, new stream.Transform({ - transform(chunk, _enc, cb) { - bytesSent += chunk.length; - if (bytesSent > limit) { - return cb(new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config, req)); - } - cb(null, chunk); - } - })], utils$1.noop); - uploadStream.on('error', err => { - if (!req.destroyed) req.destroy(err); - }); - } - uploadStream.pipe(req); - } else { - data && req.write(data); - req.end(); - } - }); -}; - -var isURLSameOrigin = platform.hasStandardBrowserEnv ? ((origin, isMSIE) => url => { - url = new URL(url, platform.origin); - return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port); -})(new URL(platform.origin), platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)) : () => true; - -var cookies = platform.hasStandardBrowserEnv ? -// Standard browser envs support document.cookie -{ - write(name, value, expires, path, domain, secure, sameSite) { - if (typeof document === 'undefined') return; - const cookie = [`${name}=${encodeURIComponent(value)}`]; - if (utils$1.isNumber(expires)) { - cookie.push(`expires=${new Date(expires).toUTCString()}`); - } - if (utils$1.isString(path)) { - cookie.push(`path=${path}`); - } - if (utils$1.isString(domain)) { - cookie.push(`domain=${domain}`); - } - if (secure === true) { - cookie.push('secure'); - } - if (utils$1.isString(sameSite)) { - cookie.push(`SameSite=${sameSite}`); - } - document.cookie = cookie.join('; '); - }, - read(name) { - if (typeof document === 'undefined') return null; - // Match name=value by splitting on the semicolon separator instead of building a - // RegExp from `name` — interpolating an unescaped string into a RegExp would let - // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or - // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or - // "; ", so ignore optional whitespace before each cookie name. - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].replace(/^\s+/, ''); - const eq = cookie.indexOf('='); - if (eq !== -1 && cookie.slice(0, eq) === name) { - return decodeURIComponent(cookie.slice(eq + 1)); - } - } - return null; - }, - remove(name) { - this.write(name, '', Date.now() - 86400000, '/'); - } -} : -// Non-standard browser env (web workers, react-native) lack needed support. -{ - write() {}, - read() { - return null; - }, - remove() {} -}; - -const headersToObject = thing => thing instanceof AxiosHeaders ? { - ...thing -} : thing; - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ -function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - - // Use a null-prototype object so that downstream reads such as `config.auth` - // or `config.baseURL` cannot inherit polluted values from Object.prototype. - // `hasOwnProperty` is restored as a non-enumerable own slot to preserve - // ergonomics for user code that relies on it. - const config = Object.create(null); - Object.defineProperty(config, 'hasOwnProperty', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: Object.prototype.hasOwnProperty, - enumerable: false, - writable: true, - configurable: true - }); - function getMergedValue(target, source, prop, caseless) { - if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) { - return utils$1.merge.call({ - caseless - }, target, source); - } else if (utils$1.isPlainObject(source)) { - return utils$1.merge({}, source); - } else if (utils$1.isArray(source)) { - return source.slice(); - } - return source; - } - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a, prop, caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!utils$1.isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!utils$1.isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (utils$1.hasOwnProp(config2, prop)) { - return getMergedValue(a, b); - } else if (utils$1.hasOwnProp(config1, prop)) { - return getMergedValue(undefined, a); - } - } - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - allowedSocketPaths: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true) - }; - utils$1.forEach(Object.keys({ - ...config1, - ...config2 - }), function computeConfigValue(prop) { - if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; - const merge = utils$1.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - const a = utils$1.hasOwnProp(config1, prop) ? config1[prop] : undefined; - const b = utils$1.hasOwnProp(config2, prop) ? config2[prop] : undefined; - const configValue = merge(a, b, prop); - utils$1.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); - }); - return config; -} - -const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; -function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -/** - * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). - * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. - * - * @param {string} str The string to encode - * - * @returns {string} UTF-8 bytes as a Latin-1 string - */ -const encodeUTF8 = str => encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => String.fromCharCode(parseInt(hex, 16))); -var resolveConfig = config => { - const newConfig = mergeConfig({}, config); - - // Read only own properties to prevent prototype pollution gadgets - // (e.g. Object.prototype.baseURL = 'https://evil.com'). - const own = key => utils$1.hasOwnProp(newConfig, key) ? newConfig[key] : undefined; - const data = own('data'); - let withXSRFToken = own('withXSRFToken'); - const xsrfHeaderName = own('xsrfHeaderName'); - const xsrfCookieName = own('xsrfCookieName'); - let headers = own('headers'); - const auth = own('auth'); - const baseURL = own('baseURL'); - const allowAbsoluteUrls = own('allowAbsoluteUrls'); - const url = own('url'); - newConfig.headers = headers = AxiosHeaders.from(headers); - newConfig.url = buildURL(buildFullPath(baseURL, url, allowAbsoluteUrls), config.params, config.paramsSerializer); - - // HTTP basic authentication - if (auth) { - headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))); - } - if (utils$1.isFormData(data)) { - if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // browser handles it - } else if (utils$1.isFunction(data.getHeaders)) { - // Node.js FormData (like form-data package) - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (platform.hasStandardBrowserEnv) { - if (utils$1.isFunction(withXSRFToken)) { - withXSRFToken = withXSRFToken(newConfig); - } - - // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) - // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking - // the XSRF token cross-origin. - const shouldSendXSRF = withXSRFToken === true || withXSRFToken == null && isURLSameOrigin(newConfig.url); - if (shouldSendXSRF) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - return newConfig; -}; - -const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; -var xhrAdapter = isXHRAdapterSupported && function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); - let { - responseType, - onUploadProgress, - onDownloadProgress - } = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - let request = new XMLHttpRequest(); - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - function onloadend() { - if (!request) { - return; - } - // Prepare the response - const responseHeaders = AxiosHeaders.from('getAllResponseHeaders' in request && request.getAllResponseHeaders()); - const responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request - }; - settle(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - - // Clean up request - request = null; - } - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.startsWith('file:'))) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError(event) { - // Browsers deliver a ProgressEvent in XHR onerror - // (message may be empty; when present, surface it) - // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event - const msg = event && event.message ? event.message : 'Network Error'; - const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); - // attach the underlying event for consumers who want details - err.event = event || null; - reject(err); - done(); - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; - const transitional = _config.transitional || transitionalDefaults; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - utils$1.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!utils$1.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); - request.upload.addEventListener('progress', uploadThrottled); - request.upload.addEventListener('loadend', flushUpload); - } - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = cancel => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); - request.abort(); - done(); - request = null; - }; - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); - } - } - const protocol = parseProtocol(_config.url); - if (protocol && !platform.protocols.includes(protocol)) { - reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); - return; - } - - // Send the request - request.send(requestData || null); - }); -}; - -const composeSignals = (signals, timeout) => { - signals = signals ? signals.filter(Boolean) : []; - if (!timeout && !signals.length) { - return; - } - const controller = new AbortController(); - let aborted = false; - const onabort = function (reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); - } - }; - let timer = timeout && setTimeout(() => { - timer = null; - onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); - }, timeout); - const unsubscribe = () => { - if (!signals) { - return; - } - timer && clearTimeout(timer); - timer = null; - signals.forEach(signal => { - signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); - }); - signals = null; - }; - signals.forEach(signal => signal.addEventListener('abort', onabort)); - const { - signal - } = controller; - signal.unsubscribe = () => utils$1.asap(unsubscribe); - return signal; -}; - -const streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - if (len < chunkSize) { - yield chunk; - return; - } - let pos = 0; - let end; - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -}; -const readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -}; -const readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - const reader = stream.getReader(); - try { - for (;;) { - const { - done, - value - } = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -}; -const trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - let bytes = 0; - let done; - let _onFinish = e => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - return new ReadableStream({ - async pull(controller) { - try { - const { - done, - value - } = await iterator.next(); - if (done) { - _onFinish(); - controller.close(); - return; - } - let len = value.byteLength; - if (onProgress) { - let loadedBytes = bytes += len; - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - } - }, { - highWaterMark: 2 - }); -}; - -const DEFAULT_CHUNK_SIZE = 64 * 1024; -const { - isFunction -} = utils$1; -const test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false; - } -}; -const factory = env => { - const globalObject = utils$1.global !== undefined && utils$1.global !== null ? utils$1.global : globalThis; - const { - ReadableStream, - TextEncoder - } = globalObject; - env = utils$1.merge.call({ - skipUndefined: true - }, { - Request: globalObject.Request, - Response: globalObject.Response - }, env); - const { - fetch: envFetch, - Request, - Response - } = env; - const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; - const isRequestSupported = isFunction(Request); - const isResponseSupported = isFunction(Response); - if (!isFetchSupported) { - return false; - } - const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); - const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? (encoder => str => encoder.encode(str))(new TextEncoder()) : async str => new Uint8Array(await new Request(str).arrayBuffer())); - const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => { - let duplexAccessed = false; - const request = new Request(platform.origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - } - }); - const hasContentType = request.headers.has('Content-Type'); - if (request.body != null) { - request.body.cancel(); - } - return duplexAccessed && !hasContentType; - }); - const supportsResponseStream = isResponseSupported && isReadableStreamSupported && test(() => utils$1.isReadableStream(new Response('').body)); - const resolvers = { - stream: supportsResponseStream && (res => res.body) - }; - isFetchSupported && (() => { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => { - !resolvers[type] && (resolvers[type] = (res, config) => { - let method = res && res[type]; - if (method) { - return method.call(res); - } - throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config); - }); - }); - })(); - const getBodyLength = async body => { - if (body == null) { - return 0; - } - if (utils$1.isBlob(body)) { - return body.size; - } - if (utils$1.isSpecCompliantForm(body)) { - const _request = new Request(platform.origin, { - method: 'POST', - body - }); - return (await _request.arrayBuffer()).byteLength; - } - if (utils$1.isArrayBufferView(body) || utils$1.isArrayBuffer(body)) { - return body.byteLength; - } - if (utils$1.isURLSearchParams(body)) { - body = body + ''; - } - if (utils$1.isString(body)) { - return (await encodeText(body)).byteLength; - } - }; - const resolveBodyLength = async (headers, body) => { - const length = utils$1.toFiniteNumber(headers.getContentLength()); - return length == null ? getBodyLength(body) : length; - }; - return async config => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = 'same-origin', - fetchOptions, - maxContentLength, - maxBodyLength - } = resolveConfig(config); - const hasMaxContentLength = utils$1.isNumber(maxContentLength) && maxContentLength > -1; - const hasMaxBodyLength = utils$1.isNumber(maxBodyLength) && maxBodyLength > -1; - let _fetch = envFetch || fetch; - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout); - let request = null; - const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => { - composedSignal.unsubscribe(); - }); - let requestContentLength; - try { - // Enforce maxContentLength for data: URLs up-front so we never materialize - // an oversized payload. The HTTP adapter applies the same check (see http.js - // "if (protocol === 'data:')" branch). - if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { - const estimated = estimateDataURLDecodedBytes(url); - if (estimated > maxContentLength) { - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - } - } - - // Enforce maxBodyLength against the outbound request body before dispatch. - // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than - // maxBodyLength limit'). Skip when the body length cannot be determined - // (e.g. a live ReadableStream supplied by the caller). - if (hasMaxBodyLength && method !== 'get' && method !== 'head') { - const outboundLength = await resolveBodyLength(headers, data); - if (typeof outboundLength === 'number' && isFinite(outboundLength) && outboundLength > maxBodyLength) { - throw new AxiosError('Request body larger than maxBodyLength limit', AxiosError.ERR_BAD_REQUEST, config, request); - } - } - if (onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) { - let _request = new Request(url, { - method: 'POST', - body: data, - duplex: 'half' - }); - let contentTypeHeader; - if (utils$1.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader); - } - if (_request.body) { - const [onProgress, flush] = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))); - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - if (!utils$1.isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; - - // If data is FormData and Content-Type is multipart/form-data without boundary, - // delete it so fetch can set it correctly with the boundary - if (utils$1.isFormData(data)) { - const contentType = headers.getContentType(); - if (contentType && /^multipart\/form-data/i.test(contentType) && !/boundary=/i.test(contentType)) { - headers.delete('content-type'); - } - } - - // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) - headers.set('User-Agent', 'axios/' + VERSION, false); - const resolvedOptions = { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: toByteStringHeaderObject(headers.normalize()), - body: data, - duplex: 'half', - credentials: isCredentialsSupported ? withCredentials : undefined - }; - request = isRequestSupported && new Request(url, resolvedOptions); - let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions)); - - // Cheap pre-check: if the server honestly declares a content-length that - // already exceeds the cap, reject before we start streaming. - if (hasMaxContentLength) { - const declaredLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - if (declaredLength != null && declaredLength > maxContentLength) { - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - } - } - const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - if (supportsResponseStream && response.body && (onDownloadProgress || hasMaxContentLength || isStreamResponse && unsubscribe)) { - const options = {}; - ['status', 'statusText', 'headers'].forEach(prop => { - options[prop] = response[prop]; - }); - const responseContentLength = utils$1.toFiniteNumber(response.headers.get('content-length')); - const [onProgress, flush] = onDownloadProgress && progressEventDecorator(responseContentLength, progressEventReducer(asyncDecorator(onDownloadProgress), true)) || []; - let bytesRead = 0; - const onChunkProgress = loadedBytes => { - if (hasMaxContentLength) { - bytesRead = loadedBytes; - if (bytesRead > maxContentLength) { - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - } - } - onProgress && onProgress(loadedBytes); - }; - response = new Response(trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), options); - } - responseType = responseType || 'text'; - let responseData = await resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config); - - // Fallback enforcement for environments without ReadableStream support - // (legacy runtimes). Detect materialized size from typed output; skip - // streams/Response passthrough since the user will read those themselves. - if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { - let materializedSize; - if (responseData != null) { - if (typeof responseData.byteLength === 'number') { - materializedSize = responseData.byteLength; - } else if (typeof responseData.size === 'number') { - materializedSize = responseData.size; - } else if (typeof responseData === 'string') { - materializedSize = typeof TextEncoder === 'function' ? new TextEncoder().encode(responseData).byteLength : responseData.length; - } - } - if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { - throw new AxiosError('maxContentLength size of ' + maxContentLength + ' exceeded', AxiosError.ERR_BAD_RESPONSE, config, request); - } - } - !isStreamResponse && unsubscribe && unsubscribe(); - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request - }); - }); - } catch (err) { - unsubscribe && unsubscribe(); - - // Safari can surface fetch aborts as a DOMException-like object whose - // branded getters throw. Prefer our composed signal reason before reading - // the caught error, preserving timeout vs cancellation semantics. - if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) { - const canceledError = composedSignal.reason; - canceledError.config = config; - request && (canceledError.request = request); - err !== canceledError && (canceledError.cause = err); - throw canceledError; - } - if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { - throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, err && err.response), { - cause: err.cause || err - }); - } - throw AxiosError.from(err, err && err.code, config, request, err && err.response); - } - }; -}; -const seedCache = new Map(); -const getFetch = config => { - let env = config && config.env || {}; - const { - fetch, - Request, - Response - } = env; - const seeds = [Request, Response, fetch]; - let len = seeds.length, - i = len, - seed, - target, - map = seedCache; - while (i--) { - seed = seeds[i]; - target = map.get(seed); - target === undefined && map.set(seed, target = i ? new Map() : factory(env)); - map = target; - } - return target; -}; -getFetch(); - -/** - * Known adapters mapping. - * Provides environment-specific adapters for Axios: - * - `http` for Node.js - * - `xhr` for browsers - * - `fetch` for fetch API-based requests - * - * @type {Object} - */ -const knownAdapters = { - http: httpAdapter, - xhr: xhrAdapter, - fetch: { - get: getFetch - } -}; - -// Assign adapter names for easier debugging and identification -utils$1.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - // Null-proto descriptors so a polluted Object.prototype.get cannot turn - // these data descriptors into accessor descriptors on the way in. - Object.defineProperty(fn, 'name', { - __proto__: null, - value - }); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', { - __proto__: null, - value - }); - } -}); - -/** - * Render a rejection reason string for unknown or unsupported adapters - * - * @param {string} reason - * @returns {string} - */ -const renderReason = reason => `- ${reason}`; - -/** - * Check if the adapter is resolved (function, null, or false) - * - * @param {Function|null|false} adapter - * @returns {boolean} - */ -const isResolvedHandle = adapter => utils$1.isFunction(adapter) || adapter === null || adapter === false; - -/** - * Get the first suitable adapter from the provided list. - * Tries each adapter in order until a supported one is found. - * Throws an AxiosError if no adapter is suitable. - * - * @param {Array|string|Function} adapters - Adapter(s) by name or function. - * @param {Object} config - Axios request configuration - * @throws {AxiosError} If no suitable adapter is available - * @returns {Function} The resolved adapter function - */ -function getAdapter(adapters, config) { - adapters = utils$1.isArray(adapters) ? adapters : [adapters]; - const { - length - } = adapters; - let nameOrAdapter; - let adapter; - const rejectedReasons = {}; - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - adapter = nameOrAdapter; - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - if (adapter === undefined) { - throw new AxiosError(`Unknown adapter '${id}'`); - } - } - if (adapter && (utils$1.isFunction(adapter) || (adapter = adapter.get(config)))) { - break; - } - rejectedReasons[id || '#' + i] = adapter; - } - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map(([id, state]) => `adapter ${id} ` + (state === false ? 'is not supported by the environment' : 'is not available in the build')); - let s = length ? reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified'; - throw new AxiosError(`There is no suitable adapter to dispatch the request ` + s, 'ERR_NOT_SUPPORT'); - } - return adapter; -} - -/** - * Exports Axios adapters and utility to resolve an adapter - */ -var adapters = { - /** - * Resolve an adapter from a list of adapter names or functions. - * @type {Function} - */ - getAdapter, - /** - * Exposes all known adapters - * @type {Object} - */ - adapters: knownAdapters -}; - -/** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - if (config.signal && config.signal.aborted) { - throw new CanceledError(null, config); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ -function dispatchRequest(config) { - throwIfCancellationRequested(config); - config.headers = AxiosHeaders.from(config.headers); - - // Transform request data - config.data = transformData.call(config, config.transformRequest); - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Expose the current response on config so that transformResponse can - // attach it to any AxiosError it throws (e.g. on JSON parse failure). - // We clean it up afterwards to avoid polluting the config object. - config.response = response; - try { - response.data = transformData.call(config, config.transformResponse, response); - } finally { - delete config.response; - } - response.headers = AxiosHeaders.from(response.headers); - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - config.response = reason.response; - try { - reason.response.data = transformData.call(config, config.transformResponse, reason.response); - } finally { - delete config.response; - } - reason.response.headers = AxiosHeaders.from(reason.response.headers); - } - } - return Promise.reject(reason); - }); -} - -const validators$1 = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { - validators$1[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); -const deprecatedWarnings = {}; - -/** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ -validators$1.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return '[Axios v' + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED); - } - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future')); - } - return validator ? validator(value, opt, opts) : true; - }; -}; -validators$1.spelling = function spelling(correctSpelling) { - return (value, opt) => { - // eslint-disable-next-line no-console - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - }; -}; - -/** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - // Use hasOwnProperty so a polluted Object.prototype. cannot supply - // a non-function validator and cause a TypeError. - const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; - if (validator) { - const value = options[opt]; - const result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); - } - } -} -var validator = { - assertOptions, - validators: validators$1 -}; - -const validators = validator.validators; - -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ -class Axios { - constructor(instanceConfig) { - this.defaults = instanceConfig || {}; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error(); - - // slice off the Error: ... line - const stack = (() => { - if (!dummy.stack) { - return ''; - } - const firstNewlineIndex = dummy.stack.indexOf('\n'); - return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); - })(); - try { - if (!err.stack) { - err.stack = stack; - // match without the 2 top stack lines - } else if (stack) { - const firstNewlineIndex = stack.indexOf('\n'); - const secondNewlineIndex = firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); - const stackWithoutTwoTopLines = secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); - if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { - err.stack += '\n' + stack; - } - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - throw err; - } - } - _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - config = mergeConfig(this.defaults, config); - const { - transitional, - paramsSerializer, - headers - } = config; - if (transitional !== undefined) { - validator.assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean), - legacyInterceptorReqResOrdering: validators.transitional(validators.boolean) - }, false); - } - if (paramsSerializer != null) { - if (utils$1.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer - }; - } else { - validator.assertOptions(paramsSerializer, { - encode: validators.function, - serialize: validators.function - }, true); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) ; else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - validator.assertOptions(config, { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken') - }, true); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - let contextHeaders = headers && utils$1.merge(headers.common, headers[config.method]); - headers && utils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], method => { - delete headers[method]; - }); - config.headers = AxiosHeaders.concat(contextHeaders, headers); - - // filter out skipped interceptors - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - const transitional = config.transitional || transitionalDefaults; - const legacyInterceptorReqResOrdering = transitional && transitional.legacyInterceptorReqResOrdering; - if (legacyInterceptorReqResOrdering) { - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - } else { - requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - } - }); - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - let promise; - let i = 0; - let len; - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), undefined]; - chain.unshift(...requestInterceptorChain); - chain.push(...responseInterceptorChain); - len = chain.length; - promise = Promise.resolve(config); - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - return promise; - } - len = requestInterceptorChain.length; - let newConfig = config; - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - i = 0; - len = responseInterceptorChain.length; - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - return promise; - } - getUri(config) { - config = mergeConfig(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - return buildURL(fullPath, config.params, config.paramsSerializer); - } -} - -// Provide aliases for supported request methods -utils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function (url, config) { - return this.request(mergeConfig(config || {}, { - method, - url, - data: (config || {}).data - })); - }; -}); -utils$1.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request(mergeConfig(config || {}, { - method, - headers: isForm ? { - 'Content-Type': 'multipart/form-data' - } : {}, - url, - data - })); - }; - } - Axios.prototype[method] = generateHTTPMethod(); - - // QUERY is a safe/idempotent read method; multipart form bodies don't fit - // its semantics, so no queryForm shorthand is generated. - if (method !== 'query') { - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); - } -}); - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ -class CancelToken { - constructor(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - let resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - const token = this; - - // eslint-disable-next-line func-names - this.promise.then(cancel => { - if (!token._listeners) return; - let i = token._listeners.length; - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = onfulfilled => { - let _resolve; - // eslint-disable-next-line func-names - const promise = new Promise(resolve => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - return promise; - }; - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - token.reason = new CanceledError(message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - toAbortSignal() { - const controller = new AbortController(); - const abort = err => { - controller.abort(err); - }; - this.subscribe(abort); - controller.signal.unsubscribe = () => this.unsubscribe(abort); - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel - }; - } -} - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * const args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ -function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -function isAxiosError(payload) { - return utils$1.isObject(payload) && payload.isAxiosError === true; -} - -const HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, - WebServerIsDown: 521, - ConnectionTimedOut: 522, - OriginIsUnreachable: 523, - TimeoutOccurred: 524, - SslHandshakeFailed: 525, - InvalidSslCertificate: 526 -}; -Object.entries(HttpStatusCode).forEach(([key, value]) => { - HttpStatusCode[value] = key; -}); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - const context = new Axios(defaultConfig); - const instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils$1.extend(instance, Axios.prototype, context, { - allOwnKeys: true - }); - - // Copy context to instance - utils$1.extend(instance, context, null, { - allOwnKeys: true - }); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - return instance; -} - -// Create the default instance to be exported -const axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Expose Cancel & CancelToken -axios.CanceledError = CanceledError; -axios.CancelToken = CancelToken; -axios.isCancel = isCancel; -axios.VERSION = VERSION; -axios.toFormData = toFormData; - -// Expose AxiosError class -axios.AxiosError = AxiosError; - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = spread; - -// Expose isAxiosError -axios.isAxiosError = isAxiosError; - -// Expose mergeConfig -axios.mergeConfig = mergeConfig; -axios.AxiosHeaders = AxiosHeaders; -axios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing); -axios.getAdapter = adapters.getAdapter; -axios.HttpStatusCode = HttpStatusCode; -axios.default = axios; - -module.exports = axios; -//# sourceMappingURL=axios.cjs.map diff --git a/node_modules/axios/dist/node/axios.cjs.map b/node_modules/axios/dist/node/axios.cjs.map deleted file mode 100644 index 396e3ec..0000000 --- a/node_modules/axios/dist/node/axios.cjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.js","../../lib/helpers/parseHeaders.js","../../lib/helpers/sanitizeHeaderValue.js","../../lib/core/AxiosHeaders.js","../../lib/core/AxiosError.js","../../lib/helpers/toFormData.js","../../lib/helpers/AxiosURLSearchParams.js","../../lib/helpers/buildURL.js","../../lib/core/InterceptorManager.js","../../lib/defaults/transitional.js","../../lib/platform/node/classes/URLSearchParams.js","../../lib/platform/node/index.js","../../lib/platform/common/utils.js","../../lib/platform/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../node_modules/proxy-from-env/index.js","../../lib/env/data.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/fromDataURI.js","../../lib/helpers/AxiosTransformStream.js","../../lib/helpers/readBlob.js","../../lib/helpers/formDataToStream.js","../../lib/helpers/ZlibHeaderTransformStream.js","../../lib/helpers/callbackify.js","../../lib/helpers/shouldBypassProxy.js","../../lib/helpers/speedometer.js","../../lib/helpers/throttle.js","../../lib/helpers/progressEventReducer.js","../../lib/helpers/estimateDataURLDecodedBytes.js","../../lib/adapters/http.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/cookies.js","../../lib/core/mergeConfig.js","../../lib/helpers/resolveConfig.js","../../lib/adapters/xhr.js","../../lib/helpers/composeSignals.js","../../lib/helpers/trackStream.js","../../lib/adapters/fetch.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/helpers/validator.js","../../lib/core/Axios.js","../../lib/cancel/CancelToken.js","../../lib/helpers/spread.js","../../lib/helpers/isAxiosError.js","../../lib/helpers/HttpStatusCode.js","../../lib/axios.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n Object.getPrototypeOf(prototype) === null) &&\n !(toStringTag in val) &&\n !(iterator in val)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n const targetKey = (caseless && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n objs[i] && forEach(objs[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {},\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[(key = entry[0])] = (dest = obj[key])\n ? utils.isArray(dest)\n ? [...dest, entry[1]]\n : [dest, entry[1]]\n : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? function (value) {\n return encoder.call(this, value, encode);\n }\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n\n const _encode = (options && options.encode) || encode;\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n const serializeFn = _options && _options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT,\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const { length } = alphabet;\n const randomValues = new Uint32Array(size);\n crypto.randomFillSync(randomValues);\n for (let i = 0; i < size; i++) {\n str += alphabet[randomValues[i] % length];\n }\n\n return str;\n};\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: (typeof Blob !== 'undefined' && Blob) || null,\n },\n ALPHABET,\n generateString,\n protocols: ['http', 'https', 'file', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nfunction parseUrl(urlString) {\n try {\n return new URL(urlString);\n } catch {\n return null;\n }\n}\n\n/**\n * @param {string|object|URL} url - The URL as a string or URL instance, or a\n * compatible object (such as the result from legacy url.parse).\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nexport function getProxyForUrl(url) {\n var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY = getEnv('no_proxy').toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !hostname.endsWith(parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n","export const VERSION = \"1.16.1\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\n// RFC 2397: data:[][;base64],\n// mediatype = type/subtype followed by optional ;name=value parameters\nconst DATA_URL_PATTERN = /^([^,;]+\\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = (options && options.Blob) || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const type = match[1];\n const params = match[2];\n const encoding = match[3] ? 'base64' : 'utf8';\n const body = match[4];\n\n // RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII\n // Bare `data:,` leaves mime undefined; Blob normalises that to \"\" per spec.\n let mime;\n if (type) {\n mime = params ? type + params : type;\n } else if (params) {\n mime = 'text/plain' + params;\n }\n\n const buffer = Buffer.from(decodeURIComponent(body), encoding);\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], { type: mime });\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform {\n constructor(options) {\n options = utils.toFlatObject(\n options,\n {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15,\n },\n null,\n (prop, source) => {\n return !utils.isUndefined(source[prop]);\n }\n );\n\n super({\n readableHighWaterMark: options.chunkSize,\n });\n\n const internals = (this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null,\n });\n\n this.on('newListener', (event) => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = maxRate / divider;\n const minChunkSize =\n internals.minChunkSize !== false\n ? Math.max(internals.minChunkSize, bytesThreshold * 0.01)\n : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n };\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = now - internals.ts) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(\n _chunk,\n chunkRemainder\n ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n }\n : _callback\n );\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const { asyncIterator } = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream();\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer();\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n};\n\nexport default readBlob;\n","import util from 'util';\nimport { Readable } from 'stream';\nimport utils from '../utils.js';\nimport readBlob from './readBlob.js';\nimport platform from '../platform/index.js';\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const { escapeName } = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n const safeType = String(value.type || 'application/octet-stream').replace(/[\\r\\n]/g, '');\n headers += `Content-Type: ${safeType}${CRLF}`;\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode() {\n yield this.headers;\n\n const { value } = this;\n\n if (utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(\n /[\\r\\n\"]/g,\n (match) =>\n ({\n '\\r': '%0D',\n '\\n': '%0A',\n '\"': '%22',\n })[match]\n );\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET),\n } = options || {};\n\n if (!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 1-70 characters long');\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`,\n };\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from(\n (async function* () {\n for (const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })()\n );\n};\n\nexport default formDataToStream;\n","'use strict';\n\nimport stream from 'stream';\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) {\n // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C\n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from '../utils.js';\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn)\n ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n }\n : fn;\n};\n\nexport default callbackify;\n","const LOOPBACK_HOSTNAMES = new Set(['localhost']);\n\nconst isIPv4Loopback = (host) => {\n const parts = host.split('.');\n if (parts.length !== 4) return false;\n if (parts[0] !== '127') return false;\n return parts.every((p) => /^\\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255);\n};\n\nconst isIPv6Loopback = (host) => {\n // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1\n // First, strip any leading \"::\" by normalising with Set lookup of common forms,\n // then fall back to structural check.\n if (host === '::1') return true;\n\n // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff:\n // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1\n const v4MappedDotted = host.match(/^::ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i);\n if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]);\n\n const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);\n if (v4MappedHex) {\n const high = parseInt(v4MappedHex[1], 16);\n // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff\n return high >= 0x7f00 && high <= 0x7fff;\n }\n\n // Full-form ::1 variants: any number of zero groups followed by trailing 1\n // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001\n const groups = host.split(':');\n if (groups.length === 8) {\n for (let i = 0; i < 7; i++) {\n if (!/^0+$/.test(groups[i])) return false;\n }\n return /^0*1$/.test(groups[7]);\n }\n\n return false;\n};\n\nconst isLoopback = (host) => {\n if (!host) return false;\n if (LOOPBACK_HOSTNAMES.has(host)) return true;\n if (isIPv4Loopback(host)) return true;\n return isIPv6Loopback(host);\n};\n\nconst DEFAULT_PORTS = {\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n ftp: 21,\n};\n\nconst parseNoProxyEntry = (entry) => {\n let entryHost = entry;\n let entryPort = 0;\n\n if (entryHost.charAt(0) === '[') {\n const bracketIndex = entryHost.indexOf(']');\n\n if (bracketIndex !== -1) {\n const host = entryHost.slice(1, bracketIndex);\n const rest = entryHost.slice(bracketIndex + 1);\n\n if (rest.charAt(0) === ':' && /^\\d+$/.test(rest.slice(1))) {\n entryPort = Number.parseInt(rest.slice(1), 10);\n }\n\n return [host, entryPort];\n }\n }\n\n const firstColon = entryHost.indexOf(':');\n const lastColon = entryHost.lastIndexOf(':');\n\n if (\n firstColon !== -1 &&\n firstColon === lastColon &&\n /^\\d+$/.test(entryHost.slice(lastColon + 1))\n ) {\n entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10);\n entryHost = entryHost.slice(0, lastColon);\n }\n\n return [entryHost, entryPort];\n};\n\n// Convert IPv4-mapped IPv6 (::ffff:0:0/96 prefix) to IPv4 dotted form so both\n// sides of a NO_PROXY comparison see the same canonical address. Without this,\n// `NO_PROXY=192.168.1.5` would not match a request to `http://[::ffff:192.168.1.5]/`\n// (Node's URL parser normalises that to `[::ffff:c0a8:105]`), and vice-versa,\n// allowing the proxy-bypass policy to be circumvented by using the alternate\n// representation. Returns the input unchanged when not IPv4-mapped.\nconst IPV4_MAPPED_DOTTED_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\\d+\\.\\d+\\.\\d+\\.\\d+)$/i;\nconst IPV4_MAPPED_HEX_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i;\n\nconst unmapIPv4MappedIPv6 = (host) => {\n if (typeof host !== 'string' || host.indexOf(':') === -1) return host;\n\n const dotted = host.match(IPV4_MAPPED_DOTTED_RE);\n if (dotted) return dotted[1];\n\n const hex = host.match(IPV4_MAPPED_HEX_RE);\n if (hex) {\n const high = parseInt(hex[1], 16);\n const low = parseInt(hex[2], 16);\n return `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`;\n }\n\n return host;\n};\n\nconst normalizeNoProxyHost = (hostname) => {\n if (!hostname) {\n return hostname;\n }\n\n if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') {\n hostname = hostname.slice(1, -1);\n }\n\n return unmapIPv4MappedIPv6(hostname.replace(/\\.+$/, ''));\n};\n\nexport default function shouldBypassProxy(location) {\n let parsed;\n\n try {\n parsed = new URL(location);\n } catch (_err) {\n return false;\n }\n\n const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase();\n\n if (!noProxy) {\n return false;\n }\n\n if (noProxy === '*') {\n return true;\n }\n\n const port =\n Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0;\n\n const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase());\n\n return noProxy.split(/[\\s,]+/).some((entry) => {\n if (!entry) {\n return false;\n }\n\n let [entryHost, entryPort] = parseNoProxyEntry(entry);\n\n entryHost = normalizeNoProxyHost(entryHost);\n\n if (!entryHost) {\n return false;\n }\n\n if (entryPort && entryPort !== port) {\n return false;\n }\n\n if (entryHost.charAt(0) === '*') {\n entryHost = entryHost.slice(1);\n }\n\n if (entryHost.charAt(0) === '.') {\n return hostname.endsWith(entryHost);\n }\n\n return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost));\n });\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') {\n return Buffer.byteLength(body, 'utf8');\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit\n // but 3 UTF-8 bytes).\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from '../helpers/buildURL.js';\nimport { getProxyForUrl } from 'proxy-from-env';\nimport HttpsProxyAgent from 'https-proxy-agent';\nimport http from 'http';\nimport https from 'https';\nimport http2 from 'http2';\nimport util from 'util';\nimport { resolve as resolvePath } from 'path';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport { VERSION } from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport { EventEmitter } from 'events';\nimport formDataToStream from '../helpers/formDataToStream.js';\nimport readBlob from '../helpers/readBlob.js';\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from '../helpers/callbackify.js';\nimport shouldBypassProxy from '../helpers/shouldBypassProxy.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH,\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH,\n};\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst { http: httpFollow, https: httpsFollow } = followRedirects;\n\nconst isHttps = /https:?/;\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n// Symbols used to bind a single 'error' listener to a pooled socket and track\n// the request currently owning that socket across keep-alive reuse (issue #10780).\nconst kAxiosSocketListener = Symbol('axios.http.socketListener');\nconst kAxiosCurrentReq = Symbol('axios.http.currentReq');\n\n// Tags HttpsProxyAgent instances installed by setProxy() so the redirect path\n// can strip them without clobbering a user-supplied agent that happens to be\n// an HttpsProxyAgent.\nconst kAxiosInstalledTunnel = Symbol('axios.http.installedTunnel');\n\n// Cache of CONNECT-tunneling agents keyed by proxy config so repeat requests\n// through the same proxy reuse a single agent (and its socket pool). The\n// keyspace is bounded by the set of distinct proxy configs the process uses,\n// so unbounded growth is not a concern in practice.\nconst tunnelingAgentCache = new Map();\nconst tunnelingAgentCacheUser = new WeakMap();\n\nfunction getTunnelingAgent(agentOptions, userHttpsAgent) {\n const key =\n agentOptions.protocol +\n '//' +\n agentOptions.hostname +\n ':' +\n (agentOptions.port || '') +\n '#' +\n (agentOptions.auth || '');\n const cache = userHttpsAgent\n ? (tunnelingAgentCacheUser.get(userHttpsAgent) ||\n tunnelingAgentCacheUser.set(userHttpsAgent, new Map()).get(userHttpsAgent))\n : tunnelingAgentCache;\n let agent = cache.get(key);\n if (agent) return agent;\n // Forward the user's TLS options (custom CA, rejectUnauthorized, client cert,\n // etc.) into the tunneling agent so they apply to the origin TLS upgrade\n // performed after CONNECT. Our proxy fields take precedence on conflict.\n const merged = userHttpsAgent && userHttpsAgent.options\n ? { ...userHttpsAgent.options, ...agentOptions }\n : agentOptions;\n agent = new HttpsProxyAgent(merged);\n agent[kAxiosInstalledTunnel] = true;\n cache.set(key, agent);\n return agent;\n}\n\nconst supportedProtocols = platform.protocols.map((protocol) => {\n return protocol + ':';\n});\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream.on('end', flush).on('error', flush);\n\n return throttled;\n};\n\nclass Http2Sessions {\n constructor() {\n this.sessions = Object.create(null);\n }\n\n getSession(authority, options) {\n options = Object.assign(\n {\n sessionTimeout: 1000,\n },\n options\n );\n\n let authoritySessions = this.sessions[authority];\n\n if (authoritySessions) {\n let len = authoritySessions.length;\n\n for (let i = 0; i < len; i++) {\n const [sessionHandle, sessionOptions] = authoritySessions[i];\n if (\n !sessionHandle.destroyed &&\n !sessionHandle.closed &&\n util.isDeepStrictEqual(sessionOptions, options)\n ) {\n return sessionHandle;\n }\n }\n }\n\n const session = http2.connect(authority, options);\n\n let removed;\n\n const removeSession = () => {\n if (removed) {\n return;\n }\n\n removed = true;\n\n let entries = authoritySessions,\n len = entries.length,\n i = len;\n\n while (i--) {\n if (entries[i][0] === session) {\n if (len === 1) {\n delete this.sessions[authority];\n } else {\n entries.splice(i, 1);\n }\n if (!session.closed) {\n session.close();\n }\n return;\n }\n }\n };\n\n const originalRequestFn = session.request;\n\n const { sessionTimeout } = options;\n\n if (sessionTimeout != null) {\n let timer;\n let streamsCount = 0;\n\n session.request = function () {\n const stream = originalRequestFn.apply(this, arguments);\n\n streamsCount++;\n\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n\n stream.once('close', () => {\n if (!--streamsCount) {\n timer = setTimeout(() => {\n timer = null;\n removeSession();\n }, sessionTimeout);\n }\n });\n\n return stream;\n };\n }\n\n session.once('close', removeSession);\n\n let entry = [session, options];\n\n authoritySessions\n ? authoritySessions.push(entry)\n : (authoritySessions = this.sessions[authority] = [entry]);\n\n return session;\n }\n}\n\nconst http2Sessions = new Http2Sessions();\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object} options - The options object that was passed to the request.\n *\n * @returns {Object}\n */\nfunction dispatchBeforeRedirect(options, responseDetails, requestDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails, requestDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location, isRedirect, configHttpsAgent) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n if (!shouldBypassProxy(location)) {\n proxy = new URL(proxyUrl);\n }\n }\n }\n // On redirect re-invocation, strip any stale Proxy-Authorization header carried\n // over from the prior request (e.g. new target no longer uses a proxy, or uses\n // a different proxy). Skip on the initial request so user-supplied headers are\n // preserved. Header names are case-insensitive, so remove every case variant.\n if (isRedirect && options.headers) {\n for (const name of Object.keys(options.headers)) {\n if (name.toLowerCase() === 'proxy-authorization') {\n delete options.headers[name];\n }\n }\n }\n // Strip any tunneling agent we installed for the previous hop so a redirect\n // that drops the proxy or crosses an HTTPS↔HTTP boundary doesn't reuse a\n // stale one. Match on our Symbol marker so a user-supplied HttpsProxyAgent\n // (which won't carry the marker) is left alone.\n if (isRedirect && options.agent && options.agent[kAxiosInstalledTunnel]) {\n options.agent = undefined;\n }\n if (proxy) {\n // Read proxy fields without traversing the prototype chain. URL instances expose\n // username/password/hostname/host/port/protocol via getters on URL.prototype (so\n // direct reads are shielded), but plain object proxies — and the `auth` field\n // (which URL does not expose) — must be guarded so a polluted Object.prototype\n // (e.g. Object.prototype.auth = { username, password }) cannot inject\n // attacker-controlled credentials into the Proxy-Authorization header or\n // redirect proxying to an attacker-controlled host.\n const isProxyURL = proxy instanceof URL;\n const readProxyField = (key) =>\n isProxyURL || utils.hasOwnProp(proxy, key) ? proxy[key] : undefined;\n\n const proxyUsername = readProxyField('username');\n const proxyPassword = readProxyField('password');\n let proxyAuth = utils.hasOwnProp(proxy, 'auth') ? proxy.auth : undefined;\n\n // Basic proxy authorization\n if (proxyUsername) {\n proxyAuth = (proxyUsername || '') + ':' + (proxyPassword || '');\n }\n\n if (proxyAuth) {\n // Support proxy auth object form. Read sub-fields via own-prop checks so a\n // plain object inheriting from polluted Object.prototype cannot leak creds.\n const authIsObject = typeof proxyAuth === 'object';\n const authUsername =\n authIsObject && utils.hasOwnProp(proxyAuth, 'username') ? proxyAuth.username : undefined;\n const authPassword =\n authIsObject && utils.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined;\n const validProxyAuth = Boolean(authUsername || authPassword);\n\n if (validProxyAuth) {\n proxyAuth = (authUsername || '') + ':' + (authPassword || '');\n } else if (authIsObject) {\n throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy });\n }\n }\n\n const targetIsHttps = isHttps.test(options.protocol);\n\n if (targetIsHttps) {\n // CONNECT-tunneling path for HTTPS targets. Preserves end-to-end TLS to\n // the origin so the proxy cannot inspect the URL, headers, or body — the\n // behavior already promised by THREATMODEL.md (T-R9). HttpsProxyAgent\n // sends Proxy-Authorization on the CONNECT request only, never on the\n // wrapped TLS request, which is why we don't stamp it onto\n // options.headers here. If the user already supplied an HttpsProxyAgent,\n // they own tunneling end-to-end and we leave them alone; otherwise we\n // install our own tunneling agent and forward their TLS options (if any)\n // so a custom httpsAgent for cert pinning / rejectUnauthorized still\n // applies to the origin TLS upgrade.\n if (!(configHttpsAgent instanceof HttpsProxyAgent)) {\n const proxyHost = readProxyField('hostname') || readProxyField('host');\n const proxyPort = readProxyField('port');\n const rawProxyProtocol = readProxyField('protocol');\n const normalizedProtocol = rawProxyProtocol\n ? rawProxyProtocol.includes(':')\n ? rawProxyProtocol\n : `${rawProxyProtocol}:`\n : 'http:';\n // Bracket IPv6 literals for URL parsing; URL.hostname strips the\n // brackets again on read so the agent receives the raw form.\n const proxyHostForURL =\n proxyHost && proxyHost.includes(':') && !proxyHost.startsWith('[')\n ? `[${proxyHost}]`\n : proxyHost;\n const proxyURL = new URL(\n `${normalizedProtocol}//${proxyHostForURL}${proxyPort ? ':' + proxyPort : ''}`\n );\n const agentOptions = {\n protocol: proxyURL.protocol,\n hostname: proxyURL.hostname.replace(/^\\[|\\]$/g, ''),\n port: proxyURL.port,\n auth: proxyAuth && typeof proxyAuth === 'string' ? proxyAuth : undefined,\n };\n if (proxyURL.protocol === 'https:') {\n agentOptions.ALPNProtocols = ['http/1.1'];\n }\n const tunnelingAgent = getTunnelingAgent(agentOptions, configHttpsAgent);\n // Set both: `options.agent` is consumed by the native https.request path\n // (config.maxRedirects === 0); `options.agents.https` is consumed by\n // follow-redirects, which ignores `options.agent` when `options.agents`\n // is present.\n options.agent = tunnelingAgent;\n if (options.agents) {\n options.agents.https = tunnelingAgent;\n }\n }\n } else {\n // Forward-proxy mode for plaintext HTTP targets. The request line carries\n // the absolute URL and the proxy sees everything — acceptable for plain\n // HTTP since the wire was already plaintext.\n if (proxyAuth) {\n const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n // Preserve a user-supplied Host header (case-insensitive) so callers can override\n // the value forwarded to the proxy; otherwise default to the request URL's host.\n let hasUserHostHeader = false;\n for (const name of Object.keys(options.headers)) {\n if (name.toLowerCase() === 'host') {\n hasUserHostHeader = true;\n break;\n }\n }\n if (!hasUserHostHeader) {\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n }\n const proxyHost = readProxyField('hostname') || readProxyField('host');\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = readProxyField('port');\n options.path = location;\n const proxyProtocol = readProxyField('protocol');\n if (proxyProtocol) {\n options.protocol = proxyProtocol.includes(':') ? proxyProtocol : `${proxyProtocol}:`;\n }\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href, true, configHttpsAgent);\n };\n}\n\nconst isHttpAdapterSupported =\n typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n };\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n };\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n });\n};\n\nconst resolveFamily = ({ address, family }) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return {\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4),\n };\n};\n\nconst buildAddressEntry = (address, family) =>\n resolveFamily(utils.isObject(address) ? address : { address, family });\n\nconst http2Transport = {\n request(options, cb) {\n const authority =\n options.protocol +\n '//' +\n options.hostname +\n ':' +\n (options.port || (options.protocol === 'https:' ? 443 : 80));\n\n const { http2Options, headers } = options;\n\n const session = http2Sessions.getSession(authority, http2Options);\n\n const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } =\n http2.constants;\n\n const http2Headers = {\n [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''),\n [HTTP2_HEADER_METHOD]: options.method,\n [HTTP2_HEADER_PATH]: options.path,\n };\n\n utils.forEach(headers, (header, name) => {\n name.charAt(0) !== ':' && (http2Headers[name] = header);\n });\n\n const req = session.request(http2Headers);\n\n req.once('response', (responseHeaders) => {\n const response = req; //duplex\n\n responseHeaders = Object.assign({}, responseHeaders);\n\n const status = responseHeaders[HTTP2_HEADER_STATUS];\n\n delete responseHeaders[HTTP2_HEADER_STATUS];\n\n response.headers = responseHeaders;\n\n response.statusCode = +status;\n\n cb(response);\n });\n\n return req;\n },\n};\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported &&\n function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n let data = own('data');\n let lookup = own('lookup');\n let family = own('family');\n let httpVersion = own('httpVersion');\n if (httpVersion === undefined) httpVersion = 1;\n let http2Options = own('http2Options');\n const responseType = own('responseType');\n const responseEncoding = own('responseEncoding');\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n let connectPhaseTimer;\n\n httpVersion = +httpVersion;\n\n if (Number.isNaN(httpVersion)) {\n throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`);\n }\n\n if (httpVersion !== 1 && httpVersion !== 2) {\n throw TypeError(`Unsupported protocol version '${httpVersion}'`);\n }\n\n const isHttp2 = httpVersion === 2;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => (utils.isArray(value) ? value : [value]));\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0)\n ? arg0.map((addr) => buildAddressEntry(addr))\n : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n };\n }\n\n const abortEmitter = new EventEmitter();\n\n function abort(reason) {\n try {\n abortEmitter.emit(\n 'abort',\n !reason || reason.type ? new CanceledError(null, config, req) : reason\n );\n } catch (err) {\n console.warn('emit error', err);\n }\n }\n\n function clearConnectPhaseTimer() {\n if (connectPhaseTimer) {\n clearTimeout(connectPhaseTimer);\n connectPhaseTimer = null;\n }\n }\n\n function createTimeoutError() {\n let timeoutErrorMessage = config.timeout\n ? 'timeout of ' + config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n return new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n );\n }\n\n abortEmitter.once('abort', reject);\n\n const onFinished = () => {\n clearConnectPhaseTimer();\n\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n abortEmitter.removeAllListeners();\n };\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n onDone((response, isRejected) => {\n isDone = true;\n clearConnectPhaseTimer();\n\n if (isRejected) {\n rejected = true;\n onFinished();\n return;\n }\n\n const { data } = response;\n\n if (data instanceof stream.Readable || data instanceof stream.Duplex) {\n const offListeners = stream.finished(data, () => {\n offListeners();\n onFinished();\n });\n } else {\n onFinished();\n }\n });\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n if (config.maxContentLength > -1) {\n // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed.\n const dataUrl = String(config.url || fullPath || '');\n const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n if (estimated > config.maxContentLength) {\n return reject(\n new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config\n )\n );\n }\n }\n\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config,\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob,\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config,\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(\n new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config)\n );\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const { onUploadProgress, onDownloadProgress } = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(\n data,\n (formHeaders) => {\n headers.set(formHeaders);\n },\n {\n tag: `axios-${VERSION}-boundary`,\n boundary: (userBoundary && userBoundary[1]) || undefined,\n }\n );\n // support for https://www.npmjs.com/package/form-data api\n } else if (\n utils.isFormData(data) &&\n utils.isFunction(data.getHeaders) &&\n data.getHeaders !== Object.prototype.getHeaders\n ) {\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) &&\n knownLength >= 0 &&\n headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {}\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(\n new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, { objectMode: false });\n }\n\n data = stream.pipeline(\n [\n data,\n new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate),\n }),\n ],\n utils.noop\n );\n\n onUploadProgress &&\n data.on(\n 'progress',\n flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n )\n );\n }\n\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n if (configAuth) {\n const username = configAuth.username || '';\n const password = configAuth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = decodeURIComponentSafe(parsed.username);\n const urlPassword = decodeURIComponentSafe(parsed.password);\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''),\n false\n );\n\n // Null-prototype to block prototype pollution gadgets on properties read\n // directly by Node's http.request (e.g. insecureHTTPParser, lookup).\n const options = Object.assign(Object.create(null), {\n path,\n method: method,\n headers: toByteStringHeaderObject(headers),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: Object.create(null),\n http2Options,\n });\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n if (typeof config.socketPath !== 'string') {\n return reject(\n new AxiosError('socketPath must be a string', AxiosError.ERR_BAD_OPTION_VALUE, config)\n );\n }\n\n if (config.allowedSocketPaths != null) {\n const allowed = Array.isArray(config.allowedSocketPaths)\n ? config.allowedSocketPaths\n : [config.allowedSocketPaths];\n\n const resolvedSocket = resolvePath(config.socketPath);\n const isAllowed = allowed.some(\n (entry) => typeof entry === 'string' && resolvePath(entry) === resolvedSocket\n );\n\n if (!isAllowed) {\n return reject(\n new AxiosError(\n `socketPath \"${config.socketPath}\" is not permitted by allowedSocketPaths`,\n AxiosError.ERR_BAD_OPTION_VALUE,\n config\n )\n );\n }\n }\n\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith('[')\n ? parsed.hostname.slice(1, -1)\n : parsed.hostname;\n options.port = parsed.port;\n setProxy(\n options,\n config.proxy,\n protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path,\n false,\n config.httpsAgent\n );\n }\n let transport;\n let isNativeTransport = false;\n const isHttpsRequest = isHttps.test(options.protocol);\n // Don't clobber a CONNECT-tunneling agent installed by setProxy() for an\n // HTTPS target.\n if (options.agent == null) {\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n }\n\n if (isHttp2) {\n transport = http2Transport;\n } else {\n const configTransport = own('transport');\n if (configTransport) {\n transport = configTransport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n isNativeTransport = true;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n const configBeforeRedirect = own('beforeRedirect');\n if (configBeforeRedirect) {\n options.beforeRedirects.config = configBeforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n // Always set an explicit own value so a polluted\n // Object.prototype.insecureHTTPParser cannot enable the lenient parser\n // through Node's internal options copy\n options.insecureHTTPParser = Boolean(own('insecureHTTPParser'));\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n clearConnectPhaseTimer();\n\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = utils.toFiniteNumber(res.headers['content-length']);\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate),\n });\n\n onDownloadProgress &&\n transformStream.on(\n 'progress',\n flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n )\n );\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest,\n };\n\n if (responseType === 'stream') {\n // Enforce maxContentLength on streamed responses; previously this\n // was applied only to buffered responses.\n if (config.maxContentLength > -1) {\n const limit = config.maxContentLength;\n const source = responseStream;\n async function* enforceMaxContentLength() {\n let totalResponseBytes = 0;\n for await (const chunk of source) {\n totalResponseBytes += chunk.length;\n if (totalResponseBytes > limit) {\n throw new AxiosError(\n 'maxContentLength size of ' + limit + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n }\n yield chunk;\n }\n }\n responseStream = stream.Readable.from(enforceMaxContentLength(), {\n objectMode: false,\n });\n }\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n abort(\n new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n )\n );\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest,\n response\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (rejected) return;\n reject(AxiosError.from(err, null, config, lastRequest, response));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData =\n responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n abortEmitter.once('abort', (err) => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n abortEmitter.once('abort', (err) => {\n if (req.close) {\n req.close();\n } else {\n req.destroy(err);\n }\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n // Track every socket bound to this outer RedirectableRequest so a single\n // 'close' listener can release ownership on all of them. follow-redirects\n // re-emits the 'socket' event for each hop's native request onto the same\n // outer request, so attaching per-request listeners inside this handler\n // would accumulate across hops and trigger MaxListenersExceededWarning at\n // >= 11 redirects. Clearing only the last-bound socket would leave stale\n // kAxiosCurrentReq refs on earlier hop sockets returned to the keep-alive\n // pool, causing an idle-pool 'error' to be attributed to a closed req.\n const boundSockets = new Set();\n\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n\n // Install a single 'error' listener per socket (not per request) to avoid\n // accumulating listeners on pooled keep-alive sockets that get reassigned\n // to new requests before the previous request's 'close' fires (issue #10780).\n // The listener is bound to the socket's currently-active request via a\n // symbol, which is swapped as the socket is reassigned.\n if (!socket[kAxiosSocketListener]) {\n socket.on('error', function handleSocketError(err) {\n const current = socket[kAxiosCurrentReq];\n if (current && !current.destroyed) {\n current.destroy(err);\n }\n });\n socket[kAxiosSocketListener] = true;\n }\n\n socket[kAxiosCurrentReq] = req;\n boundSockets.add(socket);\n });\n\n req.once('close', function clearCurrentReq() {\n clearConnectPhaseTimer();\n\n for (const socket of boundSockets) {\n if (socket[kAxiosCurrentReq] === req) {\n socket[kAxiosCurrentReq] = null;\n }\n }\n boundSockets.clear();\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n abort(\n new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n )\n );\n\n return;\n }\n\n const handleTimeout = function handleTimeout() {\n if (isDone) return;\n abort(createTimeoutError());\n };\n\n if (isNativeTransport && timeout > 0) {\n // Native ClientRequest#setTimeout starts from the socket lifecycle and\n // may not fire while TCP connect is still pending. Mirror the\n // follow-redirects wall-clock timer for the maxRedirects === 0 path.\n connectPhaseTimer = setTimeout(handleTimeout, timeout);\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, handleTimeout);\n } else {\n // explicitly reset the socket timeout value for a possible `keep-alive` request\n req.setTimeout(0);\n }\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', (err) => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n // Enforce maxBodyLength for streamed uploads on the native http/https\n // transport (maxRedirects === 0); follow-redirects enforces it on the\n // other path.\n let uploadStream = data;\n if (config.maxBodyLength > -1 && config.maxRedirects === 0) {\n const limit = config.maxBodyLength;\n let bytesSent = 0;\n uploadStream = stream.pipeline(\n [\n data,\n new stream.Transform({\n transform(chunk, _enc, cb) {\n bytesSent += chunk.length;\n if (bytesSent > limit) {\n return cb(\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n req\n )\n );\n }\n cb(null, chunk);\n },\n }),\n ],\n utils.noop\n );\n uploadStream.on('error', (err) => {\n if (!req.destroyed) req.destroy(err);\n });\n }\n\n uploadStream.pipe(req);\n } else {\n data && req.write(data);\n req.end();\n }\n });\n };\n\nexport const __setProxy = setProxy;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n return decodeURIComponent(cookie.slice(eq + 1));\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls),\n config.params,\n config.paramsSerializer\n );\n\n // HTTP basic authentication\n if (auth) {\n headers.set(\n 'Authorization',\n 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against the outbound request body before dispatch.\n // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than\n // maxBodyLength limit'). Skip when the body length cannot be determined\n // (e.g. a live ReadableStream supplied by the caller).\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await resolveBodyLength(headers, data);\n if (\n typeof outboundLength === 'number' &&\n isFinite(outboundLength) &&\n outboundLength > maxBodyLength\n ) {\n throw new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n }\n }\n\n if (\n onUploadProgress &&\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(response.headers.get('content-length'));\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n err !== canceledError && (canceledError.cause = err);\n throw canceledError;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n ),\n {\n cause: err.cause || err,\n }\n );\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n"],"names":["bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","iterator","toStringTag","Symbol","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","isEmptyObject","keys","length","e","isDate","isFile","isReactNativeBlob","value","uri","isReactNative","formData","getParts","isBlob","isFileList","isStream","pipe","getGlobal","globalThis","self","window","global","G","FormDataCtor","FormData","undefined","isFormData","proto","append","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","trim","replace","forEach","obj","allOwnKeys","i","l","getOwnPropertyNames","len","key","findKey","_key","_global","isContextDefined","context","merge","objs","caseless","skipUndefined","assignValue","targetKey","existing","hasOwnProperty","extend","a","b","defineProperty","__proto__","writable","enumerable","configurable","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","_iterator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","includes","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","visited","WeakSet","visit","source","has","add","target","reducedValue","delete","isAsyncFn","isThenable","then","catch","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","data","shift","cb","postMessage","Math","random","setTimeout","asap","queueMicrotask","process","nextTick","isIterable","hasOwnProp","ignoreDuplicateOf","utils","rawHeaders","parsed","parser","line","substring","trimSPorHTAB","start","end","code","INVALID_UNICODE_HEADER_VALUE_CHARS","RegExp","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","item","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","toJSON","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","match","isValidHeaderName","test","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","dest","entry","TypeError","get","matcher","deleted","deleteHeader","clear","normalize","format","normalized","concat","targets","asStrings","join","entries","getSetCookie","from","first","computed","accessor","internals","accessors","defineAccessor","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","config","redactKeys","lowerKeys","Set","k","seen","v","pop","AxiosError","error","request","response","customProps","axiosError","message","cause","status","isAxiosError","redact","serializedConfig","description","number","fileName","lineNumber","columnNumber","stack","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ECONNREFUSED","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL","ERR_FORM_DATA_DEPTH_EXCEEDED","isVisitable","removeBrackets","renderKey","path","dots","each","isFlatArray","some","predicates","toFormData","options","PlatformFormData","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","maxDepth","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","depth","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","_options","serialize","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","legacyInterceptorReqResOrdering","URLSearchParams","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","randomValues","Uint32Array","crypto","randomFillSync","isNode","classes","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","rawValue","parse","defaults","transitional","transitionalDefaults","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","env","_FormData","transformResponse","responseType","JSONRequested","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","transformData","fns","transform","isCancel","__CANCEL__","CanceledError","settle","resolve","reject","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","DEFAULT_PORTS","ftp","gopher","http","https","ws","wss","parseUrl","urlString","URL","getProxyForUrl","parsedUrl","protocol","hostname","host","port","parseInt","shouldProxy","proxy","getEnv","NO_PROXY","every","parsedProxy","parsedProxyHostname","parsedProxyPort","charAt","VERSION","parseProtocol","DATA_URL_PATTERN","fromDataURI","asBlob","encoding","body","mime","decodeURIComponent","kInternals","AxiosTransformStream","stream","Transform","maxRate","chunkSize","minChunkSize","timeWindow","ticksRate","samplesCount","readableHighWaterMark","bytesSeen","isCaptured","notifiedBytesLoaded","ts","Date","now","bytes","onReadCallback","on","event","_read","_transform","chunk","callback","divider","bytesThreshold","max","pushChunk","_chunk","_callback","byteLength","emit","transformChunk","chunkRemainder","maxChunkSize","bytesLeft","passed","subarray","transformNextChunk","err","asyncIterator","readBlob","blob","arrayBuffer","BOUNDARY_ALPHABET","textEncoder","TextEncoder","util","CRLF","CRLF_BYTES","CRLF_BYTES_COUNT","FormDataPart","escapeName","isStringValue","safeType","contentLength","formDataToStream","form","headersHandler","tag","boundary","boundaryBytes","footerBytes","parts","part","computedHeaders","Readable","ZlibHeaderTransformStream","__transform","alloc","callbackify","args","LOOPBACK_HOSTNAMES","isIPv4Loopback","p","isIPv6Loopback","v4MappedDotted","v4MappedHex","high","groups","isLoopback","parseNoProxyEntry","entryHost","entryPort","bracketIndex","rest","firstColon","lastColon","lastIndexOf","IPV4_MAPPED_DOTTED_RE","IPV4_MAPPED_HEX_RE","unmapIPv4MappedIPv6","dotted","hex","low","normalizeNoProxyHost","shouldBypassProxy","_err","noProxy","no_proxy","speedometer","min","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","round","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","rawLoaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","asyncDecorator","estimateDataURLDecodedBytes","startsWith","comma","meta","isBase64","effectiveLen","isHex","pad","idx","tailIsPct3D","j","floor","c","zlibOptions","zlib","constants","Z_SYNC_FLUSH","finishFlush","brotliOptions","BROTLI_OPERATION_FLUSH","isBrotliSupported","createBrotliDecompress","httpFollow","httpsFollow","followRedirects","isHttps","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","policy","kAxiosSocketListener","kAxiosCurrentReq","kAxiosInstalledTunnel","tunnelingAgentCache","Map","tunnelingAgentCacheUser","WeakMap","getTunnelingAgent","agentOptions","userHttpsAgent","auth","agent","HttpsProxyAgent","supportedProtocols","decodeURIComponentSafe","flushOnFinish","Http2Sessions","sessions","getSession","authority","sessionTimeout","authoritySessions","sessionHandle","sessionOptions","destroyed","closed","isDeepStrictEqual","session","http2","connect","removed","removeSession","splice","close","originalRequestFn","streamsCount","once","http2Sessions","dispatchBeforeRedirect","responseDetails","requestDetails","beforeRedirects","setProxy","configProxy","isRedirect","configHttpsAgent","proxyUrl","isProxyURL","readProxyField","proxyUsername","proxyPassword","proxyAuth","authIsObject","authUsername","username","authPassword","password","validProxyAuth","Boolean","targetIsHttps","proxyHost","proxyPort","rawProxyProtocol","normalizedProtocol","proxyHostForURL","proxyURL","ALPNProtocols","tunnelingAgent","agents","base64","hasUserHostHeader","proxyProtocol","beforeRedirect","redirectOptions","isHttpAdapterSupported","wrapAsync","asyncExecutor","Promise","onDone","isDone","isRejected","_resolve","_reject","reason","onDoneHandler","resolveFamily","address","family","buildAddressEntry","http2Transport","http2Options","HTTP2_HEADER_SCHEME","HTTP2_HEADER_METHOD","HTTP2_HEADER_PATH","HTTP2_HEADER_STATUS","http2Headers","req","responseHeaders","statusCode","httpAdapter","dispatchHttpRequest","lookup","httpVersion","responseEncoding","connectPhaseTimer","isNaN","isHttp2","_lookup","opt","arg0","addresses","addr","all","abortEmitter","EventEmitter","abort","console","warn","clearConnectPhaseTimer","createTimeoutError","timeoutErrorMessage","onFinished","cancelToken","unsubscribe","signal","removeEventListener","removeAllListeners","subscribe","aborted","Duplex","offListeners","finished","fullPath","dataUrl","convertedData","statusText","onUploadProgress","onDownloadProgress","maxUploadRate","maxDownloadRate","userBoundary","getHeaders","hasContentLength","knownLength","promisify","getLength","setContentLength","getContentLength","objectMode","pipeline","configAuth","urlUsername","urlPassword","pathname","search","paramsSerializer","customErr","exists","httpAgent","httpsAgent","socketPath","allowedSocketPaths","allowed","resolvedSocket","resolvePath","isAllowed","transport","isNativeTransport","isHttpsRequest","configTransport","maxRedirects","configBeforeRedirect","Infinity","insecureHTTPParser","handleResponse","res","streams","responseLength","transformStream","responseStream","lastRequest","decompress","createUnzip","statusMessage","limit","enforceMaxContentLength","totalResponseBytes","responseBuffer","handleStreamData","destroy","handlerStreamAborted","handleStreamError","handleStreamEnd","responseData","handleRequestError","boundSockets","handleRequestSocket","socket","setKeepAlive","handleSocketError","current","clearCurrentReq","handleTimeout","ended","errored","uploadStream","bytesSent","_enc","write","isMSIE","userAgent","expires","domain","secure","sameSite","cookie","toUTCString","read","cookies","eq","remove","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","withCredentials","withXSRFToken","computeConfigValue","configValue","encodeUTF8","_","fromCharCode","newConfig","btoa","shouldSendXSRF","isURLSameOrigin","xsrfValue","isXHRAdapterSupported","XMLHttpRequest","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","open","onloadend","getAllResponseHeaders","responseText","onreadystatechange","handleLoad","readyState","responseURL","onabort","handleAbort","onerror","handleError","msg","ontimeout","setRequestHeader","upload","cancel","send","composeSignals","signals","controller","AbortController","streamChunk","pos","readBytes","iterable","readStream","reader","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","pull","loadedBytes","enqueue","return","highWaterMark","DEFAULT_CHUNK_SIZE","factory","globalObject","Request","Response","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","duplex","hasContentType","supportsResponseStream","resolvers","getBodyLength","_request","resolveBodyLength","fetchOptions","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","toAbortSignal","requestContentLength","outboundLength","contentTypeHeader","isCredentialsSupported","resolvedOptions","credentials","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","materializedSize","canceledError","seedCache","getFetch","seeds","seed","knownAdapters","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","validators","validator","deprecatedWarnings","version","formatMessage","desc","opts","spelling","correctSpelling","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","dummy","captureStackTrace","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","getUri","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","spread","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","WebServerIsDown","ConnectionTimedOut","OriginIsUnreachable","TimeoutOccurred","SslHandshakeFailed","InvalidSslCertificate","createInstance","defaultConfig","instance","axios","Cancel","promises","formToJSON","default"],"mappings":"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","x_google_ignoreList":[25]} \ No newline at end of file diff --git a/node_modules/axios/index.d.cts b/node_modules/axios/index.d.cts deleted file mode 100644 index 916b995..0000000 --- a/node_modules/axios/index.d.cts +++ /dev/null @@ -1,715 +0,0 @@ -type MethodsHeaders = Partial< - { - [Key in axios.Method as Lowercase]: AxiosHeaders; - } & { common: AxiosHeaders } ->; - -type AxiosHeaderMatcher = - | string - | RegExp - | ((this: AxiosHeaders, value: string, name: string) => boolean); - -type AxiosHeaderParser = (this: AxiosHeaders, value: axios.AxiosHeaderValue, header: string) => any; - -type CommonRequestHeadersList = - | 'Accept' - | 'Content-Length' - | 'User-Agent' - | 'Content-Encoding' - | 'Authorization' - | 'Location'; - -type ContentType = - | axios.AxiosHeaderValue - | 'text/html' - | 'text/plain' - | 'multipart/form-data' - | 'application/json' - | 'application/x-www-form-urlencoded' - | 'application/octet-stream'; - -type CommonResponseHeadersList = - | 'Server' - | 'Content-Type' - | 'Content-Length' - | 'Cache-Control' - | 'Content-Encoding'; - -type CommonResponseHeaderKey = CommonResponseHeadersList | Lowercase; - -type BrowserProgressEvent = any; - -declare class AxiosHeaders { - constructor(headers?: axios.RawAxiosHeaders | AxiosHeaders | string); - - [key: string]: any; - - set( - headerName?: string, - value?: axios.AxiosHeaderValue, - rewrite?: boolean | AxiosHeaderMatcher - ): AxiosHeaders; - set(headers?: axios.RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean): AxiosHeaders; - - get(headerName: string, parser: RegExp): RegExpExecArray | null; - get(headerName: string, matcher?: true | AxiosHeaderParser): axios.AxiosHeaderValue; - - has(header: string, matcher?: AxiosHeaderMatcher): boolean; - - delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; - - clear(matcher?: AxiosHeaderMatcher): boolean; - - normalize(format: boolean): AxiosHeaders; - - concat( - ...targets: Array - ): AxiosHeaders; - - toJSON(asStrings?: boolean): axios.RawAxiosHeaders; - - static from(thing?: AxiosHeaders | axios.RawAxiosHeaders | string): AxiosHeaders; - - static accessor(header: string | string[]): AxiosHeaders; - - static concat( - ...targets: Array - ): AxiosHeaders; - - setContentType(value: ContentType, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getContentType(parser?: RegExp): RegExpExecArray | null; - getContentType(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasContentType(matcher?: AxiosHeaderMatcher): boolean; - - setContentLength( - value: axios.AxiosHeaderValue, - rewrite?: boolean | AxiosHeaderMatcher - ): AxiosHeaders; - getContentLength(parser?: RegExp): RegExpExecArray | null; - getContentLength(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasContentLength(matcher?: AxiosHeaderMatcher): boolean; - - setAccept(value: axios.AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getAccept(parser?: RegExp): RegExpExecArray | null; - getAccept(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasAccept(matcher?: AxiosHeaderMatcher): boolean; - - setUserAgent(value: axios.AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getUserAgent(parser?: RegExp): RegExpExecArray | null; - getUserAgent(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; - - setContentEncoding( - value: axios.AxiosHeaderValue, - rewrite?: boolean | AxiosHeaderMatcher - ): AxiosHeaders; - getContentEncoding(parser?: RegExp): RegExpExecArray | null; - getContentEncoding(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean; - - setAuthorization( - value: axios.AxiosHeaderValue, - rewrite?: boolean | AxiosHeaderMatcher - ): AxiosHeaders; - getAuthorization(parser?: RegExp): RegExpExecArray | null; - getAuthorization(matcher?: AxiosHeaderMatcher): axios.AxiosHeaderValue; - hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; - - getSetCookie(): string[]; - - [Symbol.iterator](): IterableIterator<[string, axios.AxiosHeaderValue]>; -} - -declare class AxiosError extends Error { - constructor( - message?: string, - code?: string, - config?: axios.InternalAxiosRequestConfig, - request?: any, - response?: axios.AxiosResponse - ); - - config?: axios.InternalAxiosRequestConfig; - code?: string; - request?: any; - response?: axios.AxiosResponse; - isAxiosError: boolean; - status?: number; - toJSON: () => object; - cause?: Error; - event?: BrowserProgressEvent; - static from( - error: Error | unknown, - code?: string, - config?: axios.InternalAxiosRequestConfig, - request?: any, - response?: axios.AxiosResponse, - customProps?: object - ): AxiosError; - static readonly ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; - static readonly ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; - static readonly ERR_BAD_OPTION = 'ERR_BAD_OPTION'; - static readonly ERR_NETWORK = 'ERR_NETWORK'; - static readonly ERR_DEPRECATED = 'ERR_DEPRECATED'; - static readonly ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; - static readonly ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; - static readonly ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; - static readonly ERR_INVALID_URL = 'ERR_INVALID_URL'; - static readonly ERR_CANCELED = 'ERR_CANCELED'; - static readonly ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - static readonly ECONNABORTED = 'ECONNABORTED'; - static readonly ECONNREFUSED = 'ECONNREFUSED'; - static readonly ETIMEDOUT = 'ETIMEDOUT'; -} - -declare class CanceledError extends AxiosError {} - -declare class Axios { - constructor(config?: axios.AxiosRequestConfig); - defaults: axios.AxiosDefaults; - interceptors: { - request: axios.AxiosInterceptorManager; - response: axios.AxiosInterceptorManager; - }; - getUri(config?: axios.AxiosRequestConfig): string; - request, D = any>( - config: axios.AxiosRequestConfig - ): Promise; - get, D = any>( - url: string, - config?: axios.AxiosRequestConfig - ): Promise; - delete, D = any>( - url: string, - config?: axios.AxiosRequestConfig - ): Promise; - head, D = any>( - url: string, - config?: axios.AxiosRequestConfig - ): Promise; - options, D = any>( - url: string, - config?: axios.AxiosRequestConfig - ): Promise; - post, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - put, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - patch, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - postForm, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - putForm, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - patchForm, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; - query, D = any>( - url: string, - data?: D, - config?: axios.AxiosRequestConfig - ): Promise; -} - -declare enum HttpStatusCode { - Continue = 100, - SwitchingProtocols = 101, - Processing = 102, - EarlyHints = 103, - Ok = 200, - Created = 201, - Accepted = 202, - NonAuthoritativeInformation = 203, - NoContent = 204, - ResetContent = 205, - PartialContent = 206, - MultiStatus = 207, - AlreadyReported = 208, - ImUsed = 226, - MultipleChoices = 300, - MovedPermanently = 301, - Found = 302, - SeeOther = 303, - NotModified = 304, - UseProxy = 305, - Unused = 306, - TemporaryRedirect = 307, - PermanentRedirect = 308, - BadRequest = 400, - Unauthorized = 401, - PaymentRequired = 402, - Forbidden = 403, - NotFound = 404, - MethodNotAllowed = 405, - NotAcceptable = 406, - ProxyAuthenticationRequired = 407, - RequestTimeout = 408, - Conflict = 409, - Gone = 410, - LengthRequired = 411, - PreconditionFailed = 412, - PayloadTooLarge = 413, - UriTooLong = 414, - UnsupportedMediaType = 415, - RangeNotSatisfiable = 416, - ExpectationFailed = 417, - ImATeapot = 418, - MisdirectedRequest = 421, - UnprocessableEntity = 422, - Locked = 423, - FailedDependency = 424, - TooEarly = 425, - UpgradeRequired = 426, - PreconditionRequired = 428, - TooManyRequests = 429, - RequestHeaderFieldsTooLarge = 431, - UnavailableForLegalReasons = 451, - InternalServerError = 500, - NotImplemented = 501, - BadGateway = 502, - ServiceUnavailable = 503, - GatewayTimeout = 504, - HttpVersionNotSupported = 505, - VariantAlsoNegotiates = 506, - InsufficientStorage = 507, - LoopDetected = 508, - NotExtended = 510, - NetworkAuthenticationRequired = 511, -} - -type InternalAxiosError = AxiosError; - -declare namespace axios { - type AxiosError = InternalAxiosError; - - interface RawAxiosHeaders { - [key: string]: AxiosHeaderValue; - } - - type RawAxiosRequestHeaders = Partial< - RawAxiosHeaders & { - [Key in CommonRequestHeadersList]: AxiosHeaderValue; - } & { - 'Content-Type': ContentType; - } - >; - - type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; - - type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; - - type RawCommonResponseHeaders = { - [Key in CommonResponseHeaderKey]: AxiosHeaderValue; - } & { - 'set-cookie': string[]; - }; - - type RawAxiosResponseHeaders = Partial; - - type AxiosResponseHeaders = RawAxiosResponseHeaders & AxiosHeaders; - - interface AxiosRequestTransformer { - (this: InternalAxiosRequestConfig, data: any, headers: AxiosRequestHeaders): any; - } - - interface AxiosResponseTransformer { - ( - this: InternalAxiosRequestConfig, - data: any, - headers: AxiosResponseHeaders, - status?: number - ): any; - } - - interface AxiosAdapter { - (config: InternalAxiosRequestConfig): AxiosPromise; - } - - interface AxiosBasicCredentials { - username: string; - password: string; - } - - interface AxiosProxyConfig { - host: string; - port: number; - auth?: AxiosBasicCredentials; - protocol?: string; - } - - type UppercaseMethod = - | 'GET' - | 'DELETE' - | 'HEAD' - | 'OPTIONS' - | 'POST' - | 'PUT' - | 'PATCH' - | 'PURGE' - | 'LINK' - | 'UNLINK' - | 'QUERY'; - - type Method = (UppercaseMethod | Lowercase) & {}; - - type ResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' | 'formdata'; - - type UppercaseResponseEncoding = - | 'ASCII' - | 'ANSI' - | 'BINARY' - | 'BASE64' - | 'BASE64URL' - | 'HEX' - | 'LATIN1' - | 'UCS-2' - | 'UCS2' - | 'UTF-8' - | 'UTF8' - | 'UTF16LE'; - - type responseEncoding = (UppercaseResponseEncoding | Lowercase) & {}; - - interface TransitionalOptions { - silentJSONParsing?: boolean; - forcedJSONParsing?: boolean; - clarifyTimeoutError?: boolean; - legacyInterceptorReqResOrdering?: boolean; - } - - interface GenericAbortSignal { - readonly aborted: boolean; - onabort?: ((...args: any) => any) | null; - addEventListener?: (...args: any) => any; - removeEventListener?: (...args: any) => any; - } - - interface FormDataVisitorHelpers { - defaultVisitor: SerializerVisitor; - convertValue: (value: any) => any; - isVisitable: (value: any) => boolean; - } - - interface SerializerVisitor { - ( - this: GenericFormData, - value: any, - key: string | number, - path: null | Array, - helpers: FormDataVisitorHelpers - ): boolean; - } - - interface SerializerOptions { - visitor?: SerializerVisitor; - dots?: boolean; - metaTokens?: boolean; - indexes?: boolean | null; - } - - // tslint:disable-next-line - interface FormSerializerOptions extends SerializerOptions {} - - interface ParamEncoder { - (value: any, defaultEncoder: (value: any) => any): any; - } - - interface CustomParamsSerializer { - (params: Record, options?: ParamsSerializerOptions): string; - } - - interface ParamsSerializerOptions extends SerializerOptions { - encode?: ParamEncoder; - serialize?: CustomParamsSerializer; - } - - type MaxUploadRate = number; - - type MaxDownloadRate = number; - - interface AxiosProgressEvent { - loaded: number; - total?: number; - progress?: number; - bytes: number; - rate?: number; - estimated?: number; - upload?: boolean; - download?: boolean; - event?: BrowserProgressEvent; - lengthComputable: boolean; - } - - type Milliseconds = number; - - type AxiosAdapterName = 'fetch' | 'xhr' | 'http' | (string & {}); - - type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; - - type AddressFamily = 4 | 6 | undefined; - - interface LookupAddressEntry { - address: string; - family?: AddressFamily; - } - - type LookupAddress = string | LookupAddressEntry; - - interface AxiosRequestConfig { - url?: string; - method?: Method | string; - baseURL?: string; - allowAbsoluteUrls?: boolean; - transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; - transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; - headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; - params?: any; - paramsSerializer?: ParamsSerializerOptions | CustomParamsSerializer; - data?: D; - timeout?: Milliseconds; - timeoutErrorMessage?: string; - withCredentials?: boolean; - adapter?: AxiosAdapterConfig | AxiosAdapterConfig[]; - auth?: AxiosBasicCredentials; - responseType?: ResponseType; - responseEncoding?: responseEncoding | string; - xsrfCookieName?: string; - xsrfHeaderName?: string; - onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; - onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; - maxContentLength?: number; - validateStatus?: ((status: number) => boolean) | null; - maxBodyLength?: number; - maxRedirects?: number; - maxRate?: number | [MaxUploadRate, MaxDownloadRate]; - beforeRedirect?: ( - options: Record, - responseDetails: { headers: Record; statusCode: HttpStatusCode }, - requestDetails: { headers: Record; url: string; method: string }, - ) => void; - socketPath?: string | null; - allowedSocketPaths?: string | string[] | null; - transport?: any; - httpAgent?: any; - httpsAgent?: any; - proxy?: AxiosProxyConfig | false; - cancelToken?: CancelToken | undefined; - decompress?: boolean; - transitional?: TransitionalOptions; - signal?: GenericAbortSignal; - insecureHTTPParser?: boolean; - env?: { - FormData?: new (...args: any[]) => object; - fetch?: (input: URL | Request | string, init?: RequestInit) => Promise; - Request?: new (input: URL | Request | string, init?: RequestInit) => Request; - Response?: new ( - body?: ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | string | null, - init?: ResponseInit - ) => Response; - }; - formSerializer?: FormSerializerOptions; - family?: AddressFamily; - lookup?: - | (( - hostname: string, - options: object, - cb: ( - err: Error | null, - address: LookupAddress | LookupAddress[], - family?: AddressFamily - ) => void - ) => void) - | (( - hostname: string, - options: object - ) => Promise< - | [address: LookupAddressEntry | LookupAddressEntry[], family?: AddressFamily] - | LookupAddress - >); - withXSRFToken?: boolean | ((config: InternalAxiosRequestConfig) => boolean | undefined); - parseReviver?: (this: any, key: string, value: any, context?: { source?: string }) => any; - fetchOptions?: - | Omit - | Record; - httpVersion?: 1 | 2; - http2Options?: Record & { - sessionTimeout?: number; - }; - formDataHeaderPolicy?: 'legacy' | 'content-only'; - redact?: string[]; - } - - // Alias - type RawAxiosRequestConfig = AxiosRequestConfig; - - interface InternalAxiosRequestConfig extends AxiosRequestConfig { - headers: AxiosRequestHeaders; - } - - interface HeadersDefaults { - common: RawAxiosRequestHeaders; - delete: RawAxiosRequestHeaders; - get: RawAxiosRequestHeaders; - head: RawAxiosRequestHeaders; - post: RawAxiosRequestHeaders; - put: RawAxiosRequestHeaders; - patch: RawAxiosRequestHeaders; - options?: RawAxiosRequestHeaders; - purge?: RawAxiosRequestHeaders; - link?: RawAxiosRequestHeaders; - unlink?: RawAxiosRequestHeaders; - query?: RawAxiosRequestHeaders; - } - - interface AxiosDefaults extends Omit, 'headers'> { - headers: HeadersDefaults; - } - - interface CreateAxiosDefaults extends Omit, 'headers'> { - headers?: RawAxiosRequestHeaders | AxiosHeaders | Partial; - } - - interface AxiosResponse { - data: T; - status: number; - statusText: string; - headers: (H & RawAxiosResponseHeaders) | AxiosResponseHeaders; - config: InternalAxiosRequestConfig; - request?: any; - } - - type AxiosPromise = Promise>; - - interface CancelStatic { - new (message?: string): Cancel; - } - - interface Cancel { - message: string | undefined; - } - - interface Canceler { - (message?: string, config?: AxiosRequestConfig, request?: any): void; - } - - interface CancelTokenStatic { - new (executor: (cancel: Canceler) => void): CancelToken; - source(): CancelTokenSource; - } - - interface CancelToken { - promise: Promise; - reason?: Cancel; - throwIfRequested(): void; - } - - interface CancelTokenSource { - token: CancelToken; - cancel: Canceler; - } - - interface AxiosInterceptorOptions { - synchronous?: boolean; - runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; - } - - type AxiosInterceptorFulfilled = (value: T) => T | Promise; - type AxiosInterceptorRejected = (error: any) => any; - - type AxiosRequestInterceptorUse = ( - onFulfilled?: AxiosInterceptorFulfilled | null, - onRejected?: AxiosInterceptorRejected | null, - options?: AxiosInterceptorOptions - ) => number; - - type AxiosResponseInterceptorUse = ( - onFulfilled?: AxiosInterceptorFulfilled | null, - onRejected?: AxiosInterceptorRejected | null - ) => number; - - interface AxiosInterceptorHandler { - fulfilled: AxiosInterceptorFulfilled; - rejected?: AxiosInterceptorRejected; - synchronous: boolean; - runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; - } - - interface AxiosInterceptorManager { - use: V extends AxiosResponse ? AxiosResponseInterceptorUse : AxiosRequestInterceptorUse; - eject(id: number): void; - clear(): void; - handlers?: Array>; - } - - interface AxiosInstance extends Axios { - , D = any>(config: AxiosRequestConfig): Promise; - , D = any>( - url: string, - config?: AxiosRequestConfig - ): Promise; - - create(config?: CreateAxiosDefaults): AxiosInstance; - defaults: Omit & { - headers: HeadersDefaults & { - [key: string]: AxiosHeaderValue; - }; - }; - } - - interface GenericFormData { - append(name: string, value: any, options?: any): any; - } - - interface GenericHTMLFormElement { - name: string; - method: string; - submit(): void; - } - - interface AxiosStatic extends AxiosInstance { - Cancel: CancelStatic; - CancelToken: CancelTokenStatic; - Axios: typeof Axios; - AxiosError: typeof AxiosError; - CanceledError: typeof CanceledError; - HttpStatusCode: typeof HttpStatusCode; - readonly VERSION: string; - isCancel(value: any): value is Cancel; - all(values: Array>): Promise; - spread(callback: (...args: T[]) => R): (array: T[]) => R; - isAxiosError(payload: any): payload is AxiosError; - toFormData( - sourceObj: object, - targetFormData?: GenericFormData, - options?: FormSerializerOptions - ): GenericFormData; - formToJSON(form: GenericFormData | GenericHTMLFormElement): object; - getAdapter(adapters: AxiosAdapterConfig | AxiosAdapterConfig[] | undefined): AxiosAdapter; - AxiosHeaders: typeof AxiosHeaders; - mergeConfig( - config1: AxiosRequestConfig, - config2: AxiosRequestConfig - ): AxiosRequestConfig; - } -} - -declare const axios: axios.AxiosStatic; - -export = axios; diff --git a/node_modules/axios/index.d.ts b/node_modules/axios/index.d.ts deleted file mode 100644 index e25555f..0000000 --- a/node_modules/axios/index.d.ts +++ /dev/null @@ -1,734 +0,0 @@ -// TypeScript Version: 4.7 -type StringLiteralsOrString = Literals | (string & {}); - -export type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; - -export interface RawAxiosHeaders { - [key: string]: AxiosHeaderValue; -} - -type MethodsHeaders = Partial< - { - [Key in Method as Lowercase]: AxiosHeaders; - } & { common: AxiosHeaders } ->; - -type AxiosHeaderMatcher = - | string - | RegExp - | ((this: AxiosHeaders, value: string, name: string) => boolean); - -type AxiosHeaderParser = (this: AxiosHeaders, value: AxiosHeaderValue, header: string) => any; - -export class AxiosHeaders { - constructor(headers?: RawAxiosHeaders | AxiosHeaders | string); - - [key: string]: any; - - set( - headerName?: string, - value?: AxiosHeaderValue, - rewrite?: boolean | AxiosHeaderMatcher - ): AxiosHeaders; - set(headers?: RawAxiosHeaders | AxiosHeaders | string, rewrite?: boolean): AxiosHeaders; - - get(headerName: string, parser: RegExp): RegExpExecArray | null; - get(headerName: string, matcher?: true | AxiosHeaderParser): AxiosHeaderValue; - - has(header: string, matcher?: AxiosHeaderMatcher): boolean; - - delete(header: string | string[], matcher?: AxiosHeaderMatcher): boolean; - - clear(matcher?: AxiosHeaderMatcher): boolean; - - normalize(format: boolean): AxiosHeaders; - - concat( - ...targets: Array - ): AxiosHeaders; - - toJSON(asStrings?: boolean): RawAxiosHeaders; - - static from(thing?: AxiosHeaders | RawAxiosHeaders | string): AxiosHeaders; - - static accessor(header: string | string[]): AxiosHeaders; - - static concat( - ...targets: Array - ): AxiosHeaders; - - setContentType(value: ContentType, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getContentType(parser?: RegExp): RegExpExecArray | null; - getContentType(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasContentType(matcher?: AxiosHeaderMatcher): boolean; - - setContentLength(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getContentLength(parser?: RegExp): RegExpExecArray | null; - getContentLength(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasContentLength(matcher?: AxiosHeaderMatcher): boolean; - - setAccept(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getAccept(parser?: RegExp): RegExpExecArray | null; - getAccept(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasAccept(matcher?: AxiosHeaderMatcher): boolean; - - setUserAgent(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getUserAgent(parser?: RegExp): RegExpExecArray | null; - getUserAgent(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasUserAgent(matcher?: AxiosHeaderMatcher): boolean; - - setContentEncoding(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getContentEncoding(parser?: RegExp): RegExpExecArray | null; - getContentEncoding(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasContentEncoding(matcher?: AxiosHeaderMatcher): boolean; - - setAuthorization(value: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; - getAuthorization(parser?: RegExp): RegExpExecArray | null; - getAuthorization(matcher?: AxiosHeaderMatcher): AxiosHeaderValue; - hasAuthorization(matcher?: AxiosHeaderMatcher): boolean; - - getSetCookie(): string[]; - - [Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>; -} - -type CommonRequestHeadersList = - | 'Accept' - | 'Content-Length' - | 'User-Agent' - | 'Content-Encoding' - | 'Authorization' - | 'Location'; - -type ContentType = - | AxiosHeaderValue - | 'text/html' - | 'text/plain' - | 'multipart/form-data' - | 'application/json' - | 'application/x-www-form-urlencoded' - | 'application/octet-stream'; - -export type RawAxiosRequestHeaders = Partial< - RawAxiosHeaders & { - [Key in CommonRequestHeadersList]: AxiosHeaderValue; - } & { - 'Content-Type': ContentType; - } ->; - -export type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; - -type CommonResponseHeadersList = - | 'Server' - | 'Content-Type' - | 'Content-Length' - | 'Cache-Control' - | 'Content-Encoding'; - -type CommonResponseHeaderKey = CommonResponseHeadersList | Lowercase; - -type RawCommonResponseHeaders = { - [Key in CommonResponseHeaderKey]: AxiosHeaderValue; -} & { - 'set-cookie': string[]; -}; - -export type RawAxiosResponseHeaders = Partial; - -export type AxiosResponseHeaders = RawAxiosResponseHeaders & AxiosHeaders; - -export interface AxiosRequestTransformer { - (this: InternalAxiosRequestConfig, data: any, headers: AxiosRequestHeaders): any; -} - -export interface AxiosResponseTransformer { - ( - this: InternalAxiosRequestConfig, - data: any, - headers: AxiosResponseHeaders, - status?: number - ): any; -} - -export interface AxiosAdapter { - (config: InternalAxiosRequestConfig): AxiosPromise; -} - -export interface AxiosBasicCredentials { - username: string; - password: string; -} - -export interface AxiosProxyConfig { - host: string; - port: number; - auth?: AxiosBasicCredentials; - protocol?: string; -} - -export enum HttpStatusCode { - Continue = 100, - SwitchingProtocols = 101, - Processing = 102, - EarlyHints = 103, - Ok = 200, - Created = 201, - Accepted = 202, - NonAuthoritativeInformation = 203, - NoContent = 204, - ResetContent = 205, - PartialContent = 206, - MultiStatus = 207, - AlreadyReported = 208, - ImUsed = 226, - MultipleChoices = 300, - MovedPermanently = 301, - Found = 302, - SeeOther = 303, - NotModified = 304, - UseProxy = 305, - Unused = 306, - TemporaryRedirect = 307, - PermanentRedirect = 308, - BadRequest = 400, - Unauthorized = 401, - PaymentRequired = 402, - Forbidden = 403, - NotFound = 404, - MethodNotAllowed = 405, - NotAcceptable = 406, - ProxyAuthenticationRequired = 407, - RequestTimeout = 408, - Conflict = 409, - Gone = 410, - LengthRequired = 411, - PreconditionFailed = 412, - PayloadTooLarge = 413, - UriTooLong = 414, - UnsupportedMediaType = 415, - RangeNotSatisfiable = 416, - ExpectationFailed = 417, - ImATeapot = 418, - MisdirectedRequest = 421, - UnprocessableEntity = 422, - Locked = 423, - FailedDependency = 424, - TooEarly = 425, - UpgradeRequired = 426, - PreconditionRequired = 428, - TooManyRequests = 429, - RequestHeaderFieldsTooLarge = 431, - UnavailableForLegalReasons = 451, - InternalServerError = 500, - NotImplemented = 501, - BadGateway = 502, - ServiceUnavailable = 503, - GatewayTimeout = 504, - HttpVersionNotSupported = 505, - VariantAlsoNegotiates = 506, - InsufficientStorage = 507, - LoopDetected = 508, - NotExtended = 510, - NetworkAuthenticationRequired = 511, -} - -type UppercaseMethod = - | 'GET' - | 'DELETE' - | 'HEAD' - | 'OPTIONS' - | 'POST' - | 'PUT' - | 'PATCH' - | 'PURGE' - | 'LINK' - | 'UNLINK' - | 'QUERY'; - -export type Method = (UppercaseMethod | Lowercase) & {}; - -export type ResponseType = - | 'arraybuffer' - | 'blob' - | 'document' - | 'json' - | 'text' - | 'stream' - | 'formdata'; - -type UppercaseResponseEncoding = - | 'ASCII' - | 'ANSI' - | 'BINARY' - | 'BASE64' - | 'BASE64URL' - | 'HEX' - | 'LATIN1' - | 'UCS-2' - | 'UCS2' - | 'UTF-8' - | 'UTF8' - | 'UTF16LE'; - -export type responseEncoding = ( - | UppercaseResponseEncoding - | Lowercase -) & {}; - -export interface TransitionalOptions { - silentJSONParsing?: boolean; - forcedJSONParsing?: boolean; - clarifyTimeoutError?: boolean; - legacyInterceptorReqResOrdering?: boolean; -} - -export interface GenericAbortSignal { - readonly aborted: boolean; - onabort?: ((...args: any) => any) | null; - addEventListener?: (...args: any) => any; - removeEventListener?: (...args: any) => any; -} - -export interface FormDataVisitorHelpers { - defaultVisitor: SerializerVisitor; - convertValue: (value: any) => any; - isVisitable: (value: any) => boolean; -} - -export interface SerializerVisitor { - ( - this: GenericFormData, - value: any, - key: string | number, - path: null | Array, - helpers: FormDataVisitorHelpers - ): boolean; -} - -export interface SerializerOptions { - visitor?: SerializerVisitor; - dots?: boolean; - metaTokens?: boolean; - indexes?: boolean | null; -} - -// tslint:disable-next-line -export interface FormSerializerOptions extends SerializerOptions {} - -export interface ParamEncoder { - (value: any, defaultEncoder: (value: any) => any): any; -} - -export interface CustomParamsSerializer { - (params: Record, options?: ParamsSerializerOptions): string; -} - -export interface ParamsSerializerOptions extends SerializerOptions { - encode?: ParamEncoder; - serialize?: CustomParamsSerializer; -} - -type MaxUploadRate = number; - -type MaxDownloadRate = number; - -type BrowserProgressEvent = any; - -export interface AxiosProgressEvent { - loaded: number; - total?: number; - progress?: number; - bytes: number; - rate?: number; - estimated?: number; - upload?: boolean; - download?: boolean; - event?: BrowserProgressEvent; - lengthComputable: boolean; -} - -type Milliseconds = number; - -type AxiosAdapterName = StringLiteralsOrString<'xhr' | 'http' | 'fetch'>; - -type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; - -export type AddressFamily = 4 | 6 | undefined; - -export interface LookupAddressEntry { - address: string; - family?: AddressFamily; -} - -export type LookupAddress = string | LookupAddressEntry; - -export interface AxiosRequestConfig { - url?: string; - method?: StringLiteralsOrString; - baseURL?: string; - allowAbsoluteUrls?: boolean; - transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; - transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; - headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; - params?: any; - paramsSerializer?: ParamsSerializerOptions | CustomParamsSerializer; - data?: D; - timeout?: Milliseconds; - timeoutErrorMessage?: string; - withCredentials?: boolean; - adapter?: AxiosAdapterConfig | AxiosAdapterConfig[]; - auth?: AxiosBasicCredentials; - responseType?: ResponseType; - responseEncoding?: StringLiteralsOrString; - xsrfCookieName?: string; - xsrfHeaderName?: string; - onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; - onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; - maxContentLength?: number; - validateStatus?: ((status: number) => boolean) | null; - maxBodyLength?: number; - maxRedirects?: number; - maxRate?: number | [MaxUploadRate, MaxDownloadRate]; - beforeRedirect?: ( - options: Record, - responseDetails: { - headers: Record; - statusCode: HttpStatusCode; - }, - requestDetails: { - headers: Record; - url: string; - method: string; - }, - ) => void; - socketPath?: string | null; - allowedSocketPaths?: string | string[] | null; - transport?: any; - httpAgent?: any; - httpsAgent?: any; - proxy?: AxiosProxyConfig | false; - cancelToken?: CancelToken | undefined; - decompress?: boolean; - transitional?: TransitionalOptions; - signal?: GenericAbortSignal; - insecureHTTPParser?: boolean; - env?: { - FormData?: new (...args: any[]) => object; - fetch?: (input: URL | Request | string, init?: RequestInit) => Promise; - Request?: new (input: URL | Request | string, init?: RequestInit) => Request; - Response?: new ( - body?: ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | string | null, - init?: ResponseInit - ) => Response; - }; - formSerializer?: FormSerializerOptions; - family?: AddressFamily; - lookup?: - | (( - hostname: string, - options: object, - cb: ( - err: Error | null, - address: LookupAddress | LookupAddress[], - family?: AddressFamily - ) => void - ) => void) - | (( - hostname: string, - options: object - ) => Promise< - [address: LookupAddressEntry | LookupAddressEntry[], family?: AddressFamily] | LookupAddress - >); - withXSRFToken?: boolean | ((config: InternalAxiosRequestConfig) => boolean | undefined); - parseReviver?: (this: any, key: string, value: any, context?: { source?: string }) => any; - fetchOptions?: Omit | Record; - httpVersion?: 1 | 2; - http2Options?: Record & { - sessionTimeout?: number; - }; - formDataHeaderPolicy?: 'legacy' | 'content-only'; - redact?: string[]; -} - -// Alias -export type RawAxiosRequestConfig = AxiosRequestConfig; - -export interface InternalAxiosRequestConfig extends AxiosRequestConfig { - headers: AxiosRequestHeaders; -} - -export interface HeadersDefaults { - common: RawAxiosRequestHeaders; - delete: RawAxiosRequestHeaders; - get: RawAxiosRequestHeaders; - head: RawAxiosRequestHeaders; - post: RawAxiosRequestHeaders; - put: RawAxiosRequestHeaders; - patch: RawAxiosRequestHeaders; - options?: RawAxiosRequestHeaders; - purge?: RawAxiosRequestHeaders; - link?: RawAxiosRequestHeaders; - unlink?: RawAxiosRequestHeaders; - query?: RawAxiosRequestHeaders; -} - -export interface AxiosDefaults extends Omit, 'headers'> { - headers: HeadersDefaults; -} - -export interface CreateAxiosDefaults extends Omit, 'headers'> { - headers?: RawAxiosRequestHeaders | AxiosHeaders | Partial; -} - -export interface AxiosResponse { - data: T; - status: number; - statusText: string; - headers: (H & RawAxiosResponseHeaders) | AxiosResponseHeaders; - config: InternalAxiosRequestConfig; - request?: any; -} - -export class AxiosError extends Error { - constructor( - message?: string, - code?: string, - config?: InternalAxiosRequestConfig, - request?: any, - response?: AxiosResponse - ); - - config?: InternalAxiosRequestConfig; - code?: string; - request?: any; - response?: AxiosResponse; - isAxiosError: boolean; - status?: number; - toJSON: () => object; - cause?: Error; - event?: BrowserProgressEvent; - static from( - error: Error | unknown, - code?: string, - config?: InternalAxiosRequestConfig, - request?: any, - response?: AxiosResponse, - customProps?: object - ): AxiosError; - static readonly ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; - static readonly ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; - static readonly ERR_BAD_OPTION = 'ERR_BAD_OPTION'; - static readonly ERR_NETWORK = 'ERR_NETWORK'; - static readonly ERR_DEPRECATED = 'ERR_DEPRECATED'; - static readonly ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; - static readonly ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; - static readonly ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; - static readonly ERR_INVALID_URL = 'ERR_INVALID_URL'; - static readonly ERR_CANCELED = 'ERR_CANCELED'; - static readonly ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - static readonly ECONNABORTED = 'ECONNABORTED'; - static readonly ECONNREFUSED = 'ECONNREFUSED'; - static readonly ETIMEDOUT = 'ETIMEDOUT'; -} - -export class CanceledError extends AxiosError { - readonly name: 'CanceledError'; -} - -export type AxiosPromise = Promise>; - -export interface CancelStatic { - new (message?: string): Cancel; -} - -export interface Cancel { - message: string | undefined; -} - -export interface Canceler { - (message?: string, config?: AxiosRequestConfig, request?: any): void; -} - -export interface CancelTokenStatic { - new (executor: (cancel: Canceler) => void): CancelToken; - source(): CancelTokenSource; -} - -export interface CancelToken { - promise: Promise; - reason?: Cancel; - throwIfRequested(): void; -} - -export interface CancelTokenSource { - token: CancelToken; - cancel: Canceler; -} - -export interface AxiosInterceptorOptions { - synchronous?: boolean; - runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; -} - -type AxiosInterceptorFulfilled = (value: T) => T | Promise; -type AxiosInterceptorRejected = (error: any) => any; - -type AxiosRequestInterceptorUse = ( - onFulfilled?: AxiosInterceptorFulfilled | null, - onRejected?: AxiosInterceptorRejected | null, - options?: AxiosInterceptorOptions -) => number; - -type AxiosResponseInterceptorUse = ( - onFulfilled?: AxiosInterceptorFulfilled | null, - onRejected?: AxiosInterceptorRejected | null -) => number; - -interface AxiosInterceptorHandler { - fulfilled: AxiosInterceptorFulfilled; - rejected?: AxiosInterceptorRejected; - synchronous: boolean; - runWhen?: ((config: InternalAxiosRequestConfig) => boolean) | null; -} - -export interface AxiosInterceptorManager { - use: V extends AxiosResponse ? AxiosResponseInterceptorUse : AxiosRequestInterceptorUse; - eject(id: number): void; - clear(): void; - handlers?: Array>; -} - -export class Axios { - constructor(config?: AxiosRequestConfig); - defaults: AxiosDefaults; - interceptors: { - request: AxiosInterceptorManager; - response: AxiosInterceptorManager; - }; - getUri(config?: AxiosRequestConfig): string; - request, D = any>(config: AxiosRequestConfig): Promise; - get, D = any>( - url: string, - config?: AxiosRequestConfig - ): Promise; - delete, D = any>( - url: string, - config?: AxiosRequestConfig - ): Promise; - head, D = any>( - url: string, - config?: AxiosRequestConfig - ): Promise; - options, D = any>( - url: string, - config?: AxiosRequestConfig - ): Promise; - post, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - put, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - patch, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - postForm, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - putForm, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - patchForm, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; - query, D = any>( - url: string, - data?: D, - config?: AxiosRequestConfig - ): Promise; -} - -export interface AxiosInstance extends Axios { - , D = any>(config: AxiosRequestConfig): Promise; - , D = any>(url: string, config?: AxiosRequestConfig): Promise; - - create(config?: CreateAxiosDefaults): AxiosInstance; - defaults: Omit & { - headers: HeadersDefaults & { - [key: string]: AxiosHeaderValue; - }; - }; -} - -export interface GenericFormData { - append(name: string, value: any, options?: any): any; -} - -export interface GenericHTMLFormElement { - name: string; - method: string; - submit(): void; -} - -export function getAdapter( - adapters: AxiosAdapterConfig | AxiosAdapterConfig[] | undefined -): AxiosAdapter; - -export function toFormData( - sourceObj: object, - targetFormData?: GenericFormData, - options?: FormSerializerOptions -): GenericFormData; - -export function formToJSON(form: GenericFormData | GenericHTMLFormElement): object; - -export function isAxiosError(payload: any): payload is AxiosError; - -export function spread(callback: (...args: T[]) => R): (array: T[]) => R; - -export function isCancel(value: any): value is CanceledError; - -export function all(values: Array>): Promise; - -export function mergeConfig( - config1: AxiosRequestConfig, - config2: AxiosRequestConfig -): AxiosRequestConfig; - -export function create(config?: CreateAxiosDefaults): AxiosInstance; - -export interface AxiosStatic extends AxiosInstance { - Cancel: CancelStatic; - CancelToken: CancelTokenStatic; - Axios: typeof Axios; - AxiosError: typeof AxiosError; - HttpStatusCode: typeof HttpStatusCode; - readonly VERSION: string; - isCancel: typeof isCancel; - all: typeof all; - spread: typeof spread; - isAxiosError: typeof isAxiosError; - toFormData: typeof toFormData; - formToJSON: typeof formToJSON; - getAdapter: typeof getAdapter; - CanceledError: typeof CanceledError; - AxiosHeaders: typeof AxiosHeaders; - mergeConfig: typeof mergeConfig; -} - -declare const axios: AxiosStatic; - -export default axios; diff --git a/node_modules/axios/index.js b/node_modules/axios/index.js deleted file mode 100644 index 5bc0365..0000000 --- a/node_modules/axios/index.js +++ /dev/null @@ -1,45 +0,0 @@ -import axios from './lib/axios.js'; - -// This module is intended to unwrap Axios default export as named. -// Keep top-level export same with static properties -// so that it can keep same with es module or cjs -const { - Axios, - AxiosError, - CanceledError, - isCancel, - CancelToken, - VERSION, - all, - Cancel, - isAxiosError, - spread, - toFormData, - AxiosHeaders, - HttpStatusCode, - formToJSON, - getAdapter, - mergeConfig, - create, -} = axios; - -export { - axios as default, - create, - Axios, - AxiosError, - CanceledError, - isCancel, - CancelToken, - VERSION, - all, - Cancel, - isAxiosError, - spread, - toFormData, - AxiosHeaders, - HttpStatusCode, - formToJSON, - getAdapter, - mergeConfig, -}; diff --git a/node_modules/axios/lib/adapters/README.md b/node_modules/axios/lib/adapters/README.md deleted file mode 100644 index 8d9dd97..0000000 --- a/node_modules/axios/lib/adapters/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# axios // adapters - -The modules under `adapters/` are modules that handle dispatching a request and settling a returned `Promise` once a response is received. - -## Example - -```js -var settle = require('../core/settle'); - -module.exports = function myAdapter(config) { - // At this point: - // - config has been merged with defaults - // - request transformers have already run - // - request interceptors have already run - - // Make the request using config provided - // Upon response settle the Promise - - return new Promise(function (resolve, reject) { - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request, - }; - - settle(resolve, reject, response); - - // From here: - // - response transformers will run - // - response interceptors will run - }); -}; -``` diff --git a/node_modules/axios/lib/adapters/adapters.js b/node_modules/axios/lib/adapters/adapters.js deleted file mode 100644 index 68f675f..0000000 --- a/node_modules/axios/lib/adapters/adapters.js +++ /dev/null @@ -1,132 +0,0 @@ -import utils from '../utils.js'; -import httpAdapter from './http.js'; -import xhrAdapter from './xhr.js'; -import * as fetchAdapter from './fetch.js'; -import AxiosError from '../core/AxiosError.js'; - -/** - * Known adapters mapping. - * Provides environment-specific adapters for Axios: - * - `http` for Node.js - * - `xhr` for browsers - * - `fetch` for fetch API-based requests - * - * @type {Object} - */ -const knownAdapters = { - http: httpAdapter, - xhr: xhrAdapter, - fetch: { - get: fetchAdapter.getFetch, - }, -}; - -// Assign adapter names for easier debugging and identification -utils.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - // Null-proto descriptors so a polluted Object.prototype.get cannot turn - // these data descriptors into accessor descriptors on the way in. - Object.defineProperty(fn, 'name', { __proto__: null, value }); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', { __proto__: null, value }); - } -}); - -/** - * Render a rejection reason string for unknown or unsupported adapters - * - * @param {string} reason - * @returns {string} - */ -const renderReason = (reason) => `- ${reason}`; - -/** - * Check if the adapter is resolved (function, null, or false) - * - * @param {Function|null|false} adapter - * @returns {boolean} - */ -const isResolvedHandle = (adapter) => - utils.isFunction(adapter) || adapter === null || adapter === false; - -/** - * Get the first suitable adapter from the provided list. - * Tries each adapter in order until a supported one is found. - * Throws an AxiosError if no adapter is suitable. - * - * @param {Array|string|Function} adapters - Adapter(s) by name or function. - * @param {Object} config - Axios request configuration - * @throws {AxiosError} If no suitable adapter is available - * @returns {Function} The resolved adapter function - */ -function getAdapter(adapters, config) { - adapters = utils.isArray(adapters) ? adapters : [adapters]; - - const { length } = adapters; - let nameOrAdapter; - let adapter; - - const rejectedReasons = {}; - - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - - adapter = nameOrAdapter; - - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - - if (adapter === undefined) { - throw new AxiosError(`Unknown adapter '${id}'`); - } - } - - if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) { - break; - } - - rejectedReasons[id || '#' + i] = adapter; - } - - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map( - ([id, state]) => - `adapter ${id} ` + - (state === false ? 'is not supported by the environment' : 'is not available in the build') - ); - - let s = length - ? reasons.length > 1 - ? 'since :\n' + reasons.map(renderReason).join('\n') - : ' ' + renderReason(reasons[0]) - : 'as no adapter specified'; - - throw new AxiosError( - `There is no suitable adapter to dispatch the request ` + s, - 'ERR_NOT_SUPPORT' - ); - } - - return adapter; -} - -/** - * Exports Axios adapters and utility to resolve an adapter - */ -export default { - /** - * Resolve an adapter from a list of adapter names or functions. - * @type {Function} - */ - getAdapter, - - /** - * Exposes all known adapters - * @type {Object} - */ - adapters: knownAdapters, -}; diff --git a/node_modules/axios/lib/adapters/fetch.js b/node_modules/axios/lib/adapters/fetch.js deleted file mode 100644 index b9015a9..0000000 --- a/node_modules/axios/lib/adapters/fetch.js +++ /dev/null @@ -1,473 +0,0 @@ -import platform from '../platform/index.js'; -import utils from '../utils.js'; -import AxiosError from '../core/AxiosError.js'; -import composeSignals from '../helpers/composeSignals.js'; -import { trackStream } from '../helpers/trackStream.js'; -import AxiosHeaders from '../core/AxiosHeaders.js'; -import { - progressEventReducer, - progressEventDecorator, - asyncDecorator, -} from '../helpers/progressEventReducer.js'; -import resolveConfig from '../helpers/resolveConfig.js'; -import settle from '../core/settle.js'; -import estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js'; -import { VERSION } from '../env/data.js'; -import { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js'; - -const DEFAULT_CHUNK_SIZE = 64 * 1024; - -const { isFunction } = utils; - -const test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false; - } -}; - -const factory = (env) => { - const globalObject = - utils.global !== undefined && utils.global !== null - ? utils.global - : globalThis; - const { ReadableStream, TextEncoder } = globalObject; - - env = utils.merge.call( - { - skipUndefined: true, - }, - { - Request: globalObject.Request, - Response: globalObject.Response, - }, - env - ); - - const { fetch: envFetch, Request, Response } = env; - const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function'; - const isRequestSupported = isFunction(Request); - const isResponseSupported = isFunction(Response); - - if (!isFetchSupported) { - return false; - } - - const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream); - - const encodeText = - isFetchSupported && - (typeof TextEncoder === 'function' - ? ( - (encoder) => (str) => - encoder.encode(str) - )(new TextEncoder()) - : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); - - const supportsRequestStream = - isRequestSupported && - isReadableStreamSupported && - test(() => { - let duplexAccessed = false; - - const request = new Request(platform.origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - }, - }); - - const hasContentType = request.headers.has('Content-Type'); - - if (request.body != null) { - request.body.cancel(); - } - - return duplexAccessed && !hasContentType; - }); - - const supportsResponseStream = - isResponseSupported && - isReadableStreamSupported && - test(() => utils.isReadableStream(new Response('').body)); - - const resolvers = { - stream: supportsResponseStream && ((res) => res.body), - }; - - isFetchSupported && - (() => { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { - !resolvers[type] && - (resolvers[type] = (res, config) => { - let method = res && res[type]; - - if (method) { - return method.call(res); - } - - throw new AxiosError( - `Response type '${type}' is not supported`, - AxiosError.ERR_NOT_SUPPORT, - config - ); - }); - }); - })(); - - const getBodyLength = async (body) => { - if (body == null) { - return 0; - } - - if (utils.isBlob(body)) { - return body.size; - } - - if (utils.isSpecCompliantForm(body)) { - const _request = new Request(platform.origin, { - method: 'POST', - body, - }); - return (await _request.arrayBuffer()).byteLength; - } - - if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) { - return body.byteLength; - } - - if (utils.isURLSearchParams(body)) { - body = body + ''; - } - - if (utils.isString(body)) { - return (await encodeText(body)).byteLength; - } - }; - - const resolveBodyLength = async (headers, body) => { - const length = utils.toFiniteNumber(headers.getContentLength()); - - return length == null ? getBodyLength(body) : length; - }; - - return async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = 'same-origin', - fetchOptions, - maxContentLength, - maxBodyLength, - } = resolveConfig(config); - - const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1; - const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1; - - let _fetch = envFetch || fetch; - - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - - let composedSignal = composeSignals( - [signal, cancelToken && cancelToken.toAbortSignal()], - timeout - ); - - let request = null; - - const unsubscribe = - composedSignal && - composedSignal.unsubscribe && - (() => { - composedSignal.unsubscribe(); - }); - - let requestContentLength; - - try { - // Enforce maxContentLength for data: URLs up-front so we never materialize - // an oversized payload. The HTTP adapter applies the same check (see http.js - // "if (protocol === 'data:')" branch). - if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { - const estimated = estimateDataURLDecodedBytes(url); - if (estimated > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - // Enforce maxBodyLength against the outbound request body before dispatch. - // Mirrors http.js behavior (ERR_BAD_REQUEST / 'Request body larger than - // maxBodyLength limit'). Skip when the body length cannot be determined - // (e.g. a live ReadableStream supplied by the caller). - if (hasMaxBodyLength && method !== 'get' && method !== 'head') { - const outboundLength = await resolveBodyLength(headers, data); - if ( - typeof outboundLength === 'number' && - isFinite(outboundLength) && - outboundLength > maxBodyLength - ) { - throw new AxiosError( - 'Request body larger than maxBodyLength limit', - AxiosError.ERR_BAD_REQUEST, - config, - request - ); - } - } - - if ( - onUploadProgress && - supportsRequestStream && - method !== 'get' && - method !== 'head' && - (requestContentLength = await resolveBodyLength(headers, data)) !== 0 - ) { - let _request = new Request(url, { - method: 'POST', - body: data, - duplex: 'half', - }); - - let contentTypeHeader; - - if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader); - } - - if (_request.body) { - const [onProgress, flush] = progressEventDecorator( - requestContentLength, - progressEventReducer(asyncDecorator(onUploadProgress)) - ); - - data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - - if (!utils.isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; - - // If data is FormData and Content-Type is multipart/form-data without boundary, - // delete it so fetch can set it correctly with the boundary - if (utils.isFormData(data)) { - const contentType = headers.getContentType(); - if ( - contentType && - /^multipart\/form-data/i.test(contentType) && - !/boundary=/i.test(contentType) - ) { - headers.delete('content-type'); - } - } - - // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) - headers.set('User-Agent', 'axios/' + VERSION, false); - - const resolvedOptions = { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: toByteStringHeaderObject(headers.normalize()), - body: data, - duplex: 'half', - credentials: isCredentialsSupported ? withCredentials : undefined, - }; - - request = isRequestSupported && new Request(url, resolvedOptions); - - let response = await (isRequestSupported - ? _fetch(request, fetchOptions) - : _fetch(url, resolvedOptions)); - - // Cheap pre-check: if the server honestly declares a content-length that - // already exceeds the cap, reject before we start streaming. - if (hasMaxContentLength) { - const declaredLength = utils.toFiniteNumber(response.headers.get('content-length')); - if (declaredLength != null && declaredLength > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - const isStreamResponse = - supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - - if ( - supportsResponseStream && - response.body && - (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe)) - ) { - const options = {}; - - ['status', 'statusText', 'headers'].forEach((prop) => { - options[prop] = response[prop]; - }); - - const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length')); - - const [onProgress, flush] = - (onDownloadProgress && - progressEventDecorator( - responseContentLength, - progressEventReducer(asyncDecorator(onDownloadProgress), true) - )) || - []; - - let bytesRead = 0; - const onChunkProgress = (loadedBytes) => { - if (hasMaxContentLength) { - bytesRead = loadedBytes; - if (bytesRead > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - onProgress && onProgress(loadedBytes); - }; - - response = new Response( - trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), - options - ); - } - - responseType = responseType || 'text'; - - let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text']( - response, - config - ); - - // Fallback enforcement for environments without ReadableStream support - // (legacy runtimes). Detect materialized size from typed output; skip - // streams/Response passthrough since the user will read those themselves. - if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { - let materializedSize; - if (responseData != null) { - if (typeof responseData.byteLength === 'number') { - materializedSize = responseData.byteLength; - } else if (typeof responseData.size === 'number') { - materializedSize = responseData.size; - } else if (typeof responseData === 'string') { - materializedSize = - typeof TextEncoder === 'function' - ? new TextEncoder().encode(responseData).byteLength - : responseData.length; - } - } - if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { - throw new AxiosError( - 'maxContentLength size of ' + maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - request - ); - } - } - - !isStreamResponse && unsubscribe && unsubscribe(); - - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request, - }); - }); - } catch (err) { - unsubscribe && unsubscribe(); - - // Safari can surface fetch aborts as a DOMException-like object whose - // branded getters throw. Prefer our composed signal reason before reading - // the caught error, preserving timeout vs cancellation semantics. - if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) { - const canceledError = composedSignal.reason; - canceledError.config = config; - request && (canceledError.request = request); - err !== canceledError && (canceledError.cause = err); - throw canceledError; - } - - if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { - throw Object.assign( - new AxiosError( - 'Network Error', - AxiosError.ERR_NETWORK, - config, - request, - err && err.response - ), - { - cause: err.cause || err, - } - ); - } - - throw AxiosError.from(err, err && err.code, config, request, err && err.response); - } - }; -}; - -const seedCache = new Map(); - -export const getFetch = (config) => { - let env = (config && config.env) || {}; - const { fetch, Request, Response } = env; - const seeds = [Request, Response, fetch]; - - let len = seeds.length, - i = len, - seed, - target, - map = seedCache; - - while (i--) { - seed = seeds[i]; - target = map.get(seed); - - target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); - - map = target; - } - - return target; -}; - -const adapter = getFetch(); - -export default adapter; diff --git a/node_modules/axios/lib/adapters/http.js b/node_modules/axios/lib/adapters/http.js deleted file mode 100755 index 3e0f4f3..0000000 --- a/node_modules/axios/lib/adapters/http.js +++ /dev/null @@ -1,1312 +0,0 @@ -import utils from '../utils.js'; -import settle from '../core/settle.js'; -import buildFullPath from '../core/buildFullPath.js'; -import buildURL from '../helpers/buildURL.js'; -import { getProxyForUrl } from 'proxy-from-env'; -import HttpsProxyAgent from 'https-proxy-agent'; -import http from 'http'; -import https from 'https'; -import http2 from 'http2'; -import util from 'util'; -import { resolve as resolvePath } from 'path'; -import followRedirects from 'follow-redirects'; -import zlib from 'zlib'; -import { VERSION } from '../env/data.js'; -import transitionalDefaults from '../defaults/transitional.js'; -import AxiosError from '../core/AxiosError.js'; -import CanceledError from '../cancel/CanceledError.js'; -import platform from '../platform/index.js'; -import fromDataURI from '../helpers/fromDataURI.js'; -import stream from 'stream'; -import AxiosHeaders from '../core/AxiosHeaders.js'; -import AxiosTransformStream from '../helpers/AxiosTransformStream.js'; -import { EventEmitter } from 'events'; -import formDataToStream from '../helpers/formDataToStream.js'; -import readBlob from '../helpers/readBlob.js'; -import ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js'; -import callbackify from '../helpers/callbackify.js'; -import shouldBypassProxy from '../helpers/shouldBypassProxy.js'; -import { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js'; -import { - progressEventReducer, - progressEventDecorator, - asyncDecorator, -} from '../helpers/progressEventReducer.js'; -import estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js'; - -const zlibOptions = { - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH, -}; - -const brotliOptions = { - flush: zlib.constants.BROTLI_OPERATION_FLUSH, - finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH, -}; - -const isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress); - -const { http: httpFollow, https: httpsFollow } = followRedirects; - -const isHttps = /https:?/; -const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; - -function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -// Symbols used to bind a single 'error' listener to a pooled socket and track -// the request currently owning that socket across keep-alive reuse (issue #10780). -const kAxiosSocketListener = Symbol('axios.http.socketListener'); -const kAxiosCurrentReq = Symbol('axios.http.currentReq'); - -// Tags HttpsProxyAgent instances installed by setProxy() so the redirect path -// can strip them without clobbering a user-supplied agent that happens to be -// an HttpsProxyAgent. -const kAxiosInstalledTunnel = Symbol('axios.http.installedTunnel'); - -// Cache of CONNECT-tunneling agents keyed by proxy config so repeat requests -// through the same proxy reuse a single agent (and its socket pool). The -// keyspace is bounded by the set of distinct proxy configs the process uses, -// so unbounded growth is not a concern in practice. -const tunnelingAgentCache = new Map(); -const tunnelingAgentCacheUser = new WeakMap(); - -function getTunnelingAgent(agentOptions, userHttpsAgent) { - const key = - agentOptions.protocol + - '//' + - agentOptions.hostname + - ':' + - (agentOptions.port || '') + - '#' + - (agentOptions.auth || ''); - const cache = userHttpsAgent - ? (tunnelingAgentCacheUser.get(userHttpsAgent) || - tunnelingAgentCacheUser.set(userHttpsAgent, new Map()).get(userHttpsAgent)) - : tunnelingAgentCache; - let agent = cache.get(key); - if (agent) return agent; - // Forward the user's TLS options (custom CA, rejectUnauthorized, client cert, - // etc.) into the tunneling agent so they apply to the origin TLS upgrade - // performed after CONNECT. Our proxy fields take precedence on conflict. - const merged = userHttpsAgent && userHttpsAgent.options - ? { ...userHttpsAgent.options, ...agentOptions } - : agentOptions; - agent = new HttpsProxyAgent(merged); - agent[kAxiosInstalledTunnel] = true; - cache.set(key, agent); - return agent; -} - -const supportedProtocols = platform.protocols.map((protocol) => { - return protocol + ':'; -}); - -// Node's WHATWG URL parser returns `username` and `password` percent-encoded. -// Decode before composing the `auth` option so credentials such as -// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the -// original value for malformed input so a bad encoding never throws. -const decodeURIComponentSafe = (value) => { - if (!utils.isString(value)) { - return value; - } - - try { - return decodeURIComponent(value); - } catch (error) { - return value; - } -}; - -const flushOnFinish = (stream, [throttled, flush]) => { - stream.on('end', flush).on('error', flush); - - return throttled; -}; - -class Http2Sessions { - constructor() { - this.sessions = Object.create(null); - } - - getSession(authority, options) { - options = Object.assign( - { - sessionTimeout: 1000, - }, - options - ); - - let authoritySessions = this.sessions[authority]; - - if (authoritySessions) { - let len = authoritySessions.length; - - for (let i = 0; i < len; i++) { - const [sessionHandle, sessionOptions] = authoritySessions[i]; - if ( - !sessionHandle.destroyed && - !sessionHandle.closed && - util.isDeepStrictEqual(sessionOptions, options) - ) { - return sessionHandle; - } - } - } - - const session = http2.connect(authority, options); - - let removed; - - const removeSession = () => { - if (removed) { - return; - } - - removed = true; - - let entries = authoritySessions, - len = entries.length, - i = len; - - while (i--) { - if (entries[i][0] === session) { - if (len === 1) { - delete this.sessions[authority]; - } else { - entries.splice(i, 1); - } - if (!session.closed) { - session.close(); - } - return; - } - } - }; - - const originalRequestFn = session.request; - - const { sessionTimeout } = options; - - if (sessionTimeout != null) { - let timer; - let streamsCount = 0; - - session.request = function () { - const stream = originalRequestFn.apply(this, arguments); - - streamsCount++; - - if (timer) { - clearTimeout(timer); - timer = null; - } - - stream.once('close', () => { - if (!--streamsCount) { - timer = setTimeout(() => { - timer = null; - removeSession(); - }, sessionTimeout); - } - }); - - return stream; - }; - } - - session.once('close', removeSession); - - let entry = [session, options]; - - authoritySessions - ? authoritySessions.push(entry) - : (authoritySessions = this.sessions[authority] = [entry]); - - return session; - } -} - -const http2Sessions = new Http2Sessions(); - -/** - * If the proxy or config beforeRedirects functions are defined, call them with the options - * object. - * - * @param {Object} options - The options object that was passed to the request. - * - * @returns {Object} - */ -function dispatchBeforeRedirect(options, responseDetails, requestDetails) { - if (options.beforeRedirects.proxy) { - options.beforeRedirects.proxy(options); - } - if (options.beforeRedirects.config) { - options.beforeRedirects.config(options, responseDetails, requestDetails); - } -} - -/** - * If the proxy or config afterRedirects functions are defined, call them with the options - * - * @param {http.ClientRequestArgs} options - * @param {AxiosProxyConfig} configProxy configuration from Axios options object - * @param {string} location - * - * @returns {http.ClientRequestArgs} - */ -function setProxy(options, configProxy, location, isRedirect, configHttpsAgent) { - let proxy = configProxy; - if (!proxy && proxy !== false) { - const proxyUrl = getProxyForUrl(location); - if (proxyUrl) { - if (!shouldBypassProxy(location)) { - proxy = new URL(proxyUrl); - } - } - } - // On redirect re-invocation, strip any stale Proxy-Authorization header carried - // over from the prior request (e.g. new target no longer uses a proxy, or uses - // a different proxy). Skip on the initial request so user-supplied headers are - // preserved. Header names are case-insensitive, so remove every case variant. - if (isRedirect && options.headers) { - for (const name of Object.keys(options.headers)) { - if (name.toLowerCase() === 'proxy-authorization') { - delete options.headers[name]; - } - } - } - // Strip any tunneling agent we installed for the previous hop so a redirect - // that drops the proxy or crosses an HTTPS↔HTTP boundary doesn't reuse a - // stale one. Match on our Symbol marker so a user-supplied HttpsProxyAgent - // (which won't carry the marker) is left alone. - if (isRedirect && options.agent && options.agent[kAxiosInstalledTunnel]) { - options.agent = undefined; - } - if (proxy) { - // Read proxy fields without traversing the prototype chain. URL instances expose - // username/password/hostname/host/port/protocol via getters on URL.prototype (so - // direct reads are shielded), but plain object proxies — and the `auth` field - // (which URL does not expose) — must be guarded so a polluted Object.prototype - // (e.g. Object.prototype.auth = { username, password }) cannot inject - // attacker-controlled credentials into the Proxy-Authorization header or - // redirect proxying to an attacker-controlled host. - const isProxyURL = proxy instanceof URL; - const readProxyField = (key) => - isProxyURL || utils.hasOwnProp(proxy, key) ? proxy[key] : undefined; - - const proxyUsername = readProxyField('username'); - const proxyPassword = readProxyField('password'); - let proxyAuth = utils.hasOwnProp(proxy, 'auth') ? proxy.auth : undefined; - - // Basic proxy authorization - if (proxyUsername) { - proxyAuth = (proxyUsername || '') + ':' + (proxyPassword || ''); - } - - if (proxyAuth) { - // Support proxy auth object form. Read sub-fields via own-prop checks so a - // plain object inheriting from polluted Object.prototype cannot leak creds. - const authIsObject = typeof proxyAuth === 'object'; - const authUsername = - authIsObject && utils.hasOwnProp(proxyAuth, 'username') ? proxyAuth.username : undefined; - const authPassword = - authIsObject && utils.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined; - const validProxyAuth = Boolean(authUsername || authPassword); - - if (validProxyAuth) { - proxyAuth = (authUsername || '') + ':' + (authPassword || ''); - } else if (authIsObject) { - throw new AxiosError('Invalid proxy authorization', AxiosError.ERR_BAD_OPTION, { proxy }); - } - } - - const targetIsHttps = isHttps.test(options.protocol); - - if (targetIsHttps) { - // CONNECT-tunneling path for HTTPS targets. Preserves end-to-end TLS to - // the origin so the proxy cannot inspect the URL, headers, or body — the - // behavior already promised by THREATMODEL.md (T-R9). HttpsProxyAgent - // sends Proxy-Authorization on the CONNECT request only, never on the - // wrapped TLS request, which is why we don't stamp it onto - // options.headers here. If the user already supplied an HttpsProxyAgent, - // they own tunneling end-to-end and we leave them alone; otherwise we - // install our own tunneling agent and forward their TLS options (if any) - // so a custom httpsAgent for cert pinning / rejectUnauthorized still - // applies to the origin TLS upgrade. - if (!(configHttpsAgent instanceof HttpsProxyAgent)) { - const proxyHost = readProxyField('hostname') || readProxyField('host'); - const proxyPort = readProxyField('port'); - const rawProxyProtocol = readProxyField('protocol'); - const normalizedProtocol = rawProxyProtocol - ? rawProxyProtocol.includes(':') - ? rawProxyProtocol - : `${rawProxyProtocol}:` - : 'http:'; - // Bracket IPv6 literals for URL parsing; URL.hostname strips the - // brackets again on read so the agent receives the raw form. - const proxyHostForURL = - proxyHost && proxyHost.includes(':') && !proxyHost.startsWith('[') - ? `[${proxyHost}]` - : proxyHost; - const proxyURL = new URL( - `${normalizedProtocol}//${proxyHostForURL}${proxyPort ? ':' + proxyPort : ''}` - ); - const agentOptions = { - protocol: proxyURL.protocol, - hostname: proxyURL.hostname.replace(/^\[|\]$/g, ''), - port: proxyURL.port, - auth: proxyAuth && typeof proxyAuth === 'string' ? proxyAuth : undefined, - }; - if (proxyURL.protocol === 'https:') { - agentOptions.ALPNProtocols = ['http/1.1']; - } - const tunnelingAgent = getTunnelingAgent(agentOptions, configHttpsAgent); - // Set both: `options.agent` is consumed by the native https.request path - // (config.maxRedirects === 0); `options.agents.https` is consumed by - // follow-redirects, which ignores `options.agent` when `options.agents` - // is present. - options.agent = tunnelingAgent; - if (options.agents) { - options.agents.https = tunnelingAgent; - } - } - } else { - // Forward-proxy mode for plaintext HTTP targets. The request line carries - // the absolute URL and the proxy sees everything — acceptable for plain - // HTTP since the wire was already plaintext. - if (proxyAuth) { - const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64'); - options.headers['Proxy-Authorization'] = 'Basic ' + base64; - } - - // Preserve a user-supplied Host header (case-insensitive) so callers can override - // the value forwarded to the proxy; otherwise default to the request URL's host. - let hasUserHostHeader = false; - for (const name of Object.keys(options.headers)) { - if (name.toLowerCase() === 'host') { - hasUserHostHeader = true; - break; - } - } - if (!hasUserHostHeader) { - options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); - } - const proxyHost = readProxyField('hostname') || readProxyField('host'); - options.hostname = proxyHost; - // Replace 'host' since options is not a URL object - options.host = proxyHost; - options.port = readProxyField('port'); - options.path = location; - const proxyProtocol = readProxyField('protocol'); - if (proxyProtocol) { - options.protocol = proxyProtocol.includes(':') ? proxyProtocol : `${proxyProtocol}:`; - } - } - } - - options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { - // Configure proxy for redirected request, passing the original config proxy to apply - // the exact same logic as if the redirected request was performed by axios directly. - setProxy(redirectOptions, configProxy, redirectOptions.href, true, configHttpsAgent); - }; -} - -const isHttpAdapterSupported = - typeof process !== 'undefined' && utils.kindOf(process) === 'process'; - -// temporary hotfix - -const wrapAsync = (asyncExecutor) => { - return new Promise((resolve, reject) => { - let onDone; - let isDone; - - const done = (value, isRejected) => { - if (isDone) return; - isDone = true; - onDone && onDone(value, isRejected); - }; - - const _resolve = (value) => { - done(value); - resolve(value); - }; - - const _reject = (reason) => { - done(reason, true); - reject(reason); - }; - - asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); - }); -}; - -const resolveFamily = ({ address, family }) => { - if (!utils.isString(address)) { - throw TypeError('address must be a string'); - } - return { - address, - family: family || (address.indexOf('.') < 0 ? 6 : 4), - }; -}; - -const buildAddressEntry = (address, family) => - resolveFamily(utils.isObject(address) ? address : { address, family }); - -const http2Transport = { - request(options, cb) { - const authority = - options.protocol + - '//' + - options.hostname + - ':' + - (options.port || (options.protocol === 'https:' ? 443 : 80)); - - const { http2Options, headers } = options; - - const session = http2Sessions.getSession(authority, http2Options); - - const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } = - http2.constants; - - const http2Headers = { - [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), - [HTTP2_HEADER_METHOD]: options.method, - [HTTP2_HEADER_PATH]: options.path, - }; - - utils.forEach(headers, (header, name) => { - name.charAt(0) !== ':' && (http2Headers[name] = header); - }); - - const req = session.request(http2Headers); - - req.once('response', (responseHeaders) => { - const response = req; //duplex - - responseHeaders = Object.assign({}, responseHeaders); - - const status = responseHeaders[HTTP2_HEADER_STATUS]; - - delete responseHeaders[HTTP2_HEADER_STATUS]; - - response.headers = responseHeaders; - - response.statusCode = +status; - - cb(response); - }); - - return req; - }, -}; - -/*eslint consistent-return:0*/ -export default isHttpAdapterSupported && - function httpAdapter(config) { - return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { - const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined); - let data = own('data'); - let lookup = own('lookup'); - let family = own('family'); - let httpVersion = own('httpVersion'); - if (httpVersion === undefined) httpVersion = 1; - let http2Options = own('http2Options'); - const responseType = own('responseType'); - const responseEncoding = own('responseEncoding'); - const method = config.method.toUpperCase(); - let isDone; - let rejected = false; - let req; - let connectPhaseTimer; - - httpVersion = +httpVersion; - - if (Number.isNaN(httpVersion)) { - throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`); - } - - if (httpVersion !== 1 && httpVersion !== 2) { - throw TypeError(`Unsupported protocol version '${httpVersion}'`); - } - - const isHttp2 = httpVersion === 2; - - if (lookup) { - const _lookup = callbackify(lookup, (value) => (utils.isArray(value) ? value : [value])); - // hotfix to support opt.all option which is required for node 20.x - lookup = (hostname, opt, cb) => { - _lookup(hostname, opt, (err, arg0, arg1) => { - if (err) { - return cb(err); - } - - const addresses = utils.isArray(arg0) - ? arg0.map((addr) => buildAddressEntry(addr)) - : [buildAddressEntry(arg0, arg1)]; - - opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); - }); - }; - } - - const abortEmitter = new EventEmitter(); - - function abort(reason) { - try { - abortEmitter.emit( - 'abort', - !reason || reason.type ? new CanceledError(null, config, req) : reason - ); - } catch (err) { - console.warn('emit error', err); - } - } - - function clearConnectPhaseTimer() { - if (connectPhaseTimer) { - clearTimeout(connectPhaseTimer); - connectPhaseTimer = null; - } - } - - function createTimeoutError() { - let timeoutErrorMessage = config.timeout - ? 'timeout of ' + config.timeout + 'ms exceeded' - : 'timeout exceeded'; - const transitional = config.transitional || transitionalDefaults; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - return new AxiosError( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, - config, - req - ); - } - - abortEmitter.once('abort', reject); - - const onFinished = () => { - clearConnectPhaseTimer(); - - if (config.cancelToken) { - config.cancelToken.unsubscribe(abort); - } - - if (config.signal) { - config.signal.removeEventListener('abort', abort); - } - - abortEmitter.removeAllListeners(); - }; - - if (config.cancelToken || config.signal) { - config.cancelToken && config.cancelToken.subscribe(abort); - if (config.signal) { - config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); - } - } - - onDone((response, isRejected) => { - isDone = true; - clearConnectPhaseTimer(); - - if (isRejected) { - rejected = true; - onFinished(); - return; - } - - const { data } = response; - - if (data instanceof stream.Readable || data instanceof stream.Duplex) { - const offListeners = stream.finished(data, () => { - offListeners(); - onFinished(); - }); - } else { - onFinished(); - } - }); - - // Parse url - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined); - const protocol = parsed.protocol || supportedProtocols[0]; - - if (protocol === 'data:') { - // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set. - if (config.maxContentLength > -1) { - // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed. - const dataUrl = String(config.url || fullPath || ''); - const estimated = estimateDataURLDecodedBytes(dataUrl); - - if (estimated > config.maxContentLength) { - return reject( - new AxiosError( - 'maxContentLength size of ' + config.maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config - ) - ); - } - } - - let convertedData; - - if (method !== 'GET') { - return settle(resolve, reject, { - status: 405, - statusText: 'method not allowed', - headers: {}, - config, - }); - } - - try { - convertedData = fromDataURI(config.url, responseType === 'blob', { - Blob: config.env && config.env.Blob, - }); - } catch (err) { - throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); - } - - if (responseType === 'text') { - convertedData = convertedData.toString(responseEncoding); - - if (!responseEncoding || responseEncoding === 'utf8') { - convertedData = utils.stripBOM(convertedData); - } - } else if (responseType === 'stream') { - convertedData = stream.Readable.from(convertedData); - } - - return settle(resolve, reject, { - data: convertedData, - status: 200, - statusText: 'OK', - headers: new AxiosHeaders(), - config, - }); - } - - if (supportedProtocols.indexOf(protocol) === -1) { - return reject( - new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_BAD_REQUEST, config) - ); - } - - const headers = AxiosHeaders.from(config.headers).normalize(); - - // Set User-Agent (required by some servers) - // See https://github.com/axios/axios/issues/69 - // User-Agent is specified; handle case where no UA header is desired - // Only set header if it hasn't been set in config - headers.set('User-Agent', 'axios/' + VERSION, false); - - const { onUploadProgress, onDownloadProgress } = config; - const maxRate = config.maxRate; - let maxUploadRate = undefined; - let maxDownloadRate = undefined; - - // support for spec compliant FormData objects - if (utils.isSpecCompliantForm(data)) { - const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); - - data = formDataToStream( - data, - (formHeaders) => { - headers.set(formHeaders); - }, - { - tag: `axios-${VERSION}-boundary`, - boundary: (userBoundary && userBoundary[1]) || undefined, - } - ); - // support for https://www.npmjs.com/package/form-data api - } else if ( - utils.isFormData(data) && - utils.isFunction(data.getHeaders) && - data.getHeaders !== Object.prototype.getHeaders - ) { - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - - if (!headers.hasContentLength()) { - try { - const knownLength = await util.promisify(data.getLength).call(data); - Number.isFinite(knownLength) && - knownLength >= 0 && - headers.setContentLength(knownLength); - /*eslint no-empty:0*/ - } catch (e) {} - } - } else if (utils.isBlob(data) || utils.isFile(data)) { - data.size && headers.setContentType(data.type || 'application/octet-stream'); - headers.setContentLength(data.size || 0); - data = stream.Readable.from(readBlob(data)); - } else if (data && !utils.isStream(data)) { - if (Buffer.isBuffer(data)) { - // Nothing to do... - } else if (utils.isArrayBuffer(data)) { - data = Buffer.from(new Uint8Array(data)); - } else if (utils.isString(data)) { - data = Buffer.from(data, 'utf-8'); - } else { - return reject( - new AxiosError( - 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', - AxiosError.ERR_BAD_REQUEST, - config - ) - ); - } - - // Add Content-Length header if data exists - headers.setContentLength(data.length, false); - - if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { - return reject( - new AxiosError( - 'Request body larger than maxBodyLength limit', - AxiosError.ERR_BAD_REQUEST, - config - ) - ); - } - } - - const contentLength = utils.toFiniteNumber(headers.getContentLength()); - - if (utils.isArray(maxRate)) { - maxUploadRate = maxRate[0]; - maxDownloadRate = maxRate[1]; - } else { - maxUploadRate = maxDownloadRate = maxRate; - } - - if (data && (onUploadProgress || maxUploadRate)) { - if (!utils.isStream(data)) { - data = stream.Readable.from(data, { objectMode: false }); - } - - data = stream.pipeline( - [ - data, - new AxiosTransformStream({ - maxRate: utils.toFiniteNumber(maxUploadRate), - }), - ], - utils.noop - ); - - onUploadProgress && - data.on( - 'progress', - flushOnFinish( - data, - progressEventDecorator( - contentLength, - progressEventReducer(asyncDecorator(onUploadProgress), false, 3) - ) - ) - ); - } - - // HTTP basic authentication - let auth = undefined; - const configAuth = own('auth'); - if (configAuth) { - const username = configAuth.username || ''; - const password = configAuth.password || ''; - auth = username + ':' + password; - } - - if (!auth && parsed.username) { - const urlUsername = decodeURIComponentSafe(parsed.username); - const urlPassword = decodeURIComponentSafe(parsed.password); - auth = urlUsername + ':' + urlPassword; - } - - auth && headers.delete('authorization'); - - let path; - - try { - path = buildURL( - parsed.pathname + parsed.search, - config.params, - config.paramsSerializer - ).replace(/^\?/, ''); - } catch (err) { - const customErr = new Error(err.message); - customErr.config = config; - customErr.url = config.url; - customErr.exists = true; - return reject(customErr); - } - - headers.set( - 'Accept-Encoding', - 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), - false - ); - - // Null-prototype to block prototype pollution gadgets on properties read - // directly by Node's http.request (e.g. insecureHTTPParser, lookup). - const options = Object.assign(Object.create(null), { - path, - method: method, - headers: toByteStringHeaderObject(headers), - agents: { http: config.httpAgent, https: config.httpsAgent }, - auth, - protocol, - family, - beforeRedirect: dispatchBeforeRedirect, - beforeRedirects: Object.create(null), - http2Options, - }); - - // cacheable-lookup integration hotfix - !utils.isUndefined(lookup) && (options.lookup = lookup); - - if (config.socketPath) { - if (typeof config.socketPath !== 'string') { - return reject( - new AxiosError('socketPath must be a string', AxiosError.ERR_BAD_OPTION_VALUE, config) - ); - } - - if (config.allowedSocketPaths != null) { - const allowed = Array.isArray(config.allowedSocketPaths) - ? config.allowedSocketPaths - : [config.allowedSocketPaths]; - - const resolvedSocket = resolvePath(config.socketPath); - const isAllowed = allowed.some( - (entry) => typeof entry === 'string' && resolvePath(entry) === resolvedSocket - ); - - if (!isAllowed) { - return reject( - new AxiosError( - `socketPath "${config.socketPath}" is not permitted by allowedSocketPaths`, - AxiosError.ERR_BAD_OPTION_VALUE, - config - ) - ); - } - } - - options.socketPath = config.socketPath; - } else { - options.hostname = parsed.hostname.startsWith('[') - ? parsed.hostname.slice(1, -1) - : parsed.hostname; - options.port = parsed.port; - setProxy( - options, - config.proxy, - protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path, - false, - config.httpsAgent - ); - } - let transport; - let isNativeTransport = false; - const isHttpsRequest = isHttps.test(options.protocol); - // Don't clobber a CONNECT-tunneling agent installed by setProxy() for an - // HTTPS target. - if (options.agent == null) { - options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; - } - - if (isHttp2) { - transport = http2Transport; - } else { - const configTransport = own('transport'); - if (configTransport) { - transport = configTransport; - } else if (config.maxRedirects === 0) { - transport = isHttpsRequest ? https : http; - isNativeTransport = true; - } else { - if (config.maxRedirects) { - options.maxRedirects = config.maxRedirects; - } - const configBeforeRedirect = own('beforeRedirect'); - if (configBeforeRedirect) { - options.beforeRedirects.config = configBeforeRedirect; - } - transport = isHttpsRequest ? httpsFollow : httpFollow; - } - } - - if (config.maxBodyLength > -1) { - options.maxBodyLength = config.maxBodyLength; - } else { - // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited - options.maxBodyLength = Infinity; - } - - // Always set an explicit own value so a polluted - // Object.prototype.insecureHTTPParser cannot enable the lenient parser - // through Node's internal options copy - options.insecureHTTPParser = Boolean(own('insecureHTTPParser')); - - // Create the request - req = transport.request(options, function handleResponse(res) { - clearConnectPhaseTimer(); - - if (req.destroyed) return; - - const streams = [res]; - - const responseLength = utils.toFiniteNumber(res.headers['content-length']); - - if (onDownloadProgress || maxDownloadRate) { - const transformStream = new AxiosTransformStream({ - maxRate: utils.toFiniteNumber(maxDownloadRate), - }); - - onDownloadProgress && - transformStream.on( - 'progress', - flushOnFinish( - transformStream, - progressEventDecorator( - responseLength, - progressEventReducer(asyncDecorator(onDownloadProgress), true, 3) - ) - ) - ); - - streams.push(transformStream); - } - - // decompress the response body transparently if required - let responseStream = res; - - // return the last request in case of redirects - const lastRequest = res.req || req; - - // if decompress disabled we should not decompress - if (config.decompress !== false && res.headers['content-encoding']) { - // if no content, but headers still say that it is encoded, - // remove the header not confuse downstream operations - if (method === 'HEAD' || res.statusCode === 204) { - delete res.headers['content-encoding']; - } - - switch ((res.headers['content-encoding'] || '').toLowerCase()) { - /*eslint default-case:0*/ - case 'gzip': - case 'x-gzip': - case 'compress': - case 'x-compress': - // add the unzipper to the body stream processing pipeline - streams.push(zlib.createUnzip(zlibOptions)); - - // remove the content-encoding in order to not confuse downstream operations - delete res.headers['content-encoding']; - break; - case 'deflate': - streams.push(new ZlibHeaderTransformStream()); - - // add the unzipper to the body stream processing pipeline - streams.push(zlib.createUnzip(zlibOptions)); - - // remove the content-encoding in order to not confuse downstream operations - delete res.headers['content-encoding']; - break; - case 'br': - if (isBrotliSupported) { - streams.push(zlib.createBrotliDecompress(brotliOptions)); - delete res.headers['content-encoding']; - } - } - } - - responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0]; - - const response = { - status: res.statusCode, - statusText: res.statusMessage, - headers: new AxiosHeaders(res.headers), - config, - request: lastRequest, - }; - - if (responseType === 'stream') { - // Enforce maxContentLength on streamed responses; previously this - // was applied only to buffered responses. - if (config.maxContentLength > -1) { - const limit = config.maxContentLength; - const source = responseStream; - async function* enforceMaxContentLength() { - let totalResponseBytes = 0; - for await (const chunk of source) { - totalResponseBytes += chunk.length; - if (totalResponseBytes > limit) { - throw new AxiosError( - 'maxContentLength size of ' + limit + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - lastRequest - ); - } - yield chunk; - } - } - responseStream = stream.Readable.from(enforceMaxContentLength(), { - objectMode: false, - }); - } - response.data = responseStream; - settle(resolve, reject, response); - } else { - const responseBuffer = []; - let totalResponseBytes = 0; - - responseStream.on('data', function handleStreamData(chunk) { - responseBuffer.push(chunk); - totalResponseBytes += chunk.length; - - // make sure the content length is not over the maxContentLength if specified - if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { - // stream.destroy() emit aborted event before calling reject() on Node.js v16 - rejected = true; - responseStream.destroy(); - abort( - new AxiosError( - 'maxContentLength size of ' + config.maxContentLength + ' exceeded', - AxiosError.ERR_BAD_RESPONSE, - config, - lastRequest - ) - ); - } - }); - - responseStream.on('aborted', function handlerStreamAborted() { - if (rejected) { - return; - } - - const err = new AxiosError( - 'stream has been aborted', - AxiosError.ERR_BAD_RESPONSE, - config, - lastRequest, - response - ); - responseStream.destroy(err); - reject(err); - }); - - responseStream.on('error', function handleStreamError(err) { - if (rejected) return; - reject(AxiosError.from(err, null, config, lastRequest, response)); - }); - - responseStream.on('end', function handleStreamEnd() { - try { - let responseData = - responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); - if (responseType !== 'arraybuffer') { - responseData = responseData.toString(responseEncoding); - if (!responseEncoding || responseEncoding === 'utf8') { - responseData = utils.stripBOM(responseData); - } - } - response.data = responseData; - } catch (err) { - return reject(AxiosError.from(err, null, config, response.request, response)); - } - settle(resolve, reject, response); - }); - } - - abortEmitter.once('abort', (err) => { - if (!responseStream.destroyed) { - responseStream.emit('error', err); - responseStream.destroy(); - } - }); - }); - - abortEmitter.once('abort', (err) => { - if (req.close) { - req.close(); - } else { - req.destroy(err); - } - }); - - // Handle errors - req.on('error', function handleRequestError(err) { - reject(AxiosError.from(err, null, config, req)); - }); - - // set tcp keep alive to prevent drop connection by peer - // Track every socket bound to this outer RedirectableRequest so a single - // 'close' listener can release ownership on all of them. follow-redirects - // re-emits the 'socket' event for each hop's native request onto the same - // outer request, so attaching per-request listeners inside this handler - // would accumulate across hops and trigger MaxListenersExceededWarning at - // >= 11 redirects. Clearing only the last-bound socket would leave stale - // kAxiosCurrentReq refs on earlier hop sockets returned to the keep-alive - // pool, causing an idle-pool 'error' to be attributed to a closed req. - const boundSockets = new Set(); - - req.on('socket', function handleRequestSocket(socket) { - // default interval of sending ack packet is 1 minute - socket.setKeepAlive(true, 1000 * 60); - - // Install a single 'error' listener per socket (not per request) to avoid - // accumulating listeners on pooled keep-alive sockets that get reassigned - // to new requests before the previous request's 'close' fires (issue #10780). - // The listener is bound to the socket's currently-active request via a - // symbol, which is swapped as the socket is reassigned. - if (!socket[kAxiosSocketListener]) { - socket.on('error', function handleSocketError(err) { - const current = socket[kAxiosCurrentReq]; - if (current && !current.destroyed) { - current.destroy(err); - } - }); - socket[kAxiosSocketListener] = true; - } - - socket[kAxiosCurrentReq] = req; - boundSockets.add(socket); - }); - - req.once('close', function clearCurrentReq() { - clearConnectPhaseTimer(); - - for (const socket of boundSockets) { - if (socket[kAxiosCurrentReq] === req) { - socket[kAxiosCurrentReq] = null; - } - } - boundSockets.clear(); - }); - - // Handle request timeout - if (config.timeout) { - // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. - const timeout = parseInt(config.timeout, 10); - - if (Number.isNaN(timeout)) { - abort( - new AxiosError( - 'error trying to parse `config.timeout` to int', - AxiosError.ERR_BAD_OPTION_VALUE, - config, - req - ) - ); - - return; - } - - const handleTimeout = function handleTimeout() { - if (isDone) return; - abort(createTimeoutError()); - }; - - if (isNativeTransport && timeout > 0) { - // Native ClientRequest#setTimeout starts from the socket lifecycle and - // may not fire while TCP connect is still pending. Mirror the - // follow-redirects wall-clock timer for the maxRedirects === 0 path. - connectPhaseTimer = setTimeout(handleTimeout, timeout); - } - - // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. - // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. - // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. - // And then these socket which be hang up will devouring CPU little by little. - // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. - req.setTimeout(timeout, handleTimeout); - } else { - // explicitly reset the socket timeout value for a possible `keep-alive` request - req.setTimeout(0); - } - - // Send the request - if (utils.isStream(data)) { - let ended = false; - let errored = false; - - data.on('end', () => { - ended = true; - }); - - data.once('error', (err) => { - errored = true; - req.destroy(err); - }); - - data.on('close', () => { - if (!ended && !errored) { - abort(new CanceledError('Request stream has been aborted', config, req)); - } - }); - - // Enforce maxBodyLength for streamed uploads on the native http/https - // transport (maxRedirects === 0); follow-redirects enforces it on the - // other path. - let uploadStream = data; - if (config.maxBodyLength > -1 && config.maxRedirects === 0) { - const limit = config.maxBodyLength; - let bytesSent = 0; - uploadStream = stream.pipeline( - [ - data, - new stream.Transform({ - transform(chunk, _enc, cb) { - bytesSent += chunk.length; - if (bytesSent > limit) { - return cb( - new AxiosError( - 'Request body larger than maxBodyLength limit', - AxiosError.ERR_BAD_REQUEST, - config, - req - ) - ); - } - cb(null, chunk); - }, - }), - ], - utils.noop - ); - uploadStream.on('error', (err) => { - if (!req.destroyed) req.destroy(err); - }); - } - - uploadStream.pipe(req); - } else { - data && req.write(data); - req.end(); - } - }); - }; - -export const __setProxy = setProxy; diff --git a/node_modules/axios/lib/adapters/xhr.js b/node_modules/axios/lib/adapters/xhr.js deleted file mode 100644 index 2563677..0000000 --- a/node_modules/axios/lib/adapters/xhr.js +++ /dev/null @@ -1,227 +0,0 @@ -import utils from '../utils.js'; -import settle from '../core/settle.js'; -import transitionalDefaults from '../defaults/transitional.js'; -import AxiosError from '../core/AxiosError.js'; -import CanceledError from '../cancel/CanceledError.js'; -import parseProtocol from '../helpers/parseProtocol.js'; -import platform from '../platform/index.js'; -import AxiosHeaders from '../core/AxiosHeaders.js'; -import { progressEventReducer } from '../helpers/progressEventReducer.js'; -import resolveConfig from '../helpers/resolveConfig.js'; -import { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js'; - -const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; - -export default isXHRAdapterSupported && - function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders.from(_config.headers).normalize(); - let { responseType, onUploadProgress, onDownloadProgress } = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - - let request = new XMLHttpRequest(); - - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - const responseHeaders = AxiosHeaders.from( - 'getAllResponseHeaders' in request && request.getAllResponseHeaders() - ); - const responseData = - !responseType || responseType === 'text' || responseType === 'json' - ? request.responseText - : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request, - }; - - settle( - function _resolve(value) { - resolve(value); - done(); - }, - function _reject(err) { - reject(err); - done(); - }, - response - ); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if ( - request.status === 0 && - !(request.responseURL && request.responseURL.startsWith('file:')) - ) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); - done(); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError(event) { - // Browsers deliver a ProgressEvent in XHR onerror - // (message may be empty; when present, surface it) - // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event - const msg = event && event.message ? event.message : 'Network Error'; - const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request); - // attach the underlying event for consumers who want details - err.event = event || null; - reject(err); - done(); - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout - ? 'timeout of ' + _config.timeout + 'ms exceeded' - : 'timeout exceeded'; - const transitional = _config.transitional || transitionalDefaults; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject( - new AxiosError( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, - config, - request - ) - ); - done(); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!utils.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); - - request.upload.addEventListener('progress', uploadThrottled); - - request.upload.addEventListener('loadend', flushUpload); - } - - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = (cancel) => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); - request.abort(); - done(); - request = null; - }; - - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted - ? onCanceled() - : _config.signal.addEventListener('abort', onCanceled); - } - } - - const protocol = parseProtocol(_config.url); - - if (protocol && !platform.protocols.includes(protocol)) { - reject( - new AxiosError( - 'Unsupported protocol ' + protocol + ':', - AxiosError.ERR_BAD_REQUEST, - config - ) - ); - return; - } - - // Send the request - request.send(requestData || null); - }); - }; diff --git a/node_modules/axios/lib/axios.js b/node_modules/axios/lib/axios.js deleted file mode 100644 index 5a3a876..0000000 --- a/node_modules/axios/lib/axios.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; - -import utils from './utils.js'; -import bind from './helpers/bind.js'; -import Axios from './core/Axios.js'; -import mergeConfig from './core/mergeConfig.js'; -import defaults from './defaults/index.js'; -import formDataToJSON from './helpers/formDataToJSON.js'; -import CanceledError from './cancel/CanceledError.js'; -import CancelToken from './cancel/CancelToken.js'; -import isCancel from './cancel/isCancel.js'; -import { VERSION } from './env/data.js'; -import toFormData from './helpers/toFormData.js'; -import AxiosError from './core/AxiosError.js'; -import spread from './helpers/spread.js'; -import isAxiosError from './helpers/isAxiosError.js'; -import AxiosHeaders from './core/AxiosHeaders.js'; -import adapters from './adapters/adapters.js'; -import HttpStatusCode from './helpers/HttpStatusCode.js'; - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - const context = new Axios(defaultConfig); - const instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils.extend(instance, Axios.prototype, context, { allOwnKeys: true }); - - // Copy context to instance - utils.extend(instance, context, null, { allOwnKeys: true }); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - - return instance; -} - -// Create the default instance to be exported -const axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Expose Cancel & CancelToken -axios.CanceledError = CanceledError; -axios.CancelToken = CancelToken; -axios.isCancel = isCancel; -axios.VERSION = VERSION; -axios.toFormData = toFormData; - -// Expose AxiosError class -axios.AxiosError = AxiosError; - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; - -axios.spread = spread; - -// Expose isAxiosError -axios.isAxiosError = isAxiosError; - -// Expose mergeConfig -axios.mergeConfig = mergeConfig; - -axios.AxiosHeaders = AxiosHeaders; - -axios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); - -axios.getAdapter = adapters.getAdapter; - -axios.HttpStatusCode = HttpStatusCode; - -axios.default = axios; - -// this module should only have a default export -export default axios; diff --git a/node_modules/axios/lib/cancel/CancelToken.js b/node_modules/axios/lib/cancel/CancelToken.js deleted file mode 100644 index 357381e..0000000 --- a/node_modules/axios/lib/cancel/CancelToken.js +++ /dev/null @@ -1,135 +0,0 @@ -'use strict'; - -import CanceledError from './CanceledError.js'; - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ -class CancelToken { - constructor(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - let resolvePromise; - - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - const token = this; - - // eslint-disable-next-line func-names - this.promise.then((cancel) => { - if (!token._listeners) return; - - let i = token._listeners.length; - - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = (onfulfilled) => { - let _resolve; - // eslint-disable-next-line func-names - const promise = new Promise((resolve) => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - - return promise; - }; - - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new CanceledError(message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - - toAbortSignal() { - const controller = new AbortController(); - - const abort = (err) => { - controller.abort(err); - }; - - this.subscribe(abort); - - controller.signal.unsubscribe = () => this.unsubscribe(abort); - - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel, - }; - } -} - -export default CancelToken; diff --git a/node_modules/axios/lib/cancel/CanceledError.js b/node_modules/axios/lib/cancel/CanceledError.js deleted file mode 100644 index e769b89..0000000 --- a/node_modules/axios/lib/cancel/CanceledError.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -import AxiosError from '../core/AxiosError.js'; - -class CanceledError extends AxiosError { - /** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ - constructor(message, config, request) { - super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); - this.name = 'CanceledError'; - this.__CANCEL__ = true; - } -} - -export default CanceledError; diff --git a/node_modules/axios/lib/cancel/isCancel.js b/node_modules/axios/lib/cancel/isCancel.js deleted file mode 100644 index a444a12..0000000 --- a/node_modules/axios/lib/cancel/isCancel.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -export default function isCancel(value) { - return !!(value && value.__CANCEL__); -} diff --git a/node_modules/axios/lib/core/Axios.js b/node_modules/axios/lib/core/Axios.js deleted file mode 100644 index 903249a..0000000 --- a/node_modules/axios/lib/core/Axios.js +++ /dev/null @@ -1,281 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import buildURL from '../helpers/buildURL.js'; -import InterceptorManager from './InterceptorManager.js'; -import dispatchRequest from './dispatchRequest.js'; -import mergeConfig from './mergeConfig.js'; -import buildFullPath from './buildFullPath.js'; -import validator from '../helpers/validator.js'; -import AxiosHeaders from './AxiosHeaders.js'; -import transitionalDefaults from '../defaults/transitional.js'; - -const validators = validator.validators; - -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ -class Axios { - constructor(instanceConfig) { - this.defaults = instanceConfig || {}; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager(), - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - - Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); - - // slice off the Error: ... line - const stack = (() => { - if (!dummy.stack) { - return ''; - } - - const firstNewlineIndex = dummy.stack.indexOf('\n'); - - return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); - })(); - try { - if (!err.stack) { - err.stack = stack; - // match without the 2 top stack lines - } else if (stack) { - const firstNewlineIndex = stack.indexOf('\n'); - const secondNewlineIndex = - firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); - const stackWithoutTwoTopLines = - secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); - - if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { - err.stack += '\n' + stack; - } - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - - throw err; - } - } - - _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - - config = mergeConfig(this.defaults, config); - - const { transitional, paramsSerializer, headers } = config; - - if (transitional !== undefined) { - validator.assertOptions( - transitional, - { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean), - legacyInterceptorReqResOrdering: validators.transitional(validators.boolean), - }, - false - ); - } - - if (paramsSerializer != null) { - if (utils.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer, - }; - } else { - validator.assertOptions( - paramsSerializer, - { - encode: validators.function, - serialize: validators.function, - }, - true - ); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) { - // do nothing - } else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - - validator.assertOptions( - config, - { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken'), - }, - true - ); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - let contextHeaders = headers && utils.merge(headers.common, headers[config.method]); - - headers && - utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => { - delete headers[method]; - }); - - config.headers = AxiosHeaders.concat(contextHeaders, headers); - - // filter out skipped interceptors - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - const transitional = config.transitional || transitionalDefaults; - const legacyInterceptorReqResOrdering = - transitional && transitional.legacyInterceptorReqResOrdering; - - if (legacyInterceptorReqResOrdering) { - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - } else { - requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - } - }); - - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - let promise; - let i = 0; - let len; - - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), undefined]; - chain.unshift(...requestInterceptorChain); - chain.push(...responseInterceptorChain); - len = chain.length; - - promise = Promise.resolve(config); - - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - - return promise; - } - - len = requestInterceptorChain.length; - - let newConfig = config; - - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - - i = 0; - len = responseInterceptorChain.length; - - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - - return promise; - } - - getUri(config) { - config = mergeConfig(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls); - return buildURL(fullPath, config.params, config.paramsSerializer); - } -} - -// Provide aliases for supported request methods -utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function (url, config) { - return this.request( - mergeConfig(config || {}, { - method, - url, - data: (config || {}).data, - }) - ); - }; -}); - -utils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request( - mergeConfig(config || {}, { - method, - headers: isForm - ? { - 'Content-Type': 'multipart/form-data', - } - : {}, - url, - data, - }) - ); - }; - } - - Axios.prototype[method] = generateHTTPMethod(); - - // QUERY is a safe/idempotent read method; multipart form bodies don't fit - // its semantics, so no queryForm shorthand is generated. - if (method !== 'query') { - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); - } -}); - -export default Axios; diff --git a/node_modules/axios/lib/core/AxiosError.js b/node_modules/axios/lib/core/AxiosError.js deleted file mode 100644 index d492485..0000000 --- a/node_modules/axios/lib/core/AxiosError.js +++ /dev/null @@ -1,176 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import AxiosHeaders from './AxiosHeaders.js'; - -const REDACTED = '[REDACTED ****]'; - -function hasOwnOrPrototypeToJSON(source) { - if (utils.hasOwnProp(source, 'toJSON')) { - return true; - } - - let prototype = Object.getPrototypeOf(source); - - while (prototype && prototype !== Object.prototype) { - if (utils.hasOwnProp(prototype, 'toJSON')) { - return true; - } - - prototype = Object.getPrototypeOf(prototype); - } - - return false; -} - -// Build a plain-object snapshot of `config` and replace the value of any key -// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays -// and AxiosHeaders, and short-circuits on circular references. -function redactConfig(config, redactKeys) { - const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase())); - const seen = []; - - const visit = (source) => { - if (source === null || typeof source !== 'object') return source; - if (utils.isBuffer(source)) return source; - if (seen.indexOf(source) !== -1) return undefined; - - if (source instanceof AxiosHeaders) { - source = source.toJSON(); - } - - seen.push(source); - - let result; - if (utils.isArray(source)) { - result = []; - source.forEach((v, i) => { - const reducedValue = visit(v); - if (!utils.isUndefined(reducedValue)) { - result[i] = reducedValue; - } - }); - } else { - if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { - seen.pop(); - return source; - } - - result = Object.create(null); - for (const [key, value] of Object.entries(source)) { - const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); - if (!utils.isUndefined(reducedValue)) { - result[key] = reducedValue; - } - } - } - - seen.pop(); - return result; - }; - - return visit(config); -} - -class AxiosError extends Error { - static from(error, code, config, request, response, customProps) { - const axiosError = new AxiosError(error.message, code || error.code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - - // Preserve status from the original error if not already set from response - if (error.status != null && axiosError.status == null) { - axiosError.status = error.status; - } - - customProps && Object.assign(axiosError, customProps); - return axiosError; - } - - /** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ - constructor(message, code, config, request, response) { - super(message); - - // Make message enumerable to maintain backward compatibility - // The native Error constructor sets message as non-enumerable, - // but axios < v1.13.3 had it as enumerable - Object.defineProperty(this, 'message', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: message, - enumerable: true, - writable: true, - configurable: true, - }); - - this.name = 'AxiosError'; - this.isAxiosError = true; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status; - } - } - - toJSON() { - // Opt-in redaction: when the request config carries a `redact` array, the - // value of any matching key (case-insensitive, at any depth) is replaced - // with REDACTED in the serialized snapshot. Undefined or empty leaves the - // existing serialization behavior unchanged. - const config = this.config; - const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined; - const serializedConfig = - utils.isArray(redactKeys) && redactKeys.length > 0 - ? redactConfig(config, redactKeys) - : utils.toJSONObject(config); - - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: serializedConfig, - code: this.code, - status: this.status, - }; - } -} - -// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. -AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; -AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; -AxiosError.ECONNABORTED = 'ECONNABORTED'; -AxiosError.ETIMEDOUT = 'ETIMEDOUT'; -AxiosError.ECONNREFUSED = 'ECONNREFUSED'; -AxiosError.ERR_NETWORK = 'ERR_NETWORK'; -AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; -AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; -AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; -AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; -AxiosError.ERR_CANCELED = 'ERR_CANCELED'; -AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; -AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; -AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; - -export default AxiosError; diff --git a/node_modules/axios/lib/core/AxiosHeaders.js b/node_modules/axios/lib/core/AxiosHeaders.js deleted file mode 100644 index 235b6f7..0000000 --- a/node_modules/axios/lib/core/AxiosHeaders.js +++ /dev/null @@ -1,348 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import parseHeaders from '../helpers/parseHeaders.js'; -import { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js'; - -const $internals = Symbol('internals'); - -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} - -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - - return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); -} - -function parseTokens(str) { - const tokens = Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - - while ((match = tokensRE.exec(str))) { - tokens[match[1]] = match[2]; - } - - return tokens; -} - -const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - -function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (utils.isFunction(filter)) { - return filter.call(this, value, header); - } - - if (isHeaderNameFilter) { - value = header; - } - - if (!utils.isString(value)) return; - - if (utils.isString(filter)) { - return value.indexOf(filter) !== -1; - } - - if (utils.isRegExp(filter)) { - return filter.test(value); - } -} - -function formatHeader(header) { - return header - .trim() - .toLowerCase() - .replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} - -function buildAccessors(obj, header) { - const accessorName = utils.toCamelCase(' ' + header); - - ['get', 'set', 'has'].forEach((methodName) => { - Object.defineProperty(obj, methodName + accessorName, { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: function (arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true, - }); - }); -} - -class AxiosHeaders { - constructor(headers) { - headers && this.set(headers); - } - - set(header, valueOrRewrite, rewrite) { - const self = this; - - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - - const key = utils.findKey(self, lHeader); - - if ( - !key || - self[key] === undefined || - _rewrite === true || - (_rewrite === undefined && self[key] !== false) - ) { - self[key || _header] = normalizeValue(_value); - } - } - - const setHeaders = (headers, _rewrite) => - utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - - if (utils.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders(header), valueOrRewrite); - } else if (utils.isObject(header) && utils.isIterable(header)) { - let obj = {}, - dest, - key; - for (const entry of header) { - if (!utils.isArray(entry)) { - throw TypeError('Object iterator must return a key-value pair'); - } - - obj[(key = entry[0])] = (dest = obj[key]) - ? utils.isArray(dest) - ? [...dest, entry[1]] - : [dest, entry[1]] - : entry[1]; - } - - setHeaders(obj, valueOrRewrite); - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - - return this; - } - - get(header, parser) { - header = normalizeHeader(header); - - if (header) { - const key = utils.findKey(this, header); - - if (key) { - const value = this[key]; - - if (!parser) { - return value; - } - - if (parser === true) { - return parseTokens(value); - } - - if (utils.isFunction(parser)) { - return parser.call(this, value, key); - } - - if (utils.isRegExp(parser)) { - return parser.exec(value); - } - - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - - has(header, matcher) { - header = normalizeHeader(header); - - if (header) { - const key = utils.findKey(this, header); - - return !!( - key && - this[key] !== undefined && - (!matcher || matchHeaderValue(this, this[key], key, matcher)) - ); - } - - return false; - } - - delete(header, matcher) { - const self = this; - let deleted = false; - - function deleteHeader(_header) { - _header = normalizeHeader(_header); - - if (_header) { - const key = utils.findKey(self, _header); - - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - - deleted = true; - } - } - } - - if (utils.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - - return deleted; - } - - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - - while (i--) { - const key = keys[i]; - if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - - return deleted; - } - - normalize(format) { - const self = this; - const headers = {}; - - utils.forEach(this, (value, header) => { - const key = utils.findKey(headers, header); - - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - - const normalized = format ? formatHeader(header) : String(header).trim(); - - if (normalized !== header) { - delete self[header]; - } - - self[normalized] = normalizeValue(value); - - headers[normalized] = true; - }); - - return this; - } - - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - - toJSON(asStrings) { - const obj = Object.create(null); - - utils.forEach(this, (value, header) => { - value != null && - value !== false && - (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value); - }); - - return obj; - } - - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - - toString() { - return Object.entries(this.toJSON()) - .map(([header, value]) => header + ': ' + value) - .join('\n'); - } - - getSetCookie() { - return this.get('set-cookie') || []; - } - - get [Symbol.toStringTag]() { - return 'AxiosHeaders'; - } - - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - - static concat(first, ...targets) { - const computed = new this(first); - - targets.forEach((target) => computed.set(target)); - - return computed; - } - - static accessor(header) { - const internals = - (this[$internals] = - this[$internals] = - { - accessors: {}, - }); - - const accessors = internals.accessors; - const prototype = this.prototype; - - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - - utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - - return this; - } -} - -AxiosHeaders.accessor([ - 'Content-Type', - 'Content-Length', - 'Accept', - 'Accept-Encoding', - 'User-Agent', - 'Authorization', -]); - -// reserved names hotfix -utils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - }, - }; -}); - -utils.freezeMethods(AxiosHeaders); - -export default AxiosHeaders; diff --git a/node_modules/axios/lib/core/InterceptorManager.js b/node_modules/axios/lib/core/InterceptorManager.js deleted file mode 100644 index fe10f3d..0000000 --- a/node_modules/axios/lib/core/InterceptorManager.js +++ /dev/null @@ -1,72 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; - -class InterceptorManager { - constructor() { - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * @param {Object} options The options for the interceptor, synchronous and runWhen - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null, - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {void} - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -} - -export default InterceptorManager; diff --git a/node_modules/axios/lib/core/README.md b/node_modules/axios/lib/core/README.md deleted file mode 100644 index 84559ce..0000000 --- a/node_modules/axios/lib/core/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# axios // core - -The modules found in `core/` should be modules that are specific to the domain logic of axios. These modules would most likely not make sense to be consumed outside of the axios module, as their logic is too specific. Some examples of core modules are: - -- Dispatching requests - - Requests sent via `adapters/` (see lib/adapters/README.md) -- Managing interceptors -- Handling config diff --git a/node_modules/axios/lib/core/buildFullPath.js b/node_modules/axios/lib/core/buildFullPath.js deleted file mode 100644 index 9cb9d7c..0000000 --- a/node_modules/axios/lib/core/buildFullPath.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -import isAbsoluteURL from '../helpers/isAbsoluteURL.js'; -import combineURLs from '../helpers/combineURLs.js'; - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ -export default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - let isRelativeUrl = !isAbsoluteURL(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -} diff --git a/node_modules/axios/lib/core/dispatchRequest.js b/node_modules/axios/lib/core/dispatchRequest.js deleted file mode 100644 index 59662d4..0000000 --- a/node_modules/axios/lib/core/dispatchRequest.js +++ /dev/null @@ -1,89 +0,0 @@ -'use strict'; - -import transformData from './transformData.js'; -import isCancel from '../cancel/isCancel.js'; -import defaults from '../defaults/index.js'; -import CanceledError from '../cancel/CanceledError.js'; -import AxiosHeaders from '../core/AxiosHeaders.js'; -import adapters from '../adapters/adapters.js'; - -/** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - - if (config.signal && config.signal.aborted) { - throw new CanceledError(null, config); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ -export default function dispatchRequest(config) { - throwIfCancellationRequested(config); - - config.headers = AxiosHeaders.from(config.headers); - - // Transform request data - config.data = transformData.call(config, config.transformRequest); - - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - - const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config); - - return adapter(config).then( - function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Expose the current response on config so that transformResponse can - // attach it to any AxiosError it throws (e.g. on JSON parse failure). - // We clean it up afterwards to avoid polluting the config object. - config.response = response; - try { - response.data = transformData.call(config, config.transformResponse, response); - } finally { - delete config.response; - } - - response.headers = AxiosHeaders.from(response.headers); - - return response; - }, - function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - config.response = reason.response; - try { - reason.response.data = transformData.call( - config, - config.transformResponse, - reason.response - ); - } finally { - delete config.response; - } - reason.response.headers = AxiosHeaders.from(reason.response.headers); - } - } - - return Promise.reject(reason); - } - ); -} diff --git a/node_modules/axios/lib/core/mergeConfig.js b/node_modules/axios/lib/core/mergeConfig.js deleted file mode 100644 index 760f5ad..0000000 --- a/node_modules/axios/lib/core/mergeConfig.js +++ /dev/null @@ -1,124 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import AxiosHeaders from './AxiosHeaders.js'; - -const headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ -export default function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - - // Use a null-prototype object so that downstream reads such as `config.auth` - // or `config.baseURL` cannot inherit polluted values from Object.prototype. - // `hasOwnProperty` is restored as a non-enumerable own slot to preserve - // ergonomics for user code that relies on it. - const config = Object.create(null); - Object.defineProperty(config, 'hasOwnProperty', { - // Null-proto descriptor so a polluted Object.prototype.get cannot turn - // this data descriptor into an accessor descriptor on the way in. - __proto__: null, - value: Object.prototype.hasOwnProperty, - enumerable: false, - writable: true, - configurable: true, - }); - - function getMergedValue(target, source, prop, caseless) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge.call({ caseless }, target, source); - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source); - } else if (utils.isArray(source)) { - return source.slice(); - } - return source; - } - - function mergeDeepProperties(a, b, prop, caseless) { - if (!utils.isUndefined(b)) { - return getMergedValue(a, b, prop, caseless); - } else if (!utils.isUndefined(a)) { - return getMergedValue(undefined, a, prop, caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!utils.isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!utils.isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!utils.isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (utils.hasOwnProp(config2, prop)) { - return getMergedValue(a, b); - } else if (utils.hasOwnProp(config1, prop)) { - return getMergedValue(undefined, a); - } - } - - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - allowedSocketPaths: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b, prop) => - mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), - }; - - utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { - if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; - const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; - const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined; - const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined; - const configValue = merge(a, b, prop); - (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); - }); - - return config; -} diff --git a/node_modules/axios/lib/core/settle.js b/node_modules/axios/lib/core/settle.js deleted file mode 100644 index 782f571..0000000 --- a/node_modules/axios/lib/core/settle.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -import AxiosError from './AxiosError.js'; - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ -export default function settle(resolve, reject, response) { - const validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new AxiosError( - 'Request failed with status code ' + response.status, - response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE, - response.config, - response.request, - response - )); - } -} diff --git a/node_modules/axios/lib/core/transformData.js b/node_modules/axios/lib/core/transformData.js deleted file mode 100644 index f22c474..0000000 --- a/node_modules/axios/lib/core/transformData.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import defaults from '../defaults/index.js'; -import AxiosHeaders from '../core/AxiosHeaders.js'; - -/** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ -export default function transformData(fns, response) { - const config = this || defaults; - const context = response || config; - const headers = AxiosHeaders.from(context.headers); - let data = context.data; - - utils.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - - headers.normalize(); - - return data; -} diff --git a/node_modules/axios/lib/defaults/index.js b/node_modules/axios/lib/defaults/index.js deleted file mode 100644 index 642a089..0000000 --- a/node_modules/axios/lib/defaults/index.js +++ /dev/null @@ -1,177 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import AxiosError from '../core/AxiosError.js'; -import transitionalDefaults from './transitional.js'; -import toFormData from '../helpers/toFormData.js'; -import toURLEncodedForm from '../helpers/toURLEncodedForm.js'; -import platform from '../platform/index.js'; -import formDataToJSON from '../helpers/formDataToJSON.js'; - -const own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined); - -/** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ -function stringifySafely(rawValue, parser, encoder) { - if (utils.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -const defaults = { - transitional: transitionalDefaults, - - adapter: ['xhr', 'http', 'fetch'], - - transformRequest: [ - function transformRequest(data, headers) { - const contentType = headers.getContentType() || ''; - const hasJSONContentType = contentType.indexOf('application/json') > -1; - const isObjectPayload = utils.isObject(data); - - if (isObjectPayload && utils.isHTMLForm(data)) { - data = new FormData(data); - } - - const isFormData = utils.isFormData(data); - - if (isFormData) { - return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; - } - - if ( - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) || - utils.isReadableStream(data) - ) { - return data; - } - if (utils.isArrayBufferView(data)) { - return data.buffer; - } - if (utils.isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - - let isFileList; - - if (isObjectPayload) { - const formSerializer = own(this, 'formSerializer'); - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return toURLEncodedForm(data, formSerializer).toString(); - } - - if ( - (isFileList = utils.isFileList(data)) || - contentType.indexOf('multipart/form-data') > -1 - ) { - const env = own(this, 'env'); - const _FormData = env && env.FormData; - - return toFormData( - isFileList ? { 'files[]': data } : data, - _FormData && new _FormData(), - formSerializer - ); - } - } - - if (isObjectPayload || hasJSONContentType) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - - return data; - }, - ], - - transformResponse: [ - function transformResponse(data) { - const transitional = own(this, 'transitional') || defaults.transitional; - const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const responseType = own(this, 'responseType'); - const JSONRequested = responseType === 'json'; - - if (utils.isResponse(data) || utils.isReadableStream(data)) { - return data; - } - - if ( - data && - utils.isString(data) && - ((forcedJSONParsing && !responseType) || JSONRequested) - ) { - const silentJSONParsing = transitional && transitional.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - - try { - return JSON.parse(data, own(this, 'parseReviver')); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); - } - throw e; - } - } - } - - return data; - }, - ], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - env: { - FormData: platform.classes.FormData, - Blob: platform.classes.Blob, - }, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - - headers: { - common: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': undefined, - }, - }, -}; - -utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => { - defaults.headers[method] = {}; -}); - -export default defaults; diff --git a/node_modules/axios/lib/defaults/transitional.js b/node_modules/axios/lib/defaults/transitional.js deleted file mode 100644 index 714b664..0000000 --- a/node_modules/axios/lib/defaults/transitional.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -export default { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false, - legacyInterceptorReqResOrdering: true, -}; diff --git a/node_modules/axios/lib/env/README.md b/node_modules/axios/lib/env/README.md deleted file mode 100644 index b41baff..0000000 --- a/node_modules/axios/lib/env/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# axios // env - -The `data.js` file is updated automatically when the package version is upgrading. Please do not edit it manually. diff --git a/node_modules/axios/lib/env/classes/FormData.js b/node_modules/axios/lib/env/classes/FormData.js deleted file mode 100644 index 862adb9..0000000 --- a/node_modules/axios/lib/env/classes/FormData.js +++ /dev/null @@ -1,2 +0,0 @@ -import _FormData from 'form-data'; -export default typeof FormData !== 'undefined' ? FormData : _FormData; diff --git a/node_modules/axios/lib/env/data.js b/node_modules/axios/lib/env/data.js deleted file mode 100644 index 381ed28..0000000 --- a/node_modules/axios/lib/env/data.js +++ /dev/null @@ -1 +0,0 @@ -export const VERSION = "1.16.1"; \ No newline at end of file diff --git a/node_modules/axios/lib/helpers/AxiosTransformStream.js b/node_modules/axios/lib/helpers/AxiosTransformStream.js deleted file mode 100644 index 96e8acb..0000000 --- a/node_modules/axios/lib/helpers/AxiosTransformStream.js +++ /dev/null @@ -1,156 +0,0 @@ -'use strict'; - -import stream from 'stream'; -import utils from '../utils.js'; - -const kInternals = Symbol('internals'); - -class AxiosTransformStream extends stream.Transform { - constructor(options) { - options = utils.toFlatObject( - options, - { - maxRate: 0, - chunkSize: 64 * 1024, - minChunkSize: 100, - timeWindow: 500, - ticksRate: 2, - samplesCount: 15, - }, - null, - (prop, source) => { - return !utils.isUndefined(source[prop]); - } - ); - - super({ - readableHighWaterMark: options.chunkSize, - }); - - const internals = (this[kInternals] = { - timeWindow: options.timeWindow, - chunkSize: options.chunkSize, - maxRate: options.maxRate, - minChunkSize: options.minChunkSize, - bytesSeen: 0, - isCaptured: false, - notifiedBytesLoaded: 0, - ts: Date.now(), - bytes: 0, - onReadCallback: null, - }); - - this.on('newListener', (event) => { - if (event === 'progress') { - if (!internals.isCaptured) { - internals.isCaptured = true; - } - } - }); - } - - _read(size) { - const internals = this[kInternals]; - - if (internals.onReadCallback) { - internals.onReadCallback(); - } - - return super._read(size); - } - - _transform(chunk, encoding, callback) { - const internals = this[kInternals]; - const maxRate = internals.maxRate; - - const readableHighWaterMark = this.readableHighWaterMark; - - const timeWindow = internals.timeWindow; - - const divider = 1000 / timeWindow; - const bytesThreshold = maxRate / divider; - const minChunkSize = - internals.minChunkSize !== false - ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) - : 0; - - const pushChunk = (_chunk, _callback) => { - const bytes = Buffer.byteLength(_chunk); - internals.bytesSeen += bytes; - internals.bytes += bytes; - - internals.isCaptured && this.emit('progress', internals.bytesSeen); - - if (this.push(_chunk)) { - process.nextTick(_callback); - } else { - internals.onReadCallback = () => { - internals.onReadCallback = null; - process.nextTick(_callback); - }; - } - }; - - const transformChunk = (_chunk, _callback) => { - const chunkSize = Buffer.byteLength(_chunk); - let chunkRemainder = null; - let maxChunkSize = readableHighWaterMark; - let bytesLeft; - let passed = 0; - - if (maxRate) { - const now = Date.now(); - - if (!internals.ts || (passed = now - internals.ts) >= timeWindow) { - internals.ts = now; - bytesLeft = bytesThreshold - internals.bytes; - internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; - passed = 0; - } - - bytesLeft = bytesThreshold - internals.bytes; - } - - if (maxRate) { - if (bytesLeft <= 0) { - // next time window - return setTimeout(() => { - _callback(null, _chunk); - }, timeWindow - passed); - } - - if (bytesLeft < maxChunkSize) { - maxChunkSize = bytesLeft; - } - } - - if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) { - chunkRemainder = _chunk.subarray(maxChunkSize); - _chunk = _chunk.subarray(0, maxChunkSize); - } - - pushChunk( - _chunk, - chunkRemainder - ? () => { - process.nextTick(_callback, null, chunkRemainder); - } - : _callback - ); - }; - - transformChunk(chunk, function transformNextChunk(err, _chunk) { - if (err) { - return callback(err); - } - - if (_chunk) { - transformChunk(_chunk, transformNextChunk); - } else { - callback(null); - } - }); - } -} - -export default AxiosTransformStream; diff --git a/node_modules/axios/lib/helpers/AxiosURLSearchParams.js b/node_modules/axios/lib/helpers/AxiosURLSearchParams.js deleted file mode 100644 index 57cf16d..0000000 --- a/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -import toFormData from './toFormData.js'; - -/** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ -function encode(str) { - const charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+', - }; - return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { - return charMap[match]; - }); -} - -/** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ -function AxiosURLSearchParams(params, options) { - this._pairs = []; - - params && toFormData(params, this, options); -} - -const prototype = AxiosURLSearchParams.prototype; - -prototype.append = function append(name, value) { - this._pairs.push([name, value]); -}; - -prototype.toString = function toString(encoder) { - const _encode = encoder - ? function (value) { - return encoder.call(this, value, encode); - } - : encode; - - return this._pairs - .map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '') - .join('&'); -}; - -export default AxiosURLSearchParams; diff --git a/node_modules/axios/lib/helpers/HttpStatusCode.js b/node_modules/axios/lib/helpers/HttpStatusCode.js deleted file mode 100644 index b68d08e..0000000 --- a/node_modules/axios/lib/helpers/HttpStatusCode.js +++ /dev/null @@ -1,77 +0,0 @@ -const HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, - WebServerIsDown: 521, - ConnectionTimedOut: 522, - OriginIsUnreachable: 523, - TimeoutOccurred: 524, - SslHandshakeFailed: 525, - InvalidSslCertificate: 526, -}; - -Object.entries(HttpStatusCode).forEach(([key, value]) => { - HttpStatusCode[value] = key; -}); - -export default HttpStatusCode; diff --git a/node_modules/axios/lib/helpers/README.md b/node_modules/axios/lib/helpers/README.md deleted file mode 100644 index 4ae3419..0000000 --- a/node_modules/axios/lib/helpers/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# axios // helpers - -The modules found in `helpers/` should be generic modules that are _not_ specific to the domain logic of axios. These modules could theoretically be published to npm on their own and consumed by other modules or apps. Some examples of generic modules are things like: - -- Browser polyfills -- Managing cookies -- Parsing HTTP headers diff --git a/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js b/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js deleted file mode 100644 index c588ded..0000000 --- a/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -import stream from 'stream'; - -class ZlibHeaderTransformStream extends stream.Transform { - __transform(chunk, encoding, callback) { - this.push(chunk); - callback(); - } - - _transform(chunk, encoding, callback) { - if (chunk.length !== 0) { - this._transform = this.__transform; - - // Add Default Compression headers if no zlib headers are present - if (chunk[0] !== 120) { - // Hex: 78 - const header = Buffer.alloc(2); - header[0] = 120; // Hex: 78 - header[1] = 156; // Hex: 9C - this.push(header, encoding); - } - } - - this.__transform(chunk, encoding, callback); - } -} - -export default ZlibHeaderTransformStream; diff --git a/node_modules/axios/lib/helpers/bind.js b/node_modules/axios/lib/helpers/bind.js deleted file mode 100644 index 938da5c..0000000 --- a/node_modules/axios/lib/helpers/bind.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -/** - * Create a bound version of a function with a specified `this` context - * - * @param {Function} fn - The function to bind - * @param {*} thisArg - The value to be passed as the `this` parameter - * @returns {Function} A new function that will call the original function with the specified `this` context - */ -export default function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} diff --git a/node_modules/axios/lib/helpers/buildURL.js b/node_modules/axios/lib/helpers/buildURL.js deleted file mode 100644 index b3e230e..0000000 --- a/node_modules/axios/lib/helpers/buildURL.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js'; - -/** - * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with - * their plain counterparts (`:`, `$`, `,`, `+`). - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ -export function encode(val) { - return encodeURIComponent(val) - .replace(/%3A/gi, ':') - .replace(/%24/g, '$') - .replace(/%2C/gi, ',') - .replace(/%20/g, '+'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ -export default function buildURL(url, params, options) { - if (!params) { - return url; - } - - const _encode = (options && options.encode) || encode; - - const _options = utils.isFunction(options) - ? { - serialize: options, - } - : options; - - const serializeFn = _options && _options.serialize; - - let serializedParams; - - if (serializeFn) { - serializedParams = serializeFn(params, _options); - } else { - serializedParams = utils.isURLSearchParams(params) - ? params.toString() - : new AxiosURLSearchParams(params, _options).toString(_encode); - } - - if (serializedParams) { - const hashmarkIndex = url.indexOf('#'); - - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -} diff --git a/node_modules/axios/lib/helpers/callbackify.js b/node_modules/axios/lib/helpers/callbackify.js deleted file mode 100644 index e8cea68..0000000 --- a/node_modules/axios/lib/helpers/callbackify.js +++ /dev/null @@ -1,18 +0,0 @@ -import utils from '../utils.js'; - -const callbackify = (fn, reducer) => { - return utils.isAsyncFn(fn) - ? function (...args) { - const cb = args.pop(); - fn.apply(this, args).then((value) => { - try { - reducer ? cb(null, ...reducer(value)) : cb(null, value); - } catch (err) { - cb(err); - } - }, cb); - } - : fn; -}; - -export default callbackify; diff --git a/node_modules/axios/lib/helpers/combineURLs.js b/node_modules/axios/lib/helpers/combineURLs.js deleted file mode 100644 index 9f04f02..0000000 --- a/node_modules/axios/lib/helpers/combineURLs.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ -export default function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -} diff --git a/node_modules/axios/lib/helpers/composeSignals.js b/node_modules/axios/lib/helpers/composeSignals.js deleted file mode 100644 index 74e99ed..0000000 --- a/node_modules/axios/lib/helpers/composeSignals.js +++ /dev/null @@ -1,57 +0,0 @@ -import CanceledError from '../cancel/CanceledError.js'; -import AxiosError from '../core/AxiosError.js'; -import utils from '../utils.js'; - -const composeSignals = (signals, timeout) => { - signals = signals ? signals.filter(Boolean) : []; - - if (!timeout && !signals.length) { - return; - } - - const controller = new AbortController(); - - let aborted = false; - - const onabort = function (reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort( - err instanceof AxiosError - ? err - : new CanceledError(err instanceof Error ? err.message : err) - ); - } - }; - - let timer = - timeout && - setTimeout(() => { - timer = null; - onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)); - }, timeout); - - const unsubscribe = () => { - if (!signals) { return; } - timer && clearTimeout(timer); - timer = null; - signals.forEach((signal) => { - signal.unsubscribe - ? signal.unsubscribe(onabort) - : signal.removeEventListener('abort', onabort); - }); - signals = null; - }; - - signals.forEach((signal) => signal.addEventListener('abort', onabort)); - - const { signal } = controller; - - signal.unsubscribe = () => utils.asap(unsubscribe); - - return signal; -}; - -export default composeSignals; diff --git a/node_modules/axios/lib/helpers/cookies.js b/node_modules/axios/lib/helpers/cookies.js deleted file mode 100644 index 3f0baf2..0000000 --- a/node_modules/axios/lib/helpers/cookies.js +++ /dev/null @@ -1,60 +0,0 @@ -import utils from '../utils.js'; -import platform from '../platform/index.js'; - -export default platform.hasStandardBrowserEnv - ? // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure, sameSite) { - if (typeof document === 'undefined') return; - - const cookie = [`${name}=${encodeURIComponent(value)}`]; - - if (utils.isNumber(expires)) { - cookie.push(`expires=${new Date(expires).toUTCString()}`); - } - if (utils.isString(path)) { - cookie.push(`path=${path}`); - } - if (utils.isString(domain)) { - cookie.push(`domain=${domain}`); - } - if (secure === true) { - cookie.push('secure'); - } - if (utils.isString(sameSite)) { - cookie.push(`SameSite=${sameSite}`); - } - - document.cookie = cookie.join('; '); - }, - - read(name) { - if (typeof document === 'undefined') return null; - // Match name=value by splitting on the semicolon separator instead of building a - // RegExp from `name` — interpolating an unescaped string into a RegExp would let - // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or - // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or - // "; ", so ignore optional whitespace before each cookie name. - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].replace(/^\s+/, ''); - const eq = cookie.indexOf('='); - if (eq !== -1 && cookie.slice(0, eq) === name) { - return decodeURIComponent(cookie.slice(eq + 1)); - } - } - return null; - }, - - remove(name) { - this.write(name, '', Date.now() - 86400000, '/'); - }, - } - : // Non-standard browser env (web workers, react-native) lack needed support. - { - write() {}, - read() { - return null; - }, - remove() {}, - }; diff --git a/node_modules/axios/lib/helpers/deprecatedMethod.js b/node_modules/axios/lib/helpers/deprecatedMethod.js deleted file mode 100644 index ec112de..0000000 --- a/node_modules/axios/lib/helpers/deprecatedMethod.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -/*eslint no-console:0*/ - -/** - * Supply a warning to the developer that a method they are using - * has been deprecated. - * - * @param {string} method The name of the deprecated method - * @param {string} [instead] The alternate method to use if applicable - * @param {string} [docs] The documentation URL to get further details - * - * @returns {void} - */ -export default function deprecatedMethod(method, instead, docs) { - try { - console.warn( - 'DEPRECATED method `' + - method + - '`.' + - (instead ? ' Use `' + instead + '` instead.' : '') + - ' This method will be removed in a future release.' - ); - - if (docs) { - console.warn('For more information about usage see ' + docs); - } - } catch (e) { - /* Ignore */ - } -} diff --git a/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js b/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js deleted file mode 100644 index bb283ae..0000000 --- a/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Estimate decoded byte length of a data:// URL *without* allocating large buffers. - * - For base64: compute exact decoded size using length and padding; - * handle %XX at the character-count level (no string allocation). - * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound. - * - * @param {string} url - * @returns {number} - */ -export default function estimateDataURLDecodedBytes(url) { - if (!url || typeof url !== 'string') return 0; - if (!url.startsWith('data:')) return 0; - - const comma = url.indexOf(','); - if (comma < 0) return 0; - - const meta = url.slice(5, comma); - const body = url.slice(comma + 1); - const isBase64 = /;base64/i.test(meta); - - if (isBase64) { - let effectiveLen = body.length; - const len = body.length; // cache length - - for (let i = 0; i < len; i++) { - if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { - const a = body.charCodeAt(i + 1); - const b = body.charCodeAt(i + 2); - const isHex = - ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) && - ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102)); - - if (isHex) { - effectiveLen -= 2; - i += 2; - } - } - } - - let pad = 0; - let idx = len - 1; - - const tailIsPct3D = (j) => - j >= 2 && - body.charCodeAt(j - 2) === 37 && // '%' - body.charCodeAt(j - 1) === 51 && // '3' - (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' - - if (idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - idx--; - } else if (tailIsPct3D(idx)) { - pad++; - idx -= 3; - } - } - - if (pad === 1 && idx >= 0) { - if (body.charCodeAt(idx) === 61 /* '=' */) { - pad++; - } else if (tailIsPct3D(idx)) { - pad++; - } - } - - const groups = Math.floor(effectiveLen / 4); - const bytes = groups * 3 - (pad || 0); - return bytes > 0 ? bytes : 0; - } - - if (typeof Buffer !== 'undefined' && typeof Buffer.byteLength === 'function') { - return Buffer.byteLength(body, 'utf8'); - } - - // Compute UTF-8 byte length directly from UTF-16 code units without allocating - // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). - // Using body.length here would undercount non-ASCII (e.g. '€' is 1 code unit - // but 3 UTF-8 bytes). - let bytes = 0; - for (let i = 0, len = body.length; i < len; i++) { - const c = body.charCodeAt(i); - if (c < 0x80) { - bytes += 1; - } else if (c < 0x800) { - bytes += 2; - } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { - const next = body.charCodeAt(i + 1); - if (next >= 0xdc00 && next <= 0xdfff) { - bytes += 4; - i++; - } else { - bytes += 3; - } - } else { - bytes += 3; - } - } - return bytes; -} diff --git a/node_modules/axios/lib/helpers/formDataToJSON.js b/node_modules/axios/lib/helpers/formDataToJSON.js deleted file mode 100644 index 6c6f704..0000000 --- a/node_modules/axios/lib/helpers/formDataToJSON.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; - -/** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ -function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return utils.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); -} - -/** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} - -/** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - - if (name === '__proto__') return true; - - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && utils.isArray(target) ? target.length : name; - - if (isLast) { - if (utils.hasOwnProp(target, name)) { - target[name] = utils.isArray(target[name]) - ? target[name].concat(value) - : [target[name], value]; - } else { - target[name] = value; - } - - return !isNumericKey; - } - - if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) { - target[name] = []; - } - - const result = buildPath(path, value, target[name], index); - - if (result && utils.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - - return !isNumericKey; - } - - if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { - const obj = {}; - - utils.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - - return obj; - } - - return null; -} - -export default formDataToJSON; diff --git a/node_modules/axios/lib/helpers/formDataToStream.js b/node_modules/axios/lib/helpers/formDataToStream.js deleted file mode 100644 index 3832049..0000000 --- a/node_modules/axios/lib/helpers/formDataToStream.js +++ /dev/null @@ -1,119 +0,0 @@ -import util from 'util'; -import { Readable } from 'stream'; -import utils from '../utils.js'; -import readBlob from './readBlob.js'; -import platform from '../platform/index.js'; - -const BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_'; - -const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder(); - -const CRLF = '\r\n'; -const CRLF_BYTES = textEncoder.encode(CRLF); -const CRLF_BYTES_COUNT = 2; - -class FormDataPart { - constructor(name, value) { - const { escapeName } = this.constructor; - const isStringValue = utils.isString(value); - - let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ - !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' - }${CRLF}`; - - if (isStringValue) { - value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); - } else { - const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, ''); - headers += `Content-Type: ${safeType}${CRLF}`; - } - - this.headers = textEncoder.encode(headers + CRLF); - - this.contentLength = isStringValue ? value.byteLength : value.size; - - this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; - - this.name = name; - this.value = value; - } - - async *encode() { - yield this.headers; - - const { value } = this; - - if (utils.isTypedArray(value)) { - yield value; - } else { - yield* readBlob(value); - } - - yield CRLF_BYTES; - } - - static escapeName(name) { - return String(name).replace( - /[\r\n"]/g, - (match) => - ({ - '\r': '%0D', - '\n': '%0A', - '"': '%22', - })[match] - ); - } -} - -const formDataToStream = (form, headersHandler, options) => { - const { - tag = 'form-data-boundary', - size = 25, - boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET), - } = options || {}; - - if (!utils.isFormData(form)) { - throw TypeError('FormData instance required'); - } - - if (boundary.length < 1 || boundary.length > 70) { - throw Error('boundary must be 1-70 characters long'); - } - - const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); - const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); - let contentLength = footerBytes.byteLength; - - const parts = Array.from(form.entries()).map(([name, value]) => { - const part = new FormDataPart(name, value); - contentLength += part.size; - return part; - }); - - contentLength += boundaryBytes.byteLength * parts.length; - - contentLength = utils.toFiniteNumber(contentLength); - - const computedHeaders = { - 'Content-Type': `multipart/form-data; boundary=${boundary}`, - }; - - if (Number.isFinite(contentLength)) { - computedHeaders['Content-Length'] = contentLength; - } - - headersHandler && headersHandler(computedHeaders); - - return Readable.from( - (async function* () { - for (const part of parts) { - yield boundaryBytes; - yield* part.encode(); - } - - yield footerBytes; - })() - ); -}; - -export default formDataToStream; diff --git a/node_modules/axios/lib/helpers/fromDataURI.js b/node_modules/axios/lib/helpers/fromDataURI.js deleted file mode 100644 index 7319588..0000000 --- a/node_modules/axios/lib/helpers/fromDataURI.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -import AxiosError from '../core/AxiosError.js'; -import parseProtocol from './parseProtocol.js'; -import platform from '../platform/index.js'; - -// RFC 2397: data:[][;base64], -// mediatype = type/subtype followed by optional ;name=value parameters -const DATA_URL_PATTERN = /^([^,;]+\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\s\S]*)$/; - -/** - * Parse data uri to a Buffer or Blob - * - * @param {String} uri - * @param {?Boolean} asBlob - * @param {?Object} options - * @param {?Function} options.Blob - * - * @returns {Buffer|Blob} - */ -export default function fromDataURI(uri, asBlob, options) { - const _Blob = (options && options.Blob) || platform.classes.Blob; - const protocol = parseProtocol(uri); - - if (asBlob === undefined && _Blob) { - asBlob = true; - } - - if (protocol === 'data') { - uri = protocol.length ? uri.slice(protocol.length + 1) : uri; - - const match = DATA_URL_PATTERN.exec(uri); - - if (!match) { - throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); - } - - const type = match[1]; - const params = match[2]; - const encoding = match[3] ? 'base64' : 'utf8'; - const body = match[4]; - - // RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII - // Bare `data:,` leaves mime undefined; Blob normalises that to "" per spec. - let mime; - if (type) { - mime = params ? type + params : type; - } else if (params) { - mime = 'text/plain' + params; - } - - const buffer = Buffer.from(decodeURIComponent(body), encoding); - - if (asBlob) { - if (!_Blob) { - throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); - } - - return new _Blob([buffer], { type: mime }); - } - - return buffer; - } - - throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); -} diff --git a/node_modules/axios/lib/helpers/isAbsoluteURL.js b/node_modules/axios/lib/helpers/isAbsoluteURL.js deleted file mode 100644 index c461900..0000000 --- a/node_modules/axios/lib/helpers/isAbsoluteURL.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -export default function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - if (typeof url !== 'string') { - return false; - } - - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} diff --git a/node_modules/axios/lib/helpers/isAxiosError.js b/node_modules/axios/lib/helpers/isAxiosError.js deleted file mode 100644 index ffba610..0000000 --- a/node_modules/axios/lib/helpers/isAxiosError.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -export default function isAxiosError(payload) { - return utils.isObject(payload) && payload.isAxiosError === true; -} diff --git a/node_modules/axios/lib/helpers/isURLSameOrigin.js b/node_modules/axios/lib/helpers/isURLSameOrigin.js deleted file mode 100644 index 66af274..0000000 --- a/node_modules/axios/lib/helpers/isURLSameOrigin.js +++ /dev/null @@ -1,16 +0,0 @@ -import platform from '../platform/index.js'; - -export default platform.hasStandardBrowserEnv - ? ((origin, isMSIE) => (url) => { - url = new URL(url, platform.origin); - - return ( - origin.protocol === url.protocol && - origin.host === url.host && - (isMSIE || origin.port === url.port) - ); - })( - new URL(platform.origin), - platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent) - ) - : () => true; diff --git a/node_modules/axios/lib/helpers/null.js b/node_modules/axios/lib/helpers/null.js deleted file mode 100644 index b9f82c4..0000000 --- a/node_modules/axios/lib/helpers/null.js +++ /dev/null @@ -1,2 +0,0 @@ -// eslint-disable-next-line strict -export default null; diff --git a/node_modules/axios/lib/helpers/parseHeaders.js b/node_modules/axios/lib/helpers/parseHeaders.js deleted file mode 100644 index fb0eba4..0000000 --- a/node_modules/axios/lib/helpers/parseHeaders.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; - -// RawAxiosHeaders whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -const ignoreDuplicateOf = utils.toObjectSet([ - 'age', - 'authorization', - 'content-length', - 'content-type', - 'etag', - 'expires', - 'from', - 'host', - 'if-modified-since', - 'if-unmodified-since', - 'last-modified', - 'location', - 'max-forwards', - 'proxy-authorization', - 'referer', - 'retry-after', - 'user-agent', -]); - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ -export default (rawHeaders) => { - const parsed = {}; - let key; - let val; - let i; - - rawHeaders && - rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - - if (!key || (parsed[key] && ignoreDuplicateOf[key])) { - return; - } - - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - - return parsed; -}; diff --git a/node_modules/axios/lib/helpers/parseProtocol.js b/node_modules/axios/lib/helpers/parseProtocol.js deleted file mode 100644 index 05a2d6d..0000000 --- a/node_modules/axios/lib/helpers/parseProtocol.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -export default function parseProtocol(url) { - const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); - return (match && match[1]) || ''; -} diff --git a/node_modules/axios/lib/helpers/progressEventReducer.js b/node_modules/axios/lib/helpers/progressEventReducer.js deleted file mode 100644 index e2c15c0..0000000 --- a/node_modules/axios/lib/helpers/progressEventReducer.js +++ /dev/null @@ -1,54 +0,0 @@ -import speedometer from './speedometer.js'; -import throttle from './throttle.js'; -import utils from '../utils.js'; - -export const progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer(50, 250); - - return throttle((e) => { - if (!e || typeof e.loaded !== 'number') { - return; - } - const rawLoaded = e.loaded; - const total = e.lengthComputable ? e.total : undefined; - const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; - const progressBytes = Math.max(0, loaded - bytesNotified); - const rate = _speedometer(progressBytes); - - bytesNotified = Math.max(bytesNotified, loaded); - - const data = { - loaded, - total, - progress: total ? loaded / total : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null, - [isDownloadStream ? 'download' : 'upload']: true, - }; - - listener(data); - }, freq); -}; - -export const progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - - return [ - (loaded) => - throttled[0]({ - lengthComputable, - total, - loaded, - }), - throttled[1], - ]; -}; - -export const asyncDecorator = - (fn) => - (...args) => - utils.asap(() => fn(...args)); diff --git a/node_modules/axios/lib/helpers/readBlob.js b/node_modules/axios/lib/helpers/readBlob.js deleted file mode 100644 index 87d0ea8..0000000 --- a/node_modules/axios/lib/helpers/readBlob.js +++ /dev/null @@ -1,15 +0,0 @@ -const { asyncIterator } = Symbol; - -const readBlob = async function* (blob) { - if (blob.stream) { - yield* blob.stream(); - } else if (blob.arrayBuffer) { - yield await blob.arrayBuffer(); - } else if (blob[asyncIterator]) { - yield* blob[asyncIterator](); - } else { - yield blob; - } -}; - -export default readBlob; diff --git a/node_modules/axios/lib/helpers/resolveConfig.js b/node_modules/axios/lib/helpers/resolveConfig.js deleted file mode 100644 index 43a49c5..0000000 --- a/node_modules/axios/lib/helpers/resolveConfig.js +++ /dev/null @@ -1,106 +0,0 @@ -import platform from '../platform/index.js'; -import utils from '../utils.js'; -import isURLSameOrigin from './isURLSameOrigin.js'; -import cookies from './cookies.js'; -import buildFullPath from '../core/buildFullPath.js'; -import mergeConfig from '../core/mergeConfig.js'; -import AxiosHeaders from '../core/AxiosHeaders.js'; -import buildURL from './buildURL.js'; - -const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; - -function setFormDataHeaders(headers, formHeaders, policy) { - if (policy !== 'content-only') { - headers.set(formHeaders); - return; - } - - Object.entries(formHeaders).forEach(([key, val]) => { - if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { - headers.set(key, val); - } - }); -} - -/** - * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). - * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. - * - * @param {string} str The string to encode - * - * @returns {string} UTF-8 bytes as a Latin-1 string - */ -const encodeUTF8 = (str) => - encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => - String.fromCharCode(parseInt(hex, 16)) - ); - -export default (config) => { - const newConfig = mergeConfig({}, config); - - // Read only own properties to prevent prototype pollution gadgets - // (e.g. Object.prototype.baseURL = 'https://evil.com'). - const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined); - - const data = own('data'); - let withXSRFToken = own('withXSRFToken'); - const xsrfHeaderName = own('xsrfHeaderName'); - const xsrfCookieName = own('xsrfCookieName'); - let headers = own('headers'); - const auth = own('auth'); - const baseURL = own('baseURL'); - const allowAbsoluteUrls = own('allowAbsoluteUrls'); - const url = own('url'); - - newConfig.headers = headers = AxiosHeaders.from(headers); - - newConfig.url = buildURL( - buildFullPath(baseURL, url, allowAbsoluteUrls), - config.params, - config.paramsSerializer - ); - - // HTTP basic authentication - if (auth) { - headers.set( - 'Authorization', - 'Basic ' + - btoa((auth.username || '') + ':' + (auth.password ? encodeUTF8(auth.password) : '')) - ); - } - - if (utils.isFormData(data)) { - if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // browser handles it - } else if (utils.isFunction(data.getHeaders)) { - // Node.js FormData (like form-data package) - setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (platform.hasStandardBrowserEnv) { - if (utils.isFunction(withXSRFToken)) { - withXSRFToken = withXSRFToken(newConfig); - } - - // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) - // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking - // the XSRF token cross-origin. - const shouldSendXSRF = - withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url)); - - if (shouldSendXSRF) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); - - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - - return newConfig; -}; diff --git a/node_modules/axios/lib/helpers/sanitizeHeaderValue.js b/node_modules/axios/lib/helpers/sanitizeHeaderValue.js deleted file mode 100644 index 0462fc0..0000000 --- a/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; - -function trimSPorHTAB(str) { - let start = 0; - let end = str.length; - - while (start < end) { - const code = str.charCodeAt(start); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - start += 1; - } - - while (end > start) { - const code = str.charCodeAt(end - 1); - - if (code !== 0x09 && code !== 0x20) { - break; - } - - end -= 1; - } - - return start === 0 && end === str.length ? str : str.slice(start, end); -} - -// The control-code ranges are intentional: header sanitization strips C0/DEL bytes. -// eslint-disable-next-line no-control-regex -const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g'); -// eslint-disable-next-line no-control-regex -const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g'); - -function sanitizeValue(value, invalidChars) { - if (utils.isArray(value)) { - return value.map((item) => sanitizeValue(item, invalidChars)); - } - - return trimSPorHTAB(String(value).replace(invalidChars, '')); -} - -export const sanitizeHeaderValue = (value) => - sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); - -export const sanitizeByteStringHeaderValue = (value) => - sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); - -export function toByteStringHeaderObject(headers) { - const byteStringHeaders = Object.create(null); - - utils.forEach(headers.toJSON(), (value, header) => { - byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); - }); - - return byteStringHeaders; -} diff --git a/node_modules/axios/lib/helpers/shouldBypassProxy.js b/node_modules/axios/lib/helpers/shouldBypassProxy.js deleted file mode 100644 index 7f61a1b..0000000 --- a/node_modules/axios/lib/helpers/shouldBypassProxy.js +++ /dev/null @@ -1,178 +0,0 @@ -const LOOPBACK_HOSTNAMES = new Set(['localhost']); - -const isIPv4Loopback = (host) => { - const parts = host.split('.'); - if (parts.length !== 4) return false; - if (parts[0] !== '127') return false; - return parts.every((p) => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255); -}; - -const isIPv6Loopback = (host) => { - // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1 - // First, strip any leading "::" by normalising with Set lookup of common forms, - // then fall back to structural check. - if (host === '::1') return true; - - // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff: - // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1 - const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i); - if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]); - - const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i); - if (v4MappedHex) { - const high = parseInt(v4MappedHex[1], 16); - // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff - return high >= 0x7f00 && high <= 0x7fff; - } - - // Full-form ::1 variants: any number of zero groups followed by trailing 1 - // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001 - const groups = host.split(':'); - if (groups.length === 8) { - for (let i = 0; i < 7; i++) { - if (!/^0+$/.test(groups[i])) return false; - } - return /^0*1$/.test(groups[7]); - } - - return false; -}; - -const isLoopback = (host) => { - if (!host) return false; - if (LOOPBACK_HOSTNAMES.has(host)) return true; - if (isIPv4Loopback(host)) return true; - return isIPv6Loopback(host); -}; - -const DEFAULT_PORTS = { - http: 80, - https: 443, - ws: 80, - wss: 443, - ftp: 21, -}; - -const parseNoProxyEntry = (entry) => { - let entryHost = entry; - let entryPort = 0; - - if (entryHost.charAt(0) === '[') { - const bracketIndex = entryHost.indexOf(']'); - - if (bracketIndex !== -1) { - const host = entryHost.slice(1, bracketIndex); - const rest = entryHost.slice(bracketIndex + 1); - - if (rest.charAt(0) === ':' && /^\d+$/.test(rest.slice(1))) { - entryPort = Number.parseInt(rest.slice(1), 10); - } - - return [host, entryPort]; - } - } - - const firstColon = entryHost.indexOf(':'); - const lastColon = entryHost.lastIndexOf(':'); - - if ( - firstColon !== -1 && - firstColon === lastColon && - /^\d+$/.test(entryHost.slice(lastColon + 1)) - ) { - entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10); - entryHost = entryHost.slice(0, lastColon); - } - - return [entryHost, entryPort]; -}; - -// Convert IPv4-mapped IPv6 (::ffff:0:0/96 prefix) to IPv4 dotted form so both -// sides of a NO_PROXY comparison see the same canonical address. Without this, -// `NO_PROXY=192.168.1.5` would not match a request to `http://[::ffff:192.168.1.5]/` -// (Node's URL parser normalises that to `[::ffff:c0a8:105]`), and vice-versa, -// allowing the proxy-bypass policy to be circumvented by using the alternate -// representation. Returns the input unchanged when not IPv4-mapped. -const IPV4_MAPPED_DOTTED_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\d+\.\d+\.\d+\.\d+)$/i; -const IPV4_MAPPED_HEX_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i; - -const unmapIPv4MappedIPv6 = (host) => { - if (typeof host !== 'string' || host.indexOf(':') === -1) return host; - - const dotted = host.match(IPV4_MAPPED_DOTTED_RE); - if (dotted) return dotted[1]; - - const hex = host.match(IPV4_MAPPED_HEX_RE); - if (hex) { - const high = parseInt(hex[1], 16); - const low = parseInt(hex[2], 16); - return `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`; - } - - return host; -}; - -const normalizeNoProxyHost = (hostname) => { - if (!hostname) { - return hostname; - } - - if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') { - hostname = hostname.slice(1, -1); - } - - return unmapIPv4MappedIPv6(hostname.replace(/\.+$/, '')); -}; - -export default function shouldBypassProxy(location) { - let parsed; - - try { - parsed = new URL(location); - } catch (_err) { - return false; - } - - const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase(); - - if (!noProxy) { - return false; - } - - if (noProxy === '*') { - return true; - } - - const port = - Number.parseInt(parsed.port, 10) || DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0; - - const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase()); - - return noProxy.split(/[\s,]+/).some((entry) => { - if (!entry) { - return false; - } - - let [entryHost, entryPort] = parseNoProxyEntry(entry); - - entryHost = normalizeNoProxyHost(entryHost); - - if (!entryHost) { - return false; - } - - if (entryPort && entryPort !== port) { - return false; - } - - if (entryHost.charAt(0) === '*') { - entryHost = entryHost.slice(1); - } - - if (entryHost.charAt(0) === '.') { - return hostname.endsWith(entryHost); - } - - return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost)); - }); -} diff --git a/node_modules/axios/lib/helpers/speedometer.js b/node_modules/axios/lib/helpers/speedometer.js deleted file mode 100644 index 566a1ff..0000000 --- a/node_modules/axios/lib/helpers/speedometer.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -/** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - - min = min !== undefined ? min : 1000; - - return function push(chunkLength) { - const now = Date.now(); - - const startedAt = timestamps[tail]; - - if (!firstSampleTS) { - firstSampleTS = now; - } - - bytes[head] = chunkLength; - timestamps[head] = now; - - let i = tail; - let bytesCount = 0; - - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - - head = (head + 1) % samplesCount; - - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - - if (now - firstSampleTS < min) { - return; - } - - const passed = startedAt && now - startedAt; - - return passed ? Math.round((bytesCount * 1000) / passed) : undefined; - }; -} - -export default speedometer; diff --git a/node_modules/axios/lib/helpers/spread.js b/node_modules/axios/lib/helpers/spread.js deleted file mode 100644 index 2e72fc8..0000000 --- a/node_modules/axios/lib/helpers/spread.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * const args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ -export default function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} diff --git a/node_modules/axios/lib/helpers/throttle.js b/node_modules/axios/lib/helpers/throttle.js deleted file mode 100644 index fbef472..0000000 --- a/node_modules/axios/lib/helpers/throttle.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1000 / freq; - let lastArgs; - let timer; - - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn(...args); - }; - - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if (passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs); - }, threshold - passed); - } - } - }; - - const flush = () => lastArgs && invoke(lastArgs); - - return [throttled, flush]; -} - -export default throttle; diff --git a/node_modules/axios/lib/helpers/toFormData.js b/node_modules/axios/lib/helpers/toFormData.js deleted file mode 100644 index a1c7cf9..0000000 --- a/node_modules/axios/lib/helpers/toFormData.js +++ /dev/null @@ -1,249 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import AxiosError from '../core/AxiosError.js'; -// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored -import PlatformFormData from '../platform/node/classes/FormData.js'; - -/** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ -function isVisitable(thing) { - return utils.isPlainObject(thing) || utils.isArray(thing); -} - -/** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ -function removeBrackets(key) { - return utils.endsWith(key, '[]') ? key.slice(0, -2) : key; -} - -/** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ -function renderKey(path, key, dots) { - if (!path) return key; - return path - .concat(key) - .map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }) - .join(dots ? '.' : ''); -} - -/** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ -function isFlatArray(arr) { - return utils.isArray(arr) && !arr.some(isVisitable); -} - -const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); - -/** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - -/** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ -function toFormData(obj, formData, options) { - if (!utils.isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (PlatformFormData || FormData)(); - - // eslint-disable-next-line no-param-reassign - options = utils.toFlatObject( - options, - { - metaTokens: true, - dots: false, - indexes: false, - }, - false, - function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !utils.isUndefined(source[option]); - } - ); - - const metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); - const maxDepth = options.maxDepth === undefined ? 100 : options.maxDepth; - const useBlob = _Blob && utils.isSpecCompliantForm(formData); - - if (!utils.isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - - function convertValue(value) { - if (value === null) return ''; - - if (utils.isDate(value)) { - return value.toISOString(); - } - - if (utils.isBoolean(value)) { - return value.toString(); - } - - if (!useBlob && utils.isBlob(value)) { - throw new AxiosError('Blob is not supported. Use a Buffer instead.'); - } - - if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - let arr = value; - - if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) { - formData.append(renderKey(path, key, dots), convertValue(value)); - return false; - } - - if (value && !path && typeof value === 'object') { - if (utils.endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if ( - (utils.isArray(value) && isFlatArray(value)) || - ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))) - ) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - - arr.forEach(function each(el, index) { - !(utils.isUndefined(el) || el === null) && - formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true - ? renderKey([key], index, dots) - : indexes === null - ? key - : key + '[]', - convertValue(el) - ); - }); - return false; - } - } - - if (isVisitable(value)) { - return true; - } - - formData.append(renderKey(path, key, dots), convertValue(value)); - - return false; - } - - const stack = []; - - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable, - }); - - function build(value, path, depth = 0) { - if (utils.isUndefined(value)) return; - - if (depth > maxDepth) { - throw new AxiosError( - 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, - AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED - ); - } - - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - - stack.push(value); - - utils.forEach(value, function each(el, key) { - const result = - !(utils.isUndefined(el) || el === null) && - visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers); - - if (result === true) { - build(el, path ? path.concat(key) : [key], depth + 1); - } - }); - - stack.pop(); - } - - if (!utils.isObject(obj)) { - throw new TypeError('data must be an object'); - } - - build(obj); - - return formData; -} - -export default toFormData; diff --git a/node_modules/axios/lib/helpers/toURLEncodedForm.js b/node_modules/axios/lib/helpers/toURLEncodedForm.js deleted file mode 100644 index 749e13a..0000000 --- a/node_modules/axios/lib/helpers/toURLEncodedForm.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -import utils from '../utils.js'; -import toFormData from './toFormData.js'; -import platform from '../platform/index.js'; - -export default function toURLEncodedForm(data, options) { - return toFormData(data, new platform.classes.URLSearchParams(), { - visitor: function (value, key, path, helpers) { - if (platform.isNode && utils.isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - - return helpers.defaultVisitor.apply(this, arguments); - }, - ...options, - }); -} diff --git a/node_modules/axios/lib/helpers/trackStream.js b/node_modules/axios/lib/helpers/trackStream.js deleted file mode 100644 index c75eace..0000000 --- a/node_modules/axios/lib/helpers/trackStream.js +++ /dev/null @@ -1,89 +0,0 @@ -export const streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - - if (!chunkSize || len < chunkSize) { - yield chunk; - return; - } - - let pos = 0; - let end; - - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -}; - -export const readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -}; - -const readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - - const reader = stream.getReader(); - try { - for (;;) { - const { done, value } = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -}; - -export const trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - - let bytes = 0; - let done; - let _onFinish = (e) => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - }; - - return new ReadableStream( - { - async pull(controller) { - try { - const { done, value } = await iterator.next(); - - if (done) { - _onFinish(); - controller.close(); - return; - } - - let len = value.byteLength; - if (onProgress) { - let loadedBytes = (bytes += len); - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - }, - }, - { - highWaterMark: 2, - } - ); -}; diff --git a/node_modules/axios/lib/helpers/validator.js b/node_modules/axios/lib/helpers/validator.js deleted file mode 100644 index 077f34d..0000000 --- a/node_modules/axios/lib/helpers/validator.js +++ /dev/null @@ -1,112 +0,0 @@ -'use strict'; - -import { VERSION } from '../env/data.js'; -import AxiosError from '../core/AxiosError.js'; - -const validators = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -const deprecatedWarnings = {}; - -/** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ -validators.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return ( - '[Axios v' + - VERSION + - "] Transitional option '" + - opt + - "'" + - desc + - (message ? '. ' + message : '') - ); - } - - // eslint-disable-next-line func-names - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), - AxiosError.ERR_DEPRECATED - ); - } - - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -validators.spelling = function spelling(correctSpelling) { - return (value, opt) => { - // eslint-disable-next-line no-console - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - }; -}; - -/** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - // Use hasOwnProperty so a polluted Object.prototype. cannot supply - // a non-function validator and cause a TypeError. - const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; - if (validator) { - const value = options[opt]; - const result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new AxiosError( - 'option ' + opt + ' must be ' + result, - AxiosError.ERR_BAD_OPTION_VALUE - ); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); - } - } -} - -export default { - assertOptions, - validators, -}; diff --git a/node_modules/axios/lib/platform/browser/classes/Blob.js b/node_modules/axios/lib/platform/browser/classes/Blob.js deleted file mode 100644 index 9ec4af8..0000000 --- a/node_modules/axios/lib/platform/browser/classes/Blob.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -export default typeof Blob !== 'undefined' ? Blob : null; diff --git a/node_modules/axios/lib/platform/browser/classes/FormData.js b/node_modules/axios/lib/platform/browser/classes/FormData.js deleted file mode 100644 index f36d31b..0000000 --- a/node_modules/axios/lib/platform/browser/classes/FormData.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -export default typeof FormData !== 'undefined' ? FormData : null; diff --git a/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js b/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js deleted file mode 100644 index b7dae95..0000000 --- a/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -import AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js'; -export default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; diff --git a/node_modules/axios/lib/platform/browser/index.js b/node_modules/axios/lib/platform/browser/index.js deleted file mode 100644 index 8e5f99c..0000000 --- a/node_modules/axios/lib/platform/browser/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import URLSearchParams from './classes/URLSearchParams.js'; -import FormData from './classes/FormData.js'; -import Blob from './classes/Blob.js'; - -export default { - isBrowser: true, - classes: { - URLSearchParams, - FormData, - Blob, - }, - protocols: ['http', 'https', 'file', 'blob', 'url', 'data'], -}; diff --git a/node_modules/axios/lib/platform/common/utils.js b/node_modules/axios/lib/platform/common/utils.js deleted file mode 100644 index e4dfe46..0000000 --- a/node_modules/axios/lib/platform/common/utils.js +++ /dev/null @@ -1,52 +0,0 @@ -const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; - -const _navigator = (typeof navigator === 'object' && navigator) || undefined; - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ -const hasStandardBrowserEnv = - hasBrowserEnv && - (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - -/** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ -const hasStandardBrowserWebWorkerEnv = (() => { - return ( - typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && - typeof self.importScripts === 'function' - ); -})(); - -const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; - -export { - hasBrowserEnv, - hasStandardBrowserWebWorkerEnv, - hasStandardBrowserEnv, - _navigator as navigator, - origin, -}; diff --git a/node_modules/axios/lib/platform/index.js b/node_modules/axios/lib/platform/index.js deleted file mode 100644 index e1094ab..0000000 --- a/node_modules/axios/lib/platform/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import platform from './node/index.js'; -import * as utils from './common/utils.js'; - -export default { - ...utils, - ...platform, -}; diff --git a/node_modules/axios/lib/platform/node/classes/FormData.js b/node_modules/axios/lib/platform/node/classes/FormData.js deleted file mode 100644 index b07f947..0000000 --- a/node_modules/axios/lib/platform/node/classes/FormData.js +++ /dev/null @@ -1,3 +0,0 @@ -import FormData from 'form-data'; - -export default FormData; diff --git a/node_modules/axios/lib/platform/node/classes/URLSearchParams.js b/node_modules/axios/lib/platform/node/classes/URLSearchParams.js deleted file mode 100644 index fba5842..0000000 --- a/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -import url from 'url'; -export default url.URLSearchParams; diff --git a/node_modules/axios/lib/platform/node/index.js b/node_modules/axios/lib/platform/node/index.js deleted file mode 100644 index 9979a71..0000000 --- a/node_modules/axios/lib/platform/node/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import crypto from 'crypto'; -import URLSearchParams from './classes/URLSearchParams.js'; -import FormData from './classes/FormData.js'; - -const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; - -const DIGIT = '0123456789'; - -const ALPHABET = { - DIGIT, - ALPHA, - ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT, -}; - -const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { - let str = ''; - const { length } = alphabet; - const randomValues = new Uint32Array(size); - crypto.randomFillSync(randomValues); - for (let i = 0; i < size; i++) { - str += alphabet[randomValues[i] % length]; - } - - return str; -}; - -export default { - isNode: true, - classes: { - URLSearchParams, - FormData, - Blob: (typeof Blob !== 'undefined' && Blob) || null, - }, - ALPHABET, - generateString, - protocols: ['http', 'https', 'file', 'data'], -}; diff --git a/node_modules/axios/lib/utils.js b/node_modules/axios/lib/utils.js deleted file mode 100644 index a869a93..0000000 --- a/node_modules/axios/lib/utils.js +++ /dev/null @@ -1,932 +0,0 @@ -'use strict'; - -import bind from './helpers/bind.js'; - -// utils is a library of generic helper functions non-specific to axios - -const { toString } = Object.prototype; -const { getPrototypeOf } = Object; -const { iterator, toStringTag } = Symbol; - -const kindOf = ((cache) => (thing) => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(Object.create(null)); - -const kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type; -}; - -const typeOfTest = (type) => (thing) => typeof thing === type; - -/** - * Determine if a value is a non-null object - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ -const { isArray } = Array; - -/** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ -const isUndefined = typeOfTest('undefined'); - -/** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return ( - val !== null && - !isUndefined(val) && - val.constructor !== null && - !isUndefined(val.constructor) && - isFunction(val.constructor.isBuffer) && - val.constructor.isBuffer(val) - ); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -const isArrayBuffer = kindOfTest('ArrayBuffer'); - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ -const isString = typeOfTest('string'); - -/** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -const isFunction = typeOfTest('function'); - -/** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ -const isNumber = typeOfTest('number'); - -/** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ -const isObject = (thing) => thing !== null && typeof thing === 'object'; - -/** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ -const isBoolean = (thing) => thing === true || thing === false; - -/** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ -const isPlainObject = (val) => { - if (kindOf(val) !== 'object') { - return false; - } - - const prototype = getPrototypeOf(val); - return ( - (prototype === null || - prototype === Object.prototype || - Object.getPrototypeOf(prototype) === null) && - !(toStringTag in val) && - !(iterator in val) - ); -}; - -/** - * Determine if a value is an empty object (safely handles Buffers) - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an empty object, otherwise false - */ -const isEmptyObject = (val) => { - // Early return for non-objects or Buffers to prevent RangeError - if (!isObject(val) || isBuffer(val)) { - return false; - } - - try { - return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; - } catch (e) { - // Fallback for any other objects that might cause RangeError with Object.keys() - return false; - } -}; - -/** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ -const isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFile = kindOfTest('File'); - -/** - * Determine if a value is a React Native Blob - * React Native "blob": an object with a `uri` attribute. Optionally, it can - * also have a `name` and `type` attribute to specify filename and content type - * - * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 - * - * @param {*} value The value to test - * - * @returns {boolean} True if value is a React Native Blob, otherwise false - */ -const isReactNativeBlob = (value) => { - return !!(value && typeof value.uri !== 'undefined'); -}; - -/** - * Determine if environment is React Native - * ReactNative `FormData` has a non-standard `getParts()` method - * - * @param {*} formData The formData to test - * - * @returns {boolean} True if environment is React Native, otherwise false - */ -const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; - -/** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ -const isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a FileList, otherwise false - */ -const isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ -const isStream = (val) => isObject(val) && isFunction(val.pipe); - -/** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') return globalThis; - if (typeof self !== 'undefined') return self; - if (typeof window !== 'undefined') return window; - if (typeof global !== 'undefined') return global; - return {}; -} - -const G = getGlobal(); -const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; - -const isFormData = (thing) => { - if (!thing) return false; - if (FormDataCtor && thing instanceof FormDataCtor) return true; - // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. - const proto = getPrototypeOf(thing); - if (!proto || proto === Object.prototype) return false; - if (!isFunction(thing.append)) return false; - const kind = kindOf(thing); - return ( - kind === 'formdata' || - // detect form-data instance - (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') - ); -}; - -/** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -const isURLSearchParams = kindOfTest('URLSearchParams'); - -const [isReadableStream, isRequest, isResponse, isHeaders] = [ - 'ReadableStream', - 'Request', - 'Response', - 'Headers', -].map(kindOfTest); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ -const trim = (str) => { - return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); -}; -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys = false] - * @returns {any} - */ -function forEach(obj, fn, { allOwnKeys = false } = {}) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - let i; - let l; - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Buffer check - if (isBuffer(obj)) { - return; - } - - // Iterate over object keys - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} - -/** - * Finds a key in an object, case-insensitive, returning the actual key name. - * Returns null if the object is a Buffer or if no match is found. - * - * @param {Object} obj - The object to search. - * @param {string} key - The key to find (case-insensitive). - * @returns {?string} The actual key name if found, otherwise null. - */ -function findKey(obj, key) { - if (isBuffer(obj)) { - return null; - } - - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} - -const _global = (() => { - /*eslint no-undef:0*/ - if (typeof globalThis !== 'undefined') return globalThis; - return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; -})(); - -const isContextDefined = (context) => !isUndefined(context) && context !== _global; - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * const result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ -function merge(...objs) { - const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; - const result = {}; - const assignValue = (val, key) => { - // Skip dangerous property names to prevent prototype pollution - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return; - } - - const targetKey = (caseless && findKey(result, key)) || key; - // Read via own-prop only — a bare `result[targetKey]` walks the prototype - // chain, so a polluted Object.prototype value could surface here and get - // copied into the merged result. - const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; - if (isPlainObject(existing) && isPlainObject(val)) { - result[targetKey] = merge(existing, val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else if (!skipUndefined || !isUndefined(val)) { - result[targetKey] = val; - } - }; - - for (let i = 0, l = objs.length; i < l; i++) { - objs[i] && forEach(objs[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Object} [options] - * @param {Boolean} [options.allOwnKeys] - * @returns {Object} The resulting value of object a - */ -const extend = (a, b, thisArg, { allOwnKeys } = {}) => { - forEach( - b, - (val, key) => { - if (thisArg && isFunction(val)) { - Object.defineProperty(a, key, { - // Null-proto descriptor so a polluted Object.prototype.get cannot - // hijack defineProperty's accessor-vs-data resolution. - __proto__: null, - value: bind(val, thisArg), - writable: true, - enumerable: true, - configurable: true, - }); - } else { - Object.defineProperty(a, key, { - __proto__: null, - value: val, - writable: true, - enumerable: true, - configurable: true, - }); - } - }, - { allOwnKeys } - ); - return a; -}; - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ -const stripBOM = (content) => { - if (content.charCodeAt(0) === 0xfeff) { - content = content.slice(1); - } - return content; -}; - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ -const inherits = (constructor, superConstructor, props, descriptors) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - Object.defineProperty(constructor.prototype, 'constructor', { - __proto__: null, - value: constructor, - writable: true, - enumerable: false, - configurable: true, - }); - Object.defineProperty(constructor, 'super', { - __proto__: null, - value: superConstructor.prototype, - }); - props && Object.assign(constructor.prototype, props); -}; - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ -const toFlatObject = (sourceObj, destObj, filter, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - - return destObj; -}; - -/** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ -const endsWith = (str, searchString, position) => { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -}; - -/** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ -const toArray = (thing) => { - if (!thing) return null; - if (isArray(thing)) return thing; - let i = thing.length; - if (!isNumber(i)) return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -}; - -/** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ -// eslint-disable-next-line func-names -const isTypedArray = ((TypedArray) => { - // eslint-disable-next-line func-names - return (thing) => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - -/** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ -const forEachEntry = (obj, fn) => { - const generator = obj && obj[iterator]; - - const _iterator = generator.call(obj); - - let result; - - while ((result = _iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -}; - -/** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ -const matchAll = (regExp, str) => { - let matches; - const arr = []; - - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - - return arr; -}; - -/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ -const isHTMLForm = kindOfTest('HTMLFormElement'); - -const toCamelCase = (str) => { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - }); -}; - -/* Creating a function that will check if an object has a property. */ -const hasOwnProperty = ( - ({ hasOwnProperty }) => - (obj, prop) => - hasOwnProperty.call(obj, prop) -)(Object.prototype); - -/** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ -const isRegExp = kindOfTest('RegExp'); - -const reduceDescriptors = (obj, reducer) => { - const descriptors = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - - forEach(descriptors, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - - Object.defineProperties(obj, reducedDescriptors); -}; - -/** - * Makes all methods read-only - * @param {Object} obj - */ - -const freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - // skip restricted props in strict mode - if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) { - return false; - } - - const value = obj[name]; - - if (!isFunction(value)) return; - - descriptor.enumerable = false; - - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); -}; - -/** - * Converts an array or a delimited string into an object set with values as keys and true as values. - * Useful for fast membership checks. - * - * @param {Array|string} arrayOrString - The array or string to convert. - * @param {string} delimiter - The delimiter to use if input is a string. - * @returns {Object} An object with keys from the array or string, values set to true. - */ -const toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - - const define = (arr) => { - arr.forEach((value) => { - obj[value] = true; - }); - }; - - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - - return obj; -}; - -const noop = () => {}; - -const toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite((value = +value)) ? value : defaultValue; -}; - -/** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ -function isSpecCompliantForm(thing) { - return !!( - thing && - isFunction(thing.append) && - thing[toStringTag] === 'FormData' && - thing[iterator] - ); -} - -/** - * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. - * - * @param {Object} obj - The object to convert. - * @returns {Object} The JSON-compatible object. - */ -const toJSONObject = (obj) => { - const visited = new WeakSet(); - - const visit = (source) => { - if (isObject(source)) { - if (visited.has(source)) { - return; - } - - //Buffer check - if (isBuffer(source)) { - return source; - } - - if (!('toJSON' in source)) { - // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). - visited.add(source); - const target = isArray(source) ? [] : {}; - - forEach(source, (value, key) => { - const reducedValue = visit(value); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - - visited.delete(source); - - return target; - } - } - - return source; - }; - - return visit(obj); -}; - -/** - * Determines if a value is an async function. - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is an async function, otherwise false. - */ -const isAsyncFn = kindOfTest('AsyncFunction'); - -/** - * Determines if a value is thenable (has then and catch methods). - * - * @param {*} thing - The value to test. - * @returns {boolean} True if value is thenable, otherwise false. - */ -const isThenable = (thing) => - thing && - (isObject(thing) || isFunction(thing)) && - isFunction(thing.then) && - isFunction(thing.catch); - -// original code -// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - -/** - * Provides a cross-platform setImmediate implementation. - * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. - * - * @param {boolean} setImmediateSupported - Whether setImmediate is supported. - * @param {boolean} postMessageSupported - Whether postMessage is supported. - * @returns {Function} A function to schedule a callback asynchronously. - */ -const _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - - return postMessageSupported - ? ((token, callbacks) => { - _global.addEventListener( - 'message', - ({ source, data }) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, - false - ); - - return (cb) => { - callbacks.push(cb); - _global.postMessage(token, '*'); - }; - })(`axios@${Math.random()}`, []) - : (cb) => setTimeout(cb); -})(typeof setImmediate === 'function', isFunction(_global.postMessage)); - -/** - * Schedules a microtask or asynchronous callback as soon as possible. - * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. - * - * @type {Function} - */ -const asap = - typeof queueMicrotask !== 'undefined' - ? queueMicrotask.bind(_global) - : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; - -// ********************* - -const isIterable = (thing) => thing != null && isFunction(thing[iterator]); - -export default { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isEmptyObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isReactNativeBlob, - isReactNative, - isBlob, - isRegExp, - isFunction, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap, - isIterable, -}; diff --git a/node_modules/axios/package.json b/node_modules/axios/package.json deleted file mode 100644 index de6f731..0000000 --- a/node_modules/axios/package.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "name": "axios", - "version": "1.16.1", - "description": "Promise based HTTP client for the browser and node.js", - "main": "./dist/node/axios.cjs", - "module": "./index.js", - "type": "module", - "types": "index.d.ts", - "jsdelivr": "dist/axios.min.js", - "unpkg": "dist/axios.min.js", - "typings": "./index.d.ts", - "exports": { - ".": { - "types": { - "require": "./index.d.cts", - "default": "./index.d.ts" - }, - "bun": { - "require": "./dist/node/axios.cjs", - "default": "./index.js" - }, - "react-native": { - "require": "./dist/browser/axios.cjs", - "default": "./dist/esm/axios.js" - }, - "browser": { - "require": "./dist/browser/axios.cjs", - "default": "./index.js" - }, - "default": { - "require": "./dist/node/axios.cjs", - "default": "./index.js" - } - }, - "./lib/adapters/http.js": "./lib/adapters/http.js", - "./lib/adapters/xhr.js": "./lib/adapters/xhr.js", - "./unsafe/*": "./lib/*", - "./unsafe/core/settle.js": "./lib/core/settle.js", - "./unsafe/core/buildFullPath.js": "./lib/core/buildFullPath.js", - "./unsafe/helpers/isAbsoluteURL.js": "./lib/helpers/isAbsoluteURL.js", - "./unsafe/helpers/buildURL.js": "./lib/helpers/buildURL.js", - "./unsafe/helpers/combineURLs.js": "./lib/helpers/combineURLs.js", - "./unsafe/adapters/http.js": "./lib/adapters/http.js", - "./unsafe/adapters/xhr.js": "./lib/adapters/xhr.js", - "./unsafe/utils.js": "./lib/utils.js", - "./package.json": "./package.json", - "./dist/browser/axios.cjs": "./dist/browser/axios.cjs", - "./dist/node/axios.cjs": "./dist/node/axios.cjs" - }, - "browser": { - "./dist/node/axios.cjs": "./dist/browser/axios.cjs", - "./lib/adapters/http.js": "./lib/helpers/null.js", - "./lib/platform/node/index.js": "./lib/platform/browser/index.js", - "./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js" - }, - "react-native": { - "./dist/node/axios.cjs": "./dist/browser/axios.cjs", - "./lib/adapters/http.js": "./lib/helpers/null.js", - "./lib/platform/node/index.js": "./lib/platform/browser/index.js", - "./lib/platform/node/classes/FormData.js": "./lib/helpers/null.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/axios/axios.git" - }, - "keywords": [ - "xhr", - "http", - "ajax", - "promise", - "node", - "browser", - "fetch", - "rest", - "api", - "client" - ], - "author": "Matt Zabriskie", - "contributors": [ - "Matt Zabriskie (https://github.com/mzabriskie)", - "Jay (https://github.com/jasonsaayman)", - "Dmitriy Mozgovoy (https://github.com/DigitalBrainJS)", - "Nick Uraltsev (https://github.com/nickuraltsev)", - "Emily Morehouse (https://github.com/emilyemorehouse)", - "Rubén Norte (https://github.com/rubennorte)", - "Justin Beckwith (https://github.com/JustinBeckwith)", - "Martti Laine (https://github.com/codeclown)", - "Xianming Zhong (https://github.com/chinesedfan)", - "Willian Agostini (https://github.com/WillianAgostini)", - "Shaan Majid (https://github.com/shaanmajid)", - "Remco Haszing (https://github.com/remcohaszing)", - "Rikki Gibson (https://github.com/RikkiGibson)" - ], - "sideEffects": false, - "license": "MIT", - "bugs": { - "url": "https://github.com/axios/axios/issues" - }, - "homepage": "https://axios-http.com", - "scripts": { - "build": "gulp clear && cross-env NODE_ENV=production rollup -c -m", - "version": "npm run build && git add package.json", - "preversion": "gulp version", - "test": "npm run test:vitest", - "test:vitest": "vitest run", - "test:vitest:unit": "vitest run --project unit", - "test:vitest:browser": "vitest run --project browser", - "test:vitest:browser:headless": "vitest run --project browser-headless", - "test:vitest:watch": "vitest", - "test:smoke:cjs:vitest": "npm --prefix tests/smoke/cjs run test:smoke:cjs:mocha", - "test:smoke:esm:vitest": "npm --prefix tests/smoke/esm run test:smoke:esm:vitest", - "test:smoke:deno": "deno task --cwd tests/smoke/deno test", - "test:smoke:bun": "bun test --cwd tests/smoke/bun", - "test:module:cjs": "npm --prefix tests/module/cjs run test:module:cjs", - "test:module:esm": "npm --prefix tests/module/esm run test:module:esm", - "docs:dev": "cd docs && npm run docs:dev", - "start": "node ./sandbox/server.js", - "examples": "node ./examples/server.js", - "lint": "eslint lib/**/*.js", - "fix": "eslint --fix lib/**/*.js", - "prepare": "husky" - }, - "dependencies": { - "follow-redirects": "^1.16.0", - "form-data": "^4.0.5", - "https-proxy-agent": "^5.0.1", - "proxy-from-env": "^2.1.0" - }, - "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/preset-env": "^7.29.2", - "@commitlint/cli": "^20.5.0", - "@commitlint/config-conventional": "^20.5.0", - "@eslint/js": "^10.0.1", - "@rollup/plugin-alias": "^6.0.0", - "@rollup/plugin-babel": "^7.0.0", - "@rollup/plugin-commonjs": "^29.0.2", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.3", - "@rollup/plugin-terser": "^1.0.0", - "@vitest/browser": "^4.1.5", - "@vitest/browser-playwright": "^4.1.5", - "abortcontroller-polyfill": "^1.7.8", - "acorn": "^8.16.0", - "body-parser": "^2.2.2", - "chalk": "^5.6.2", - "cross-env": "^10.1.0", - "dev-null": "^0.1.1", - "eslint": "^10.2.1", - "express": "^5.2.1", - "formdata-node": "^6.0.3", - "formidable": "^3.5.4", - "fs-extra": "^11.3.4", - "get-stream": "^9.0.1", - "globals": "^17.5.0", - "gulp": "^5.0.1", - "husky": "^9.1.7", - "lint-staged": "^16.4.0", - "minimist": "^1.2.8", - "multer": "^2.1.1", - "playwright": "^1.59.1", - "prettier": "^3.8.3", - "rollup": "^4.60.2", - "rollup-plugin-bundle-size": "^1.0.3", - "selfsigned": "^5.5.0", - "stream-throttle": "^0.1.3", - "typescript": "^5.9.3", - "vitest": "^4.1.5" - }, - "commitlint": { - "rules": { - "header-max-length": [ - 2, - "always", - 130 - ] - }, - "extends": [ - "@commitlint/config-conventional" - ] - }, - "lint-staged": { - "*.{js,cjs,mjs,ts,json,md,yml,yaml}": "prettier --write" - } -} \ No newline at end of file diff --git a/node_modules/b4a/LICENSE b/node_modules/b4a/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/b4a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/b4a/README.md b/node_modules/b4a/README.md deleted file mode 100644 index 01a6ce7..0000000 --- a/node_modules/b4a/README.md +++ /dev/null @@ -1,153 +0,0 @@ -# Buffer for Array - -Buffer for Array (B4A) provides a set of functions for bridging the gap between the Node.js `Buffer` class and the `Uint8Array` class. A browser compatibility layer is also included, making it possible to use B4A in both Node.js and browsers without having to worry about whether you're dealing with buffers or typed arrays. - -## Installation - -```sh -npm i b4a -``` - -### React Native - -When imported from React Native `b4a` will make use of `react-native-b4a` for optimised buffer operations when available. All you need to do is install it: - -```sh -npm i react-native-b4a -``` - -## API - -#### `b4a.isBuffer(value)` - -See https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj - -This will also return `true` when passed a `Uint8Array`. - -#### `b4a.isEncoding(encoding)` - -See https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding - -#### `b4a.alloc(size[, fill[, encoding]])` - -See https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding - -#### `b4a.allocUnsafe(size)` - -See https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize - -#### `b4a.allocUnsafeSlow(size)` - -See https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize - -#### `b4a.byteLength(string)` - -See https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding - -#### `b4a.compare(buf1, buf2)` - -See https://nodejs.org/api/buffer.html#static-method-buffercomparebuf1-buf2 - -#### `b4a.concat(buffers[, totalLength])` - -See https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength - -#### `b4a.copy(source, target[, targetStart[, sourceStart[, sourceEnd]]])` - -See https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend - -#### `b4a.equals(buf1, buf2)` - -See https://nodejs.org/api/buffer.html#bufequalsotherbuffer - -#### `b4a.fill(buffer, value[, offset[, end]][, encoding])` - -See https://nodejs.org/api/buffer.html#buffillvalue-offset-end-encoding - -#### `b4a.from(array)` - -See https://nodejs.org/api/buffer.html#static-method-bufferfromarray - -#### `b4a.from(arrayBuffer[, byteOffset[, length]])` - -See https://nodejs.org/api/buffer.html#static-method-bufferfromarraybuffer-byteoffset-length - -#### `b4a.from(buffer)` - -See https://nodejs.org/api/buffer.html#static-method-bufferfrombuffer - -#### `b4a.from(string[, encoding])` - -See https://nodejs.org/api/buffer.html#static-method-bufferfromstring-encoding - -#### `b4a.includes(buffer, value[, byteOffset][, encoding])` - -See https://nodejs.org/api/buffer.html#bufincludesvalue-byteoffset-encoding - -#### `b4a.indexOf(buffer, value[, byteOffset][, encoding])` - -See https://nodejs.org/api/buffer.html#bufindexofvalue-byteoffset-encoding - -#### `b4a.lastIndexOf(buffer, value[, byteOffset][, encoding])` - -See https://nodejs.org/api/buffer.html#buflastindexofvalue-byteoffset-encoding - -#### `b4a.swap16(buffer)` - -See https://nodejs.org/api/buffer.html#bufswap16 - -#### `b4a.swap32(buffer)` - -See https://nodejs.org/api/buffer.html#bufswap32 - -#### `b4a.swap64(buffer)` - -See https://nodejs.org/api/buffer.html#bufswap64 - -#### `b4a.toBuffer(buffer)` - -Convert a buffer to its canonical representation. In Node.js, the canonical representation is a `Buffer`. In the browser, the canonical representation is a `Uint8Array`. - -#### `b4a.toString(buffer, [encoding[, start[, end]]])` - -See https://nodejs.org/api/buffer.html#buftostringencoding-start-end - -#### `b4a.write(buffer, string[, offset[, length]][, encoding])` - -See https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding - -#### `b4a.writeDoubleLE(buffer, value[, offset])` - -See https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset - -#### `b4a.writeFloatLE(buffer, value[, offset])` - -See https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset - -#### `b4a.writeUInt32LE(buffer, value[, offset])` - -https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset - -#### `b4a.writeInt32LE(buffer, value[, offset])` - -See https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset - -#### `b4a.readDoubleLE(buffer[, offset])` - -See https://nodejs.org/api/buffer.html#bufreaddoubleleoffset - -#### `b4a.readFloatLE(buffer[, offset])` - -See https://nodejs.org/api/buffer.html#bufreadfloatleoffset - -#### `b4a.readUInt32LE(buffer[, offset])` - -See https://nodejs.org/api/buffer.html#bufreaduint32leoffset - -#### `b4a.readInt32LE(buffer[, offset])` - -See https://nodejs.org/api/buffer.html#bufreadint32leoffset - -## License - -Apache 2.0 diff --git a/node_modules/b4a/browser.js b/node_modules/b4a/browser.js deleted file mode 100644 index 542ba7b..0000000 --- a/node_modules/b4a/browser.js +++ /dev/null @@ -1,541 +0,0 @@ -const ascii = require('./lib/ascii') -const base64 = require('./lib/base64') -const hex = require('./lib/hex') -const latin1 = require('./lib/latin1') -const utf8 = require('./lib/utf8') -const utf16le = require('./lib/utf16le') - -const LE = new Uint8Array(Uint16Array.of(0xff).buffer)[0] === 0xff - -function codecFor(encoding) { - switch (encoding) { - case 'ascii': - return ascii - case 'base64': - return base64 - case 'hex': - return hex - case 'binary': - case 'latin1': - return latin1 - case 'utf8': - case 'utf-8': - case undefined: - case null: - return utf8 - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16le - default: - throw new Error(`Unknown encoding '${encoding}'`) - } -} - -function isBuffer(value) { - return value instanceof Uint8Array -} - -function isEncoding(encoding) { - try { - codecFor(encoding) - return true - } catch { - return false - } -} - -function alloc(size, fill, encoding) { - const buffer = new Uint8Array(size) - if (fill !== undefined) { - exports.fill(buffer, fill, 0, buffer.byteLength, encoding) - } - return buffer -} - -function allocUnsafe(size) { - return new Uint8Array(size) -} - -function allocUnsafeSlow(size) { - return new Uint8Array(size) -} - -function byteLength(string, encoding) { - return codecFor(encoding).byteLength(string) -} - -function compare(a, b) { - if (a === b) return 0 - - const len = Math.min(a.byteLength, b.byteLength) - - a = new DataView(a.buffer, a.byteOffset, a.byteLength) - b = new DataView(b.buffer, b.byteOffset, b.byteLength) - - let i = 0 - - for (let n = len - (len % 4); i < n; i += 4) { - const x = a.getUint32(i, LE) - const y = b.getUint32(i, LE) - if (x !== y) break - } - - for (; i < len; i++) { - const x = a.getUint8(i) - const y = b.getUint8(i) - if (x < y) return -1 - if (x > y) return 1 - } - - return a.byteLength > b.byteLength ? 1 : a.byteLength < b.byteLength ? -1 : 0 -} - -function concat(buffers, length) { - if (length === undefined) { - length = buffers.reduce((len, buffer) => len + buffer.byteLength, 0) - } - - const result = new Uint8Array(length) - - let offset = 0 - - for (const buffer of buffers) { - if (offset + buffer.byteLength > result.byteLength) { - result.set(buffer.subarray(0, result.byteLength - offset), offset) - return result - } - - result.set(buffer, offset) - offset += buffer.byteLength - } - - return result -} - -function copy(source, target, targetStart = 0, sourceStart = 0, sourceEnd = source.byteLength) { - if (targetStart < 0) targetStart = 0 - if (targetStart >= target.byteLength) return 0 - - const targetLength = target.byteLength - targetStart - - if (sourceStart < 0) sourceStart = 0 - if (sourceStart >= source.byteLength) return 0 - - if (sourceEnd <= sourceStart) return 0 - if (sourceEnd > source.byteLength) sourceEnd = source.byteLength - - if (sourceEnd - sourceStart > targetLength) { - sourceEnd = sourceStart + targetLength - } - - const sourceLength = sourceEnd - sourceStart - - if (source === target) { - target.copyWithin(targetStart, sourceStart, sourceEnd) - } else { - if (sourceStart !== 0 || sourceEnd !== source.byteLength) { - source = source.subarray(sourceStart, sourceEnd) - } - - target.set(source, targetStart) - } - - return sourceLength -} - -function equals(a, b) { - if (a === b) return true - if (a.byteLength !== b.byteLength) return false - - return compare(a, b) === 0 -} - -function fill(buffer, value, offset = 0, end = buffer.byteLength, encoding = 'utf8') { - if (typeof value === 'string') { - if (typeof offset === 'string') { - // fill(string, encoding) - encoding = offset - offset = 0 - end = buffer.byteLength - } else if (typeof end === 'string') { - // fill(string, offset, encoding) - encoding = end - end = buffer.byteLength - } - } else if (typeof value === 'number') { - value = value & 0xff - } else if (typeof value === 'boolean') { - value = +value - } - - if (offset < 0) offset = 0 - if (offset >= buffer.byteLength) return buffer - - if (end <= offset) return buffer - if (end > buffer.byteLength) end = buffer.byteLength - - if (typeof value === 'number') return buffer.fill(value, offset, end) - - if (typeof value === 'string') value = exports.from(value, encoding) - - const len = value.byteLength - - for (let i = 0, n = end - offset; i < n; ++i) { - buffer[i + offset] = value[i % len] - } - - return buffer -} - -function from(value, encodingOrOffset, length) { - // from(string, encoding) - if (typeof value === 'string') return fromString(value, encodingOrOffset) - - // from(array) - if (Array.isArray(value)) return fromArray(value) - - // from(buffer) - if (ArrayBuffer.isView(value)) return fromBuffer(value) - - // from(arrayBuffer[, byteOffset[, length]]) - return fromArrayBuffer(value, encodingOrOffset, length) -} - -function fromString(string, encoding) { - const codec = codecFor(encoding) - const buffer = new Uint8Array(codec.byteLength(string)) - codec.write(buffer, string) - return buffer -} - -function fromArray(array) { - const buffer = new Uint8Array(array.length) - buffer.set(array) - return buffer -} - -function fromBuffer(buffer) { - const copy = new Uint8Array(buffer.byteLength) - copy.set(buffer) - return copy -} - -function fromArrayBuffer(arrayBuffer, byteOffset, length) { - return new Uint8Array(arrayBuffer, byteOffset, length) -} - -function includes(buffer, value, byteOffset, encoding) { - return indexOf(buffer, value, byteOffset, encoding) !== -1 -} - -function indexOf(buffer, value, byteOffset, encoding) { - return bidirectionalIndexOf(buffer, value, byteOffset, encoding, true /* first */) -} - -function lastIndexOf(buffer, value, byteOffset, encoding) { - return bidirectionalIndexOf(buffer, value, byteOffset, encoding, false /* last */) -} - -function bidirectionalIndexOf(buffer, value, byteOffset, encoding, first) { - if (buffer.byteLength === 0) return -1 - - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset === undefined) { - byteOffset = first ? 0 : buffer.length - 1 - } else if (byteOffset < 0) { - byteOffset += buffer.byteLength - } - - if (byteOffset >= buffer.byteLength) { - if (first) return -1 - else byteOffset = buffer.byteLength - 1 - } else if (byteOffset < 0) { - if (first) byteOffset = 0 - else return -1 - } - - if (typeof value === 'string') { - value = from(value, encoding) - } else if (typeof value === 'number') { - value = value & 0xff - - if (first) { - return buffer.indexOf(value, byteOffset) - } else { - return buffer.lastIndexOf(value, byteOffset) - } - } - - if (value.byteLength === 0) return -1 - - if (first) { - let foundIndex = -1 - - for (let i = byteOffset; i < buffer.byteLength; i++) { - if (buffer[i] === value[foundIndex === -1 ? 0 : i - foundIndex]) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === value.byteLength) return foundIndex - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + value.byteLength > buffer.byteLength) { - byteOffset = buffer.byteLength - value.byteLength - } - - for (let i = byteOffset; i >= 0; i--) { - let found = true - - for (let j = 0; j < value.byteLength; j++) { - if (buffer[i + j] !== value[j]) { - found = false - break - } - } - - if (found) return i - } - } - - return -1 -} - -function swap(buffer, n, m) { - const i = buffer[n] - buffer[n] = buffer[m] - buffer[m] = i -} - -function swap16(buffer) { - const len = buffer.byteLength - - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - - for (let i = 0; i < len; i += 2) swap(buffer, i, i + 1) - - return buffer -} - -function swap32(buffer) { - const len = buffer.byteLength - - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - - for (let i = 0; i < len; i += 4) { - swap(buffer, i, i + 3) - swap(buffer, i + 1, i + 2) - } - - return buffer -} - -function swap64(buffer) { - const len = buffer.byteLength - - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - - for (let i = 0; i < len; i += 8) { - swap(buffer, i, i + 7) - swap(buffer, i + 1, i + 6) - swap(buffer, i + 2, i + 5) - swap(buffer, i + 3, i + 4) - } - - return buffer -} - -function toBuffer(buffer) { - return buffer -} - -function toString(buffer, encoding = 'utf8', start = 0, end = buffer.byteLength) { - // toString(buffer) - if (arguments.length === 1) return utf8.toString(buffer) - - // toString(buffer, encoding) - if (arguments.length === 2) return codecFor(encoding).toString(buffer) - - if (start < 0) start = 0 - if (start >= buffer.byteLength) return '' - - if (end <= start) return '' - if (end > buffer.byteLength) end = buffer.byteLength - - if (start !== 0 || end !== buffer.byteLength) { - buffer = buffer.subarray(start, end) - } - - return codecFor(encoding).toString(buffer) -} - -function write(buffer, string, offset = 0, length = buffer.byteLength, encoding) { - // write(buffer, string) - if (arguments.length === 2) return utf8.write(buffer, string) - - if (typeof offset === 'string') { - // write(buffer, string, encoding) - encoding = offset - offset = 0 - length = buffer.byteLength - } else if (typeof length === 'string') { - // write(buffer, string, offset, encoding) - encoding = length - length = buffer.byteLength - offset - } - - length = Math.min(length, exports.byteLength(string, encoding)) - - let start = offset - if (start < 0) start = 0 - if (start >= buffer.byteLength) return 0 - - let end = offset + length - if (end <= start) return 0 - if (end > buffer.byteLength) end = buffer.byteLength - - if (start !== 0 || end !== buffer.byteLength) { - buffer = buffer.subarray(start, end) - } - - return codecFor(encoding).write(buffer, string) -} - -function readDoubleBE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getFloat64(offset, false) -} - -function readDoubleLE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getFloat64(offset, true) -} - -function readFloatBE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getFloat32(offset, false) -} - -function readFloatLE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getFloat32(offset, true) -} - -function readInt32BE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getInt32(offset, false) -} - -function readInt32LE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getInt32(offset, true) -} - -function readUInt32BE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getUint32(offset, false) -} - -function readUInt32LE(buffer, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - return view.getUint32(offset, true) -} - -function writeDoubleBE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setFloat64(offset, value, false) - return offset + 8 -} - -function writeDoubleLE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setFloat64(offset, value, true) - return offset + 8 -} - -function writeFloatBE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setFloat32(offset, value, false) - return offset + 4 -} - -function writeFloatLE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setFloat32(offset, value, true) - return offset + 4 -} - -function writeInt32BE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setInt32(offset, value, false) - return offset + 4 -} - -function writeInt32LE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setInt32(offset, value, true) - return offset + 4 -} - -function writeUInt32BE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setUint32(offset, value, false) - return offset + 4 -} - -function writeUInt32LE(buffer, value, offset = 0) { - const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength) - view.setUint32(offset, value, true) - return offset + 4 -} - -module.exports = exports = { - isBuffer, - isEncoding, - alloc, - allocUnsafe, - allocUnsafeSlow, - byteLength, - compare, - concat, - copy, - equals, - fill, - from, - includes, - indexOf, - lastIndexOf, - swap16, - swap32, - swap64, - toBuffer, - toString, - write, - readDoubleBE, - readDoubleLE, - readFloatBE, - readFloatLE, - readInt32BE, - readInt32LE, - readUInt32BE, - readUInt32LE, - writeDoubleBE, - writeDoubleLE, - writeFloatBE, - writeFloatLE, - writeInt32BE, - writeInt32LE, - writeUInt32BE, - writeUInt32LE -} diff --git a/node_modules/b4a/index.js b/node_modules/b4a/index.js deleted file mode 100644 index 7e0251a..0000000 --- a/node_modules/b4a/index.js +++ /dev/null @@ -1,188 +0,0 @@ -function isBuffer(value) { - return Buffer.isBuffer(value) || value instanceof Uint8Array -} - -function isEncoding(encoding) { - return Buffer.isEncoding(encoding) -} - -function alloc(size, fill, encoding) { - return Buffer.alloc(size, fill, encoding) -} - -function allocUnsafe(size) { - return Buffer.allocUnsafe(size) -} - -function allocUnsafeSlow(size) { - return Buffer.allocUnsafeSlow(size) -} - -function byteLength(string, encoding) { - return Buffer.byteLength(string, encoding) -} - -function compare(a, b) { - return Buffer.compare(a, b) -} - -function concat(buffers, totalLength) { - return Buffer.concat(buffers, totalLength) -} - -function copy(source, target, targetStart, start, end) { - return toBuffer(source).copy(target, targetStart, start, end) -} - -function equals(a, b) { - return toBuffer(a).equals(b) -} - -function fill(buffer, value, offset, end, encoding) { - return toBuffer(buffer).fill(value, offset, end, encoding) -} - -function from(value, encodingOrOffset, length) { - return Buffer.from(value, encodingOrOffset, length) -} - -function includes(buffer, value, byteOffset, encoding) { - return toBuffer(buffer).includes(value, byteOffset, encoding) -} - -function indexOf(buffer, value, byfeOffset, encoding) { - return toBuffer(buffer).indexOf(value, byfeOffset, encoding) -} - -function lastIndexOf(buffer, value, byteOffset, encoding) { - return toBuffer(buffer).lastIndexOf(value, byteOffset, encoding) -} - -function swap16(buffer) { - return toBuffer(buffer).swap16() -} - -function swap32(buffer) { - return toBuffer(buffer).swap32() -} - -function swap64(buffer) { - return toBuffer(buffer).swap64() -} - -function toBuffer(buffer) { - if (Buffer.isBuffer(buffer)) return buffer - return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength) -} - -function toString(buffer, encoding, start, end) { - return toBuffer(buffer).toString(encoding, start, end) -} - -function write(buffer, string, offset, length, encoding) { - return toBuffer(buffer).write(string, offset, length, encoding) -} - -function readDoubleBE(buffer, offset) { - return toBuffer(buffer).readDoubleBE(offset) -} - -function readDoubleLE(buffer, offset) { - return toBuffer(buffer).readDoubleLE(offset) -} - -function readFloatBE(buffer, offset) { - return toBuffer(buffer).readFloatBE(offset) -} - -function readFloatLE(buffer, offset) { - return toBuffer(buffer).readFloatLE(offset) -} - -function readInt32BE(buffer, offset) { - return toBuffer(buffer).readInt32BE(offset) -} - -function readInt32LE(buffer, offset) { - return toBuffer(buffer).readInt32LE(offset) -} - -function readUInt32BE(buffer, offset) { - return toBuffer(buffer).readUInt32BE(offset) -} - -function readUInt32LE(buffer, offset) { - return toBuffer(buffer).readUInt32LE(offset) -} - -function writeDoubleBE(buffer, value, offset) { - return toBuffer(buffer).writeDoubleBE(value, offset) -} - -function writeDoubleLE(buffer, value, offset) { - return toBuffer(buffer).writeDoubleLE(value, offset) -} - -function writeFloatBE(buffer, value, offset) { - return toBuffer(buffer).writeFloatBE(value, offset) -} - -function writeFloatLE(buffer, value, offset) { - return toBuffer(buffer).writeFloatLE(value, offset) -} - -function writeInt32BE(buffer, value, offset) { - return toBuffer(buffer).writeInt32BE(value, offset) -} - -function writeInt32LE(buffer, value, offset) { - return toBuffer(buffer).writeInt32LE(value, offset) -} - -function writeUInt32BE(buffer, value, offset) { - return toBuffer(buffer).writeUInt32BE(value, offset) -} - -function writeUInt32LE(buffer, value, offset) { - return toBuffer(buffer).writeUInt32LE(value, offset) -} - -module.exports = { - isBuffer, - isEncoding, - alloc, - allocUnsafe, - allocUnsafeSlow, - byteLength, - compare, - concat, - copy, - equals, - fill, - from, - includes, - indexOf, - lastIndexOf, - swap16, - swap32, - swap64, - toBuffer, - toString, - write, - readDoubleBE, - readDoubleLE, - readFloatBE, - readFloatLE, - readInt32BE, - readInt32LE, - readUInt32BE, - readUInt32LE, - writeDoubleBE, - writeDoubleLE, - writeFloatBE, - writeFloatLE, - writeInt32BE, - writeInt32LE, - writeUInt32BE, - writeUInt32LE -} diff --git a/node_modules/b4a/lib/ascii.js b/node_modules/b4a/lib/ascii.js deleted file mode 100644 index 0e2f809..0000000 --- a/node_modules/b4a/lib/ascii.js +++ /dev/null @@ -1,31 +0,0 @@ -function byteLength(string) { - return string.length -} - -function toString(buffer) { - const len = buffer.byteLength - - let result = '' - - for (let i = 0; i < len; i++) { - result += String.fromCharCode(buffer[i] & 0x7f) - } - - return result -} - -function write(buffer, string) { - const len = buffer.byteLength - - for (let i = 0; i < len; i++) { - buffer[i] = string.charCodeAt(i) - } - - return len -} - -module.exports = { - byteLength, - toString, - write -} diff --git a/node_modules/b4a/lib/base64.js b/node_modules/b4a/lib/base64.js deleted file mode 100644 index 4523800..0000000 --- a/node_modules/b4a/lib/base64.js +++ /dev/null @@ -1,64 +0,0 @@ -const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - -const codes = new Uint8Array(256) - -for (let i = 0; i < alphabet.length; i++) { - codes[alphabet.charCodeAt(i)] = i -} - -codes[/* - */ 0x2d] = 62 -codes[/* _ */ 0x5f] = 63 - -function byteLength(string) { - let len = string.length - - if (string.charCodeAt(len - 1) === 0x3d) len-- - if (len > 1 && string.charCodeAt(len - 1) === 0x3d) len-- - - return (len * 3) >>> 2 -} - -function toString(buffer) { - const len = buffer.byteLength - - let result = '' - - for (let i = 0; i < len; i += 3) { - result += - alphabet[buffer[i] >> 2] + - alphabet[((buffer[i] & 3) << 4) | (buffer[i + 1] >> 4)] + - alphabet[((buffer[i + 1] & 15) << 2) | (buffer[i + 2] >> 6)] + - alphabet[buffer[i + 2] & 63] - } - - if (len % 3 === 2) { - result = result.substring(0, result.length - 1) + '=' - } else if (len % 3 === 1) { - result = result.substring(0, result.length - 2) + '==' - } - - return result -} - -function write(buffer, string) { - const len = buffer.byteLength - - for (let i = 0, j = 0; j < len; i += 4) { - const a = codes[string.charCodeAt(i)] - const b = codes[string.charCodeAt(i + 1)] - const c = codes[string.charCodeAt(i + 2)] - const d = codes[string.charCodeAt(i + 3)] - - buffer[j++] = (a << 2) | (b >> 4) - buffer[j++] = ((b & 15) << 4) | (c >> 2) - buffer[j++] = ((c & 3) << 6) | (d & 63) - } - - return len -} - -module.exports = { - byteLength, - toString, - write -} diff --git a/node_modules/b4a/lib/hex.js b/node_modules/b4a/lib/hex.js deleted file mode 100644 index e72bb86..0000000 --- a/node_modules/b4a/lib/hex.js +++ /dev/null @@ -1,51 +0,0 @@ -function byteLength(string) { - return string.length >>> 1 -} - -function toString(buffer) { - const len = buffer.byteLength - - buffer = new DataView(buffer.buffer, buffer.byteOffset, len) - - let result = '' - let i = 0 - - for (let n = len - (len % 4); i < n; i += 4) { - result += buffer.getUint32(i).toString(16).padStart(8, '0') - } - - for (; i < len; i++) { - result += buffer.getUint8(i).toString(16).padStart(2, '0') - } - - return result -} - -function write(buffer, string) { - const len = buffer.byteLength - - for (let i = 0; i < len; i++) { - const a = hexValue(string.charCodeAt(i * 2)) - const b = hexValue(string.charCodeAt(i * 2 + 1)) - - if (a === undefined || b === undefined) { - return i - } - - buffer[i] = (a << 4) | b - } - - return len -} - -module.exports = { - byteLength, - toString, - write -} - -function hexValue(char) { - if (char >= 0x30 && char <= 0x39) return char - 0x30 - if (char >= 0x41 && char <= 0x46) return char - 0x41 + 10 - if (char >= 0x61 && char <= 0x66) return char - 0x61 + 10 -} diff --git a/node_modules/b4a/lib/latin1.js b/node_modules/b4a/lib/latin1.js deleted file mode 100644 index f271437..0000000 --- a/node_modules/b4a/lib/latin1.js +++ /dev/null @@ -1,31 +0,0 @@ -function byteLength(string) { - return string.length -} - -function toString(buffer) { - const len = buffer.byteLength - - let result = '' - - for (let i = 0; i < len; i++) { - result += String.fromCharCode(buffer[i]) - } - - return result -} - -function write(buffer, string) { - const len = buffer.byteLength - - for (let i = 0; i < len; i++) { - buffer[i] = string.charCodeAt(i) - } - - return len -} - -module.exports = { - byteLength, - toString, - write -} diff --git a/node_modules/b4a/lib/utf16le.js b/node_modules/b4a/lib/utf16le.js deleted file mode 100644 index 77f75d4..0000000 --- a/node_modules/b4a/lib/utf16le.js +++ /dev/null @@ -1,40 +0,0 @@ -function byteLength(string) { - return string.length * 2 -} - -function toString(buffer) { - const len = buffer.byteLength - - let result = '' - - for (let i = 0; i < len - 1; i += 2) { - result += String.fromCharCode(buffer[i] + buffer[i + 1] * 256) - } - - return result -} - -function write(buffer, string) { - const len = buffer.byteLength - - let units = len - - for (let i = 0; i < string.length; ++i) { - if ((units -= 2) < 0) break - - const c = string.charCodeAt(i) - const hi = c >> 8 - const lo = c % 256 - - buffer[i * 2] = lo - buffer[i * 2 + 1] = hi - } - - return len -} - -module.exports = { - byteLength, - toString, - write -} diff --git a/node_modules/b4a/lib/utf8.js b/node_modules/b4a/lib/utf8.js deleted file mode 100644 index ad15bfa..0000000 --- a/node_modules/b4a/lib/utf8.js +++ /dev/null @@ -1,144 +0,0 @@ -function byteLength(string) { - let length = 0 - - for (let i = 0, n = string.length; i < n; i++) { - const code = string.charCodeAt(i) - - if (code >= 0xd800 && code <= 0xdbff && i + 1 < n) { - const code = string.charCodeAt(i + 1) - - if (code >= 0xdc00 && code <= 0xdfff) { - length += 4 - i++ - continue - } - } - - if (code <= 0x7f) length += 1 - else if (code <= 0x7ff) length += 2 - else length += 3 - } - - return length -} - -let toString - -if (typeof TextDecoder !== 'undefined') { - const decoder = new TextDecoder() - - toString = function toString(buffer) { - return decoder.decode(buffer) - } -} else { - toString = function toString(buffer) { - const len = buffer.byteLength - - let output = '' - let i = 0 - - while (i < len) { - let byte = buffer[i] - - if (byte <= 0x7f) { - output += String.fromCharCode(byte) - i++ - continue - } - - let bytesNeeded = 0 - let codePoint = 0 - - if (byte <= 0xdf) { - bytesNeeded = 1 - codePoint = byte & 0x1f - } else if (byte <= 0xef) { - bytesNeeded = 2 - codePoint = byte & 0x0f - } else if (byte <= 0xf4) { - bytesNeeded = 3 - codePoint = byte & 0x07 - } - - if (len - i - bytesNeeded > 0) { - let k = 0 - - while (k < bytesNeeded) { - byte = buffer[i + k + 1] - codePoint = (codePoint << 6) | (byte & 0x3f) - k += 1 - } - } else { - codePoint = 0xfffd - bytesNeeded = len - i - } - - output += String.fromCodePoint(codePoint) - i += bytesNeeded + 1 - } - - return output - } -} - -let write - -if (typeof TextEncoder !== 'undefined') { - const encoder = new TextEncoder() - - write = function write(buffer, string) { - return encoder.encodeInto(string, buffer).written - } -} else { - write = function write(buffer, string) { - const len = buffer.byteLength - - let i = 0 - let j = 0 - - while (i < string.length) { - const code = string.codePointAt(i) - - if (code <= 0x7f) { - if (j + 1 > len) break - buffer[j++] = code - i++ - continue - } - - let count = 0 - let bits = 0 - - if (code <= 0x7ff) { - count = 6 - bits = 0xc0 - } else if (code <= 0xffff) { - count = 12 - bits = 0xe0 - } else if (code <= 0x1fffff) { - count = 18 - bits = 0xf0 - } - - if (j + count / 6 + 1 > len) break - - buffer[j++] = bits | (code >> count) - count -= 6 - - while (count >= 0) { - buffer[j++] = 0x80 | ((code >> count) & 0x3f) - count -= 6 - } - - i += code >= 0x10000 ? 2 : 1 - } - - return j - } -} - -module.exports = { - byteLength, - toString, - write -} diff --git a/node_modules/b4a/package.json b/node_modules/b4a/package.json deleted file mode 100644 index e5405a1..0000000 --- a/node_modules/b4a/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "b4a", - "version": "1.8.1", - "description": "Bridging the gap between buffers and typed arrays", - "exports": { - "./package": "./package.json", - ".": { - "react-native": "./react-native.js", - "browser": "./browser.js", - "default": "./index.js" - } - }, - "files": [ - "browser.js", - "index.js", - "react-native.js", - "lib" - ], - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "npm run test:bare && npm run test:node", - "test:bare": "brittle-bare --coverage test.mjs", - "test:node": "brittle-node --coverage test.mjs" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/b4a.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/b4a/issues" - }, - "homepage": "https://github.com/holepunchto/b4a#readme", - "devDependencies": { - "brittle": "^3.5.2", - "lunte": "^1.7.0", - "nanobench": "^3.0.0", - "prettier": "^3.6.2", - "prettier-config-holepunch": "^2.0.0" - }, - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } -} diff --git a/node_modules/b4a/react-native.js b/node_modules/b4a/react-native.js deleted file mode 100644 index 0bf04e8..0000000 --- a/node_modules/b4a/react-native.js +++ /dev/null @@ -1,5 +0,0 @@ -try { - module.exports = require('react-native-b4a') -} catch { - module.exports = require('./browser') -} diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml deleted file mode 100644 index cea8b16..0000000 --- a/node_modules/balanced-match/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -tidelift: "npm/balanced-match" -patreon: juliangruber diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md deleted file mode 100644 index 2cdc8e4..0000000 --- a/node_modules/balanced-match/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md deleted file mode 100644 index d2a48b6..0000000 --- a/node_modules/balanced-match/README.md +++ /dev/null @@ -1,97 +0,0 @@ -# balanced-match - -Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! - -[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) -[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) - -[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) - -## Example - -Get the first matching pair of braces: - -```js -var balanced = require('balanced-match'); - -console.log(balanced('{', '}', 'pre{in{nested}}post')); -console.log(balanced('{', '}', 'pre{first}between{second}post')); -console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); -``` - -The matches are: - -```bash -$ node example.js -{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } -{ start: 3, - end: 9, - pre: 'pre', - body: 'first', - post: 'between{second}post' } -{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } -``` - -## API - -### var m = balanced(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -object with those keys: - -* **start** the index of the first match of `a` -* **end** the index of the matching `b` -* **pre** the preamble, `a` and `b` not included -* **body** the match, `a` and `b` not included -* **post** the postscript, `a` and `b` not included - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. - -### var r = balanced.range(a, b, str) - -For the first non-nested matching pair of `a` and `b` in `str`, return an -array with indexes: `[ , ]`. - -If there's no match, `undefined` will be returned. - -If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install balanced-match -``` - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js deleted file mode 100644 index c67a646..0000000 --- a/node_modules/balanced-match/index.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - if(a===b) { - return [ai, bi]; - } - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json deleted file mode 100644 index ce6073e..0000000 --- a/node_modules/balanced-match/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "balanced-match", - "description": "Match balanced character pairs, like \"{\" and \"}\"", - "version": "1.0.2", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/balanced-match.git" - }, - "homepage": "https://github.com/juliangruber/balanced-match", - "main": "index.js", - "scripts": { - "test": "tape test/test.js", - "bench": "matcha test/bench.js" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [ - "match", - "regexp", - "test", - "balanced", - "parse" - ], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - } -} diff --git a/node_modules/bare-events/LICENSE b/node_modules/bare-events/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/bare-events/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/bare-events/README.md b/node_modules/bare-events/README.md deleted file mode 100644 index f56b459..0000000 --- a/node_modules/bare-events/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# bare-events - -Event emitters for JavaScript. - -``` -npm install bare-events -``` - -## Usage - -```js -const EventEmitter = require('bare-events') - -const e = new EventEmitter() - -e.on('hello', function (data) { - console.log(data) -}) - -e.emit('hello', 'world') -``` - -## License - -Apache-2.0 diff --git a/node_modules/bare-events/global.d.ts b/node_modules/bare-events/global.d.ts deleted file mode 100644 index 92ea0d6..0000000 --- a/node_modules/bare-events/global.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as events from './web' - -type EventConstructor = typeof events.Event -type CustomEventConstructor = typeof events.CustomEvent -type EventTargetConstructor = typeof events.EventTarget - -declare global { - type Event = events.Event - type CustomEvent = events.CustomEvent - type EventTarget = events.EventTarget - - const Event: EventConstructor - const CustomEvent: CustomEventConstructor - const EventTarget: EventTargetConstructor -} diff --git a/node_modules/bare-events/global.js b/node_modules/bare-events/global.js deleted file mode 100644 index d8caa0b..0000000 --- a/node_modules/bare-events/global.js +++ /dev/null @@ -1,5 +0,0 @@ -const events = require('./web') - -global.Event = events.Event -global.CustomEvent = events.CustomEvent -global.EventTarget = events.EventTarget diff --git a/node_modules/bare-events/index.d.ts b/node_modules/bare-events/index.d.ts deleted file mode 100644 index f0849f7..0000000 --- a/node_modules/bare-events/index.d.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { AbortSignal } from 'bare-abort-controller' - -interface EventMap { - [event: string | symbol]: unknown[] -} - -interface EventHandler { - (...args: A): R -} - -declare class EventEmitterError extends Error { - static OPERATION_ABORTED(cause: Error, msg?: string): EventEmitterError - static UNHANDLED_ERROR(cause: Error, msg?: string): EventEmitterError -} - -interface EventEmitter { - addListener(name: E, fn: EventHandler): this - - addOnceListener(name: E, fn: EventHandler): this - - prependListener(name: E, fn: EventHandler): this - - prependOnceListener(name: E, fn: EventHandler): this - - removeListener(name: E, fn: EventHandler): this - - removeAllListeners(name?: E): this - - on(name: E, fn: EventHandler): this - - once(name: E, fn: EventHandler): this - - off(name: E, fn: EventHandler): this - - emit(name: E, ...args: M[E]): boolean - - listeners(name: E): EventHandler - - listenerCount(name: E): number - - getMaxListeners(): number - setMaxListeners(n: number): void -} - -declare class EventEmitter {} - -declare namespace EventEmitter { - export function on( - emitter: EventEmitter, - name: E, - opts?: { signal?: AbortSignal } - ): AsyncIterableIterator - - export function once( - emitter: EventEmitter, - name: E, - opts?: { signal?: AbortSignal } - ): Promise - - export function forward>( - from: EventEmitter, - to: EventEmitter, - names: E | E[], - opts?: { emit?: (name: E, ...args: T[E]) => void } - ): void - - export function listenerCount( - emitter: EventEmitter, - name: E - ): number - - export function getMaxListeners(emitter: EventEmitter): number - - export function setMaxListeners(n: number, ...emitters: EventEmitter[]): void - - export let defaultMaxListeners: number - - export { EventEmitter, EventEmitterError as errors, EventMap, EventHandler } -} - -export = EventEmitter diff --git a/node_modules/bare-events/index.js b/node_modules/bare-events/index.js deleted file mode 100644 index ac64871..0000000 --- a/node_modules/bare-events/index.js +++ /dev/null @@ -1,367 +0,0 @@ -const errors = require('./lib/errors') - -class EventListener { - constructor() { - this.list = [] - this.count = 0 - } - - append(ctx, name, fn, once) { - this.count++ - ctx.emit('newListener', name, fn) // Emit BEFORE adding - this.list.push([fn, once]) - } - - prepend(ctx, name, fn, once) { - this.count++ - ctx.emit('newListener', name, fn) // Emit BEFORE adding - this.list.unshift([fn, once]) - } - - remove(ctx, name, fn) { - for (let i = 0, n = this.list.length; i < n; i++) { - const l = this.list[i] - - if (l[0] === fn) { - this.list.splice(i, 1) - - if (this.count === 1) delete ctx._events[name] - - ctx.emit('removeListener', name, fn) // Emit AFTER removing - - this.count-- - return - } - } - } - - removeAll(ctx, name) { - const list = [...this.list] - this.list = [] - - if (this.count === list.length) delete ctx._events[name] - - for (let i = list.length - 1; i >= 0; i--) { - ctx.emit('removeListener', name, list[i][0]) // Emit AFTER removing - } - - this.count -= list.length - } - - emit(ctx, name, ...args) { - const list = [...this.list] - - for (let i = 0, n = list.length; i < n; i++) { - const l = list[i] - - if (l[1] === true) this.remove(ctx, name, l[0]) - - Reflect.apply(l[0], ctx, args) - } - - return list.length > 0 - } -} - -function appendListener(ctx, name, fn, once) { - if (ctx._events === undefined) ctx._events = Object.create(null) - const e = ctx._events[name] || (ctx._events[name] = new EventListener()) - e.append(ctx, name, fn, once) - return ctx -} - -function prependListener(ctx, name, fn, once) { - if (ctx._events === undefined) ctx._events = Object.create(null) - const e = ctx._events[name] || (ctx._events[name] = new EventListener()) - e.prepend(ctx, name, fn, once) - return ctx -} - -function removeListener(ctx, name, fn) { - if (ctx._events === undefined) return ctx - const e = ctx._events[name] - if (e !== undefined) e.remove(ctx, name, fn) - return ctx -} - -function throwUnhandledError(...args) { - let err - - if (args.length > 0) err = args[0] - - if (err instanceof Error === false) err = errors.UNHANDLED_ERROR(err) - - if (Error.captureStackTrace) { - Error.captureStackTrace(err, exports.prototype.emit) - } - - queueMicrotask(() => { - throw err - }) -} - -module.exports = exports = class EventEmitter { - constructor() { - this._events = Object.create(null) - } - - addListener(name, fn) { - return appendListener(this, name, fn, false) - } - - addOnceListener(name, fn) { - return appendListener(this, name, fn, true) - } - - prependListener(name, fn) { - return prependListener(this, name, fn, false) - } - - prependOnceListener(name, fn) { - return prependListener(this, name, fn, true) - } - - removeListener(name, fn) { - return removeListener(this, name, fn) - } - - on(name, fn) { - return appendListener(this, name, fn, false) - } - - once(name, fn) { - return appendListener(this, name, fn, true) - } - - off(name, fn) { - return removeListener(this, name, fn) - } - - emit(name, ...args) { - if (name === 'error' && this._events !== undefined && this._events.error === undefined) { - throwUnhandledError(...args) - } - - if (this._events === undefined) return false - const e = this._events[name] - return e === undefined ? false : e.emit(this, name, ...args) - } - - listeners(name) { - if (this._events === undefined) return [] - const e = this._events[name] - return e === undefined ? [] : [...e.list] - } - - listenerCount(name) { - if (this._events === undefined) return 0 - const e = this._events[name] - return e === undefined ? 0 : e.list.length - } - - getMaxListeners() { - return EventEmitter.defaultMaxListeners - } - - setMaxListeners(n) {} - - removeAllListeners(name) { - if (arguments.length === 0) { - for (const key of Reflect.ownKeys(this._events)) { - if (key === 'removeListener') continue - this.removeAllListeners(key) - } - this.removeAllListeners('removeListener') - } else { - const e = this._events[name] - if (e !== undefined) e.removeAll(this, name) - } - return this - } -} - -exports.EventEmitter = exports - -exports.errors = errors - -exports.defaultMaxListeners = 10 - -exports.on = function on(emitter, name, opts = {}) { - const { signal } = opts - - if (signal && signal.aborted) { - throw errors.OPERATION_ABORTED(signal.reason) - } - - let error = null - let done = false - - const events = [] - const promises = [] - - if (name !== 'error') emitter.on('error', onerror) - - if (signal) signal.addEventListener('abort', onabort) - - emitter.on(name, onevent) - - return { - next() { - if (events.length) { - return Promise.resolve({ value: events.shift(), done: false }) - } - - if (error) { - const err = error - - error = null - - return Promise.reject(err) - } - - if (done) return onclose() - - return new Promise((resolve, reject) => promises.push({ resolve, reject })) - }, - - return() { - return onclose() - }, - - throw(err) { - return onerror(err) - }, - - [Symbol.asyncIterator]() { - return this - } - } - - function onevent(...args) { - if (promises.length) { - promises.shift().resolve({ value: args, done: false }) - } else { - events.push(args) - } - } - - function onerror(err) { - emitter.off(name, onevent).off('error', onerror) - - if (promises.length) { - promises.shift().reject(err) - } else { - error = err - } - - return Promise.resolve({ done: true }) - } - - function onabort() { - signal.removeEventListener('abort', onabort) - - onerror(errors.OPERATION_ABORTED(signal.reason)) - } - - function onclose() { - emitter.off(name, onevent) - - if (name !== 'error') emitter.off('error', onerror) - - if (signal) signal.removeEventListener('abort', onabort) - - done = true - - if (promises.length) promises.shift().resolve({ done: true }) - - return Promise.resolve({ done: true }) - } -} - -exports.once = function once(emitter, name, opts = {}) { - const { signal } = opts - - if (signal && signal.aborted) { - return Promise.reject(errors.OPERATION_ABORTED(signal.reason)) - } - - return new Promise((resolve, reject) => { - if (name !== 'error') emitter.on('error', onerror) - - if (signal) signal.addEventListener('abort', onabort) - - emitter.once(name, onevent) - - function onevent(...args) { - if (name !== 'error') emitter.off('error', onerror) - - if (signal) signal.removeEventListener('abort', onabort) - - resolve(args) - } - - function onerror(err) { - emitter.off(name, onevent) - - if (name !== 'error') emitter.off('error', onerror) - - reject(err) - } - - function onabort() { - signal.removeEventListener('abort', onabort) - - onerror(errors.OPERATION_ABORTED(signal.reason)) - } - }) -} - -exports.forward = function forward(from, to, names, opts = {}) { - if (typeof names === 'string') names = [names] - - const { emit = to.emit.bind(to) } = opts - - const listeners = names.map( - (name) => - function onevent(...args) { - emit(name, ...args) - } - ) - - to.on('newListener', (name) => { - const i = names.indexOf(name) - - if (i !== -1 && to.listenerCount(name) === 0) { - from.on(name, listeners[i]) - } - }).on('removeListener', (name) => { - const i = names.indexOf(name) - - if (i !== -1 && to.listenerCount(name) === 0) { - from.off(name, listeners[i]) - } - }) -} - -exports.listenerCount = function listenerCount(emitter, name) { - return emitter.listenerCount(name) -} - -exports.getMaxListeners = function getMaxListeners(emitter) { - if (typeof emitter.getMaxListeners === 'function') { - return emitter.getMaxListeners() - } - - return exports.defaultMaxListeners -} - -exports.setMaxListeners = function setMaxListeners(n, ...emitters) { - if (emitters.length === 0) exports.defaultMaxListeners = n - else { - for (const emitter of emitters) { - if (typeof emitter.setMaxListeners === 'function') { - emitter.setMaxListeners(n) - } - } - } -} diff --git a/node_modules/bare-events/lib/errors.js b/node_modules/bare-events/lib/errors.js deleted file mode 100644 index 39f1d9a..0000000 --- a/node_modules/bare-events/lib/errors.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = class EventEmitterError extends Error { - constructor(msg, code, fn = EventEmitterError, opts) { - super(`${code}: ${msg}`, opts) - this.code = code - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, fn) - } - } - - get name() { - return 'EventEmitterError' - } - - static OPERATION_ABORTED(cause, msg = 'Operation aborted') { - return new EventEmitterError(msg, 'OPERATION_ABORTED', EventEmitterError.OPERATION_ABORTED, { - cause - }) - } - - static UNHANDLED_ERROR(cause, msg = 'Unhandled error') { - return new EventEmitterError(msg, 'UNHANDLED_ERROR', EventEmitterError.UNHANDLED_ERROR, { - cause - }) - } -} diff --git a/node_modules/bare-events/package.json b/node_modules/bare-events/package.json deleted file mode 100644 index 5358fe2..0000000 --- a/node_modules/bare-events/package.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "bare-events", - "version": "2.8.3", - "description": "Event emitters for JavaScript", - "exports": { - "./package": "./package.json", - ".": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./global": { - "types": "./global.d.ts", - "default": "./global.js" - }, - "./web": { - "types": "./web.d.ts", - "default": "./web.js" - }, - "./errors": "./lib/errors.js" - }, - "files": [ - "index.js", - "index.d.ts", - "global.js", - "global.d.ts", - "web.js", - "web.d.ts", - "lib" - ], - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "npm run test:bare && npm run test:node", - "test:bare": "brittle-bare --coverage test.js", - "test:node": "brittle-node --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-events.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-events/issues" - }, - "homepage": "https://github.com/holepunchto/bare-events#readme", - "devDependencies": { - "bare-abort-controller": "^1.0.0", - "brittle": "^3.3.2", - "lunte": "^1.8.0", - "prettier": "^3.4.2", - "prettier-config-holepunch": "^2.0.0", - "uncaughts": "^1.1.1" - }, - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } -} diff --git a/node_modules/bare-events/web.d.ts b/node_modules/bare-events/web.d.ts deleted file mode 100644 index 0aee059..0000000 --- a/node_modules/bare-events/web.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -interface AbortSignal extends EventTarget {} - -export interface EventOptions { - bubbles?: boolean - cancelable?: boolean - composed?: boolean -} - -export interface Event { - readonly type: string - readonly target: EventTarget | null - readonly currentTarget: EventTarget | null - readonly bubbles: boolean - readonly cancelable: boolean - readonly composed: boolean - readonly defaultPrevented: boolean - readonly isTrusted: boolean - - preventDefault(): void - stopPropagation(): void - stopImmediatePropagation(): void -} - -export class Event { - constructor(type: string, options?: EventOptions) -} - -export interface CustomEventOptions extends EventOptions { - detail?: T -} - -export interface CustomEvent extends Event { - readonly detail: T -} - -export class CustomEvent { - constructor(type: string, options?: CustomEventOptions) -} - -export interface AddEventListenerOptions { - capture?: boolean - passive?: boolean - once?: boolean - signal?: AbortSignal | null -} - -export interface RemoveEventListenerOptions { - capture?: boolean -} - -export interface EventTarget { - addEventListener( - type: string, - callback: EventListener, - options?: AddEventListenerOptions | boolean - ): void - - removeEventListener( - type: string, - callback: EventListener, - options?: RemoveEventListenerOptions | boolean - ): void - - dispatchEvent(event: Event): boolean -} - -export class EventTarget { - constructor() -} - -export type EventListener = EventCallback | EventHandler - -export interface EventCallback { - (event: Event): void -} - -export interface EventHandler { - handleEvent(event: Event): void -} diff --git a/node_modules/bare-events/web.js b/node_modules/bare-events/web.js deleted file mode 100644 index 796badd..0000000 --- a/node_modules/bare-events/web.js +++ /dev/null @@ -1,353 +0,0 @@ -// Event state -const BUBBLES = 0x1 -const CANCELABLE = 0x2 -const COMPOSED = 0x4 -const CANCELED = 0x8 -const DISPATCH = 0x10 -const STOP = 0x20 - -// EventTarget state -const CAPTURE = 0x1 -const PASSIVE = 0x2 -const ONCE = 0x4 -const REMOVED = 0x8 - -// https://dom.spec.whatwg.org/#event -class Event { - // https://dom.spec.whatwg.org/#dom-event-event - constructor(type, options = {}) { - const { bubbles = false, cancelable = false, composed = false } = options - - this._type = type - this._target = null - this._state = 0 - - if (bubbles) this._state |= BUBBLES - if (cancelable) this._state |= CANCELABLE - if (composed) this._state |= COMPOSED - } - - // https://dom.spec.whatwg.org/#dom-event-type - get type() { - return this._type - } - - // https://dom.spec.whatwg.org/#dom-event-target - get target() { - return this._target - } - - // https://dom.spec.whatwg.org/#dom-event-currenttarget - get currentTarget() { - return null - } - - // https://dom.spec.whatwg.org/#dom-event-bubbles - get bubbles() { - return (this._state & BUBBLES) !== 0 - } - - // https://dom.spec.whatwg.org/#dom-event-cancelable - get cancelable() { - return (this._state & CANCELABLE) !== 0 - } - - // https://dom.spec.whatwg.org/#dom-event-composed - get composed() { - return (this._state & COMPOSED) !== 0 - } - - // https://dom.spec.whatwg.org/#dom-event-defaultprevented - get defaultPrevented() { - return (this._state & CANCELED) !== 0 - } - - // https://dom.spec.whatwg.org/#dom-event-istrusted - get isTrusted() { - return false - } - - // https://dom.spec.whatwg.org/#dom-event-preventdefault - preventDefault() { - if (this._state & CANCELABLE) this._state |= CANCELED - } - - // https://dom.spec.whatwg.org/#dom-event-stoppropagation - stopPropagation() {} - - // https://dom.spec.whatwg.org/#dom-event-stopimmediatepropagation - stopImmediatePropagation() { - this._state |= STOP - } - - toJSON() { - return { - type: this.type, - target: this.target, - bubbles: this.bubbles, - cancelable: this.cancelable, - composed: this.composed, - defaultPrevented: this.defaultPrevented, - isTrusted: this.isTrusted - } - } - - [Symbol.for('bare.inspect')]() { - return { - __proto__: { constructor: Event }, - - type: this.type, - target: this.target, - bubbles: this.bubbles, - cancelable: this.cancelable, - composed: this.composed, - defaultPrevented: this.defaultPrevented, - isTrusted: this.isTrusted - } - } -} - -exports.Event = Event - -// https://dom.spec.whatwg.org/#customevent -exports.CustomEvent = class CustomEvent extends Event { - constructor(type, options = {}) { - super(type, options) - - const { detail = null } = options - - this._detail = detail - } - - // https://dom.spec.whatwg.org/#dom-customevent-detail - get detail() { - return this._detail - } -} - -// https://dom.spec.whatwg.org/#eventtarget -exports.EventTarget = class EventTarget { - // https://dom.spec.whatwg.org/#dom-eventtarget-eventtarget - constructor() { - this._listeners = new Map() - } - - // https://dom.spec.whatwg.org/#dom-eventtarget-addeventlistener - addEventListener(type, callback = null, options = {}) { - if (typeof options === 'boolean') options = { capture: options } - - const { capture = false, passive = false, once = false, signal = null } = options - - if (signal !== null && signal.aborted) return - if (callback === null) return - - const listener = new EventListener(type, callback, capture, passive, once, signal) - - const listeners = this._listeners.get(type) - - if (listeners !== undefined) { - for (const existing of listeners) { - if (callback === existing.callback && capture === existing.capture) { - return // Duplicate listener - } - } - - listener.link(listeners) - } else { - this._listeners.set(type, listener) - } - - if (signal !== null) { - const self = this - signal.addEventListener('abort', onabort) - - function onabort() { - self._unlink(type, listener) - } - } - } - - // https://dom.spec.whatwg.org/#dom-eventtarget-removeeventlistener - removeEventListener(type, callback = null, options = {}) { - if (typeof options === 'boolean') options = { capture: options } - - const { capture = false } = options - - const listeners = this._listeners.get(type) - - if (listeners === undefined) return - - for (const existing of listeners) { - if (callback === existing.callback && capture === existing.capture) { - this._unlink(type, existing) - return - } - } - } - - // https://dom.spec.whatwg.org/#dom-eventtarget-dispatchevent - dispatchEvent(event) { - event._target = this - event._state |= DISPATCH - - const listeners = this._listeners.get(event.type) - - try { - if (listeners === undefined) return true - - const snapshot = Array.from(listeners) - - for (const listener of snapshot) { - // https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke - - if (listener.removed) continue - - if (listener.once) this._unlink(event.type, listener) - - let callback = listener.callback - let context = this - - if (typeof callback === 'object') { - context = callback - callback = callback.handleEvent - } - - Reflect.apply(callback, context, [event]) - - if (event._state & STOP) break - } - - return (event._state & CANCELED) === 0 - } finally { - event._state &= ~DISPATCH - event._state &= ~STOP - } - } - - toJSON() { - return {} - } - - [Symbol.for('bare.inspect')]() { - return { - __proto__: { constructor: EventTarget } - } - } - - _unlink(type, listener) { - if (listener.removed) return - - const head = this._listeners.get(type) - const next = listener.unlink() - - if (head === listener) { - if (next === listener) this._listeners.delete(type) - else this._listeners.set(type, next) - } - } -} - -// https://dom.spec.whatwg.org/#concept-event-listener -class EventListener { - constructor(type, callback, capture, passive, once, signal) { - this._type = type - this._callback = callback - this._signal = signal - this._state = 0 - - if (capture) this._state |= CAPTURE - if (passive) this._state |= PASSIVE - if (once) this._state |= ONCE - - this._previous = this - this._next = this - } - - get type() { - return this._type - } - - get callback() { - return this._callback - } - - get capture() { - return (this._state & CAPTURE) !== 0 - } - - get passive() { - return (this._state & PASSIVE) !== 0 - } - - get once() { - return (this._state & ONCE) !== 0 - } - - get removed() { - return (this._state & REMOVED) !== 0 - } - - link(listener) { - const next = this._next - const previous = listener._previous - - this._next = listener - listener._previous = this - - previous._next = next - next._previous = previous - - return listener - } - - unlink() { - if (this.removed) return this - - this._state |= REMOVED - - const next = this._next - const previous = this._previous - - this._next = this - this._previous = this - - previous._next = next - next._previous = previous - - return next - } - - *[Symbol.iterator]() { - let current = this - - while (true) { - const next = current._next - yield current - if (next === this) break - current = next - } - } - - toJSON() { - return { - type: this.type, - capture: this.capture, - passive: this.passive, - once: this.once, - removed: this.removed - } - } - - [Symbol.for('bare.inspect')]() { - return { - __proto__: { constructor: EventListener }, - - type: this.type, - callback: this.callback, - capture: this.capture, - passive: this.passive, - once: this.once, - removed: this.removed - } - } -} diff --git a/node_modules/bare-fs/CMakeLists.txt b/node_modules/bare-fs/CMakeLists.txt deleted file mode 100644 index 7ca350a..0000000 --- a/node_modules/bare-fs/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 4.0) - -find_package(cmake-bare REQUIRED PATHS node_modules/cmake-bare) - -project(bare_fs C) - -add_bare_module(bare_fs) - -target_sources( - ${bare_fs} - PRIVATE - binding.c -) diff --git a/node_modules/bare-fs/LICENSE b/node_modules/bare-fs/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/bare-fs/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/bare-fs/README.md b/node_modules/bare-fs/README.md deleted file mode 100644 index 52a824b..0000000 --- a/node_modules/bare-fs/README.md +++ /dev/null @@ -1,989 +0,0 @@ -# bare-fs - -Native file system operations for Bare. The API closely follows that of the Node.js `fs` module. - -``` -npm i bare-fs -``` - -## Usage - -```js -const fs = require('bare-fs') - -const fd = await fs.open('hello.txt') - -const buffer = Buffer.alloc(1024) - -try { - const length = await fs.read(fd, buffer) - - console.log('Read', length, 'bytes') -} finally { - await fs.close(fd) -} -``` - -## API - -#### `const fd = await fs.open(filepath[, flags[, mode]])` - -Open a file, returning a file descriptor. `flags` defaults to `'r'` and `mode` defaults to `0o666`. `flags` may be a string such as `'r'`, `'w'`, `'a'`, `'r+'`, etc., or a numeric combination of `fs.constants` flags. - -#### `fs.open(filepath[, flags[, mode]], callback)` - -Callback version of `fs.open()`. - -#### `const fd = fs.openSync(filepath[, flags[, mode]])` - -Synchronous version of `fs.open()`. - -#### `await fs.close(fd)` - -Close a file descriptor. - -#### `fs.close(fd, callback)` - -Callback version of `fs.close()`. - -#### `fs.closeSync(fd)` - -Synchronous version of `fs.close()`. - -#### `await fs.access(filepath[, mode])` - -Check whether the file at `filepath` is accessible. `mode` defaults to `fs.constants.F_OK`. - -#### `fs.access(filepath[, mode], callback)` - -Callback version of `fs.access()`. - -#### `fs.accessSync(filepath[, mode])` - -Synchronous version of `fs.access()`. - -#### `const exists = await fs.exists(filepath)` - -Check whether a file exists at `filepath`. Returns `true` if the file is accessible, `false` otherwise. - -#### `fs.exists(filepath, callback)` - -Callback version of `fs.exists()`. - -#### `const exists = fs.existsSync(filepath)` - -Synchronous version of `fs.exists()`. - -#### `const bytesRead = await fs.read(fd, buffer[, offset[, len[, pos]]])` - -Read from a file descriptor into `buffer`. `offset` defaults to `0`, `len` defaults to `buffer.byteLength - offset`, and `pos` defaults to `-1` (current position). Returns the number of bytes read. - -#### `fs.read(fd, buffer[, offset[, len[, pos]]], callback)` - -Callback version of `fs.read()`. - -#### `const bytesRead = fs.readSync(fd, buffer[, offset[, len[, pos]]])` - -Synchronous version of `fs.read()`. - -#### `const bytesRead = await fs.readv(fd, buffers[, pos])` - -Read from a file descriptor into an array of `buffers`. `pos` defaults to `-1`. - -#### `fs.readv(fd, buffers[, pos], callback)` - -Callback version of `fs.readv()`. - -#### `const bytesRead = fs.readvSync(fd, buffers[, pos])` - -Synchronous version of `fs.readv()`. - -#### `const bytesWritten = await fs.write(fd, data[, offset[, len[, pos]]])` - -Write `data` to a file descriptor. When `data` is a string, the signature is `fs.write(fd, data[, pos[, encoding]])` where `encoding` defaults to `'utf8'`. Returns the number of bytes written. - -#### `fs.write(fd, data[, offset[, len[, pos]]], callback)` - -Callback version of `fs.write()`. - -#### `const bytesWritten = fs.writeSync(fd, data[, offset[, len[, pos]]])` - -Synchronous version of `fs.write()`. - -#### `const bytesWritten = await fs.writev(fd, buffers[, pos])` - -Write an array of `buffers` to a file descriptor. `pos` defaults to `-1`. - -#### `fs.writev(fd, buffers[, pos], callback)` - -Callback version of `fs.writev()`. - -#### `const bytesWritten = fs.writevSync(fd, buffers[, pos])` - -Synchronous version of `fs.writev()`. - -#### `const stats = await fs.stat(filepath)` - -Get the status of a file. Returns a `Stats` object. - -#### `fs.stat(filepath, callback)` - -Callback version of `fs.stat()`. - -#### `const stats = fs.statSync(filepath)` - -Synchronous version of `fs.stat()`. - -#### `const stats = await fs.lstat(filepath)` - -Like `fs.stat()`, but if `filepath` is a symbolic link, the link itself is statted, not the file it refers to. - -#### `fs.lstat(filepath, callback)` - -Callback version of `fs.lstat()`. - -#### `const stats = fs.lstatSync(filepath)` - -Synchronous version of `fs.lstat()`. - -#### `const stats = await fs.fstat(fd)` - -Get the status of a file by its file descriptor. Returns a `Stats` object. - -#### `fs.fstat(fd, callback)` - -Callback version of `fs.fstat()`. - -#### `const stats = fs.fstatSync(fd)` - -Synchronous version of `fs.fstat()`. - -#### `const stats = await fs.statfs(filepath)` - -Get filesystem statistics. Returns a `StatFs` object. - -#### `fs.statfs(filepath, callback)` - -Callback version of `fs.statfs()`. - -#### `const stats = fs.statfsSync(filepath)` - -Synchronous version of `fs.statfs()`. - -#### `await fs.ftruncate(fd[, len])` - -Truncate a file to `len` bytes. `len` defaults to `0`. - -#### `fs.ftruncate(fd[, len], callback)` - -Callback version of `fs.ftruncate()`. - -#### `fs.ftruncateSync(fd[, len])` - -Synchronous version of `fs.ftruncate()`. - -#### `await fs.chmod(filepath, mode)` - -Change the permissions of a file. `mode` may be a numeric mode or a string that will be parsed as octal. - -#### `fs.chmod(filepath, mode, callback)` - -Callback version of `fs.chmod()`. - -#### `fs.chmodSync(filepath, mode)` - -Synchronous version of `fs.chmod()`. - -#### `await fs.fchmod(fd, mode)` - -Change the permissions of a file by its file descriptor. - -#### `fs.fchmod(fd, mode, callback)` - -Callback version of `fs.fchmod()`. - -#### `fs.fchmodSync(fd, mode)` - -Synchronous version of `fs.fchmod()`. - -#### `await fs.chown(filepath, uid, gid)` - -Change the owner and group of a file. - -**NOTE**: The `chown` functions are not implemented on Windows. - -#### `fs.chown(filepath, uid, gid, callback)` - -Callback version of `fs.chown()`. - -#### `await fs.chownSync(filepath, uid, gid)` - -Synchronous version of `fs.chown()`. - -#### `await fs.lchown(filepath, uid, gid)` - -Change the owner and group of a file, but if `filepath` is a symbolic link, the changes are applied only to the link, not the file it refers to. - -#### `fs.lchown(filepath, uid, gid, callback)` - -Callback version of `fs.lchown()`. - -#### `fs.lchownSync(filepath, uid, gid)` - -Synchronous version of `fs.lchown()`. - -#### `await fs.fchown(filepath, uid, gid)` - -Change the owner and group of a file by its file descriptor. - -#### `fs.fchown(filepath, uid, gid, callback)` - -Callback version of `fs.fchown()`. - -#### `fs.fchownSync(filepath, uid, gid)` - -Synchronous version of `fs.fchown()`. - -#### `await fs.utimes(filepath, atime, mtime)` - -Change the access and modification times of a file. Times may be numbers (seconds since epoch) or `Date` objects. - -#### `fs.utimes(filepath, atime, mtime, callback)` - -Callback version of `fs.utimes()`. - -#### `fs.utimesSync(filepath, atime, mtime)` - -Synchronous version of `fs.utimes()`. - -#### `await fs.lutimes(filepath, atime, mtime)` - -Like `fs.utimes()`, but if `filepath` is a symbolic link, the timestamps of the link is changed, not the file it refers to. - -#### `fs.lutimes(filepath, atime, mtime, callback)` - -Callback version of `fs.lutimes()`. - -#### `fs.lutimesSync(filepath, atime, mtime)` - -Synchronous version of `fs.lutimes()`. - -#### `await fs.futimes(fd, atime, mtime)` - -Change the access and modification times of a file by its file descriptor. Times may be numbers (seconds since epoch) or `Date` objects. - -#### `fs.futimes(fd, atime, mtime, callback)` - -Callback version of `fs.futimes()`. - -#### `fs.futimesSync(fd, atime, mtime)` - -Synchronous version of `fs.futimes()`. - -#### `await fs.link(src, dst)` - -Creates a new link (also known as a hard link) to an existing file. - -#### `fs.link(src, dst, callback)` - -Callback version of `fs.link()`. - -#### `fs.linkSync(src, dst)` - -Synchronous version of `fs.link()`. - -#### `await fs.mkdir(filepath[, opts])` - -Create a directory at `filepath`. - -Options include: - -```js -options = { - mode: 0o777, - recursive: false -} -``` - -If `opts` is a number, it is treated as the `mode`. When `recursive` is `true`, parent directories are created as needed. - -#### `fs.mkdir(filepath[, opts], callback)` - -Callback version of `fs.mkdir()`. - -#### `fs.mkdirSync(filepath[, opts])` - -Synchronous version of `fs.mkdir()`. - -#### `const path = await fs.mkdtemp(prefix)` - -Create a unique temporary directory. - -#### `fs.mkdtemp(prefix, callback)` - -Callback version of `fs.mkdtemp()`. - -#### `const path = fs.mkdtempSync(prefix)` - -Synchronous version of `fs.mkdtemp()`. - -#### `await fs.rmdir(filepath)` - -Remove an empty directory. - -#### `fs.rmdir(filepath, callback)` - -Callback version of `fs.rmdir()`. - -#### `fs.rmdirSync(filepath)` - -Synchronous version of `fs.rmdir()`. - -#### `await fs.rm(filepath[, opts])` - -Remove a file or directory at `filepath`. - -Options include: - -```js -options = { - force: false, - recursive: false -} -``` - -When `recursive` is `true`, directories are removed along with their contents. When `force` is `true`, no error is thrown if `filepath` does not exist. - -#### `fs.rm(filepath[, opts], callback)` - -Callback version of `fs.rm()`. - -#### `fs.rmSync(filepath[, opts])` - -Synchronous version of `fs.rm()`. - -#### `await fs.unlink(filepath)` - -Remove a file. - -#### `fs.unlink(filepath, callback)` - -Callback version of `fs.unlink()`. - -#### `fs.unlinkSync(filepath)` - -Synchronous version of `fs.unlink()`. - -#### `await fs.rename(src, dst)` - -Rename a file from `src` to `dst`. - -#### `fs.rename(src, dst, callback)` - -Callback version of `fs.rename()`. - -#### `fs.renameSync(src, dst)` - -Synchronous version of `fs.rename()`. - -#### `await fs.copyFile(src, dst[, mode])` - -Copy a file from `src` to `dst`. `mode` is an optional bitmask created from `fs.constants.COPYFILE_EXCL`, `fs.constants.COPYFILE_FICLONE`, or `fs.constants.COPYFILE_FICLONE_FORCE`. - -#### `fs.copyFile(src, dst[, mode], callback)` - -Callback version of `fs.copyFile()`. - -#### `fs.copyFileSync(src, dst[, mode])` - -Synchronous version of `fs.copyFile()`. - -#### `await fs.cp(src, dst[, opts])` - -Copy a file or directory from `src` to `dst`. - -Options include: - -```js -options = { - recursive: false -} -``` - -Set `recursive` to `true` to copy directories and their contents. Files are copied preserving their permissions. - -#### `fs.cp(src, dst[, opts], callback)` - -Callback version of `fs.cp()`. - -#### `fs.cpSync(src, dst[, opts])` - -Synchronous version of `fs.cp()`. - -#### `const resolved = await fs.realpath(filepath[, opts])` - -Resolve the real path of `filepath`, expanding all symbolic links. - -Options include: - -```js -options = { - encoding: 'utf8' -} -``` - -Set `encoding` to `'buffer'` to receive the result as a `Buffer`. - -#### `fs.realpath(filepath[, opts], callback)` - -Callback version of `fs.realpath()`. - -#### `const resolved = fs.realpathSync(filepath[, opts])` - -Synchronous version of `fs.realpath()`. - -#### `const target = await fs.readlink(filepath[, opts])` - -Read the target of a symbolic link. - -Options include: - -```js -options = { - encoding: 'utf8' -} -``` - -#### `fs.readlink(filepath[, opts], callback)` - -Callback version of `fs.readlink()`. - -#### `const target = fs.readlinkSync(filepath[, opts])` - -Synchronous version of `fs.readlink()`. - -#### `await fs.truncate(filename[, len])` - -Truncate the file at `filename` to `len` bytes. `len` defaults to `0`. - -#### `fs.truncate(filename[, len], callback)` - -Callback version of `fs.truncate()`. - -#### `fs.truncateSync(filename[, len])` - -Synchronous version of `fs.truncate()`. - -#### `await fs.symlink(target, filepath[, type])` - -Create a symbolic link at `filepath` pointing to `target`. `type` may be `'file'`, `'dir'`, or `'junction'` (Windows only) or a numeric flag. On Windows, if `type` is not provided, it is inferred from the target. - -#### `fs.symlink(target, filepath[, type], callback)` - -Callback version of `fs.symlink()`. - -#### `fs.symlinkSync(target, filepath[, type])` - -Synchronous version of `fs.symlink()`. - -#### `await fs.fsync(fd)` - -Flush all modified in-core data of the file referred by its file descriptor to the disk device. - -#### `fs.fsync(fs, callback)` - -Callback version of `fs.fsync()`. - -#### `fs.fsyncSync(fd)` - -Synchronous version of `fs.fsync()`. - -#### `await fs.fdatasync(fd)` - -Similar to `fsync`, but does not flush modified metadata unless necessary. - -#### `fs.fdatasync(fs, callback)` - -Callback version of `fs.fdatasync()`. - -#### `fs.fdatasyncSync(fd)` - -Synchronous version of `fs.fdatasync()`. - -#### `const dir = await fs.opendir(filepath[, opts])` - -Open a directory for iteration. Returns a `Dir` object. - -Options include: - -```js -options = { - encoding: 'utf8', - bufferSize: 32 -} -``` - -#### `fs.opendir(filepath[, opts], callback)` - -Callback version of `fs.opendir()`. - -#### `const dir = fs.opendirSync(filepath[, opts])` - -Synchronous version of `fs.opendir()`. - -#### `const entries = await fs.readdir(filepath[, opts])` - -Read the contents of a directory. Returns an array of filenames or, if `withFileTypes` is `true`, an array of `Dirent` objects. - -Options include: - -```js -options = { - encoding: 'utf8', - withFileTypes: false, - recursive: false -} -``` - -#### `fs.readdir(filepath[, opts], callback)` - -Callback version of `fs.readdir()`. - -#### `const entries = fs.readdirSync(filepath[, opts])` - -Synchronous version of `fs.readdir()`. - -#### `const data = await fs.readFile(filepath[, opts])` - -Read the entire contents of a file. Returns a `Buffer` by default, or a string if an `encoding` is specified. - -Options include: - -```js -options = { - encoding: 'buffer', - flag: 'r' -} -``` - -#### `fs.readFile(filepath[, opts], callback)` - -Callback version of `fs.readFile()`. - -#### `const data = fs.readFileSync(filepath[, opts])` - -Synchronous version of `fs.readFile()`. - -#### `await fs.writeFile(filepath, data[, opts])` - -Write `data` to a file, replacing it if it already exists. - -Options include: - -```js -options = { - encoding: 'utf8', - flag: 'w', - mode: 0o666 -} -``` - -#### `fs.writeFile(filepath, data[, opts], callback)` - -Callback version of `fs.writeFile()`. - -#### `fs.writeFileSync(filepath, data[, opts])` - -Synchronous version of `fs.writeFile()`. - -#### `await fs.appendFile(filepath, data[, opts])` - -Append `data` to a file, creating it if it does not exist. Accepts the same options as `fs.writeFile()` but defaults to the `'a'` flag. - -#### `fs.appendFile(filepath, data[, opts], callback)` - -Callback version of `fs.appendFile()`. - -#### `fs.appendFileSync(filepath, data[, opts])` - -Synchronous version of `fs.appendFile()`. - -#### `const watcher = fs.watch(filepath[, opts], callback)` - -Watch a file or directory for changes. Returns a `Watcher` object. The `callback`, if provided, is called with `(eventType, filename)` on each change. - -Options include: - -```js -options = { - persistent: true, - recursive: false, - encoding: 'utf8' -} -``` - -#### `const stream = fs.createReadStream(path[, opts])` - -Create a readable stream for a file. Returns a `ReadStream`. - -Options include: - -```js -options = { - fd: -1, - flags: 'r', - mode: 0o666, - start: 0, - end: Infinity -} -``` - -If `fd` is provided, `path` may be `null` and the stream reads from the given file descriptor. - -#### `const stream = fs.createWriteStream(path[, opts])` - -Create a writable stream for a file. Returns a `WriteStream`. - -Options include: - -```js -options = { - fd: -1, - flags: 'w', - mode: 0o666 -} -``` - -If `fd` is provided, `path` may be `null` and the stream writes to the given file descriptor. - -#### `fs.constants` - -An object containing file system constants. See `fs/constants` for the full list. Commonly used constants include: - -- `fs.constants.O_RDONLY`, `fs.constants.O_WRONLY`, `fs.constants.O_RDWR` — file access flags -- `fs.constants.O_CREAT`, `fs.constants.O_TRUNC`, `fs.constants.O_APPEND` — file creation flags -- `fs.constants.F_OK`, `fs.constants.R_OK`, `fs.constants.W_OK`, `fs.constants.X_OK` — file accessibility flags -- `fs.constants.S_IFMT`, `fs.constants.S_IFREG`, `fs.constants.S_IFDIR`, `fs.constants.S_IFLNK` — file type flags -- `fs.constants.COPYFILE_EXCL`, `fs.constants.COPYFILE_FICLONE`, `fs.constants.COPYFILE_FICLONE_FORCE` — copy flags - -### `Stats` - -Returned by `fs.stat()`, `fs.lstat()`, and `fs.fstat()`. - -#### `stats.dev` - -The device identifier. - -#### `stats.mode` - -The file mode (type and permissions). - -#### `stats.nlink` - -The number of hard links. - -#### `stats.uid` - -The user identifier of the file owner. - -#### `stats.gid` - -The group identifier of the file owner. - -#### `stats.rdev` - -The device identifier for special files. - -#### `stats.blksize` - -The file system block size for I/O operations. - -#### `stats.ino` - -The inode number. - -#### `stats.size` - -The size of the file in bytes. - -#### `stats.blocks` - -The number of 512-byte blocks allocated. - -#### `stats.atimeMs` - -The access time in milliseconds since the epoch. - -#### `stats.mtimeMs` - -The modification time in milliseconds since the epoch. - -#### `stats.ctimeMs` - -The change time in milliseconds since the epoch. - -#### `stats.birthtimeMs` - -The creation time in milliseconds since the epoch. - -#### `stats.atime` - -The access time as a `Date` object. - -#### `stats.mtime` - -The modification time as a `Date` object. - -#### `stats.ctime` - -The change time as a `Date` object. - -#### `stats.birthtime` - -The creation time as a `Date` object. - -#### `stats.isDirectory()` - -Returns `true` if the file is a directory. - -#### `stats.isFile()` - -Returns `true` if the file is a regular file. - -#### `stats.isBlockDevice()` - -Returns `true` if the file is a block device. - -#### `stats.isCharacterDevice()` - -Returns `true` if the file is a character device. - -#### `stats.isFIFO()` - -Returns `true` if the file is a FIFO (named pipe). - -#### `stats.isSymbolicLink()` - -Returns `true` if the file is a symbolic link. Only meaningful when using `fs.lstat()`. - -#### `stats.isSocket()` - -Returns `true` if the file is a socket. - -### `Dir` - -Returned by `fs.opendir()`. Supports both synchronous and asynchronous iteration. - -#### `dir.path` - -The path of the directory. - -#### `const dirent = await dir.read()` - -Read the next directory entry. Returns a `Dirent` or `null` when all entries have been read. - -#### `dir.read(callback)` - -Callback version of `dir.read()`. - -#### `const dirent = dir.readSync()` - -Synchronous version of `dir.read()`. - -#### `await dir.close()` - -Close the directory handle. - -#### `dir.close(callback)` - -Callback version of `dir.close()`. - -#### `dir.closeSync()` - -Synchronous version of `dir.close()`. - -### `Dirent` - -Represents a directory entry, returned when iterating a `Dir` or using `fs.readdir()` with `withFileTypes: true`. - -#### `dirent.parentPath` - -The path of the parent directory. - -#### `dirent.name` - -The name of the directory entry, as a string or `Buffer` depending on the encoding. - -#### `dirent.type` - -The numeric type of the directory entry. - -#### `dirent.isFile()` - -Returns `true` if the entry is a regular file. - -#### `dirent.isDirectory()` - -Returns `true` if the entry is a directory. - -#### `dirent.isSymbolicLink()` - -Returns `true` if the entry is a symbolic link. - -#### `dirent.isFIFO()` - -Returns `true` if the entry is a FIFO. - -#### `dirent.isSocket()` - -Returns `true` if the entry is a socket. - -#### `dirent.isCharacterDevice()` - -Returns `true` if the entry is a character device. - -#### `dirent.isBlockDevice()` - -Returns `true` if the entry is a block device. - -### `ReadStream` - -A readable stream for file data, created by `fs.createReadStream()`. Extends `Readable` from . - -#### `stream.path` - -The file path, or `null` if opened by file descriptor. - -#### `stream.fd` - -The underlying file descriptor. - -#### `stream.flags` - -The flags the file was opened with. - -#### `stream.mode` - -The mode the file was opened with. - -### `WriteStream` - -A writable stream for file data, created by `fs.createWriteStream()`. Extends `Writable` from . - -#### `stream.path` - -The file path, or `null` if opened by file descriptor. - -#### `stream.fd` - -The underlying file descriptor. - -#### `stream.flags` - -The flags the file was opened with. - -#### `stream.mode` - -The mode the file was opened with. - -### `Watcher` - -Watches for file system changes, created by `fs.watch()`. Extends `EventEmitter` from . - -#### `watcher.close()` - -Stop watching for changes. - -#### `watcher.ref()` - -Prevent the event loop from exiting while the watcher is active. - -#### `watcher.unref()` - -Allow the event loop to exit even if the watcher is still active. - -#### `event: 'change'` - -Emitted with `(eventType, filename)` when a change is detected. `eventType` is either `'rename'` or `'change'`. - -#### `event: 'error'` - -Emitted with `(err)` when an error occurs. - -#### `event: 'close'` - -Emitted when the watcher is closed. - -### `FileHandle` - -Returned by `require('bare-fs/promises').open()`. Provides an object-oriented API for working with file descriptors. - -#### `await handle.close()` - -Close the file handle. - -#### `const { bytesRead, buffer } = await handle.read(buffer[, offset[, len[, pos]]])` - -Read from the file into `buffer`. - -#### `const { bytesRead, buffers } = await handle.readv(buffers[, pos])` - -Read from the file into an array of `buffers`. - -#### `const { bytesWritten, buffer } = await handle.write(data[, offset[, len[, pos]]])` - -Write `data` to the file. - -#### `const { bytesWritten, buffers } = await handle.writev(buffers[, pos])` - -Write an array of `buffers` to the file. - -#### `const stats = await handle.stat()` - -Get the status of the file. - -#### `await handle.chmod(mode)` - -Change the permissions of the file. - -#### `await handle.chown(uid, gid)` - -Change the owner and group of the file. - -**NOTE**: This function is not implemented on Windows. - -#### `await handle.datasync()` - -Similar to `fsync`, but does not flush modified metadata unless necessary. - -#### `await handle.sync()` - -Flush all modified in-core data of the file. - -#### `await handle.truncate(len)` - -Truncate the file. - -#### `await handle.utimes(mode)` - -Change the access and modification times of the file. - -#### `const stream = handle.createReadStream([opts])` - -Create a readable stream for the file. - -#### `const stream = handle.createWriteStream([opts])` - -Create a writable stream for the file. - -#### `handle.fd` - -The file descriptor number. - -#### `event: 'close'` - -Emitted when the file handle is closed. - -## License - -Apache-2.0 diff --git a/node_modules/bare-fs/binding.c b/node_modules/bare-fs/binding.c deleted file mode 100644 index c9b17da..0000000 --- a/node_modules/bare-fs/binding.c +++ /dev/null @@ -1,2889 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef _MSC_VER -#include -#endif - -typedef struct { - uv_fs_t handle; - - js_env_t *env; - js_ref_t *ctx; - js_ref_t *on_result; - - bool exiting; - bool inflight; - - js_deferred_teardown_t *teardown; -} bare_fs_req_t; - -typedef utf8_t bare_fs_path_t[4096 + 1 /* NULL */]; - -typedef struct { - uv_dir_t *handle; -} bare_fs_dir_t; - -typedef struct { - uv_fs_event_t handle; - - js_env_t *env; - js_ref_t *ctx; - js_ref_t *on_event; - js_ref_t *on_close; - - bool exiting; - bool closing; - - js_deferred_teardown_t *teardown; -} bare_fs_watcher_t; - -typedef uv_dirent_t bare_fs_dirent_t; - -enum { - bare_fs_async = true, - bare_fs_sync = false -}; - -static inline void -bare_fs__request_destroy(bare_fs_req_t *req) { - int err; - - js_env_t *env = req->env; - - js_deferred_teardown_t *teardown = req->teardown; - - uv_fs_req_cleanup(&req->handle); - - err = js_delete_reference(env, req->on_result); - assert(err == 0); - - err = js_delete_reference(env, req->ctx); - assert(err == 0); - - err = js_finish_deferred_teardown_callback(teardown); - assert(err == 0); -} - -static void -bare_fs__on_request_teardown(js_deferred_teardown_t *handle, void *data) { - int err; - - bare_fs_req_t *req = (bare_fs_req_t *) data; - - req->exiting = true; - - if (req->inflight) { - err = uv_cancel((uv_req_t *) &req->handle); - if (err < 0) return; - } - - bare_fs__request_destroy(req); -} - -static inline void -bare_fs__on_request_result(uv_fs_t *handle) { - int err; - - bare_fs_req_t *req = (bare_fs_req_t *) handle; - - req->inflight = false; - - if (req->exiting) return bare_fs__request_destroy(req); - - js_env_t *env = req->env; - - js_handle_scope_t *scope; - err = js_open_handle_scope(env, &scope); - assert(err == 0); - - js_value_t *ctx; - err = js_get_reference_value(env, req->ctx, &ctx); - assert(err == 0); - - js_value_t *on_result; - err = js_get_reference_value(env, req->on_result, &on_result); - assert(err == 0); - - int status = handle->result; - - js_value_t *args[2]; - - if (status < 0) { - js_value_t *code; - err = js_create_string_utf8(env, (utf8_t *) uv_err_name(status), -1, &code); - assert(err == 0); - - js_value_t *message; - err = js_create_string_utf8(env, (utf8_t *) uv_strerror(status), -1, &message); - assert(err == 0); - - err = js_create_error(env, code, message, &args[0]); - assert(err == 0); - } else { - err = js_get_null(env, &args[0]); - assert(err == 0); - } - - err = js_create_int32(env, status, &args[1]); - assert(err == 0); - - err = js_call_function(env, ctx, on_result, 2, args, NULL); - (void) err; - - err = js_close_handle_scope(env, scope); - assert(err == 0); -} - -static inline int -bare_fs__request_pending(js_env_t *env, bare_fs_req_t *req, bool async, int *result) { - int err; - - if (async) { - req->inflight = true; - - return 0; - } - - int status = req->handle.result; - - if (status < 0) { - err = js_throw_error(env, uv_err_name(status), uv_strerror(status)); - assert(err == 0); - - return -1; - } - - if (result) *result = status; - - return 1; -} - -static js_value_t * -bare_fs_request_init(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - js_value_t *handle; - - bare_fs_req_t *req; - err = js_create_arraybuffer(env, sizeof(bare_fs_req_t), (void **) &req, &handle); - assert(err == 0); - - req->env = env; - req->exiting = false; - req->inflight = false; - - err = js_create_reference(env, argv[0], 1, &req->ctx); - assert(err == 0); - - err = js_create_reference(env, argv[1], 1, &req->on_result); - assert(err == 0); - - err = js_add_deferred_teardown_callback(env, bare_fs__on_request_teardown, (void *) req, &req->teardown); - assert(err == 0); - - return handle; -} - -static js_value_t * -bare_fs_request_destroy(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs__request_destroy(req); - - return NULL; -} - -static js_value_t * -bare_fs_request_reset(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uv_fs_req_cleanup(&req->handle); - - return NULL; -} - -static js_value_t * -bare_fs_request_result_stat(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - js_value_t *result; - err = js_create_array_with_length(env, 14, &result); - assert(err == 0); - - uint32_t i = 0; - -#define V(property) \ - { \ - js_value_t *value; \ - err = js_create_int64(env, req->handle.statbuf.st_##property, &value); \ - assert(err == 0); \ -\ - err = js_set_element(env, result, i++, value); \ - assert(err == 0); \ - } - V(dev) - V(mode) - V(nlink) - V(uid) - V(gid) - V(rdev) - V(blksize) - V(ino) - V(size) - V(blocks) -#undef V - -#define V(property) \ - { \ - uv_timespec_t time = req->handle.statbuf.st_##property; \ -\ - js_value_t *value; \ - err = js_create_int64(env, time.tv_sec * 1000 + time.tv_nsec / 1000000, &value); \ - assert(err == 0); \ -\ - err = js_set_element(env, result, i++, value); \ - assert(err == 0); \ - } - V(atim) - V(mtim) - V(ctim) - V(birthtim) -#undef V - - return result; -} - -static js_value_t * -bare_fs_request_result_statfs(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uv_statfs_t *statfs = req->handle.ptr; - - js_value_t *result; - err = js_create_array_with_length(env, 7, &result); - assert(err == 0); - - uint32_t i = 0; - -#define V(property) \ - { \ - js_value_t *value; \ - err = js_create_int64(env, statfs->f_##property, &value); \ - assert(err == 0); \ -\ - err = js_set_element(env, result, i++, value); \ - assert(err == 0); \ - } - V(type) - V(bsize) - V(blocks) - V(bfree) - V(bavail) - V(files) - V(ffree) -#undef V - - return result; -} - -static js_value_t * -bare_fs_request_result_string(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - size_t len = strlen(req->handle.ptr); - - js_value_t *result; - - void *data; - err = js_create_arraybuffer(env, len, (void *) &data, &result); - assert(err == 0); - - strncpy(data, req->handle.ptr, len); - - return result; -} - -static js_value_t * -bare_fs_request_result_path(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - const char *path = req->handle.path; - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) path, strlen(path), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_request_result_dir(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - js_value_t *result; - - bare_fs_dir_t *dir; - err = js_create_arraybuffer(env, sizeof(bare_fs_dir_t), (void **) &dir, &result); - assert(err == 0); - - dir->handle = req->handle.ptr; - - return result; -} - -static js_value_t * -bare_fs_request_result_dirents(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - size_t len = req->handle.result; - - js_value_t *result; - err = js_create_array_with_length(env, len, &result); - assert(err == 0); - - uv_dir_t *dir = req->handle.ptr; - - for (uint32_t i = 0; i < len; i++) { - uv_dirent_t *dirent = &dir->dirents[i]; - - js_value_t *entry; - err = js_create_object(env, &entry); - assert(err == 0); - - err = js_set_element(env, result, i, entry); - assert(err == 0); - - size_t name_len = strlen(dirent->name); - - js_value_t *name; - - void *data; - err = js_create_arraybuffer(env, name_len, &data, &name); - assert(err == 0); - - memcpy(data, dirent->name, name_len); - - err = js_set_named_property(env, entry, "name", name); - assert(err == 0); - - js_value_t *type; - err = js_create_uint32(env, dirent->type, &type); - assert(err == 0); - - err = js_set_named_property(env, entry, "type", type); - assert(err == 0); - } - - return result; -} - -static void -bare_fs__on_open(uv_fs_t *handle) { - int err; - - bare_fs_req_t *req = (bare_fs_req_t *) handle; - - int status = handle->result; - - if (req->exiting && status >= 0) { - int fd = status; - - uv_fs_req_cleanup(handle); - - err = uv_fs_close(handle->loop, handle, fd, NULL); - assert(err == 0); - } - - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__open(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t flags; - err = js_get_value_int32(env, argv[2], &flags); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[3], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_open(loop, &req->handle, (char *) path, flags, mode, async ? bare_fs__on_open : NULL); - (void) err; - - int status; - err = bare_fs__request_pending(env, req, async, &status); - if (err != 1) return NULL; - - js_value_t *result; - err = js_create_int32(env, status, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_open(js_env_t *env, js_callback_info_t *info) { - return bare_fs__open(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_open_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__open(env, info, bare_fs_sync); -} - -static void -bare_fs__on_close(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__close(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_close(loop, &req->handle, fd, async ? bare_fs__on_close : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_close(js_env_t *env, js_callback_info_t *info) { - return bare_fs__close(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_close_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__close(env, info, bare_fs_sync); -} - -static void -bare_fs__on_access(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__access(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[2], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_access(loop, &req->handle, (char *) path, mode, async ? bare_fs__on_access : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_access(js_env_t *env, js_callback_info_t *info) { - return bare_fs__access(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_access_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__access(env, info, bare_fs_sync); -} - -static void -bare_fs__on_read(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__read(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 6; - js_value_t *argv[6]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 6); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uint8_t *data; - size_t data_len; - err = js_get_typedarray_info(env, argv[2], NULL, (void **) &data, &data_len, NULL, NULL); - assert(err == 0); - - uint32_t offset; - err = js_get_value_uint32(env, argv[3], &offset); - assert(err == 0); - - uint32_t len; - err = js_get_value_uint32(env, argv[4], &len); - assert(err == 0); - - if (offset >= data_len) len = 0; - else if (offset + len >= data_len) len = data_len - offset; - - int64_t pos; - err = js_get_value_int64(env, argv[5], &pos); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - uv_buf_t buf = uv_buf_init((void *) (data + offset), len); - - err = uv_fs_read(loop, &req->handle, fd, &buf, 1, pos, async ? bare_fs__on_read : NULL); - (void) err; - - int status; - err = bare_fs__request_pending(env, req, async, &status); - if (err != 1) return NULL; - - js_value_t *result; - err = js_create_int32(env, status, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_read(js_env_t *env, js_callback_info_t *info) { - return bare_fs__read(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_read_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__read(env, info, bare_fs_sync); -} - -static void -bare_fs__on_readv(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__readv(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - int64_t pos; - err = js_get_value_int64(env, argv[3], &pos); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - js_value_t *arr = argv[2]; - - uint32_t bufs_len; - err = js_get_array_length(env, arr, &bufs_len); - assert(err == 0); - - uv_buf_t *bufs = malloc(sizeof(uv_buf_t) * bufs_len); - - js_value_t **elements = malloc(bufs_len * sizeof(js_value_t *)); - err = js_get_array_elements(env, arr, elements, bufs_len, 0, NULL); - assert(err == 0); - - for (uint32_t i = 0; i < bufs_len; i++) { - js_value_t *item = elements[i]; - - uv_buf_t *buf = &bufs[i]; - err = js_get_typedarray_info(env, item, NULL, (void **) &buf->base, (size_t *) &buf->len, NULL, NULL); - assert(err == 0); - } - - err = uv_fs_read(loop, &req->handle, fd, bufs, bufs_len, pos, async ? bare_fs__on_readv : NULL); - (void) err; - - free(elements); - free(bufs); - - int status; - err = bare_fs__request_pending(env, req, async, &status); - if (err != 1) return NULL; - - js_value_t *result; - err = js_create_int32(env, status, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_readv(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readv(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_readv_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readv(env, info, bare_fs_sync); -} - -static void -bare_fs__on_write(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__write(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 6; - js_value_t *argv[6]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 6); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uint8_t *data; - size_t data_len; - err = js_get_typedarray_info(env, argv[2], NULL, (void **) &data, &data_len, NULL, NULL); - assert(err == 0); - - uint32_t offset; - err = js_get_value_uint32(env, argv[3], &offset); - assert(err == 0); - - uint32_t len; - err = js_get_value_uint32(env, argv[4], &len); - assert(err == 0); - - if (offset >= data_len) len = 0; - else if (offset + len >= data_len) len = data_len - offset; - - int64_t pos; - err = js_get_value_int64(env, argv[5], &pos); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - uv_buf_t buf = uv_buf_init((void *) (data + offset), len); - - err = uv_fs_write(loop, &req->handle, fd, &buf, 1, pos, async ? bare_fs__on_write : NULL); - (void) err; - - int status; - err = bare_fs__request_pending(env, req, async, &status); - if (err != 1) return NULL; - - js_value_t *result; - err = js_create_int32(env, status, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_write(js_env_t *env, js_callback_info_t *info) { - return bare_fs__write(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_write_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__write(env, info, bare_fs_sync); -} - -static void -bare_fs__on_writev(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__writev(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - int64_t pos; - err = js_get_value_int64(env, argv[3], &pos); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - js_value_t *arr = argv[2]; - - uint32_t bufs_len; - err = js_get_array_length(env, arr, &bufs_len); - assert(err == 0); - - uv_buf_t *bufs = malloc(sizeof(uv_buf_t) * bufs_len); - - js_value_t **elements = malloc(bufs_len * sizeof(js_value_t *)); - - err = js_get_array_elements(env, arr, elements, bufs_len, 0, NULL); - assert(err == 0); - - for (uint32_t i = 0; i < bufs_len; i++) { - js_value_t *item = elements[i]; - - uv_buf_t *buf = &bufs[i]; - err = js_get_typedarray_info(env, item, NULL, (void **) &buf->base, (size_t *) &buf->len, NULL, NULL); - assert(err == 0); - } - - err = uv_fs_write(loop, &req->handle, fd, bufs, bufs_len, pos, async ? bare_fs__on_writev : NULL); - (void) err; - - free(elements); - free(bufs); - - int status; - err = bare_fs__request_pending(env, req, async, &status); - if (err != 1) return NULL; - - js_value_t *result; - err = js_create_int32(env, status, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_writev(js_env_t *env, js_callback_info_t *info) { - return bare_fs__writev(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_writev_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__writev(env, info, bare_fs_sync); -} - -static void -bare_fs__on_ftruncate(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__ftruncate(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - int64_t len; - err = js_get_value_int64(env, argv[2], &len); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_ftruncate(loop, &req->handle, fd, len, async ? bare_fs__on_ftruncate : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_ftruncate(js_env_t *env, js_callback_info_t *info) { - return bare_fs__ftruncate(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_ftruncate_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__ftruncate(env, info, bare_fs_sync); -} - -static void -bare_fs__on_chmod(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__chmod(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[2], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_chmod(loop, &req->handle, (char *) path, mode, async ? bare_fs__on_chmod : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_chmod(js_env_t *env, js_callback_info_t *info) { - return bare_fs__chmod(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_chmod_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__chmod(env, info, bare_fs_sync); -} - -static void -bare_fs__on_fchmod(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__fchmod(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[2], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_fchmod(loop, &req->handle, fd, mode, async ? bare_fs__on_fchmod : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_fchmod(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fchmod(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_fchmod_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fchmod(env, info, bare_fs_sync); -} - -static void -bare_fs__on_chown(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__chown(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uint32_t uid; - err = js_get_value_uint32(env, argv[2], &uid); - assert(err == 0); - - uint32_t gid; - err = js_get_value_uint32(env, argv[3], &gid); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_chown(loop, &req->handle, (char *) path, uid, gid, async ? bare_fs__on_chown : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_chown(js_env_t *env, js_callback_info_t *info) { - return bare_fs__chown(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_chown_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__chown(env, info, bare_fs_sync); -} - -static void -bare_fs__on_lchown(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__lchown(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uint32_t uid; - err = js_get_value_uint32(env, argv[2], &uid); - assert(err == 0); - - uint32_t gid; - err = js_get_value_uint32(env, argv[3], &gid); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_lchown(loop, &req->handle, (char *) path, uid, gid, async ? bare_fs__on_lchown : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_lchown(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lchown(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_lchown_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lchown(env, info, bare_fs_sync); -} - -static void -bare_fs__on_fchown(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__fchown(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uint32_t uid; - err = js_get_value_uint32(env, argv[2], &uid); - assert(err == 0); - - uint32_t gid; - err = js_get_value_uint32(env, argv[3], &gid); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_fchown(loop, &req->handle, fd, uid, gid, async ? bare_fs__on_fchown : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_fchown(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fchown(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_fchown_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fchown(env, info, bare_fs_sync); -} - -static void -bare_fs__on_utimes(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__utimes(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - double atime; - err = js_get_value_double(env, argv[2], &atime); - assert(err == 0); - - double mtime; - err = js_get_value_double(env, argv[3], &mtime); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_utime(loop, &req->handle, (char *) path, atime, mtime, async ? bare_fs__on_utimes : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_utimes(js_env_t *env, js_callback_info_t *info) { - return bare_fs__utimes(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_utimes_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__utimes(env, info, bare_fs_sync); -} - -static void -bare_fs__on_lutimes(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__lutimes(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - double atime; - err = js_get_value_double(env, argv[2], &atime); - assert(err == 0); - - double mtime; - err = js_get_value_double(env, argv[3], &mtime); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_lutime(loop, &req->handle, (char *) path, atime, mtime, async ? bare_fs__on_lutimes : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_lutimes(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lutimes(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_lutimes_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lutimes(env, info, bare_fs_sync); -} - -static void -bare_fs__on_futimes(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__futimes(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - double atime; - err = js_get_value_double(env, argv[2], &atime); - assert(err == 0); - - double mtime; - err = js_get_value_double(env, argv[3], &mtime); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_futime(loop, &req->handle, fd, atime, mtime, async ? bare_fs__on_futimes : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_futimes(js_env_t *env, js_callback_info_t *info) { - return bare_fs__futimes(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_futimes_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__futimes(env, info, bare_fs_sync); -} - -static void -bare_fs__on_rename(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__rename(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t src; - err = js_get_value_string_utf8(env, argv[1], src, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - bare_fs_path_t dst; - err = js_get_value_string_utf8(env, argv[2], dst, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_rename(loop, &req->handle, (char *) src, (char *) dst, async ? bare_fs__on_rename : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_rename(js_env_t *env, js_callback_info_t *info) { - return bare_fs__rename(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_rename_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__rename(env, info, bare_fs_sync); -} - -static void -bare_fs__on_copyfile(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__copyfile(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t src; - err = js_get_value_string_utf8(env, argv[1], src, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - bare_fs_path_t dst; - err = js_get_value_string_utf8(env, argv[2], dst, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[3], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_copyfile(loop, &req->handle, (char *) src, (char *) dst, mode, async ? bare_fs__on_copyfile : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_copyfile(js_env_t *env, js_callback_info_t *info) { - return bare_fs__copyfile(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_copyfile_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__copyfile(env, info, bare_fs_sync); -} - -static void -bare_fs__on_mkdir(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__mkdir(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t mode; - err = js_get_value_int32(env, argv[2], &mode); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_mkdir(loop, &req->handle, (char *) path, mode, async ? bare_fs__on_mkdir : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_mkdir(js_env_t *env, js_callback_info_t *info) { - return bare_fs__mkdir(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_mkdir_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__mkdir(env, info, bare_fs_sync); -} - -static void -bare_fs__on_mkdtemp(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__mkdtemp(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t prefix; - err = js_get_value_string_utf8(env, argv[1], prefix, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_mkdtemp(loop, &req->handle, (char *) prefix, async ? bare_fs__on_mkdtemp : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_mkdtemp(js_env_t *env, js_callback_info_t *info) { - return bare_fs__mkdtemp(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_mkdtemp_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__mkdtemp(env, info, bare_fs_sync); -} - -static void -bare_fs__on_link(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__link(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t src; - err = js_get_value_string_utf8(env, argv[1], src, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - bare_fs_path_t dst; - err = js_get_value_string_utf8(env, argv[2], dst, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_link(loop, &req->handle, (char *) src, (char *) dst, async ? bare_fs__on_link : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_link(js_env_t *env, js_callback_info_t *info) { - return bare_fs__link(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_link_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__link(env, info, bare_fs_sync); -} - -static void -bare_fs__on_rmdir(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__rmdir(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_rmdir(loop, &req->handle, (char *) path, async ? bare_fs__on_rmdir : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_rmdir(js_env_t *env, js_callback_info_t *info) { - return bare_fs__rmdir(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_rmdir_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__rmdir(env, info, bare_fs_sync); -} - -static void -bare_fs__on_stat(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__stat(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_stat(loop, &req->handle, (char *) path, async ? bare_fs__on_stat : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_stat(js_env_t *env, js_callback_info_t *info) { - return bare_fs__stat(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_stat_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__stat(env, info, bare_fs_sync); -} - -static void -bare_fs__on_lstat(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__lstat(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_lstat(loop, &req->handle, (char *) path, async ? bare_fs__on_lstat : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_lstat(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lstat(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_lstat_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__lstat(env, info, bare_fs_sync); -} - -static void -bare_fs__on_fstat(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__fstat(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_fstat(loop, &req->handle, fd, async ? bare_fs__on_fstat : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_fstat(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fstat(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_fstat_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fstat(env, info, bare_fs_sync); -} - -static void -bare_fs__on_statfs(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__statfs(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_statfs(loop, &req->handle, (char *) path, async ? bare_fs__on_statfs : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_statfs(js_env_t *env, js_callback_info_t *info) { - return bare_fs__statfs(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_statfs_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__statfs(env, info, bare_fs_sync); -} - -static void -bare_fs__on_unlink(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__unlink(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_unlink(loop, &req->handle, (char *) path, async ? bare_fs__on_unlink : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_unlink(js_env_t *env, js_callback_info_t *info) { - return bare_fs__unlink(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_unlink_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__unlink(env, info, bare_fs_sync); -} - -static void -bare_fs__on_realpath(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__realpath(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_realpath(loop, &req->handle, (char *) path, async ? bare_fs__on_realpath : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_realpath(js_env_t *env, js_callback_info_t *info) { - return bare_fs__realpath(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_realpath_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__realpath(env, info, bare_fs_sync); -} - -static void -bare_fs__on_readlink(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__readlink(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_readlink(loop, &req->handle, (char *) path, async ? bare_fs__on_readlink : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_readlink(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readlink(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_readlink_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readlink(env, info, bare_fs_sync); -} - -static void -bare_fs__on_symlink(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__symlink(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t target; - err = js_get_value_string_utf8(env, argv[1], target, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[2], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - int32_t flags; - err = js_get_value_int32(env, argv[3], &flags); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_symlink(loop, &req->handle, (char *) target, (char *) path, flags, async ? bare_fs__on_symlink : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_symlink(js_env_t *env, js_callback_info_t *info) { - return bare_fs__symlink(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_symlink_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__symlink(env, info, bare_fs_sync); -} - -static void -bare_fs__on_opendir(uv_fs_t *handle) { - int err; - - bare_fs_req_t *req = (bare_fs_req_t *) handle; - - int status = handle->result; - - if (req->exiting && status >= 0) { - uv_dir_t *dir = handle->ptr; - - uv_fs_req_cleanup(handle); - - err = uv_fs_closedir(handle->loop, handle, dir, NULL); - assert(err == 0); - } - - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__opendir(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[1], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_opendir(loop, &req->handle, (char *) path, async ? bare_fs__on_opendir : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_opendir(js_env_t *env, js_callback_info_t *info) { - return bare_fs__opendir(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_opendir_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__opendir(env, info, bare_fs_sync); -} - -static void -bare_fs__on_readdir(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__readdir(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 3; - js_value_t *argv[3]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 3); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_dir_t *dir; - err = js_get_arraybuffer_info(env, argv[1], (void **) &dir, NULL); - assert(err == 0); - - uint32_t capacity; - err = js_get_value_uint32(env, argv[2], &capacity); - assert(err == 0); - - js_value_t *result; - - bare_fs_dirent_t *dirents; - err = js_create_arraybuffer(env, capacity * sizeof(bare_fs_dirent_t), (void **) &dirents, &result); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - dir->handle->dirents = dirents; - dir->handle->nentries = capacity; - - err = uv_fs_readdir(loop, &req->handle, dir->handle, async ? bare_fs__on_readdir : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return result; -} - -static js_value_t * -bare_fs_readdir(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readdir(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_readdir_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__readdir(env, info, bare_fs_sync); -} - -static void -bare_fs__on_closedir(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__closedir(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - bare_fs_dir_t *dir; - err = js_get_arraybuffer_info(env, argv[1], (void **) &dir, NULL); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_closedir(loop, &req->handle, dir->handle, async ? bare_fs__on_closedir : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_closedir(js_env_t *env, js_callback_info_t *info) { - return bare_fs__closedir(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_closedir_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__closedir(env, info, bare_fs_sync); -} - -static void -bare_fs__on_fsync(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__fsync(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_fsync(loop, &req->handle, fd, async ? bare_fs__on_fsync : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_fsync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fsync(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_fsync_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fsync(env, info, bare_fs_sync); -} - -static void -bare_fs__on_fdatasync(uv_fs_t *handle) { - bare_fs__on_request_result(handle); -} - -static inline js_value_t * -bare_fs__fdatasync(js_env_t *env, js_callback_info_t *info, bool async) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bare_fs_req_t *req; - err = js_get_arraybuffer_info(env, argv[0], (void **) &req, NULL); - assert(err == 0); - - uint32_t fd; - err = js_get_value_uint32(env, argv[1], &fd); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_fdatasync(loop, &req->handle, fd, async ? bare_fs__on_fdatasync : NULL); - (void) err; - - err = bare_fs__request_pending(env, req, async, NULL); - (void) err; - - return NULL; -} - -static js_value_t * -bare_fs_fdatasync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fdatasync(env, info, bare_fs_async); -} - -static js_value_t * -bare_fs_fdatasync_sync(js_env_t *env, js_callback_info_t *info) { - return bare_fs__fdatasync(env, info, bare_fs_sync); -} - -static void -bare_fs__on_watcher_event(uv_fs_event_t *handle, const char *filename, int events, int status) { - int err; - - bare_fs_watcher_t *watcher = (bare_fs_watcher_t *) handle; - - if (watcher->exiting) return; - - js_env_t *env = watcher->env; - - js_handle_scope_t *scope; - err = js_open_handle_scope(env, &scope); - assert(err == 0); - - js_value_t *ctx; - err = js_get_reference_value(env, watcher->ctx, &ctx); - assert(err == 0); - - js_value_t *on_event; - err = js_get_reference_value(env, watcher->on_event, &on_event); - assert(err == 0); - - js_value_t *args[3]; - - if (status < 0) { - js_value_t *code; - err = js_create_string_utf8(env, (utf8_t *) uv_err_name(status), -1, &code); - assert(err == 0); - - js_value_t *message; - err = js_create_string_utf8(env, (utf8_t *) uv_strerror(status), -1, &message); - assert(err == 0); - - err = js_create_error(env, code, message, &args[0]); - assert(err == 0); - - err = js_create_int32(env, 0, &args[1]); - assert(err == 0); - - err = js_get_null(env, &args[2]); - assert(err == 0); - } else { - err = js_get_null(env, &args[0]); - assert(err == 0); - - err = js_create_int32(env, events, &args[1]); - assert(err == 0); - - size_t len = strlen(filename); - - void *data; - err = js_create_arraybuffer(env, len, &data, &args[2]); - assert(err == 0); - - memcpy(data, (void *) filename, len); - } - - err = js_call_function(env, ctx, on_event, 3, args, NULL); - (void) err; - - err = js_close_handle_scope(env, scope); - assert(err == 0); -} - -static void -bare_fs__on_watcher_close(uv_handle_t *handle) { - int err; - - bare_fs_watcher_t *watcher = (bare_fs_watcher_t *) handle; - - js_env_t *env = watcher->env; - - js_deferred_teardown_t *teardown = watcher->teardown; - - if (watcher->exiting) { - err = js_delete_reference(env, watcher->on_event); - assert(err == 0); - - err = js_delete_reference(env, watcher->on_close); - assert(err == 0); - - err = js_delete_reference(env, watcher->ctx); - assert(err == 0); - } else { - js_handle_scope_t *scope; - err = js_open_handle_scope(env, &scope); - assert(err == 0); - - js_value_t *ctx; - err = js_get_reference_value(env, watcher->ctx, &ctx); - assert(err == 0); - - js_value_t *on_close; - err = js_get_reference_value(env, watcher->on_close, &on_close); - assert(err == 0); - - err = js_delete_reference(env, watcher->on_event); - assert(err == 0); - - err = js_delete_reference(env, watcher->on_close); - assert(err == 0); - - err = js_delete_reference(env, watcher->ctx); - assert(err == 0); - - err = js_call_function(env, ctx, on_close, 0, NULL, NULL); - (void) err; - - err = js_close_handle_scope(env, scope); - assert(err == 0); - } - - err = js_finish_deferred_teardown_callback(teardown); - assert(err == 0); -} - -static void -bare_fs__on_watcher_teardown(js_deferred_teardown_t *handle, void *data) { - bare_fs_watcher_t *watcher = (bare_fs_watcher_t *) data; - - watcher->exiting = true; - - if (watcher->closing) return; - - uv_close((uv_handle_t *) &watcher->handle, bare_fs__on_watcher_close); -} - -static js_value_t * -bare_fs_watcher_init(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 5; - js_value_t *argv[5]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 5); - - bare_fs_path_t path; - err = js_get_value_string_utf8(env, argv[0], path, sizeof(bare_fs_path_t), NULL); - assert(err == 0); - - bool recursive; - err = js_get_value_bool(env, argv[1], &recursive); - assert(err == 0); - - js_value_t *result; - - bare_fs_watcher_t *watcher; - err = js_create_arraybuffer(env, sizeof(bare_fs_watcher_t), (void **) &watcher, &result); - assert(err == 0); - - uv_loop_t *loop; - err = js_get_env_loop(env, &loop); - assert(err == 0); - - err = uv_fs_event_init(loop, &watcher->handle); - - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - err = uv_fs_event_start(&watcher->handle, bare_fs__on_watcher_event, (char *) path, recursive ? UV_FS_EVENT_RECURSIVE : 0); - assert(err == 0); - - watcher->env = env; - watcher->closing = false; - watcher->exiting = false; - - err = js_create_reference(env, argv[2], 1, &watcher->ctx); - assert(err == 0); - - err = js_create_reference(env, argv[3], 1, &watcher->on_event); - assert(err == 0); - - err = js_create_reference(env, argv[4], 1, &watcher->on_close); - assert(err == 0); - - err = js_add_deferred_teardown_callback(env, bare_fs__on_watcher_teardown, (void *) watcher, &watcher->teardown); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_fs_watcher_close(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_watcher_t *watcher; - err = js_get_arraybuffer_info(env, argv[0], (void **) &watcher, NULL); - assert(err == 0); - - err = uv_fs_event_stop(&watcher->handle); - assert(err == 0); - - watcher->closing = true; - - uv_close((uv_handle_t *) &watcher->handle, bare_fs__on_watcher_close); - - return NULL; -} - -static js_value_t * -bare_fs_watcher_ref(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_watcher_t *watcher; - err = js_get_arraybuffer_info(env, argv[0], (void **) &watcher, NULL); - assert(err == 0); - - uv_ref((uv_handle_t *) &watcher->handle); - - return NULL; -} - -static js_value_t * -bare_fs_watcher_unref(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - bare_fs_watcher_t *watcher; - err = js_get_arraybuffer_info(env, argv[0], (void **) &watcher, NULL); - assert(err == 0); - - uv_unref((uv_handle_t *) &watcher->handle); - - return NULL; -} - -static js_value_t * -bare_fs_exports(js_env_t *env, js_value_t *exports) { - int err; - -#define V(name, fn) \ - { \ - js_value_t *val; \ - err = js_create_function(env, name, -1, fn, NULL, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, exports, name, val); \ - assert(err == 0); \ - } - - V("requestInit", bare_fs_request_init) - V("requestDestroy", bare_fs_request_destroy) - V("requestReset", bare_fs_request_reset) - V("requestResultStat", bare_fs_request_result_stat) - V("requestResultStatfs", bare_fs_request_result_statfs) - V("requestResultString", bare_fs_request_result_string) - V("requestResultPath", bare_fs_request_result_path) - V("requestResultDir", bare_fs_request_result_dir) - V("requestResultDirents", bare_fs_request_result_dirents) - - V("open", bare_fs_open) - V("openSync", bare_fs_open_sync) - V("close", bare_fs_close) - V("closeSync", bare_fs_close_sync) - V("access", bare_fs_access) - V("accessSync", bare_fs_access_sync) - V("read", bare_fs_read) - V("readSync", bare_fs_read_sync) - V("readv", bare_fs_readv) - V("readvSync", bare_fs_readv_sync) - V("write", bare_fs_write) - V("writeSync", bare_fs_write_sync) - V("writev", bare_fs_writev) - V("writevSync", bare_fs_writev_sync) - V("ftruncate", bare_fs_ftruncate) - V("ftruncateSync", bare_fs_ftruncate_sync) - V("chmod", bare_fs_chmod) - V("chmodSync", bare_fs_chmod_sync) - V("fchmod", bare_fs_fchmod) - V("fchmodSync", bare_fs_fchmod_sync) - V("chown", bare_fs_chown) - V("chownSync", bare_fs_chown_sync) - V("lchown", bare_fs_lchown) - V("lchownSync", bare_fs_lchown_sync) - V("fchown", bare_fs_fchown) - V("fchownSync", bare_fs_fchown_sync) - V("utimes", bare_fs_utimes) - V("utimesSync", bare_fs_utimes_sync) - V("lutimes", bare_fs_lutimes) - V("lutimesSync", bare_fs_lutimes_sync) - V("futimes", bare_fs_futimes) - V("futimesSync", bare_fs_futimes_sync) - V("rename", bare_fs_rename) - V("renameSync", bare_fs_rename_sync) - V("copyfile", bare_fs_copyfile) - V("copyfileSync", bare_fs_copyfile_sync) - V("mkdir", bare_fs_mkdir) - V("mkdirSync", bare_fs_mkdir_sync) - V("mkdtemp", bare_fs_mkdtemp) - V("mkdtempSync", bare_fs_mkdtemp_sync) - V("rmdir", bare_fs_rmdir) - V("rmdirSync", bare_fs_rmdir_sync) - V("stat", bare_fs_stat) - V("statSync", bare_fs_stat_sync) - V("lstat", bare_fs_lstat) - V("lstatSync", bare_fs_lstat_sync) - V("fstat", bare_fs_fstat) - V("fstatSync", bare_fs_fstat_sync) - V("statfs", bare_fs_statfs) - V("statfsSync", bare_fs_statfs_sync) - V("link", bare_fs_link) - V("linkSync", bare_fs_link_sync) - V("unlink", bare_fs_unlink) - V("unlinkSync", bare_fs_unlink_sync) - V("realpath", bare_fs_realpath) - V("realpathSync", bare_fs_realpath_sync) - V("readlink", bare_fs_readlink) - V("readlinkSync", bare_fs_readlink_sync) - V("symlink", bare_fs_symlink) - V("symlinkSync", bare_fs_symlink_sync) - V("opendir", bare_fs_opendir) - V("opendirSync", bare_fs_opendir_sync) - V("readdir", bare_fs_readdir) - V("readdirSync", bare_fs_readdir_sync) - V("closedir", bare_fs_closedir) - V("closedirSync", bare_fs_closedir_sync) - V("fsync", bare_fs_fsync) - V("fsyncSync", bare_fs_fsync_sync) - V("fdatasync", bare_fs_fdatasync) - V("fdatasyncSync", bare_fs_fdatasync_sync) - - V("watcherInit", bare_fs_watcher_init) - V("watcherClose", bare_fs_watcher_close) - V("watcherRef", bare_fs_watcher_ref) - V("watcherUnref", bare_fs_watcher_unref) -#undef V - -#define V(name) \ - { \ - js_value_t *val; \ - err = js_create_uint32(env, name, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, exports, #name, val); \ - assert(err == 0); \ - } - - V(O_RDWR) - V(O_RDONLY) - V(O_WRONLY) - V(O_CREAT) - V(O_TRUNC) - V(O_APPEND) - -#ifdef F_OK - V(F_OK) -#endif -#ifdef R_OK - V(R_OK) -#endif -#ifdef W_OK - V(W_OK) -#endif -#ifdef X_OK - V(X_OK) -#endif - - V(S_IFMT) - V(S_IFREG) - V(S_IFDIR) - V(S_IFCHR) - V(S_IFLNK) -#ifdef S_IFBLK - V(S_IFBLK) -#endif -#ifdef S_IFIFO - V(S_IFIFO) -#endif -#ifdef S_IFSOCK - V(S_IFSOCK) -#endif - -#ifdef S_IRUSR - V(S_IRUSR) -#endif -#ifdef S_IWUSR - V(S_IWUSR) -#endif -#ifdef S_IXUSR - V(S_IXUSR) -#endif -#ifdef S_IRGRP - V(S_IRGRP) -#endif -#ifdef S_IWGRP - V(S_IWGRP) -#endif -#ifdef S_IXGRP - V(S_IXGRP) -#endif -#ifdef S_IROTH - V(S_IROTH) -#endif -#ifdef S_IWOTH - V(S_IWOTH) -#endif -#ifdef S_IXOTH - V(S_IXOTH) -#endif - - V(UV_DIRENT_UNKNOWN) - V(UV_DIRENT_FILE) - V(UV_DIRENT_DIR) - V(UV_DIRENT_LINK) - V(UV_DIRENT_FIFO) - V(UV_DIRENT_SOCKET) - V(UV_DIRENT_CHAR) - V(UV_DIRENT_BLOCK) - - V(UV_FS_COPYFILE_EXCL) - V(UV_FS_COPYFILE_FICLONE) - V(UV_FS_COPYFILE_FICLONE_FORCE) - V(UV_FS_SYMLINK_DIR) - V(UV_FS_SYMLINK_JUNCTION) - - V(UV_RENAME) - V(UV_CHANGE) -#undef V - - return exports; -} - -BARE_MODULE(bare_fs, bare_fs_exports) diff --git a/node_modules/bare-fs/binding.js b/node_modules/bare-fs/binding.js deleted file mode 100644 index cea4630..0000000 --- a/node_modules/bare-fs/binding.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require.addon() diff --git a/node_modules/bare-fs/index.d.ts b/node_modules/bare-fs/index.d.ts deleted file mode 100644 index 3ead07b..0000000 --- a/node_modules/bare-fs/index.d.ts +++ /dev/null @@ -1,1223 +0,0 @@ -import EventEmitter, { EventMap } from 'bare-events' -import Buffer, { BufferEncoding } from 'bare-buffer' -import URL from 'bare-url' -import { Readable, Writable } from 'bare-stream' -import promises from './promises' -import constants from './lib/constants' - -export { promises, constants } - -type Path = string | Buffer | URL - -type Flag = - | 'a' - | 'a+' - | 'as' - | 'as+' - | 'ax' - | 'ax+' - | 'r' - | 'r+' - | 'rs' - | 'rs+' - | 'sa' - | 'sa+' - | 'sr' - | 'sr+' - | 'w' - | 'w+' - | 'wx' - | 'wx+' - | 'xa' - | 'xa+' - | 'xw' - | 'xw+' - -interface Callback { - (err: Error | null, ...args: A): void -} - -export interface Dir - extends Iterable, AsyncIterable { - readonly path: string - - read(): Promise | null> - read(cb: Callback<[dirent: Dirent | null]>): void - readSync(): Dirent | null - - close(): Promise - close(cb: Callback): void - closeSync(): void -} - -export class Dir { - private constructor(path: string, handle: ArrayBuffer, opts?: OpendirOptions) -} - -export interface Dirent { - readonly path: string - readonly name: T - readonly type: number - - isFile(): boolean - isDirectory(): boolean - isSymbolicLink(): boolean - isFIFO(): boolean - isSocket(): boolean - isCharacterDevice(): boolean - isBlockDevice(): boolean -} - -export class Dirent { - private constructor(path: string, name: T, type: number) -} - -export interface Stats { - readonly dev: number - readonly mode: number - readonly nlink: number - readonly uid: number - readonly gid: number - readonly rdev: number - readonly blksize: number - readonly ino: number - readonly size: number - readonly blocks: number - readonly atimeMs: Date - readonly mtimeMs: Date - readonly ctimeMs: Date - readonly birthtimeMs: Date - - isDirectory(): boolean - isFile(): boolean - isBlockDevice(): boolean - isCharacterDevice(): boolean - isFIFO(): boolean - isSymbolicLink(): boolean - isSocket(): boolean -} - -export class Stats { - private constructor( - dev: number, - mode: number, - nlink: number, - uid: number, - gid: number, - rdev: number, - blksize: number, - ino: number, - size: number, - blocks: number, - atimeMs: number, - mtimeMs: number, - ctimeMs: number, - birthtimeMs: number - ) -} - -export interface StatFs { - readonly type: number - readonly bsize: number - readonly blocks: number - readonly bfree: number - readonly bavail: number - readonly files: number - readonly ffree: number -} - -export class StatsFs { - private constructor( - type: number, - bsize: number, - blocks: number, - bfree: number, - bavail: number, - files: number, - ffree: number - ) -} - -export interface ReadStreamOptions { - fd?: number - flags?: Flag - mode?: number - start?: number - end?: number -} - -export interface ReadStream extends Readable { - readonly path: string | null - readonly fd: number - readonly flags: Flag - readonly mode: number -} - -export class ReadStream { - private constructor(path: Path | null, opts?: WriteStreamOptions) -} - -export function createReadStream(path: Path | null, opts?: ReadStreamOptions): ReadStream - -export interface WriteStreamOptions { - fd?: number - flags?: Flag - mode?: number -} - -export interface WriteStream extends Writable { - readonly path: string | null - readonly fd: number - readonly flags: Flag - readonly mode: number -} - -export class WriteStream { - private constructor(path: Path | null, opts?: WriteStreamOptions) -} - -export function createWriteStream(path: Path | null, opts?: WriteStreamOptions): WriteStream - -export interface WatcherOptions { - persistent?: boolean - recursive?: boolean - encoding?: BufferEncoding | 'buffer' -} - -export type WatcherEventType = 'rename' | 'change' - -export interface WatcherEvents extends EventMap { - error: [err: Error] - change: [eventType: WatcherEventType, filename: T] - close: [] -} - -export interface Watcher - extends - EventEmitter>, - AsyncIterable<{ eventType: WatcherEventType; filename: T }> { - close(): void - ref(): void - unref(): void -} - -export class Watcher { - private constructor(path: Path, opts: WatcherOptions) -} - -export function access(filepath: Path, mode?: number): Promise - -export function access(filepath: Path, mode: number, cb: Callback): void - -export function access(filepath: Path, cb: Callback): void - -export function accessSync(filepath: Path, mode?: number): void - -export interface AppendFileOptions { - encoding?: BufferEncoding - flag?: string - mode?: number -} - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: AppendFileOptions -): Promise - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): Promise - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts: AppendFileOptions, - cb: Callback -): void - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding, - cb: Callback -): void - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - cb: Callback -): void - -export function appendFileSync( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: AppendFileOptions -): void - -export function appendFileSync( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): void - -export function chmod(filepath: Path, mode: string | number): Promise - -export function chmod(filepath: Path, mode: string | number, cb: Callback): void - -export function chmodSync(filepath: Path, mode: string | number): void - -export function chown(filepath: Path, uid: number, gid: number): Promise - -export function chown(filepath: Path, uid: number, gid: number, cb: Callback): void - -export function chownSync(filepath: Path, uid: number, gid: number): void - -export function close(fd: number): Promise - -export function close(fd: number, cb: Callback): void - -export function closeSync(fd: number): void - -export function copyFile(src: Path, dst: Path, mode?: number): Promise - -export function copyFile(src: Path, dst: Path, mode: number, cb: Callback): void - -export function copyFile(src: Path, dst: Path, cb: Callback): void - -export function copyFileSync(src: Path, dst: Path, mode?: number): void - -export interface CpOptions { - recursive?: boolean -} - -export function cp(src: Path, dst: Path, opts?: CpOptions): Promise - -export function cp(src: Path, dst: Path, opts: CpOptions, cb: Callback): void - -export function cp(src: Path, dst: Path, cb: Callback): void - -export function cpSync(src: Path, dst: Path, opts?: CpOptions): void - -export function exists(filepath: Path): Promise - -export function exists(filepath: Path, cb: (exists: boolean) => void): void - -export function existsSync(filepath: Path): boolean - -export function fchmod(fd: number, mode: string | number): Promise - -export function fchmod(fd: number, mode: string | number, cb: Callback): void - -export function fchmodSync(fd: number, mode: string | number): void - -export function fchown(fd: number, uid: number, gid: number): Promise - -export function fchown(fd: number, uid: number, gid: number, cb: Callback): void - -export function fchownSync(fd: number, uid: number, gid: number): void - -export function fdatasync(fd: number): Promise - -export function fdatasync(fd: number, cb: Callback): void - -export function fdatasyncSync(fd: number): void - -export function fstat(fd: number): Promise - -export function fstat(fd: number, cb: Callback<[stats: Stats | null]>): void - -export function fstatSync(fd: number): Stats - -export function fsync(fd: number): Promise - -export function fsync(fd: number, cb: Callback): void - -export function fsyncSync(fd: number): void - -export function ftruncate(fd: number, len?: number): Promise - -export function ftruncate(fd: number, len: number, cb: Callback): void - -export function ftruncate(fd: number, cb: Callback): void - -export function ftruncateSync(fd: number, len?: number): void - -export function lchown(filepath: Path, uid: number, gid: number): Promise - -export function lchown(filepath: Path, uid: number, gid: number, cb: Callback): void - -export function lchownSync(filepath: Path, uid: number, gid: number): void - -export function lstat(filepath: Path): Promise - -export function lstat(filepath: Path, cb: Callback<[stats: Stats | null]>): void - -export function lstatSync(filepath: Path): Stats - -export function utimes(filepath: Path, atime: number | Date, mtime: number | Date): Promise - -export function utimes( - filepath: Path, - atime: number | Date, - mtime: number | Date, - cb: Callback -): void - -export function utimesSync(filepath: Path, atime: number | Date, mtime: number | Date): void - -export function lutimes(filepath: Path, atime: number | Date, mtime: number | Date): Promise - -export function lutimes( - filepath: Path, - atime: number | Date, - mtime: number | Date, - cb: Callback -): void - -export function lutimesSync(filepath: Path, atime: number | Date, mtime: number | Date): void - -export function futimes(fd: number, atime: number | Date, mtime: number | Date): Promise - -export function futimes(fd: number, atime: number | Date, mtime: number | Date, cb: Callback): void - -export function futimesSync(fd: number, atime: number | Date, mtime: number | Date): void - -export function link(src: Path, dst: Path): Promise - -export function link(src: Path, dst: Path, cb: Callback): void - -export function linkSync(src: Path, dst: Path): void - -export interface MkdirOptions { - mode?: number - recursive?: boolean -} - -export function mkdir(filepath: Path, opts?: MkdirOptions): Promise - -export function mkdir(filepath: Path, mode: number): Promise - -export function mkdir(filepath: Path, opts: MkdirOptions, cb: Callback): void - -export function mkdir(filepath: Path, mode: number, cb: Callback): void - -export function mkdir(filepath: Path, cb: Callback): void - -export function mkdirSync(filepath: Path, opts?: MkdirOptions): void - -export function mkdirSync(filepath: Path, mode: number): void - -export function mkdtemp(prefix: Path): Promise - -export function mkdtemp(prefix: Path, cb: Callback<[path: string | null]>): void - -export function mkdtempSync(prefix: Path): string - -export function open(filepath: Path, flags?: Flag | number, mode?: string | number): Promise - -export function open( - filepath: Path, - flags: Flag | number, - mode: string | number, - cb: Callback<[fd: number]> -): void - -export function open(filepath: Path, flags: Flag | number, cb: Callback<[fd: number]>): void - -export function open(filepath: Path, cb: Callback<[fd: number]>): void - -export function openSync(filepath: Path, flags?: Flag | number, mode?: string | number): number - -export interface OpendirOptions { - encoding?: BufferEncoding | 'buffer' - bufferSize?: number -} - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding?: BufferEncoding } -): Promise> - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding: 'buffer' } -): Promise> - -export function opendir(filepath: Path, opts: OpendirOptions): Promise - -export function opendir(filepath: Path, encoding: BufferEncoding): Promise> - -export function opendir(filepath: Path, encoding: 'buffer'): Promise> - -export function opendir(filepath: Path, encoding: BufferEncoding | 'buffer'): Promise - -export function opendir(filepath: Path): Promise> - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding?: BufferEncoding }, - cb: Callback<[dir: Dir | null]> -): void - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding: 'buffer' }, - cb: Callback<[dir: Dir | null]> -): void - -export function opendir(filepath: Path, opts: OpendirOptions, cb: Callback<[dir: Dir | null]>): void - -export function opendir( - filepath: Path, - encoding: BufferEncoding, - cb: Callback<[dir: Dir | null]> -): void - -export function opendir( - filepath: Path, - encoding: 'buffer', - cb: Callback<[dir: Dir | null]> -): void - -export function opendir( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: Callback<[dir: Dir | null]> -): void - -export function opendir(filepath: Path, cb: Callback<[dir: Dir | null]>): void - -export function opendirSync( - filepath: Path, - opts: OpendirOptions & { encoding?: BufferEncoding } -): Dir - -export function opendirSync( - filepath: Path, - opts: OpendirOptions & { encoding: 'buffer' } -): Dir - -export function opendirSync(filepath: Path, opts: OpendirOptions): Dir - -export function opendirSync(filepath: Path, encoding: BufferEncoding): Dir - -export function opendirSync(filepath: Path, encoding: 'buffer'): Dir - -export function opendirSync(filepath: Path, encoding: BufferEncoding | 'buffer'): Dir - -export function opendirSync(filepath: Path): Dir - -export function read( - fd: number, - buffer: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number -): Promise - -export function read( - fd: number, - buffer: Buffer | ArrayBufferView, - offset: number, - len: number, - pos: number, - cb: Callback<[len: number]> -): void - -export function read( - fd: number, - buffer: Buffer | ArrayBufferView, - offset: number, - len: number, - cb: Callback<[len: number]> -): void - -export function read( - fd: number, - buffer: Buffer | ArrayBufferView, - offset: number, - cb: Callback<[len: number]> -): void - -export function read( - fd: number, - buffer: Buffer | ArrayBufferView, - cb: Callback<[len: number]> -): void - -export function readSync( - fd: number, - buffer: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number -): number - -export interface ReadFileOptions { - encoding?: BufferEncoding | 'buffer' - flag?: Flag -} - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding: BufferEncoding } -): Promise - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding?: 'buffer' } -): Promise - -export function readFile(filepath: Path, opts: ReadFileOptions): Promise - -export function readFile(filepath: Path, encoding: BufferEncoding): Promise - -export function readFile(filepath: Path, encoding: 'buffer'): Promise - -export function readFile( - filepath: Path, - encoding?: BufferEncoding | 'buffer' -): Promise - -export function readFile(filepath: Path): Promise - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding: BufferEncoding }, - cb: Callback<[buffer?: string]> -): void - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding?: 'buffer' }, - cb: Callback<[buffer?: Buffer]> -): void - -export function readFile( - filepath: Path, - opts: ReadFileOptions, - cb: Callback<[buffer?: string | Buffer]> -): void - -export function readFile( - filepath: Path, - encoding: BufferEncoding, - cb: Callback<[buffer?: string]> -): void - -export function readFile(filepath: Path, encoding: 'buffer', cb: Callback<[buffer?: Buffer]>): void - -export function readFile( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: Callback<[buffer?: string | Buffer]> -): void - -export function readFile(filepath: Path, cb: Callback<[buffer?: Buffer]>): void - -export function readFileSync( - filepath: Path, - opts: ReadFileOptions & { encoding: BufferEncoding } -): string - -export function readFileSync( - filepath: Path, - opts: ReadFileOptions & { encoding?: 'buffer' } -): Buffer - -export function readFileSync(filepath: Path, opts: ReadFileOptions): string | Buffer - -export function readFileSync(filepath: Path, encoding: BufferEncoding): string - -export function readFileSync(filepath: Path, encoding: 'buffer'): Buffer - -export function readFileSync(filepath: Path, encoding?: BufferEncoding | 'buffer'): string | Buffer - -export function readFileSync(filepath: Path): Buffer - -export interface ReaddirOptions extends OpendirOptions { - withFileTypes?: boolean -} -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding } -): Promise[] | string[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes?: false } -): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer' } -): Promise[] | Buffer[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes?: false } -): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes?: false } -): Promise - -export function readdir(filepath: Path, opts: ReaddirOptions): Promise - -export function readdir(filepath: Path, encoding: BufferEncoding): Promise - -export function readdir(filepath: Path, encoding: 'buffer'): Promise - -export function readdir( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function readdir(filepath: Path): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding }, - cb: Callback<[entries: Dir[] | string[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes: true }, - cb: Callback<[entries: Dir[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes?: false }, - cb: Callback<[entries: string[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer' }, - cb: Callback<[entries: Dir[] | Buffer[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes: true }, - cb: Callback<[entries: Dir[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes?: false }, - cb: Callback<[entries: Buffer[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes: true }, - cb: Callback<[entries: Dir[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes?: false }, - cb: Callback<[entries: string[] | Buffer[] | null]> -): void - -export function readdir( - filepath: Path, - opts: ReaddirOptions, - cb: Callback<[entries: Dir[] | string[] | Buffer[] | null]> -): void - -export function readdir( - filepath: Path, - encoding: BufferEncoding, - cb: Callback<[entries: string[] | null]> -): void - -export function readdir( - filepath: Path, - encoding: 'buffer', - cb: Callback<[entries: Buffer[] | null]> -): void - -export function readdir( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: Callback<[entries: string[] | Buffer[] | null]> -): void - -export function readdir(filepath: Path, cb: Callback<[entries: string[] | null]>): void - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding } -): Dir[] | string[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes: true } -): Dir[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes?: false } -): string[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer' } -): Dir[] | Buffer[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes: true } -): Dir[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes?: false } -): Buffer[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { withFileTypes: true } -): Dir[] - -export function readdirSync( - filepath: Path, - opts: ReaddirOptions & { withFileTypes?: false } -): string[] | Buffer[] - -export function readdirSync(filepath: Path, opts: ReaddirOptions): Dir[] | string[] | Buffer[] - -export function readdirSync(filepath: Path, encoding: BufferEncoding): string[] - -export function readdirSync(filepath: Path, encoding: 'buffer'): Buffer[] - -export function readdirSync( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): string[] | Buffer[] - -export function readdirSync(filepath: Path): string[] - -export interface ReadlinkOptions { - encoding?: BufferEncoding | 'buffer' -} - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding?: BufferEncoding } -): Promise - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding: 'buffer' } -): Promise - -export function readlink(filepath: Path, opts: ReadlinkOptions): Promise - -export function readlink(filepath: Path, encoding: BufferEncoding): Promise - -export function readlink(filepath: Path, encoding: 'buffer'): Promise - -export function readlink( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function readlink(filepath: Path): Promise - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding?: BufferEncoding }, - cb: Callback<[link: string | null]> -): void - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding: 'buffer' }, - cb: Callback<[link: Buffer | null]> -): void - -export function readlink( - filepath: Path, - opts: ReadlinkOptions, - cb: Callback<[link: string | Buffer | null]> -): void - -export function readlink( - filepath: Path, - encoding: BufferEncoding, - cb: Callback<[link: string | null]> -): void - -export function readlink( - filepath: Path, - encoding: 'buffer', - cb: Callback<[link: Buffer | null]> -): void - -export function readlink( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: Callback<[link: string | Buffer | null]> -): void - -export function readlink(filepath: Path, cb: Callback<[link: string | null]>): void - -export function readlinkSync( - filepath: Path, - opts: ReadlinkOptions & { encoding?: BufferEncoding } -): string - -export function readlinkSync(filepath: Path, opts: ReadlinkOptions & { encoding: 'buffer' }): Buffer - -export function readlinkSync(filepath: Path, opts: ReadlinkOptions): string | Buffer - -export function readlinkSync(filepath: Path, encoding: BufferEncoding): string - -export function readlinkSync(filepath: Path, encoding: 'buffer'): Buffer - -export function readlinkSync(filepath: Path, encoding: BufferEncoding | 'buffer'): string | Buffer - -export function readlinkSync(filepath: Path): string - -export function readv(fd: number, buffers: ArrayBufferView[], position?: number): Promise - -export function readv( - fd: number, - buffers: ArrayBufferView[], - position: number, - cb: Callback<[len: number]> -): void - -export function readv(fd: number, buffers: ArrayBufferView[], cb: Callback<[len: number]>): void - -export function readvSync(fd: number, buffers: ArrayBufferView[], position?: number): number - -export interface RealpathOptions { - encoding?: BufferEncoding | 'buffer' -} - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding?: BufferEncoding } -): Promise - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding: 'buffer' } -): Promise - -export function realpath(filepath: Path, opts: RealpathOptions): Promise - -export function realpath(filepath: Path, encoding: BufferEncoding): Promise - -export function realpath(filepath: Path, encoding: 'buffer'): Promise - -export function realpath( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function realpath(filepath: Path): Promise - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding?: BufferEncoding }, - cb: Callback<[path: string | null]> -): void - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding: 'buffer' }, - cb: Callback<[path: Buffer | null]> -): void - -export function realpath( - filepath: Path, - opts: RealpathOptions, - cb: Callback<[path: string | Buffer | null]> -): void - -export function realpath( - filepath: Path, - encoding: BufferEncoding, - cb: Callback<[path: string | null]> -): void - -export function realpath( - filepath: Path, - encoding: 'buffer', - cb: Callback<[path: Buffer | null]> -): void - -export function realpath( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: Callback<[path: string | Buffer | null]> -): void - -export function realpath(filepath: Path, cb: Callback<[path: string | null]>): void - -export function realpathSync( - filepath: Path, - opts: RealpathOptions & { encoding?: BufferEncoding } -): string - -export function realpathSync(filepath: Path, opts: RealpathOptions & { encoding: 'buffer' }): Buffer - -export function realpathSync(filepath: Path, opts: RealpathOptions): string | Buffer - -export function realpathSync(filepath: Path, encoding: BufferEncoding): string - -export function realpathSync(filepath: Path, encoding: 'buffer'): Buffer - -export function realpathSync(filepath: Path, encoding: BufferEncoding | 'buffer'): string | Buffer - -export function realpathSync(filepath: Path): string - -export function rename(src: string, dst: string): Promise - -export function rename(src: string, dst: string, cb: Callback): void - -export function renameSync(src: string, dst: string): void - -export interface RmOptions { - force?: boolean - recursive?: boolean -} - -export function rm(filepath: Path, opts?: RmOptions): Promise - -export function rm(filepath: Path, opts: RmOptions, cb: Callback): void - -export function rm(filepath: Path, cb: Callback): void - -export function rmSync(filepath: Path, opts?: RmOptions): void - -export function rmdir(filepath: Path, cb: Callback): void - -export function rmdirSync(filepath: Path): void - -export function stat(filepath: Path): Promise - -export function stat(filepath: Path, cb: Callback<[stats: Stats | null]>): void - -export function statSync(filepath: Path): Stats - -export function statfs(filepath: Path): Promise - -export function statfs(filepath: Path, cb: Callback<[stats: StatFs | null]>): void - -export function statfsSync(filepath: Path): StatFs - -export function symlink(target: Path, filepath: Path, type?: string | number): Promise - -export function symlink(target: Path, filepath: Path, type: string | number, cb: Callback): void - -export function symlink(target: string, filepath: Path, cb: Callback): void - -export function symlinkSync(target: string, filepath: Path, type?: string | number): void - -export function truncate(filepath: Path, len?: number): Promise - -export function truncate(filepath: Path, len: number, cb: Callback): void - -export function truncate(filepath: Path, cb: Callback): void - -export function truncateSync(filepath: Path, len?: number): void - -export function unlink(filepath: Path): Promise - -export function unlink(filepath: Path, cb: Callback): void - -export function unlinkSync(filepath: Path): void - -export function watch( - filepath: Path, - opts: WatcherOptions & { encoding?: BufferEncoding }, - cb: (eventType: WatcherEventType, filename: string) => void -): Watcher - -export function watch( - filepath: Path, - opts: WatcherOptions & { encoding: 'buffer' }, - cb: (eventType: WatcherEventType, filename: Buffer) => void -): Watcher - -export function watch( - filepath: Path, - opts: WatcherOptions, - cb: (eventType: WatcherEventType, filename: string | Buffer) => void -): Watcher - -export function watch( - filepath: Path, - encoding: BufferEncoding, - cb: (evenType: WatcherEventType, filename: string) => void -): Watcher - -export function watch( - filepath: Path, - encoding: 'buffer', - cb: (evenType: WatcherEventType, filename: Buffer) => void -): Watcher - -export function watch( - filepath: Path, - encoding: BufferEncoding | 'buffer', - cb: (evenType: WatcherEventType, filename: string | Buffer) => void -): Watcher - -export function watch( - filepath: Path, - cb: (eventType: WatcherEventType, filename: string) => void -): Watcher - -export function write( - fd: number, - data: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number -): Promise - -export function write( - fd: number, - data: string, - pos?: number, - encoding?: BufferEncoding -): Promise - -export function write( - fd: number, - data: Buffer | ArrayBufferView, - offset: number, - len: number, - pos: number, - cb: Callback<[len: number]> -): void - -export function write( - fd: number, - data: Buffer | ArrayBufferView, - offset: number, - len: number, - cb: Callback<[len: number]> -): void - -export function write( - fd: number, - data: string, - pos: number, - encoding: BufferEncoding, - cb: Callback<[len: number]> -): void - -export function write( - fd: number, - data: Buffer | ArrayBufferView, - offset: number, - cb: Callback<[len: number]> -): void - -export function write(fd: number, data: string, pos: number, cb: Callback<[len: number]>): void - -export function write(fd: number, data: Buffer | ArrayBufferView, cb: Callback<[len: number]>): void - -export function write(fd: number, data: string, cb: Callback<[len: number]>): void - -export function writeSync( - fd: number, - data: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number -): number - -export function writeSync(fd: number, data: string, pos?: number, encoding?: BufferEncoding): number - -export interface WriteFileOptions { - encoding?: BufferEncoding - flag?: Flag - mode?: number -} - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: WriteFileOptions -): Promise - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): Promise - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts: WriteFileOptions, - cb: Callback -): void - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding, - cb: Callback -): void - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - cb: Callback -): void - -export function writeFileSync( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: WriteFileOptions -): void - -export function writeFileSync( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): void - -export function writev(fd: number, buffers: ArrayBufferView[], pos?: number): Promise - -export function writev( - fd: number, - buffers: ArrayBufferView[], - pos: number, - cb: Callback<[len: number]> -): void - -export function writev(fd: number, buffers: ArrayBufferView[], cb: Callback<[len: number]>): void - -export function writevSync(fd: number, buffers: ArrayBufferView[], pos?: number): number diff --git a/node_modules/bare-fs/index.js b/node_modules/bare-fs/index.js deleted file mode 100644 index 3e9dd50..0000000 --- a/node_modules/bare-fs/index.js +++ /dev/null @@ -1,2842 +0,0 @@ -const FIFO = require('fast-fifo') -const EventEmitter = require('bare-events') -const path = require('bare-path') -const { isURL, fileURLToPath } = require('bare-url') -const { Readable, Writable } = require('bare-stream') -const binding = require('./binding') -const constants = require('./lib/constants') -const FileError = require('./lib/errors') - -const isWindows = Bare.platform === 'win32' - -exports.constants = constants - -class FileRequest { - static borrow() { - if (this._free.length > 0) return this._free.pop() - return new FileRequest() - } - - static return(req) { - if (this._free.length < 32) this._free.push(req.reset()) - else req.destroy() - } - - constructor() { - this._reset() - this._handle = binding.requestInit(this, this._onresult) - } - - get handle() { - return this._handle - } - - retain(value) { - this._retain = value // Tie the lifetime of `value` to the lifetime of `this` - } - - reset() { - if (this._handle === null) return this - - binding.requestReset(this._handle) - - this._reset() - - return this - } - - destroy() { - if (this._handle === null) return this - - binding.requestDestroy(this._handle) - - this._reset() - this._handle = null - - return this - } - - then(resolve, reject) { - return this._promise.then(resolve, reject) - } - - return() { - if (this._handle === null) return this - - FileRequest.return(this) - - return this - } - - _reset() { - this._promise = new Promise((resolve, reject) => { - this._resolve = resolve - this._reject = reject - }) - this._retain = null - } - - _onresult(err, status) { - if (err) this._reject(err) - else this._resolve(status) - } -} - -FileRequest._free = [] - -function ok(result, cb) { - if (typeof result === 'function') { - cb = result - result = undefined - } - - if (cb) cb(null, result) - else return result -} - -function fail(err, cb) { - if (cb) cb(err) - else throw err -} - -function done(err, result, cb) { - if (typeof result === 'function') { - cb = result - result = undefined - } - - if (err) fail(err, cb) - else return ok(result, cb) -} - -async function open(filepath, flags = 'r', mode = 0o666, cb) { - if (typeof flags === 'function') { - cb = flags - flags = 'r' - mode = 0o666 - } else if (typeof mode === 'function') { - cb = mode - mode = 0o666 - } - - if (typeof flags === 'string') flags = toFlags(flags) - if (typeof mode === 'string') mode = toMode(mode) - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let fd - let err = null - try { - binding.open(req.handle, filepath, flags, mode) - - fd = await req - } catch (e) { - err = new FileError(e.message, { - operation: 'open', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, fd, cb) -} - -function openSync(filepath, flags = 'r', mode = 0o666) { - if (typeof flags === 'string') flags = toFlags(flags) - if (typeof mode === 'string') mode = toMode(mode) - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - return binding.openSync(req.handle, filepath, flags, mode) - } catch (e) { - throw new FileError(e.message, { - operation: 'open', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function close(fd, cb) { - const req = FileRequest.borrow() - - let err = null - try { - binding.close(req.handle, fd) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'close', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function closeSync(fd) { - const req = FileRequest.borrow() - - try { - binding.closeSync(req.handle, fd) - } catch (e) { - throw new FileError(e.message, { operation: 'close', code: e.code, fd }) - } finally { - req.return() - } -} - -async function access(filepath, mode = constants.F_OK, cb) { - if (typeof mode === 'function') { - cb = mode - mode = constants.F_OK - } - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.access(req.handle, filepath, mode) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'access', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function accessSync(filepath, mode = constants.F_OK) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.accessSync(req.handle, filepath, mode) - } catch (e) { - throw new FileError(e.message, { - operation: 'access', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function exists(filepath, cb) { - let ok = true - try { - await access(filepath) - } catch { - ok = false - } - - return done(null, ok, cb) -} - -function existsSync(filepath) { - try { - accessSync(filepath) - } catch { - return false - } - - return true -} - -async function read(fd, buffer, offset = 0, len = buffer.byteLength - offset, pos = -1, cb) { - if (typeof offset === 'function') { - cb = offset - offset = 0 - len = buffer.byteLength - pos = -1 - } else if (typeof len === 'function') { - cb = len - len = buffer.byteLength - offset - pos = -1 - } else if (typeof pos === 'function') { - cb = pos - pos = -1 - } - - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - let bytes - let err = null - try { - binding.read(req.handle, fd, buffer, offset, len, pos) - - req.retain(buffer) - - bytes = await req - } catch (e) { - err = new FileError(e.message, { operation: 'read', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, bytes, cb) -} - -function readSync(fd, buffer, offset = 0, len = buffer.byteLength - offset, pos = -1) { - const req = FileRequest.borrow() - - try { - return binding.readSync(req.handle, fd, buffer, offset, len, pos) - } catch (e) { - throw new FileError(e.message, { operation: 'read', code: e.code, fd }) - } finally { - req.return() - } -} - -async function readv(fd, buffers, pos = -1, cb) { - if (typeof pos === 'function') { - cb = pos - pos = -1 - } - - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - let bytes - let err = null - try { - binding.readv(req.handle, fd, buffers, pos) - - req.retain(buffers) - - bytes = await req - } catch (e) { - err = new FileError(e.message, { operation: 'readv', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, bytes, cb) -} - -function readvSync(fd, buffers, pos = -1) { - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - try { - return binding.readvSync(req.handle, fd, buffers, pos) - } catch (e) { - throw new FileError(e.message, { operation: 'readv', code: e.code, fd }) - } finally { - req.return() - } -} - -async function write(fd, data, offset, len, pos = -1, cb) { - if (typeof data === 'string') { - let encoding = len - cb = pos - pos = offset - - if (typeof pos === 'function') { - cb = pos - pos = -1 - encoding = 'utf8' - } else if (typeof encoding === 'function') { - cb = encoding - encoding = 'utf8' - } - - if (typeof pos === 'string') { - encoding = pos - pos = -1 - } - - data = Buffer.from(data, encoding) - offset = 0 - len = data.byteLength - } else if (typeof offset === 'function') { - cb = offset - offset = 0 - len = data.byteLength - pos = -1 - } else if (typeof len === 'function') { - cb = len - len = data.byteLength - offset - pos = -1 - } else if (typeof pos === 'function') { - cb = pos - pos = -1 - } - - if (typeof offset !== 'number') offset = 0 - if (typeof len !== 'number') len = data.byteLength - offset - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - let bytes - let err = null - try { - binding.write(req.handle, fd, data, offset, len, pos) - - req.retain(data) - - bytes = await req - } catch (e) { - err = new FileError(e.message, { operation: 'write', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, bytes, cb) -} - -function writeSync(fd, data, offset, len, pos = -1) { - if (typeof data === 'string') { - let encoding = len - pos = offset - - if (typeof pos === 'string') { - encoding = pos - pos = -1 - } - - data = Buffer.from(data, encoding) - offset = 0 - len = data.byteLength - } - - if (typeof offset !== 'number') offset = 0 - if (typeof len !== 'number') len = data.byteLength - offset - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - try { - return binding.writeSync(req.handle, fd, data, offset, len, pos) - } catch (e) { - throw new FileError(e.message, { operation: 'write', code: e.code, fd }) - } finally { - req.return() - } -} - -async function writev(fd, buffers, pos = -1, cb) { - if (typeof pos === 'function') { - cb = pos - pos = -1 - } - - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - let bytes - let err = null - try { - binding.writev(req.handle, fd, buffers, pos) - - req.retain(buffers) - - bytes = await req - } catch (e) { - err = new FileError(e.message, { operation: 'writev', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, bytes, cb) -} - -function writevSync(fd, buffers, pos = -1) { - if (typeof pos !== 'number') pos = -1 - - const req = FileRequest.borrow() - - try { - return binding.writevSync(req.handle, fd, buffers, pos) - } catch (e) { - throw new FileError(e.message, { operation: 'writev', code: e.code, fd }) - } finally { - req.return() - } -} - -async function stat(filepath, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let st - let err = null - try { - binding.stat(req.handle, filepath) - - await req - - st = new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - err = new FileError(e.message, { operation: 'stat', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, st, cb) -} - -function statSync(filepath) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.statSync(req.handle, filepath) - - return new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - throw new FileError(e.message, { operation: 'stat', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function lstat(filepath, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let st - let err = null - try { - binding.lstat(req.handle, filepath) - - await req - - st = new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - err = new FileError(e.message, { operation: 'lstat', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, st, cb) -} - -function lstatSync(filepath) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.lstatSync(req.handle, filepath) - - return new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - throw new FileError(e.message, { operation: 'lstat', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function fstat(fd, cb) { - const req = FileRequest.borrow() - - let st - let err = null - try { - binding.fstat(req.handle, fd) - - await req - - st = new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - err = new FileError(e.message, { operation: 'fstat', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, st, cb) -} - -function fstatSync(fd) { - const req = FileRequest.borrow() - - try { - binding.fstatSync(req.handle, fd) - - return new Stats(...binding.requestResultStat(req.handle)) - } catch (e) { - throw new FileError(e.message, { operation: 'fstat', code: e.code, fd }) - } finally { - req.return() - } -} - -async function statfs(filepath, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let st - let err = null - try { - binding.statfs(req.handle, filepath) - - await req - - st = new StatFs(...binding.requestResultStatfs(req.handle)) - } catch (e) { - err = new FileError(e.message, { operation: 'statfs', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, st, cb) -} - -function statfsSync(filepath) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.statfsSync(req.handle, filepath) - - return new StatFs(...binding.requestResultStatfs(req.handle)) - } catch (e) { - throw new FileError(e.message, { operation: 'statfs', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function ftruncate(fd, len = 0, cb) { - if (typeof len === 'function') { - cb = len - len = 0 - } - - if (typeof len !== 'number') len = 0 - - const req = FileRequest.borrow() - - let err = null - try { - binding.ftruncate(req.handle, fd, len) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'ftruncate', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function ftruncateSync(fd, len = 0) { - if (typeof len !== 'number') len = 0 - - const req = FileRequest.borrow() - - try { - binding.ftruncateSync(req.handle, fd, len) - } catch (e) { - throw new FileError(e.message, { operation: 'ftruncate', code: e.code, fd }) - } finally { - req.return() - } -} - -async function truncate(filepath, len, cb) { - let fd = -1 - let err - - try { - fd = await open(filepath, 'r+') - - await ftruncate(fd, len) - } catch (e) { - err = e - } finally { - if (fd !== -1) await close(fd) - } - - return done(err, cb) -} - -function truncateSync(filepath, len) { - let fd = -1 - let err - - try { - fd = openSync(filepath, 'r+') - - ftruncateSync(fd, len) - } catch (e) { - err = e - } finally { - if (fd !== -1) closeSync(fd) - } -} - -async function chmod(filepath, mode, cb) { - if (typeof mode === 'string') mode = toMode(mode) - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.chmod(req.handle, filepath, mode) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'chmod', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function chmodSync(filepath, mode) { - if (typeof mode === 'string') mode = toMode(mode) - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.chmodSync(req.handle, filepath, mode) - } catch (e) { - throw new FileError(e.message, { - operation: 'chmod', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function fchmod(fd, mode, cb) { - if (typeof mode === 'string') mode = toMode(mode) - - const req = FileRequest.borrow() - - let err = null - try { - binding.fchmod(req.handle, fd, mode) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'fchmod', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function fchmodSync(fd, mode) { - if (typeof mode === 'string') mode = toMode(mode) - - const req = FileRequest.borrow() - - try { - binding.fchmodSync(req.handle, fd, mode) - } catch (e) { - throw new FileError(e.message, { operation: 'fchmod', code: e.code, fd }) - } finally { - req.return() - } -} - -async function chown(filepath, uid, gid, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.chown(req.handle, filepath, uid, gid) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'chown', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, cb) -} - -function chownSync(filepath, uid, gid) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.chownSync(req.handle, filepath, uid, gid) - } catch (e) { - throw new FileError(e.message, { operation: 'chownSync', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function lchown(filepath, uid, gid, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.lchown(req.handle, filepath, uid, gid) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'lchown', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, cb) -} - -function lchownSync(filepath, uid, gid) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.lchownSync(req.handle, filepath, uid, gid) - } catch (e) { - throw new FileError(e.message, { operation: 'lchownSync', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function fchown(fd, uid, gid, cb) { - const req = FileRequest.borrow() - - let err = null - try { - binding.fchown(req.handle, fd, uid, gid) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'fchown', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function fchownSync(fd, uid, gid) { - const req = FileRequest.borrow() - - try { - binding.fchownSync(req.handle, fd, uid, gid) - } catch (e) { - throw new FileError(e.message, { operation: 'fchownSync', code: e.code, fd }) - } finally { - req.return() - } -} - -async function utimes(filepath, atime, mtime, cb) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.utimes(req.handle, filepath, atime, mtime) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'utimes', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, cb) -} - -function utimesSync(filepath, atime, mtime) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.utimesSync(req.handle, filepath, atime, mtime) - } catch (e) { - throw new FileError(e.message, { operation: 'utimes', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function lutimes(filepath, atime, mtime, cb) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.lutimes(req.handle, filepath, atime, mtime) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'lutimes', code: e.code, path: filepath }) - } finally { - req.return() - } - - return done(err, cb) -} - -function lutimesSync(filepath, atime, mtime) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.lutimesSync(req.handle, filepath, atime, mtime) - } catch (e) { - throw new FileError(e.message, { operation: 'lutimes', code: e.code, path: filepath }) - } finally { - req.return() - } -} - -async function futimes(fd, atime, mtime, cb) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - const req = FileRequest.borrow() - - let err = null - try { - binding.futimes(req.handle, fd, atime, mtime) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'futimes', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function futimesSync(fd, atime, mtime) { - if (typeof atime !== 'number') atime = atime.getTime() / 1000 - if (typeof mtime !== 'number') mtime = mtime.getTime() / 1000 - - const req = FileRequest.borrow() - - try { - binding.futimesSync(req.handle, fd, atime, mtime) - } catch (e) { - throw new FileError(e.message, { operation: 'futimesSync', code: e.code, fd }) - } finally { - req.return() - } -} - -async function link(src, dst, cb) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - let err = null - try { - binding.link(req.handle, src, dst) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'link', code: e.code, path: src, destination: dst }) - } finally { - req.return() - } - - return done(err, cb) -} - -function linkSync(src, dst) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - try { - binding.linkSync(req.handle, src, dst) - } catch (e) { - throw new FileError(e.message, { - operation: 'linkSync', - code: e.code, - path: src, - destination: dst - }) - } finally { - req.return() - } -} - -async function mkdir(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = { mode: 0o777 } - } - - if (typeof opts === 'number') opts = { mode: opts } - else if (!opts) opts = {} - - const mode = typeof opts.mode === 'number' ? opts.mode : 0o777 - - filepath = toNamespacedPath(filepath) - - if (opts.recursive) { - let err = null - try { - try { - await mkdir(filepath, { mode }) - } catch (err) { - if (err.code !== 'ENOENT') { - if (!(await stat(filepath)).isDirectory()) throw err - } else { - while (filepath.endsWith(path.sep)) filepath = filepath.slice(0, -1) - const i = filepath.lastIndexOf(path.sep) - if (i <= 0) throw err - - await mkdir(filepath.slice(0, i), { mode, recursive: true }) - - try { - await mkdir(filepath, { mode }) - } catch (err) { - if (!(await stat(filepath)).isDirectory()) throw err - } - } - } - } catch (e) { - err = e - } - - return done(err, cb) - } - - const req = FileRequest.borrow() - - let err = null - try { - binding.mkdir(req.handle, filepath, mode) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'mkdir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function mkdirSync(filepath, opts) { - if (typeof opts === 'number') opts = { mode: opts } - else if (!opts) opts = {} - - const mode = typeof opts.mode === 'number' ? opts.mode : 0o777 - - filepath = toNamespacedPath(filepath) - - if (opts.recursive) { - try { - mkdirSync(filepath, { mode }) - } catch (err) { - if (err.code !== 'ENOENT') { - if (!statSync(filepath).isDirectory()) throw err - } else { - while (filepath.endsWith(path.sep)) filepath = filepath.slice(0, -1) - const i = filepath.lastIndexOf(path.sep) - if (i <= 0) throw err - - mkdirSync(filepath.slice(0, i), { mode, recursive: true }) - - try { - mkdirSync(filepath, { mode }) - } catch (err) { - if (!statSync(filepath).isDirectory()) throw err - } - } - } - - return - } - - const req = FileRequest.borrow() - - try { - binding.mkdirSync(req.handle, filepath, mode) - } catch (e) { - throw new FileError(e.message, { - operation: 'mkdir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function mkdtemp(prefix, cb) { - prefix = toNamespacedPath(prefix) - - const req = FileRequest.borrow() - - let res - let err = null - try { - binding.mkdtemp(req.handle, prefix + 'XXXXXX') - - await req - - res = binding.requestResultPath(req.handle) - } catch (e) { - err = new FileError(e.message, { operation: 'mkdtemp', code: e.code, path: prefix }) - } finally { - req.return() - } - - return done(err, res, cb) -} - -function mkdtempSync(prefix) { - prefix = toNamespacedPath(prefix) - - const req = FileRequest.borrow() - - try { - binding.mkdtempSync(req.handle, prefix + 'XXXXXX') - - return binding.requestResultPath(req.handle) - } catch (e) { - throw new FileError(e.message, { operation: 'mkdtempSync', code: e.code, path: prefix }) - } finally { - req.return() - } -} - -async function rmdir(filepath, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.rmdir(req.handle, filepath) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'rmdir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function rmdirSync(filepath) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.rmdirSync(req.handle, filepath) - } catch (e) { - throw new FileError(e.message, { - operation: 'rmdir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function rm(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (!opts) opts = {} - - filepath = toNamespacedPath(filepath) - - let err = null - try { - const st = await lstat(filepath) - - if (st.isDirectory()) { - if (opts.recursive) { - try { - await rmdir(filepath) - } catch (err) { - if (err.code !== 'ENOTEMPTY') throw err - - const files = await readdir(filepath) - - for (const file of files) { - await rm(filepath + path.sep + file, opts) - } - - await rmdir(filepath) - } - } else { - throw new FileError('is a directory', { - operation: 'rm', - code: 'EISDIR', - path: filepath - }) - } - } else { - await unlink(filepath) - } - } catch (e) { - if (e.code !== 'ENOENT' || !opts.force) err = e - } - - return done(err, cb) -} - -function rmSync(filepath, opts) { - if (!opts) opts = {} - - filepath = toNamespacedPath(filepath) - - try { - const st = lstatSync(filepath) - - if (st.isDirectory()) { - if (opts.recursive) { - try { - rmdirSync(filepath) - } catch (err) { - if (err.code !== 'ENOTEMPTY') throw err - - const files = readdirSync(filepath) - - for (const file of files) { - rmSync(filepath + path.sep + file, opts) - } - - rmdirSync(filepath) - } - } else { - throw new FileError('is a directory', { - operation: 'rm', - code: 'EISDIR', - path: filepath - }) - } - } else { - unlinkSync(filepath) - } - } catch (err) { - if (err.code !== 'ENOENT' || !opts.force) throw err - } -} - -async function unlink(filepath, cb) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.unlink(req.handle, filepath) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'unlink', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function unlinkSync(filepath) { - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.unlinkSync(req.handle, filepath) - } catch (e) { - throw new FileError(e.message, { - operation: 'unlink', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function rename(src, dst, cb) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - let err = null - try { - binding.rename(req.handle, src, dst) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'rename', - code: e.code, - path: src, - destination: dst - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function renameSync(src, dst) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - try { - binding.renameSync(req.handle, src, dst) - } catch (e) { - throw new FileError(e.message, { - operation: 'rename', - code: e.code, - path: src, - destination: dst - }) - } finally { - req.return() - } -} - -async function copyFile(src, dst, mode = 0, cb) { - if (typeof mode === 'function') { - cb = mode - mode = 0 - } - - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - let err = null - try { - binding.copyfile(req.handle, src, dst, mode) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'copyfile', - code: e.code, - path: src, - destination: dst - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function copyFileSync(src, dst, mode = 0) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const req = FileRequest.borrow() - - try { - binding.copyfileSync(req.handle, src, dst, mode) - } catch (e) { - throw new FileError(e.message, { - operation: 'copyfile', - code: e.code, - path: src, - destination: dst - }) - } finally { - req.return() - } -} - -async function cp(src, dst, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (!opts) opts = {} - - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - let err = null - try { - const st = await lstat(src) - - if (st.isDirectory()) { - if (opts.recursive !== true) { - throw new FileError('is a directory', { operation: 'cp', code: 'EISDIR', path: src }) - } - - try { - await lstat(dst) - } catch (e) { - if (e.code !== 'ENOENT') throw e - - await mkdir(dst, { mode: st.mode, recursive: true }) - } - - const dir = await opendir(src) - for await (const { name } of dir) { - await cp(path.join(src, name), path.join(dst, name), opts) - } - } else if (st.isFile()) { - await copyFile(src, dst) - await chmod(dst, st.mode) - } - } catch (e) { - err = e - } - - return done(err, cb) -} - -function cpSync(src, dst, opts = {}) { - src = toNamespacedPath(src) - dst = toNamespacedPath(dst) - - const st = lstatSync(src) - - if (st.isDirectory()) { - if (opts.recursive !== true) { - throw new FileError('is a directory', { operation: 'cp', code: 'EISDIR', path: src }) - } - - try { - lstatSync(dst) - } catch (e) { - if (e.code !== 'ENOENT') throw e - - mkdirSync(dst, { mode: st.mode, recursive: true }) - } - - const dir = opendirSync(src) - for (const { name } of dir) { - cpSync(path.join(src, name), path.join(dst, name), opts) - } - } else if (st.isFile()) { - copyFileSync(src, dst) - chmodSync(dst, st.mode) - } -} - -async function realpath(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'utf8' } = opts - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let res - let err = null - try { - binding.realpath(req.handle, filepath) - - await req - - res = Buffer.from(binding.requestResultString(req.handle)) - - if (encoding !== 'buffer') res = res.toString(encoding) - } catch (e) { - err = new FileError(e.message, { - operation: 'realpath', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, res, cb) -} - -function realpathSync(filepath, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'utf8' } = opts - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.realpathSync(req.handle, filepath) - - let res = Buffer.from(binding.requestResultString(req.handle)) - - if (encoding !== 'buffer') res = res.toString(encoding) - - return res - } catch (e) { - throw new FileError(e.message, { - operation: 'realpath', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function readlink(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'utf8' } = opts - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let res - let err = null - try { - binding.readlink(req.handle, filepath) - - await req - - res = Buffer.from(binding.requestResultString(req.handle)) - - if (encoding !== 'buffer') res = res.toString(encoding) - } catch (e) { - err = new FileError(e.message, { - operation: 'readlink', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, res, cb) -} - -function readlinkSync(filepath, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'utf8' } = opts - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.readlinkSync(req.handle, filepath) - - let res = Buffer.from(binding.requestResultString(req.handle)) - - if (encoding !== 'buffer') res = res.toString(encoding) - - return res - } catch (e) { - throw new FileError(e.message, { - operation: 'readlink', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function fsync(fd, cb) { - const req = FileRequest.borrow() - - let err = null - try { - binding.fsync(req.handle, fd) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'fsync', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function fsyncSync(fd) { - const req = FileRequest.borrow() - - try { - binding.fsyncSync(req.handle, fd) - } catch (e) { - throw new FileError(e.message, { operation: 'fsyncSync', code: e.code, fd }) - } finally { - req.return() - } -} - -async function fdatasync(fd, cb) { - const req = FileRequest.borrow() - - let err = null - try { - binding.fdatasync(req.handle, fd) - - await req - } catch (e) { - err = new FileError(e.message, { operation: 'fdatasync', code: e.code, fd }) - } finally { - req.return() - } - - return done(err, cb) -} - -function fdatasyncSync(fd) { - const req = FileRequest.borrow() - - try { - binding.fdatasyncSync(req.handle, fd) - } catch (e) { - throw new FileError(e.message, { operation: 'fdatasyncSync', code: e.code, fd }) - } finally { - req.return() - } -} - -function normalizeSymlinkTarget(target, type, filepath) { - if (isWindows) { - if (type === constants.UV_FS_SYMLINK_JUNCTION) target = path.resolve(filepath, '..', target) - - if (path.isAbsolute(target)) return path.toNamespacedPath(target) - - return target.replace(/\//g, path.sep) - } - - return target -} - -async function symlink(target, filepath, type, cb) { - if (typeof type === 'function') { - cb = type - type = null - } - - filepath = toNamespacedPath(filepath) - - if (typeof type === 'string') { - switch (type) { - case 'dir': - type = constants.UV_FS_SYMLINK_DIR - break - case 'junction': - type = constants.UV_FS_SYMLINK_JUNCTION - break - case 'file': - default: - type = 0 - break - } - } else if (typeof type !== 'number') { - if (isWindows) { - target = path.resolve(filepath, '..', target) - - try { - type = (await stat(target)).isDirectory() - ? constants.UV_FS_SYMLINK_DIR - : constants.UV_FS_SYMLINK_JUNCTION - } catch { - type = 0 - } - } else { - type = 0 - } - } - - target = normalizeSymlinkTarget(target, type, filepath) - - const req = FileRequest.borrow() - - let err = null - try { - binding.symlink(req.handle, target, filepath, type) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'symlink', - code: e.code, - path: target, - destination: filepath - }) - } finally { - req.return() - } - - return done(err, cb) -} - -function symlinkSync(target, filepath, type) { - filepath = toNamespacedPath(filepath) - - if (typeof type === 'string') { - switch (type) { - case 'dir': - type = constants.UV_FS_SYMLINK_DIR - break - case 'junction': - type = constants.UV_FS_SYMLINK_JUNCTION - break - case 'file': - default: - type = 0 - break - } - } else if (typeof type !== 'number') { - if (isWindows) { - target = path.resolve(filepath, '..', target) - - try { - type = statSync(target).isDirectory() - ? constants.UV_FS_SYMLINK_DIR - : constants.UV_FS_SYMLINK_JUNCTION - } catch { - type = 0 - } - } else { - type = 0 - } - } - - target = normalizeSymlinkTarget(target, type, filepath) - - const req = FileRequest.borrow() - - try { - binding.symlinkSync(req.handle, target, filepath, type) - } catch (e) { - throw new FileError(e.message, { - operation: 'symlink', - code: e.code, - path: target, - destination: filepath - }) - } finally { - req.return() - } -} - -async function opendir(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - let dir - let err = null - try { - binding.opendir(req.handle, filepath) - - await req - - dir = new Dir(filepath, binding.requestResultDir(req.handle), opts) - } catch (e) { - err = new FileError(e.message, { - operation: 'opendir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } - - return done(err, dir, cb) -} - -function opendirSync(filepath, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - filepath = toNamespacedPath(filepath) - - const req = FileRequest.borrow() - - try { - binding.opendirSync(req.handle, filepath) - - return new Dir(filepath, binding.requestResultDir(req.handle), opts) - } catch (e) { - throw new FileError(e.message, { - operation: 'opendir', - code: e.code, - path: filepath - }) - } finally { - req.return() - } -} - -async function readdir(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { withFileTypes = false, recursive = false } = opts - - filepath = toNamespacedPath(filepath) - - const queue = [filepath] - let result = [] - let err = null - try { - while (queue.length !== 0) { - const dir = await opendir(queue.pop()) - - for await (const entry of dir) { - const entryPath = path.join(entry.parentPath, entry.name) - - if (withFileTypes) { - result.push(entry) - } else { - result.push(path.relative(filepath, entryPath)) - } - - if (recursive && entry.isDirectory()) queue.push(entryPath) - } - } - } catch (e) { - result = [] - err = e - } - - return done(err, result, cb) -} - -function readdirSync(filepath, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { withFileTypes = false, recursive = false } = opts - - filepath = toNamespacedPath(filepath) - - const queue = [filepath] - const result = [] - - while (queue.length !== 0) { - const dir = opendirSync(queue.pop(), opts) - - for (const entry of dir) { - const entryPath = path.join(entry.parentPath, entry.name) - - if (withFileTypes) { - result.push(entry) - } else { - result.push(path.relative(filepath, entryPath)) - } - - if (recursive && entry.isDirectory()) queue.push(entryPath) - } - } - - return result -} - -async function readFile(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'buffer' } = opts - - let fd = -1 - let buffer = null - let err = null - try { - fd = await open(filepath, opts.flag || 'r') - - const st = await fstat(fd) - - let len = 0 - - if (st.size === 0) { - const buffers = [] - - while (true) { - buffer = Buffer.allocUnsafe(8192) - const r = await read(fd, buffer) - len += r - if (r === 0) break - buffers.push(buffer.subarray(0, r)) - } - - buffer = Buffer.concat(buffers) - } else { - buffer = Buffer.allocUnsafe(st.size) - - while (true) { - const r = await read(fd, len ? buffer.subarray(len) : buffer) - len += r - if (r === 0 || len === buffer.byteLength) break - } - - if (len !== buffer.byteLength) buffer = buffer.subarray(0, len) - } - - if (encoding !== 'buffer') buffer = buffer.toString(encoding) - } catch (e) { - err = e - } finally { - if (fd !== -1) await close(fd) - } - - return done(err, buffer, cb) -} - -function readFileSync(filepath, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - const { encoding = 'buffer' } = opts - - let fd = -1 - try { - fd = openSync(filepath, opts.flag || 'r') - - const st = fstatSync(fd) - - let buffer - let len = 0 - - if (st.size === 0) { - const buffers = [] - - while (true) { - buffer = Buffer.allocUnsafe(8192) - const r = readSync(fd, buffer) - len += r - if (r === 0) break - buffers.push(buffer.subarray(0, r)) - } - - buffer = Buffer.concat(buffers) - } else { - buffer = Buffer.allocUnsafe(st.size) - - while (true) { - const r = readSync(fd, len ? buffer.subarray(len) : buffer) - len += r - if (r === 0 || len === buffer.byteLength) break - } - - if (len !== buffer.byteLength) buffer = buffer.subarray(0, len) - } - - if (encoding !== 'buffer') buffer = buffer.toString(encoding) - - return buffer - } finally { - if (fd !== -1) closeSync(fd) - } -} - -async function writeFile(filepath, data, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - if (typeof data === 'string') data = Buffer.from(data, opts.encoding) - - let fd = -1 - let len = 0 - let err = null - try { - fd = await open(filepath, opts.flag || 'w', opts.mode || 0o666) - - while (true) { - len += await write(fd, len ? data.subarray(len) : data) - if (len === data.byteLength) break - } - } catch (e) { - err = e - } finally { - if (fd !== -1) await close(fd) - } - - return done(err, len, cb) -} - -function writeFileSync(filepath, data, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - if (typeof data === 'string') data = Buffer.from(data, opts.encoding) - - let fd = -1 - try { - fd = openSync(filepath, opts.flag || 'w', opts.mode || 0o666) - - let len = 0 - - while (true) { - len += writeSync(fd, len ? data.subarray(len) : data) - if (len === data.byteLength) break - } - } finally { - if (fd !== -1) closeSync(fd) - } -} - -function appendFile(filepath, data, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - if (!opts.flag) opts = { ...opts, flag: 'a' } - - return writeFile(filepath, data, opts, cb) -} - -function appendFileSync(filepath, data, opts) { - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - if (!opts.flag) opts = { ...opts, flag: 'a' } - - return writeFileSync(filepath, data, opts) -} - -function watch(filepath, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (typeof opts === 'string') opts = { encoding: opts } - else if (!opts) opts = {} - - filepath = toNamespacedPath(filepath) - - return new Watcher(filepath, opts, cb) -} - -class Stats { - constructor( - dev, - mode, - nlink, - uid, - gid, - rdev, - blksize, - ino, - size, - blocks, - atimeMs, - mtimeMs, - ctimeMs, - birthtimeMs - ) { - this.dev = dev - this.mode = mode - this.nlink = nlink - this.uid = uid - this.gid = gid - this.rdev = rdev - this.blksize = blksize - this.ino = ino - this.size = size - this.blocks = blocks - this.atimeMs = atimeMs - this.mtimeMs = mtimeMs - this.ctimeMs = ctimeMs - this.birthtimeMs = birthtimeMs - this.atime = new Date(atimeMs) - this.mtime = new Date(mtimeMs) - this.ctime = new Date(ctimeMs) - this.birthtime = new Date(birthtimeMs) - } - - isDirectory() { - return (this.mode & constants.S_IFMT) === constants.S_IFDIR - } - - isFile() { - return (this.mode & constants.S_IFMT) === constants.S_IFREG - } - - isBlockDevice() { - return (this.mode & constants.S_IFMT) === constants.S_IFBLK - } - - isCharacterDevice() { - return (this.mode & constants.S_IFMT) === constants.S_IFCHR - } - - isFIFO() { - return (this.mode & constants.S_IFMT) === constants.S_IFIFO - } - - isSymbolicLink() { - return (this.mode & constants.S_IFMT) === constants.S_IFLNK - } - - isSocket() { - return (this.mode & constants.S_IFMT) === constants.S_IFSOCK - } -} - -class StatFs { - constructor(type, bsize, blocks, bfree, bavail, files, ffree) { - this.type = type - this.bsize = bsize - this.blocks = blocks - this.bfree = bfree - this.bavail = bavail - this.files = files - this.ffree = ffree - } -} - -class Dir { - constructor(path, handle, opts = {}) { - const { encoding = 'utf8', bufferSize = 32 } = opts - - this.path = path - - this._encoding = encoding - this._capacity = bufferSize - this._buffer = new FIFO() - this._ended = false - this._handle = handle - } - - async read(cb) { - if (this._buffer.length) return ok(this._buffer.shift(), cb) - if (this._ended) return ok(null, cb) - - const req = FileRequest.borrow() - - let entries - let err = null - try { - req.retain(binding.readdir(req.handle, this._handle, this._capacity)) - - await req - - entries = binding.requestResultDirents(req.handle) - } catch (e) { - err = new FileError(e.message, { - operation: 'readdir', - code: e.code, - path: this.path - }) - } finally { - req.return() - } - - if (err) return fail(err, cb) - - if (entries.length === 0) { - this._ended = true - - return ok(null, cb) - } - - for (const entry of entries) { - let name = Buffer.from(entry.name) - - if (this._encoding !== 'buffer') name = name.toString(this._encoding) - - this._buffer.push(new Dirent(this.path, name, entry.type)) - } - - return ok(this._buffer.shift(), cb) - } - - readSync() { - if (this._buffer.length) return this._buffer.shift() - if (this._ended) return null - - const req = FileRequest.borrow() - - let entries - try { - req.retain(binding.readdirSync(req.handle, this._handle, this._capacity)) - - entries = binding.requestResultDirents(req.handle) - } catch (e) { - throw new FileError(e.message, { - operation: 'readdir', - code: e.code, - path: this.path - }) - } finally { - req.return() - } - - if (entries.length === 0) { - this._ended = true - - return null - } - - for (const entry of entries) { - let name = Buffer.from(entry.name) - - if (this._encoding !== 'buffer') name = name.toString(this._encoding) - - this._buffer.push(new Dirent(this.path, name, entry.type)) - } - - return this._buffer.shift() - } - - async close(cb) { - const req = FileRequest.borrow() - - let err = null - try { - binding.closedir(req.handle, this._handle) - - await req - } catch (e) { - err = new FileError(e.message, { - operation: 'closedir', - code: e.code, - path: this.path - }) - } finally { - req.return() - } - - this._handle = null - - return done(err, cb) - } - - closeSync() { - const req = FileRequest.borrow() - - try { - binding.closedirSync(req.handle, this._handle) - } catch (e) { - throw new FileError(e.message, { - operation: 'closedir', - code: e.code, - path: this.path - }) - } finally { - req.return() - } - - this._handle = null - } - - [Symbol.dispose]() { - this.closeSync() - } - - async [Symbol.asyncDispose]() { - await this.close() - } - - *[Symbol.iterator]() { - while (true) { - const entry = this.readSync() - if (entry === null) break - yield entry - } - - this.closeSync() - } - - async *[Symbol.asyncIterator]() { - while (true) { - const entry = await this.read() - if (entry === null) break - yield entry - } - - await this.close() - } -} - -class Dirent { - constructor(parentPath, name, type) { - this.parentPath = parentPath - this.name = name - this.type = type - } - - isFile() { - return this.type === constants.UV_DIRENT_FILE - } - - isDirectory() { - return this.type === constants.UV_DIRENT_DIR - } - - isSymbolicLink() { - return this.type === constants.UV_DIRENT_LINK - } - - isFIFO() { - return this.type === constants.UV_DIRENT_FIFO - } - - isSocket() { - return this.type === constants.UV_DIRENT_SOCKET - } - - isCharacterDevice() { - return this.type === constants.UV_DIRENT_CHAR - } - - isBlockDevice() { - return this.type === constants.UV_DIRENT_BLOCK - } -} - -class FileReadStream extends Readable { - constructor(path, opts = {}) { - const { eagerOpen = true } = opts - - super({ eagerOpen, ...opts }) - - this.path = path - this.fd = typeof opts.fd === 'number' ? opts.fd : -1 - this.flags = opts.flags || 'r' - this.mode = opts.mode || 0o666 - - this._offset = opts.start || 0 - this._missing = 0 - - if (opts.length) { - this._missing = opts.length - } else if (typeof opts.end === 'number') { - this._missing = opts.end - this._offset + 1 - } else { - this._missing = -1 - } - } - - async _open(cb) { - let err - - if (this.fd === -1) { - err = null - try { - this.fd = await open(this.path, this.flags, this.mode) - } catch (e) { - err = e - } - - if (err) return cb(err) - } - - let st - err = null - try { - st = await fstat(this.fd) - } catch (e) { - err = e - } - - if (err) return cb(err) - - if (this._missing === -1) this._missing = st.size - - if (st.size < this._offset) { - this._offset = st.size - this._missing = 0 - } else if (st.size < this._offset + this._missing) { - this._missing = st.size - this._offset - } - - cb(null) - } - - async _read(size) { - if (this._missing <= 0) return this.push(null) - - const data = Buffer.allocUnsafe(Math.min(this._missing, size)) - - let len - let err = null - try { - len = await read(this.fd, data, 0, data.byteLength, this._offset) - } catch (e) { - err = e - } - - if (err) return this.destroy(err) - - if (len === 0) return this.push(null) - - if (this._missing < len) len = this._missing - - this._missing -= len - this._offset += len - - this.push(data.subarray(0, len)) - } - - async _destroy(err, cb) { - if (this.fd === -1) return cb(err) - - try { - await close(this.fd) - } catch (e) { - err = err || e - } - - cb(err) - } -} - -class FileWriteStream extends Writable { - constructor(path, opts = {}) { - const { eagerOpen = true } = opts - - super({ eagerOpen, ...opts }) - - this.path = path - this.fd = typeof opts.fd === 'number' ? opts.fd : -1 - this.flags = opts.flags || 'w' - this.mode = opts.mode || 0o666 - } - - async _open(cb) { - if (this.fd !== -1) return cb(null) - - let err = null - try { - this.fd = await open(this.path, this.flags, this.mode) - } catch (e) { - err = e - } - - cb(err) - } - - async _writev(batch, cb) { - let err = null - try { - await writev( - this.fd, - batch.map(({ chunk }) => chunk) - ) - } catch (e) { - err = e - } - - cb(err) - } - - async _destroy(err, cb) { - if (this.fd === -1) return cb(err) - - try { - await close(this.fd) - } catch (e) { - err = err || e - } - - cb(err) - } -} - -class Watcher extends EventEmitter { - constructor(path, opts, onchange) { - if (typeof opts === 'function') { - onchange = opts - opts = {} - } - - if (!opts) opts = {} - - const { persistent = true, recursive = false, encoding = 'utf8' } = opts - - super() - - this._closed = false - this._encoding = encoding - this._handle = binding.watcherInit(path, recursive, this, this._onevent, this._onclose) - - if (!persistent) this.unref() - - if (onchange) this.on('change', onchange) - } - - close() { - if (this._closed) return - this._closed = true - - binding.watcherClose(this._handle) - } - - ref() { - if (this._handle) binding.watcherRef(this._handle) - return this - } - - unref() { - if (this._handle) binding.watcherUnref(this._handle) - return this - } - - [Symbol.asyncIterator]() { - const buffer = [] - let done = false - let error = null - let next = null - - this.on('change', (eventType, filename) => { - if (next) { - next.resolve({ done: false, value: { eventType, filename } }) - next = null - } else { - buffer.push({ eventType, filename }) - } - }) - .on('error', (err) => { - done = true - error = err - - if (next) { - next.reject(error) - next = null - } - }) - .on('close', () => { - done = true - - if (next) { - next.resolve({ done }) - next = null - } - }) - - return { - next: () => - new Promise((resolve, reject) => { - if (error) return reject(error) - - if (buffer.length) return resolve({ done: false, value: buffer.shift() }) - - if (done) return resolve({ done }) - - next = { resolve, reject } - }) - } - } - - _onevent(err, events, filename) { - if (err) { - this.close() - this.emit('error', err) - } else { - const path = - this._encoding === 'buffer' - ? Buffer.from(filename) - : Buffer.from(filename).toString(this._encoding) - - if (events & binding.UV_RENAME) { - this.emit('change', 'rename', path) - } - - if (events & binding.UV_CHANGE) { - this.emit('change', 'change', path) - } - } - } - - _onclose() { - this._handle = null - - this.emit('close') - } -} - -exports.access = access -exports.appendFile = appendFile -exports.chmod = chmod -exports.chown = chown -exports.close = close -exports.copyFile = copyFile -exports.cp = cp -exports.exists = exists -exports.fchmod = fchmod -exports.fchown = fchown -exports.fdatasync = fdatasync -exports.fstat = fstat -exports.fsync = fsync -exports.ftruncate = ftruncate -exports.futimes = futimes -exports.lchown = lchown -exports.lutimes = lutimes -exports.link = link -exports.lstat = lstat -exports.mkdir = mkdir -exports.mkdtemp = mkdtemp -exports.open = open -exports.opendir = opendir -exports.read = read -exports.readFile = readFile -exports.readdir = readdir -exports.readlink = readlink -exports.readv = readv -exports.realpath = realpath -exports.rename = rename -exports.rm = rm -exports.rmdir = rmdir -exports.stat = stat -exports.statfs = statfs -exports.symlink = symlink -exports.truncate = truncate -exports.unlink = unlink -exports.utimes = utimes -exports.watch = watch -exports.write = write -exports.writeFile = writeFile -exports.writev = writev - -exports.accessSync = accessSync -exports.appendFileSync = appendFileSync -exports.chmodSync = chmodSync -exports.chownSync = chownSync -exports.closeSync = closeSync -exports.copyFileSync = copyFileSync -exports.cpSync = cpSync -exports.existsSync = existsSync -exports.fchmodSync = fchmodSync -exports.fchownSync = fchownSync -exports.fdatasyncSync = fdatasyncSync -exports.fstatSync = fstatSync -exports.fsyncSync = fsyncSync -exports.ftruncateSync = ftruncateSync -exports.futimesSync = futimesSync -exports.lchownSync = lchownSync -exports.lutimesSync = lutimesSync -exports.linkSync = linkSync -exports.lstatSync = lstatSync -exports.mkdirSync = mkdirSync -exports.mkdtempSync = mkdtempSync -exports.openSync = openSync -exports.opendirSync = opendirSync -exports.readFileSync = readFileSync -exports.readSync = readSync -exports.readdirSync = readdirSync -exports.readlinkSync = readlinkSync -exports.readvSync = readvSync -exports.realpathSync = realpathSync -exports.renameSync = renameSync -exports.rmSync = rmSync -exports.rmdirSync = rmdirSync -exports.statSync = statSync -exports.statfsSync = statfsSync -exports.symlinkSync = symlinkSync -exports.truncateSync = truncateSync -exports.unlinkSync = unlinkSync -exports.utimesSync = utimesSync -exports.writeFileSync = writeFileSync -exports.writeSync = writeSync -exports.writevSync = writevSync - -exports.promises = require('./promises') - -exports.Stats = Stats -exports.StatFs = StatFs -exports.Dir = Dir -exports.Dirent = Dirent -exports.Watcher = Watcher - -exports.ReadStream = FileReadStream - -exports.createReadStream = function createReadStream(path, opts) { - return new FileReadStream(path, opts) -} - -exports.WriteStream = FileWriteStream - -exports.createWriteStream = function createWriteStream(path, opts) { - return new FileWriteStream(path, opts) -} - -function toNamespacedPath(filepath) { - if (typeof filepath !== 'string') { - if (isURL(filepath)) filepath = fileURLToPath(filepath) - else filepath = filepath.toString() - } - - return path.toNamespacedPath(filepath) -} - -function toFlags(flags) { - switch (flags) { - case 'r': - return constants.O_RDONLY - case 'rs': // Fall through. - case 'sr': - return constants.O_RDONLY | constants.O_SYNC - case 'r+': - return constants.O_RDWR - case 'rs+': // Fall through. - case 'sr+': - return constants.O_RDWR | constants.O_SYNC - - case 'w': - return constants.O_TRUNC | constants.O_CREAT | constants.O_WRONLY - case 'wx': // Fall through. - case 'xw': - return constants.O_TRUNC | constants.O_CREAT | constants.O_WRONLY | constants.O_EXCL - - case 'w+': - return constants.O_TRUNC | constants.O_CREAT | constants.O_RDWR - case 'wx+': // Fall through. - case 'xw+': - return constants.O_TRUNC | constants.O_CREAT | constants.O_RDWR | constants.O_EXCL - - case 'a': - return constants.O_APPEND | constants.O_CREAT | constants.O_WRONLY - case 'ax': // Fall through. - case 'xa': - return constants.O_APPEND | constants.O_CREAT | constants.O_WRONLY | constants.O_EXCL - case 'as': // Fall through. - case 'sa': - return constants.O_APPEND | constants.O_CREAT | constants.O_WRONLY | constants.O_SYNC - - case 'a+': - return constants.O_APPEND | constants.O_CREAT | constants.O_RDWR - case 'ax+': // Fall through. - case 'xa+': - return constants.O_APPEND | constants.O_CREAT | constants.O_RDWR | constants.O_EXCL - case 'as+': // Fall through. - case 'sa+': - return constants.O_APPEND | constants.O_CREAT | constants.O_RDWR | constants.O_SYNC - default: - return 0 - } -} - -function toMode(mode) { - return parseInt(mode, 8) -} diff --git a/node_modules/bare-fs/lib/constants.d.ts b/node_modules/bare-fs/lib/constants.d.ts deleted file mode 100644 index 752e2a6..0000000 --- a/node_modules/bare-fs/lib/constants.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -declare const constants: { - O_RDWR: number - O_RDONLY: number - O_WRONLY: number - O_CREAT: number - O_TRUNC: number - O_APPEND: number - - F_OK: number - R_OK: number - W_OK: number - X_OK: number - - S_IFMT: number - S_IFREG: number - S_IFDIR: number - S_IFCHR: number - S_IFLNK: number - S_IFBLK: number - S_IFIFO: number - S_IFSOCK: number - - S_IRUSR: number - S_IWUSR: number - S_IXUSR: number - S_IRGRP: number - S_IWGRP: number - S_IXGRP: number - S_IROTH: number - S_IWOTH: number - S_IXOTH: number - - UV_DIRENT_UNKNOWN: number - UV_DIRENT_FILE: number - UV_DIRENT_DIR: number - UV_DIRENT_LINK: number - UV_DIRENT_FIFO: number - UV_DIRENT_SOCKET: number - UV_DIRENT_CHAR: number - UV_DIRENT_BLOCK: number - - COPYFILE_EXCL: number - COPYFILE_FICLONE: number - COPYFILE_FICLONE_FORCE: number - UV_FS_SYMLINK_DIR: number - UV_FS_SYMLINK_JUNCTION: number -} - -export = constants diff --git a/node_modules/bare-fs/lib/constants.js b/node_modules/bare-fs/lib/constants.js deleted file mode 100644 index 191cb64..0000000 --- a/node_modules/bare-fs/lib/constants.js +++ /dev/null @@ -1,49 +0,0 @@ -const binding = require('../binding') - -module.exports = { - O_RDWR: binding.O_RDWR, - O_RDONLY: binding.O_RDONLY, - O_WRONLY: binding.O_WRONLY, - O_CREAT: binding.O_CREAT, - O_TRUNC: binding.O_TRUNC, - O_APPEND: binding.O_APPEND, - - F_OK: binding.F_OK || 0, - R_OK: binding.R_OK || 0, - W_OK: binding.W_OK || 0, - X_OK: binding.X_OK || 0, - - S_IFMT: binding.S_IFMT, - S_IFREG: binding.S_IFREG, - S_IFDIR: binding.S_IFDIR, - S_IFCHR: binding.S_IFCHR, - S_IFLNK: binding.S_IFLNK, - S_IFBLK: binding.S_IFBLK || 0, - S_IFIFO: binding.S_IFIFO || 0, - S_IFSOCK: binding.S_IFSOCK || 0, - - S_IRUSR: binding.S_IRUSR || 0, - S_IWUSR: binding.S_IWUSR || 0, - S_IXUSR: binding.S_IXUSR || 0, - S_IRGRP: binding.S_IRGRP || 0, - S_IWGRP: binding.S_IWGRP || 0, - S_IXGRP: binding.S_IXGRP || 0, - S_IROTH: binding.S_IROTH || 0, - S_IWOTH: binding.S_IWOTH || 0, - S_IXOTH: binding.S_IXOTH || 0, - - UV_DIRENT_UNKNOWN: binding.UV_DIRENT_UNKNOWN, - UV_DIRENT_FILE: binding.UV_DIRENT_FILE, - UV_DIRENT_DIR: binding.UV_DIRENT_DIR, - UV_DIRENT_LINK: binding.UV_DIRENT_LINK, - UV_DIRENT_FIFO: binding.UV_DIRENT_FIFO, - UV_DIRENT_SOCKET: binding.UV_DIRENT_SOCKET, - UV_DIRENT_CHAR: binding.UV_DIRENT_CHAR, - UV_DIRENT_BLOCK: binding.UV_DIRENT_BLOCK, - - COPYFILE_EXCL: binding.UV_FS_COPYFILE_EXCL, - COPYFILE_FICLONE: binding.UV_FS_COPYFILE_FICLONE, - COPYFILE_FICLONE_FORCE: binding.UV_FS_COPYFILE_FICLONE_FORCE, - UV_FS_SYMLINK_DIR: binding.UV_FS_SYMLINK_DIR, - UV_FS_SYMLINK_JUNCTION: binding.UV_FS_SYMLINK_JUNCTION -} diff --git a/node_modules/bare-fs/lib/errors.d.ts b/node_modules/bare-fs/lib/errors.d.ts deleted file mode 100644 index f93ebcf..0000000 --- a/node_modules/bare-fs/lib/errors.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare class FileError extends Error { - private constructor(msg: string) - - readonly code: string - readonly operation?: string - readonly path?: string - readonly destination?: string - readonly fd?: number -} - -export = FileError diff --git a/node_modules/bare-fs/lib/errors.js b/node_modules/bare-fs/lib/errors.js deleted file mode 100644 index b427abd..0000000 --- a/node_modules/bare-fs/lib/errors.js +++ /dev/null @@ -1,55 +0,0 @@ -const os = require('bare-os') - -module.exports = class FileError extends Error { - constructor(msg, opts = {}) { - const { code, operation = null, path = null, destination = null, fd = -1 } = opts - - if (operation !== null) msg += describe(operation, opts) - - super(`${code}: ${msg}`) - - this.code = code - - if (operation !== null) this.operation = operation - if (path !== null) this.path = path - if (destination !== null) this.destination = destination - if (fd !== -1) this.fd = fd - } - - get name() { - return 'FileError' - } - - // For Node.js compatibility - get errno() { - return os.constants.errnos[this.code] - } - - // For Node.js compatibility - get syscall() { - return this.operation - } - - // For Node.js compatibility - get dest() { - return this.destination - } -} - -function describe(operation, opts) { - const { path = null, destination = null, fd = -1 } = opts - - let result = `, ${operation}` - - if (path !== null) { - result += ` ${JSON.stringify(path)}` - - if (destination !== null) { - result += ` -> ${JSON.stringify(destination)}` - } - } else if (fd !== -1) { - result += ` ${fd}` - } - - return result -} diff --git a/node_modules/bare-fs/package.json b/node_modules/bare-fs/package.json deleted file mode 100644 index ddeb532..0000000 --- a/node_modules/bare-fs/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "bare-fs", - "version": "4.7.1", - "description": "Native file system operations for Bare", - "exports": { - "./package": "./package.json", - ".": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./promises": { - "types": "./promises.d.ts", - "default": "./promises.js" - }, - "./constants": { - "types": "./lib/constants.d.ts", - "default": "./lib/constants.js" - } - }, - "files": [ - "index.js", - "index.d.ts", - "promises.js", - "promises.d.ts", - "binding.c", - "binding.js", - "CMakeLists.txt", - "lib", - "prebuilds" - ], - "addon": true, - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "brittle-bare --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-fs.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-fs/issues" - }, - "homepage": "https://github.com/holepunchto/bare-fs#readme", - "engines": { - "bare": ">=1.16.0" - }, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "devDependencies": { - "bare-buffer": "^3.0.2", - "bare-crypto": "^1.11.2", - "brittle": "^3.1.1", - "cmake-bare": "^1.1.7", - "lunte": "^1.6.0", - "prettier": "^3.4.1", - "prettier-config-holepunch": "^2.0.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } -} diff --git a/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare b/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare deleted file mode 100644 index 9e184cb492a9a72fa0555c831f21de27a2c471d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51520 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 diff --git a/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare b/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare deleted file mode 100644 index 4a17f71801eb329bdffc078cf5f86a402f56bbf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66600 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 diff --git a/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare b/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare deleted file mode 100644 index 686bb34ac6d93624e22aef1a07e07bb33bf82141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94352 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 diff --git a/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare b/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare deleted file mode 100644 index f1445802e7e68751cd7d6dd0074f2fe85b757bdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60720 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 TyT}l)3@WP@EvJut8pi(tN-IO& diff --git a/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare b/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare deleted file mode 100644 index 2ffa9144b29adcc4a1993b5fff9210ecc8b2d7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94288 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 diff --git a/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare b/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare deleted file mode 100644 index 5e00f941f48b948afdeab0f4bbdc9f63d834edb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109864 zcmeHwdtg+>_5bW{fbdX)fS{oAPz;EQiVBLdknmCj3?QiJ67nFyki=vIBJ^tnRBUM_ zN-b8aJk%0uZM3LpeV|aKii(O>t+ffkHooJd7*zE4IWuSW&YhhQDf-v%M(@t~oH=Li z%x9kW&g}B?*B^h^L5PsRUu#^Qa22!?;yRH=Dscp^HxV0)O&K+Pid0!2($&x@j3k7< zC^8m{=Uo-|%#zZJs<`;oYy%u-Q3ffZ(uA>CdAwp)c|v8U7k^Ae?T)CBu$f*er-!o3 zKb2mrAg`!2uM8SHz3ERXyKgx?!e)9RDStWT@v_3=*~%>`y(!PAh!cq<{AsL^l{S>I zSVi&t!s6UmVR3$m#QyqN`keBt;Y< z8bUCp;?qS|)Iwsh*(FA`Hk)2|*s8yf^w)^m+++<9Qob5+seBm`Q7c~-*7?$9j>U?y zW919x&MGO2mB!1OO>dQUKzdxY@}_O@d69AZSS&X?p6w~@{H+?P@|Vgcgw6CkPbE<~ z$Kr~`#*dqD{;14xx^GolS=nWIC+3$&2cJZe z5PgKG9E2Ew^eB(12&07gZ!GX?6uRMtkjxj+LTRSo7!qG0jNTp+4Hz8SL!N|-{_f(7 zY}ep2`2zI)ty&cl)jo{^JrK}+1|K{3+irIbTe;$>Zx=n(Z*cTf=z8Izw1qengGnbr z<&&ItI4WfTWHmxjybuF%$u<^+uo)NsQU4x-i{dD)@Kqzw<3i%(it@6PiwbAaHF-gK zJa6tvBTvd*00bla^#oJIEBQx@O0skF%3`J2@q&{*V$VG3l$Px%E&A(+i}E{YSx7V? z?9Z6^4gLZK0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG z0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG0tNyG z0tNyG0tNyG0tNyG0tNyGGy_o~R)|S$t2ResZ+ssKy|QOosQSx^;p%-0Bh~x1h^j9l zp$%U~#D=M`d+6tFtML8XnjF!;>b<_AsxH!XLs(SajIX}Gy6$MPvc64pZ*8Q@hPp`S z4Z9HcK6KLWG4`7@Q2Hqw&v&K6_igRFNBf@a^u5mE`-1iz&`#yI@)W1x2MB*miBGkfy>*~>3fL7ce3^!z`niQzTX{{+$J-% z?@0C?)ZKaCPaVFeYu`ESyV~tr>+tQTeXnQV%AU^qzT)uhrhOk|-$u9ZGY;QW?fWeI zrXA(H@1GsMd!dv4_XGAF7l`;KJa z6>i`84&NuV?;Q56ar+iHeDBx3*R$^qx9`Oc-@CN$gY4Vr_C3$xyF&ZE&A!pz&iXyu z;d`z2J?v0bM>THWfezm??K^;dR~+ZO?@|(sx6$EyhW34seQQs2=DE({d%X62Tj%*Cr|+u{-|pIX5Brv$>h#^> z@NKJo`*c+GTkH1S=)AK$Z0CJ% zaQMEceIL|$cKcrC@O@JIzRJF8H8Ki-nG79Fj9+jUZPG_#ZQzMu6-_B~Vkp31&E+`hXUzUkUGi+v}#*D9|$ ze2>t+i`jRx+jpzOx1IL=E&E1~aF+KWhwnGg$-e&#`_{O9?{)Zoq^BbI ze`?>a*>|Zb@;B) zzE`tvntKi%@9@1@``)VaobJ5uIS$_?+V>gu<>xtj4n4`?8`r*X=sdgU!DAf0dD{1D z_N{dLra62s(!PgxR`n~~&vYS&?-=bnl6_0vzMmhN-1moQ-+cCM9PH$|-r?I{`~H@F zXP)l#-RbZ>Qu{v1zO_S~zJGQ2w%5L&v+ty#PTz+ezTZN3I_9v44(mcZ@5tGFj??$| z4&RTp?@0C?bgt8PmBaU4?K?~QHs;iXoW3_Yd|%eSH?wcAu+#TyhwoR@S?G9HwujuCF`HLfx`~Fbv zdoKH?9qIJl?eHC-edn-m)cwr58^f+Q?4CF6-tp}AL7zx3TA8)kv=iMD_a&|pc9oS`51V$qJiGTzyHI7; zeWqR1v-_86hy1NI?Q%Uk;!5B5TG*{J?XL3dUNG#4zh9Yl%RRfN4LjmxscE;`vwOs_ z3yC|kt~Tv9dUk*G*{#SbHSKnIcI$k0%d+xKyGGCMHlN+ntQn?VTK7bK+~l)cnU!VQ z;r*7H*E?^x&S$qgYpiKE$+KJNvs;{Xu4z~5*ZoN1R*nbpCx>vBYbm*J*exH2nj+70&XPB-n) zo}0R>F+=vtDW2U4h8?xjPfWYGXV=@XqjtL6v|H)fbu;X!oxW|_ZS?F8G3-LH+hN-6 z^z0&r9i{iIY1i|}1TTA`*Zqz1_qb^{-Lw1Du*-(sgQndI&+a|L?poNbH|@52cK)tbwziPwoTG$ntc5%<{F2j!QJIl0d@a%qV*wKBbn|654(*67wh8?9h!L(cM*MiZ}u(Bz~0cv>OIp&RAaA5?HOf+Uioq&_KFs!RPTfC3+xr)cWoO} zTSfP#hN64dFFCqtEYfahFZS-r5LNX#qKfv5TH!j2?jM0p&UKwPgoagSwTG@D65ZSR zpJMMZYa$EkI!5m1!nHj&<*zN1Vlx;JBHn=1UGYGd!xqovP> z-H>8*YVN_P^DhSp(v; zcPaTj$}{%Q{*AB!<+t-)hkWDbXHgM zY$!kSUZXslIfl(F*sRw!<2;*e!)7sT?$S0FcsA1wo3*gHRoh(b*-SKSo`KCTwatZ| z&1l1B7i^Ylo2j17IfhNx ze~9ASdGUWS;zuHWFQtE|7yoA?eiq_Cqxi$T_&*r&ixK}m#UJj)uQTG;BEF8|kM!bi zH{zc`{9C}rc)g>g@p>-oo8f+kIR`bz{cZ5KxvzqbxEJ7lD`YzVV9rx@crMF^z82%T z91Ez9pnIHj-dxjS-p_^o!Q_1o{O!EYf=;%Z)74zE5*T^kP_Nq%@;L^&1IcF>*dI(j zqwu%$IYi~loBPrCIzUHxPX(XvgWL3w*n1%P{GcoHxg`9`*RxwyH^o|`kG4TyO~t&^ z7V}P6&pU~B(QrJ^JI9EqIeNnGlym_ZR<*x_&M{iKdLGn}$cz2-xh3beHz^H;iEa!#5lXzY*=DkLt1F71$H!>P!xu z$LY4A6>J`AEjry5?)u@fZ@!;Wi!rX@csb7b+G;37rKHx?X@0hgnzzn(n`<6T&; z`Bot9FDE_;UPItjRJColI1B$Kz>YMGOCmh{jqlq;U!nHG^L&DD8UvT1kJI{t=J|E? z;uX#JBS>@2k{M0rJpU)sMJ{XFb(i9yuUMQ#_RmRM=ucDnC#2owO}gxl0@p=U+})6= zpVFFUcgGR^@#FtH?%CY0iqh;2KB&F*N1ob_YBQAAh(0d#S_@^WLYb=eEgS(}o>@=l zr6wTlFnk|M6^hwr7h~0xflVgxflppb5Rd2@ULI& zSekZb6{Rs7akO6DA0PXx-#5DWIhkg0(g$T*+g5ZTzE&e7+@qbsM<678C*wO9cWbZW zyCVF43$+=ni5Ir6-iNh>tG`J8us){orhbdpW$Ra8V9mwtkgYZZE_%y0^cLa{rVWjPzsX6S#mNsDH)I=dtQ+T0 z8LVfcS)`+}gvZ8f2-7&i^omgubP5(Q5<#ailGL z&GIg=%KN{LBg@d2T=PbM+|QmjdXvsEZw!^T-n=nH+IjQFU|`M7;gB^qJa07KQ!_x$ z8`BWi5j=tE%5(Tk9iIBGmuazxx7 z3`g^kw%LvrTO9q6u~W7g$9#JSmBE^CSCY<{Zyz8`V=0fFesQr;xgY%kvg84C zO?~^3{daeaK8ke)+RNao-H2;x{P6mce>^<{z9t91wm9(hr4EiY7}g}NIYsiqbBehJ zy9oD_?PQ4>ALzZ+1kzDE`Ipk^IXPe2LZ74b7fU;|6Xt6wupVDCAj|O;V^v*b#9Vns zs&Qx)rTHJkwKU)O`V!_za}D%Dcz z-;lQKC+oa6^EBzGuiT<^?-IsyhHfh_5k3JpL&ZNY?UlRP0+2 zZ>>#g%y$G{UmAn8$!NT%R?jRsNZ0I34_h4g`cmprdY-9CJkPYp^Gqbsmwdbw(7eR& zw$1hJ65LO=iM}2$3rV*G?E%jcBNr*X?oT&Md$f&(e*JRj^*D1SWN=e0=jmQ;t8_Z` z@Daofo(cBHO`;#Q$Foet-;a7AZIhqJ_Qy{<2R|8Zeq_6GJnx-N<+YyoP9q)lBjV={ zKM&_gd&J%D*Jnx}@W$(%vw$^U$3gbyCp{(~s(3^C^+;CocN{+|Mq1AJRF>eirn)?8iV( zlpSY1sqBwJcQ9ptA6ughKwIZ^gO>OI)xgDm@Uq-oZB zs}BC>{$`$WedC?%+m5yR1C)1btzJz!W3B!yVV-B#L)POOzZ+}JnK_^;mCD${nC7h= z{Li#gkfvF_ZdUpHYlnj$&*HeBUAIM~bJXop=yll(At&lqsOPZO2U)jWk)~Pp9{Vl3 zV_ne9Sl-;a>2z66jOE6<=|s}e7)R>@Yu%J7?UUC{=R&X70evAS)=h&3`_@fWh&z~d z(~BMb{2aAkeh$8Ee2n|qZR0)CIoifP=yluJ1v$|+b_|hY-gQ*=-_A)3%d&q8-NDp*8vM<&kJ(?@e}rd+LAam&tdLH+2#*QYv%+v` zk2vdDVW{-+o)u08)?>txkj-a>XAbrAma#wHeuQ=L zF5J&U)d#OthMG)L+(ly4$54>Yv|BYy!sq=cA#I7rnMC!`pA21HI;A zCD~w%e4pMs;M^GPNt4g}H;k7>-DmpZ~pXlSGxiwQR<=$2g62eHFe0a_u_o2O+;tn#QMy$_JI5e;_YY}vMJiiw*t@)ZLY}Iroano>3bZDgF=*b~EAG+cg`L2U_ zruARv+vvP$c)^;;jHXCkitHn_f4czjH208AB-ARQFDE_bAF1!{>E}X^bt=xGwo>O% zYmSpX> zZ1GDnKV5N_+iPdrG2fV&&bHY1Zmw^C83}K2_3vd=UwV(Juh+ky!2M-E#(1IUp@&F^ zerNA7y(n#=FITo(q#fq;9EG0(uH*i{0W$S3+7I8|F{6Jf`dI4I{i^N?iz{1oy6d-; zHuVMCM~R2TVCpk^j&}8(TAYD8R){WLE{;Ar1>EZAQ9Ao~1>FmM+~v2wzD)g>@~r#v zDaeo6m-YPNN|*Zbsqi)5H4yKq(J@2EqCD|SqK|e7VVpyI5J-1sKiX@fb6;KL`SU+g zo`Ln=8TzX{f3jy<3dS4n3<{lf#QFWi*sy-dQBB8Wwi!zI>HJP~@3ycQ{A+oBy~~Dw zBh72&`Ss2lhL9}JuXo;XI%HQFvQxzrI@i8$q1xx%Gc8k|9T|xBSI6z)B2Guw@mYKi zy>2-JcqPiZQ8b-dw@$T#lc4L2@({nXA!80moOi@}>gM*)QQYe~E~5M>E(JP_*VS|$ zi}?8j@9i2OhkGkb^-b?FceNQ&y_;<^(6;IO3x9{6+8g?$*jdv;BO} z_k&Q=8N}nEu+eR}lK3;`BjV~nc=#FYFaQ4gZb{>fI#cLhOJJSQ+;~%9@Usr{ojzB% z2Igvp}e-KF2%rdJ)p9I~mUieM5<{c>?K9gRZmET|xLv>>1UIs@+=@f9OZ@`#h}? zUP$q0!~V}IE=G7b@H&Mr1#UPQ&rfKd^c|eG7-v5?A^PZfq15)nL+w6XkFutRQqM>J z9u3nNg|IFI{!5hqC`vC!$yD|RoYAN|epG)EYWoYiSM3d=y7o6Cs_Tx2&ls+!x^rbc zwMIRij()KI-H=tmnpIFFGR6&r%;c2lv+P;7^c|W@1fuG;nikx=PFgHMnQhcc}9v;a6Pe zoZa=_Q=Pqa?BTzO^z1$S9i;0E4*6O6W5Oo@Gxzm`GZYUmK>mvOK27t|ZNn4LHQ^kL z_;k^06HRoe}1fyPHXv&%kvVVgu- zs7KoUz;!M1a5>VUxoHO7ANI*>gc(i!t?!Q|tr3iNF-xXL?IPKa)(H0bYJIkv+Q!51 z)oml)Y8$^noN61%>CzgZKjPa_+t|-|kdAVA?^TX!YHmEpLR$8Ca31N5@nAOL{fq|} zP`oi7TuRs&52gVh%y=+@(&IKsWjDtIx|ef2=-n~V2F&r`Ir4Xm2d;W=ZamnHGs1d2 zu>JNo9t_33b)EkKvN;|c39QEhJ53r7?!!HQxv%B%z+dmpj|V%Eo;@CHC!H}KyieE| z5B^1%$Ajk}+vCBb(CP7jeD!$nZ^-)_57s08K*oayV1Gd4K~=XzTcGh^G`Obm;1Z-m z`{aj2){pVmC5*h+|Q^l=8%rwquix9(a$vtr7iT#Z1wJdm=Yh-%k~_yc zh;2yAeh0CcbktWTtG4)0!Zc5Cdwq*A%@f=vUnk6c`4PyHGrWh;=jl~D9Gu|oP~xnG z_Y}L4j^^wli?hEX&c#`CbH!xX4|cUb?0F>36-&JL6!!QhIdr@iosabG_o5}FqxSbN ze}BF~+CrbB^jAwev_Ix{9 zF3S+-;xaLJEJ@zi_`Wsr^|hlv|44lHMV@Rvdyvk-=V{W`({rPC%1LgA%;Bz_n{62%$d9AU|!&&}?`0g{-I?b)~WLtE+ z57>#clGgvEGuQuw>6xF~;9G?0d4SvC>(XAe&n=K8XEc}NIoxZ9kpyr3i8I9SZ+>n> zI-0Xt7H6*@jyc<5o=H&sc`W!CgLg3aK0t>0K0pliQCIuJ*?;us9f`FcpZzyD++jXD z7ts8y&;J{1za>atwza;B1Dc-~l5Ppwnd2PW&C(ui4rlr4eX^drmqV||#Va9$$7PhYR_idy9RMC9%Wxnd~d-24zdG$KHlr-%Q*X! z#ASwWZ1iy{+oNNxGYIM1b8|ZBs4r95?ejm<9&z^hAL#>*dCoZ*SaW+MWN)74cSR2z zDmj+x9=;EKXJ965Tbi#&!A5iZ2xODve!%$tU+`YOgPoj@s)}{x5> zk&fnXw#DBYh-;QV)RQ`Qih20b5A^GeQDU#gIj)2eC zO^&|&Bk^<&(zkg!opcVKE`VP1bSmToPoJrG26FuZo}NQoOFU)6M)ULiaIBtdFuEBczO~3ny29wPxmA4KzTYF zK0U!x3-3~V^Q9b%9M5C9NXvd6n?X9`d29h;UYlGBS&!NDoe4P>Wvgd?;)Hl>X}rD> zHkyxbAe-%G4zP<4wKnsg1)x1m{Qk|#x4!!6#-N_akKJalS>$Xp1EJSEb%LB|Ga>a1 zuiMOhh-;~DMPZ{kdJwY7QEy-uM~P=B$5?$oc)H2SlVjbrpE<3dnKkUINZ($=K2N%4 z*05MhDGseQ>_4E_>#WU?6KmL0)bqT(h9%BhTEl*fbTpSSi_4b~*DROKtYI&O&oC#K zKhFB#8l-Qxx%s4Xj8iv3uiIQ4a-z+>GQ_t&=t?}b@J@3b{54NxZ??Imh-;Q7T1PqB zTqpQ^zUQawo2Mgvo2L^==iq4+^qQvukP|#zd5({#hY{BjPZz^R^Yj8_lc%$Q50t0p z!tnVCdHN9P+dS2i&cV|+&}*J*Au~@kshz?;o(g{ePaO@OuC;h-MB2<#jrk0|zcK7* z@VVT@lX`Zn@jZw8pB-z==kR6by1cLVo_r0`x1SwvBV9Akjy2Lg`PmUaBC5FMXUEmR zdQAHTRKCN6Ft2MpHaq_c| zk7K#s(9h?_v(H$hZ@0xL=^SlwI`q0No&!12XGe7KwZ$h8*HWJ?f{o_sUC3siy#Tmb zo|+lk-VQm=R}RGQhvMvGYAE~W;URIQI3oIWZ=45;pQ_IN-GlqsXDz2fXP&jZ_rEQ^ zm-F!~=VQlj5`KdG$#-yDymw0fCLO(pTj%NONJsDDZc)1LfayCc_V-+BWO~Ym%1(T@ z^gS23Hmo}=QCAnEtn_`C{k?Ar!$#Lr9I{zY^|-J4j*Q&5^^F^9eVF|2t`t5O5~o|5 zKR=m{-|sNT2ibNVYvtRB19~r+uCKy3K{mfDBRT1<&Joah@O8wu zv|fG!Hky-@El%!4oU83Nw_Y9y`$K*tKBgiqn~w`fXFNO1ArOMwrBi}!_C`TUnZPTM#P_qMrcM>>Ox;|VhtILnyK#kI#IxX49( zOI(}@8_h*EWRr{Tzz4#`z2M>o;v$323AV!fZ~wl4zmN26N{x;hI<~Di{lAgOhCMjf z|0TX}@Dd*D1DoyYkUGUnY4^=waP zxNjkQ#9an{WL#gB7R4<`+%CLd`x1Gn$3^+6fNnA8CxmsweBf)52a2P-?ZWS>?q=H@ z#M4>B8PHQ(ARChTT%T{eqIJ%`h2D786vJ5)-fzf&Pdd^{kG8^hH^4K_xX`n%96K)T zhkJ+ceV)_}8|lm|);ad?&l68wP!FB&!|&swo(gbgbq#nY9xq1PYwlI@MI@tsNIx0! z(MYc@hsxGv!!;bIxbCtchyBz!fG!(iggMPjjw8Pj>__sskcm%{=^dv&x7h`H`tBg< zNhY4~8@MZ7zfnIa@!LwrydmY*^t-Vv%iv6Ec2ZIw9k?q!aSdhTO-H z@m+|7%>Y9_$&fLhCv46z^ESEsWdu5qU5#-;oTnKq1%lVLBU^xf!ZkA_4{*L9#AY)%crgI78fh-VDl#hj6&2n$ZPqKV8H?a+fwrJ`C~zmODZo&T3vyj+x&<`v72$qR~eL{3pjd7k=|I6EgNue@BSKx)eJvU8DAc5VXAlW?BI z^UDh3c|v}Ac%D)yi~M+5MR86xtP+y6%qf^#k}Kq=#Q9300=6ibUknR;N?asGp#tqg zCh*ZV74gEkdF4U{%8OM+hAy9V97?;gyyEP+c_2=uTZwR5k?1-0^1 z<9OcOQqoYU(wa*)W%Ma=IaMruNK_=D{FFFfV)>b{Mx~QBzg&3~7GEKX@F7t}F^NJ2 zQiJL#DpgHD30j*gEvfbr-sKDCN+pNVlG+62n8Sp(ECrl(Ib>@gr52=RemS)y`KfSj zc060@v?TTOv*S4hd1bOsu$&>AAA_vCe8J+>;xd4Vv8>E#Su&V7Vf@7qre(2^ku_?> z6ey--O`VW|aKxlZqb6jE(Xol=i!Az>MjzAZV{&ZV=nJOEAZyeZ8D@^ll3~VJ6^@^v z%tnq^;keNgW&Grc8B&oob+R;^#^H1hv&P^jQ<45O4ySXNHF3&VspoJyg;Otz;l86L zOo>gMaQ=je(Uuj55z*zrOvI$ne)rHe>Wx(Mg?7m>>TB0Ob)h?EWx;j2y%k(DQi z@Erq1WYa(qUVWm7Jbt1GZ#_vwYEKg3hLc4kWsnGeG)P2JPeIzJBJEQ}IP)|SnR%KB zPaiBI@xe&%bfkAW?sEq2bA||yKT|{s&J^LXLqsHZhzO?-6_L!LB7E#wA`(3d{%6Dg zY~*>Eh|Cx!!o$uHk?H4%@Q`ywWXicBTsmAtmJb)0i;D1y5kjmQfijO2kwqin zmjS;Flra-!%oL&Bqfmx1B2+U@gufjpLQBUBv245uZN&m~+XW)DX`&F1PZTLTv8a9X zLJ``A2kY&VMapjcBk2uOQGL@;Dbv93bRjaQi_i=_kk7nWgzmcp3*Spb=-W$$5Hmz* z;AN=a%S33=u%AVfid2rVzf7xfE8Xw@7c?wBJ&o39XJ>lGr@VXhEqb46%yu@FOwk)IOe zrv&9HMY&2vsNqT>KDttb(#l1+pd96kqkM6c3ok~tSD<~&LpkS(P%U1J?4B=DiWcBO zet`&eL@|-m;4fexU?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1 zU?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1 zU?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1 zU?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1 zU?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5;1U?5=N{|g36pH#(M#NjdyS8}+T!}~bg z#Nk#BcX0R)hYcKl$)R{krQdSmSSE*$paa3F_6ILzd55{EN5EZ{KCVI_ylIb6lz-5l0% z_&A5#INZr$Er%a**u-JV(?b5GaoCf?bPfk|80Bz0htoOC<*<~)MI0{Ua3zPUIlPa< zO&o6Ja0iF)aM-}%mmG>`R6aX!*qy^;IUK~{Fb>CZsJw#DfPsL4fPsL4fPsL4fPsL4 zfPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4 zfPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPsL4fPw#i z80geT%$$tkc8bPgv7CY{%HvnWaC1?hyy6^Lq5@x3dAzK!cy_EJoy5~~;(4*6l9Ez#sxkD%6-BabZ8CI;g2v`$7gb35HXG6L1*Lgt*VHC- zHnthj(kC{nq(r8>BPk}gq+(W)O!Up9xCHaHt|(Rc4M|Z}Z8jzucs1I@acJkoNv*yz ztm?EJ)x;Gsd2@40 zrPF$X$TlikRtUplj^0FRR?Lf`vO#g7Y}=bzmy?YaEven6HPnSEnH{V^CSsIP(!I&L ze2f)2IeF!>#npPsoPxO}7>7hzgQ>$HLb^snr*G0^>2eEY*RG7HEaN^HL>A;1sw!UQ zsq^Nc!6%Bd!j8ajS0)R(Dmg|q+tpq~ej?lJeM-)EjiJoVj%SxID3-Ob$sXU=eL+KOVWY&4X*lA1i-{IWt-o0Y8; zrx@;txn&H|Efc+X1?wt`m62M^gkrO@%kpC4NP;P%vND9v<@gj~8sX8QDlnN6AF+9Z z#Gz$*vkS}Pd1X2Rx-R4izYZG*?+k4YEe|!c`ZoM{Xg&UG2rmn#ZVmNp3iV9oznv1{ zb6J@FZ!m#h6}^Oz5brVWa;d`KG2Y3zYingcbB2mPmGRh^!WS~$I#c0N#+BI$|B`X~EQPBX z?_m5l#zS&d{NEWz^A!Go@mR)t8F$E6@rSfg`AcVf6ysjARs5-phcS*a&SX59@p#6w z7*An5kMRt~*D=mzd>i8;#?_4DjGtt@i190oCl#ptz0bIaaTDX*LKWX3Rh6%jaZkom z=BW5n7?(1RGQR2x6+eaXO2)a2?%Dt-&&TE;sW zHx3XE07@JeF~0xr&c5p2@hF@$|TgU(7hp z_!h=fDpY(m<5I?(7*Cp~;@p+6_F`mzO=3*89E5?f$|Bi8V ziHd)K@eIaW8TVSM;@@FBjPd7;cVDOC+jdapS$e&~M>9^lLE+OG-@$k?oU@sp8*cyp8dH7;m~s#qVYOIODd5sPgQr zQt>?*zsYzY<88O7_~DGVGoHkF_peoaF5?EqS1}g9QSmo1PGNi(3J+pD@OKJlG9JWuD&s|Ws`x_2 zm5diM-hP*gU%_|>MlD_*urQ zHmLZw7~jG81IC;GpyIz{yp{1GX{x*({;1-QVVuTz5aYr3tN2XDLl{qEJmXI)elFvg zj4K&0tx@r}GG4}bJ>!N4RQwZ+KVtkcP81G@cX`_m7-$|9{amGh8-u94+ zAIx|=<4ndoA6D_x7{AH*3dXgMsQATip$fGPg&BAjmT&nPQ2;?6PBS)? z!tYu5GYgAWetyy{+{?lzS$KqnCs_Cr3l~^;zJ;%|@XZ#!%fi36@J0(isc@qGuSGYw z8`nL!Xo{w3n5J5qPHD=dY4JW>H2u*ON7Gmht_N^Eh>NBjnp$Z3pecf;flat*xPJ`S zUvSZw`UI{gaXp1=Gp?s`J%eituC2KKitAZi&*9pJ>u)*Kk zgR248`?x;9^&zg0aD9yH6I`F-qB-C*T%Y6m0@s(g{)=l3u64Nf;0k#C@puKDqL)zb z)g158RD|P2TGCFNZ<9@KocT0r+fD7F{eb;5GV$-6Nlo&enN&BoTV_Y{KAE9bFB}a; zVsFgQsm&3;0$U=6f_K6UO=2s@G&A>03|rnMAx+Yb7b#ob>LM%09+zLun_E7mxvQlk z{M%Vto7l(F3b}!$L87?4bEWn6mX+2UdsTiFZ&LY{UIkDgl`nK$2cFL6*NZVIPTql{ zo0(fr8e4l#q&7F3^e$6uuG(JG`$`nb4JF@B5&_;qlA_$!At|wGM8MlEVx;z45`cC& zG)SaCTR#No&AyJ*TS1JCJs_V(ZT?s)?E0{Vw|hKf+&@3D!K0()K0*S}mW~FAy&SDj zdoGN4_eLYy`p~kOWRcHF?a;8D-kM=3_hby&AV%)Oa1_Z_l-$bjqSb~=0?VD21oF06 zv`X%+FfemYGImpR3~!?_x7yuVc@EhDwosPnm5fYap zi#Af&GLqfjXj}?gMrx2StXN^0<=cs|!ZJg%qV4=d0Ts5465H+xGp(@%NM~CDFXJ)*27BT24DUWvx`xP9lj|NpWJP(FftY z9uxBq#blhU(G!)LMGR*vTjXu4>|vU0l5|uPMzS);J`EWd5_(N zdA}sHq+wd#G0DsxrpYQvrw3&}?GCLqOjBaEibrLCQprkdn3mb{kKERBiY)wNZp<2{ z$--7y!!()LDtnmLH!_Frn19Tacam#yJpf?AnQW4zLsznfX-dhVr9PLOofC5_#b6aO&H*|U^-Q1;icLu(Dwl$xzdjLH7Qno;X_7oW*d& VLp%?WG5KUrT2?rZPSN4-{{cYlIXeIV diff --git a/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare b/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare deleted file mode 100644 index e8a06917976d1daf74f30433b668f781a6407150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60656 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

X-&?il`XlJqF&~1E6UOe+ixR?EZRANy(k{ z3C1b6+EK4gp|6k8r{v+xqG*STBMO+qXvOZp^{Bc~gOT z1ASz^!EN4fZgPHboa``tYyWv^$;iS}x8Yd_Jk$H*312H3(C3sfmHQe*R9bi#1K`1SRx|ssRp~R`Ih9uUYGiK zKVk{zTDsy#n`Hx82*l3_O$gNZ+XNk^P?ouR;UhDB&$$mEgM#c3vU(Xz5sM zvf|YTm`^9bFDZ|h9a*a@J2HiSnR8Iu3N6&q>OHUiC#Y+Ot(0>Ub<40uVf_zL{~qkP z&4wT+-_M3L+vEGBm*HOF%NU|(#Vd9F*R6l( zi+jH;?ri)Hek<|oiyP)M9#ZiyV)`9H#6np~;+AYJ>&PC&LcPed)-i_or_@#H^O$$< z#9Bhu|5)iW_walV8VBLqUhRAKqxfg7n0s;0N2&Z#XCB_M#X2Uxny|RC5Ad9AeJ>m9 zW&oEuP28euYc>WwIJfWh(}(Qv<-F#{6UK zbP}$d)Ca_C94G-eLbTp0vfb9Gf{l^6j`SzU4YH9b+JV znv6cHOuN=B+7hL&{091T#-Bw^HB;{HAfOlYsts{W|)x`mx8)vL87g6(2Dln}d6= zDTGZc2ztd7u6vpwe*`R&zsnH2NgdOY!ow1g8&+%8W>Jw8PDhzCAT7}4EQu4^`LGw{ zyI4egKDjP|eL|gCCO?9ElM4HAv&mvJo;`qZnNv`B;yXXgzsNXL;mf}datiCSkFhR0 ziTLw`H=*FTH?jU_fWz9Rsx_tP+w=*{c_5}iUSK5F#KV~Lh_h$rnyBFBB(Z_Kj^*HD zF`&Rd;$g{?bTUrOKA-!(n?~DZWN!!Er;I1VKW?CmdHp5i!aDXrJ-r6Jvv|;pF}SvH zj#mY^&497^zYjSG&XeClwg%*Y^|Qo%Ab5_2}V;C?je}sC@ zjkDqT1lk`$Teo%+_qL?I{5*4Pq?PsIGDTg-9x{O^rp$&WneJ$b<^>DTwDypGHh+2nkDz9TNq zi{;LaL$`z9Fd~dK?!OTEH^j&zwNd*!kyoef)R!CUMrfmIgAf!arZ})B$!KUA z6e_##I-`MW$t}7lKY_gUm5}M*zGECboH4rAk9a@3#DAnC3E!1q+=Tm8yidnE4LKk` z>^avjIpBF^fe{^p*qVF6t?-pIKk0p{F|m6Z=h+AF7i)k^=@2mzV=ZYz`==3?26wCc zW1u53{BW|&V@_sWF8IOt!A*Xp_~wC*Z_??D?thW76UWQJxY-zw&sJj`KEHho{36;g zzw~wdEiC3?a?!4iu|vM{^P>RsCjQP3`Gh!dNlABa`3%rcxm<;7FvEzB1|O&4{{6D4 zwWTIMO2C6slOOGg$j^Y6rC$G3_^z@DVoa0r zm)_Yb@K4T5=?7K3wgq|E0QVLX#7M*?66ZGHtdGQfI=)B6`y9kpUOd-)vze>yL|zZi zqjlIP^nq80L5qGqzEOt1SBDitbOh`g^Fj0(I^y`CmNQjHz0ml>UL)flU*CE-&Th+C z%$5%#-Z_cuN4=P&;;S5?;;tAS%5N}7aV7Lozf`WDb|UA4@2zAW!FZ4hbQbY};#GXU ziF!jDnD008JJE*#4X+}9p}(@YJ70%hz7ly+-&0VFernz98t3nN55@$4UcqlMWU~PC z^ zED>D>zeYb=R#MV>!;K}a{pG9pBIiz2#n8ZKXC`<*0E zy3gcq2~z{u1%S&zU-q`tTZ?}y(dJCg*W)>CvCQGx`w;kN?`OYDKTTZQXd{?cZuT8c zjB*^O{P;|?rG}q^f0y?~gTjm_oH%hj3!b*bIsQ<@K28|t{3Je^n3L4I4~8iHdwHn3 z9yhPArK$46upd@`_Sn`rt^iHkPvpLh8-MKa2jk#?r#R~GMtj7(yeCdsdj^NIMb?o3 z=Hl0Y*D{Ys@{0Z0V+|)gvcHdKM&|-%<;RIpS^i{Z^m>**k>wqMKhBK8e{NX$N3;Cu z%;?oDzpCUR$FSKtCw)QqJ%M;z6A9rmzzsyFrBBQmbV8>|mwpsuW4`n6xsaFCXM2Bl zoI`&c?}5~qEP4lsW4EBqIq9iOUlLb*=TG#!T|@oEdajIi<7(hbelT9p@T08h=h$soN<_(X>8ii}8-6dKCbow@Ite+?6iL9rMxAa1-Uwj08_;%)2@1D4XY?C|B+U zT!}jBE`4I#h)tu}7PL(6S@DNB-jYYicRUqaKZ3_*-iiJnjM`DN?%Kj2_T_WYcN295 zx^>>E-lu}_(K=%h?4_fAE$*Xr$VcGZv zN(W@0u$jc0adb6!BeZETV>rIvu;Zk_6-38zfRon zYzogau348{$bB=PCJLRosr$^mZmDN--J|rLd(B)^ynx(I4&u10ah8Db_^-jQ0Ai9- zl%=lP*5iG8#qW{IeJvFea$o<+ROqX@H+>j1Zq9&@@Px{AAsUwA{8l6G%fW*~Sm!o@ zzRW$zG9Sb9Xw<(nd?QKLznrM-?5>&7WtclPo<^=`rksEuI0PN(?bRY3l>$pr$#3LF zv+66LGaut@DCR!O!|O5c<=KZ!~zUo&a1H4jEp{KG~nOCprhP z+~3ZHY?*T;3}Y?I-Cv!`J(3-ne@MjHM|GaF7yP4-O375`6tXaHc}Dh4o zSp`{u;dyx-eU61bz3=ta*Mi2`j~U$HVpi$d+oc*cm+b_H@jN z!VO6xyd3wf-cbcU=o04U0&FL2Om?+850ZVcI-421uyHzLy(V2uw$ssR;z?Q;0k#1Bfd4Yr zvj{MtA$%aRBvI7MM;f?tb<;c6Hms~Gr)%^_>jVW9@6Iffjjkb z8Swp~Nq+=m=7Tp_pGN&S3rC#&*zfxh<`3~s7=<+k^x!(IUkPXNB7kExXjS;&*+%t`75h2Xt_Ao+na@cH7{G>b7~5ufcrZ zTq43ZnZBlHMQr>t=`r`zn!w{!%-tm>p3J5E75?Ec>VuaV5$+#gUKbq3+|Io0m5o98 z2i|A#9{Q9$SUlf}e8Nf8MPVPhVZSzv5eGJTGLKYZ?OcO?vbAAH0?-SrpI?0vywfjx zbt8RB;$@~!K^u-oJZM9L6O0Jkrecg5T-ko5HVSLmTRy@0;_@iY;~vMa8-1L>?-1mI zwZ!uw@RT;{7l^aiA8DhXgCB|AC))0PisxsNpVQCqybR9;>@@uhHZ`PO{2BZVW04Si z&309Xb2*5O9RB7~@R#ubf0mq8oUZ(sjB89=nYm?-m+~4>e$KoV>_KUv~N~M){oj1+UK3Z>FQ)p#%17=J)0K z%D#BGp7yg7vLW5@Pm^by6jdT2v@r#?&UZoMbl9LNrM%Y~3-fWWVNEX*L^z7I40#O3 z)26f>MNGph-^Dly-i^SO{rUi#ihkgKr}(wZ{ligSfH4}uBlxJ(;zOfpbAm?-bS_G-E6B((UYI2>N&&_)s64&^FMg zk6HDt8T$6VRU*I$*^=>^~R$jEnniawq*fZ^ZRn4RYo+7=yOt*jQytXm@x{ z|7>!$`r-Zs`>8YgX*K%+?o-%TF8Tsa{c=*A7gjvbiFptG8;SURNdPv8?dfmPx74>@ zbKS@}AD5?M+=;nv^#h#n{*zWe81{ql#8S-d3h**tc*8SLOTY&c>s?o;+*ufm&c^ooWfOB#c3h#`MP+o?3 z{9c^7GnhNhLG0*5{v3Zx+*jn0XWJ0>NA)7^UBHiF>{*E25ig9qH$&#-mo&ld8~Bx? zj=6K33oeI$llRoYCY&2!y}*5qdCxPFx$qFChd#I9$Gxml z)D__u%s|YISoWZ#{lH zJ)&_Jeggks&(`YE*>VjOfG)!3@4Ny1{sTYG4Hc)F`D-~J)LO;BnqWEdN7mZpdO5## zWH{GNZIC^6zIU6zo~l;QxN9rMm@68um7PSav-Xzxpq z*K0$}(F)zwOL2|?>qx!}jNE5*Sr+CY`r{d)hjA~@G(<{}BiEW7Z+<#LUE?ntKc@FM}At(7R&)om*GeKpL5m7IhWz5S3Pua`^8NgoAA>w5SgO-vf0d8;XSMZUdewMFWA;= zv|}q5io!PFJ|4Pu_o~pBq;0n4{VbisdLd5d7{9o+--di|1$#k@~~%WhuiNr$2(YAQ$hS!M5*0 zyTXtShxx#v5jt+ip;Y+xrz|==y)|`zwqiF1?iR$qt847I>e9=dg#>k0?Nn7kk#QFXgK|nfsYX3V4RqK2O_- z=N#MZT(0E@$3nh3-l41mPw3k}%~!r%gDxU3Dq{nzqx$lC72qH9dMP;X<3nE04}X-c zrN})>zj@}T6>CkUqiT(ng7$i2K`rf|59fezUaB^y0zMAsfL`HRGzT#h{ND^?tUUWO z2z@@PrKZj>EbY!h4^2?l^UV(fOa+cg zlRC4%8TJ`-DuTRSmk4adYgofQ}pc(zOg&T{OC8e6XE&_>oR zQgy)bdB~+4zg;2g8TbG_Uq^lc2N@?*=8Q|Uv``E9(NYb2#JOXKd6MT=F((KIx+VYW zz`qly8wME0r}p+3L*}-57MFAB5Y8=1+$I!7p-0dc=F)kN5pxVamfzgyb?jT%_l3v< z_D{a&AWpN>$+0-E?c=lmi)Lc*il$B!A1EF2Wc%QzPx>M80c_`Jlu0B_ghN+D+Qr zSwieDSkyT^1-7%^W_OFsK624VscAn?Aoejnr~PaK&xRKb4Rg)=I_@#qcLZ@ZLig#l zi1Es_6V+vnL-g9ZV@l7UUz2M-DQQ4nDjoT&^qNn+4eL+$PPXP2_1&6VZuV5ZmoD?# z%6@aq5c+FGzZNdUAu~bD3#Me&%CWCeV{=^U6ULp#aa$29a9pWZ@?Fk&y+Tf^!FTdI z>->uX-N+g3*KuAzv)d_bGvNKcj}(b$625m+OQ?9SbuGR4s04O zs!Fil(qG)+ zr?B%poSj81nUZJ}rr?TmCx!UCK1+fadn|Nz7GhY$rs;PSkF8~l%6E?*sW1w!(=MF& zNQEezg}B~#nK9i5{UU#<=Zo>qPj-*DY8Kk%YZpwMg?6MnfOA5Y90H(;ei6Q*3^|4d zV{ylw7(f&!gD(vVbBqQob&hi!hmae1h9X?^$23c?~Qr(>Dvb<)@~O@ z;dapR%LJqFE?l2Oxfkb~nm`Y}@tpp4VnWqI+<&8ZTx~MeCm*5iwSZChXIwuJg9}~@ zh{ElF?bQY^iQv7eUtVfV|0VJ!peu}+Vcx6A&y!B_`rfS~|1;v%rfd^Xm6=JYXrc=XTL@LkvXHT7Iyz;8_{ZNR#0@n-O*<~poP;QQ9Yo{j+Bo54ry z{cK>l4r>zn%~t5qeE5ILaPLQW|3Iy|ah@{Xub#pl;|qXUe~sFkTZy*pFBARI7ZYCE zWrx3C4td7Kc_#k7`+RtJUC6x!%D)}!_bJ$a?ie8u%XtyQd+L9WxQVjD-(7o(@jhON z-h*Tr-^B3nUDm9EUm}L!SU9IG^{+TJ=D*qgFy{G9;M1>=zm$4~K9_-xqeqVA*SjR0)iey?IDg0P@d% zeMnU!^d(3;zI|pi`@e@&wPx0A!EigzxW|Gohej$b^F2A^0}&@ABxM5FZ`6 z4ZdNYD184myz7Q|gYehGM=)2m5^!7_`e%)uPJgfx@1-sR+-&%PBk%*a1K%W!b7I5i9F&KB~?hw)Osr_E!|Mu$G6J|yPR zSJq;@B^a+3|VY=gZHI7=IA*@sPt_kv&Go+ICz zQndN8XK2wXK}hzn1YPzVG0OfvtJSIoQN`i*45KH1J^ z;M+9T`k)uzJdyCT@b~+Gr}aJ!*7?ulotgr?Q-e4>vEUPL685Z<>vOnQVbQ!r(!5s7 zy);~c9FPHBT>+Xq(N8P%^6(^l+sZo%f75U@{<@HYwz4ts_C4hjBNVu5-m zN3Tb`CeO`r?qV&Cm~SM%6~%Z3`~I+9Hh8|zLs;qt@DEdF@#ooH;yByBn4}ly=4ki% zeFxIY^?V;)drVnsK1o*ybj`Hrf;`oCA2Q|p3pfiR@wVbioP(EZEa!U1{yv!;AM)h* z{l;!Hd8$p9dSu|c0AGk3JF|W>awp9737bwq&qg|9v5U?9l79LNU7`M(aS7fzL|kIY zwA!RSH$~DOfGn7oV!lAl!B{R=>D9pRt?*kut@7I@-ugDgO}jDA0(iF~2z?z@eVMd} zBQQttu1FW=%G#Iki(F&8czjNNZSeHlO_2Rg@+XA#6Te?p4m_vcwy4`9s>}4uBIc0f z{;c%Jy4Y3v3+g=V#aFeeYRI!4&nvbiVXZd2z5>1wIyt!pV`+E?jn7zr8|pEKCu6L& zdV1_VYCdCM@?Gjgu?u6ZV@$Q=gWjh|$DU7m%aNOCX~Z7aGVrGfG(mCu*|Alo9b=w} z{pDc2i1_VjMaHJTAtq`F&GFaXj6UV~4%=tJV4rz1$61JRhy%|Zoar47;;g=LkXb(i zebWZX{&5b~qKj8q_Xor@i0_CS_3=-L8Gmi&Je7Q{^M1UIkwbe_nH4a>G8X@o4*arb*zcgC1U`&2{()fq!cJ z{^tTXZV3H1D!Fxy06xQk2kkubGj&)u1pd#jpC(Pj13Xi?8Q>tWo*@n#(``SVpK?K86VIBywzBi-J;Dc z#F*JRI3omm)(RW~pdkfu2k=2|I~Ff!&OE;K2l3~K$S=L(YlS*;83T=Xv28pH5ALl8 zupjv^(8L@zVEewi!1dWceWf`1qCMfr^x2yK{rrmyJ(wpu zLZ*C(tJVL%u-0YYe8x2~?dTEIvG0`_msj`>__6piSuy#?^No2r(73}*J_pdRQ$AZw z+3U+;J3KmUhqMPRay(m3BQ{=&YMjfKa=rg{2qtEKM7~^_gvS7kYga8uo*ko z;tT*~q92|aWj$kCfmn_-=y(r?W#~`2o`$o~TtB1z`s+k=DaIym%21ZR)|R`s#_d_5 z&fIraV*LxB*NOA)b(pVQ7h{cQu9p)cHL@--U*b`8c^J9DDA$rf=#Ebt98U48^*7hl z?Hy`8?L(Z+wK&(+DaZlw9Du|b>vzAoPG5v?2ltNm&Lh5^tQ_XN=d09EcD`bP;gQ2hQ0zcM|~L zegL^}y)O!phq3N2Goov)`w2$$G3$Pc5yk$kYJag2eb~CsH=^IQ?yoeW)z*EH5&e#J z-&Pb|f%^`e@02-*N=4UV(z?{-+iF!;EopU&3**lf)o{K=lwGFJ=lq3V*|8aOWen#C z^g*_<%}MyM7TB{a4f+hb*K#ZNJvhGza}aZx^D7guYYRok%*KIrBH_!j0-Z}Tr zrN4=QTQf$j4K=I{bMU(WxCgKnoaEAHY@WKWp)UkX(8Mnj`1R%gfG6cp$N37~x9_W+ zf}BGbZ^Y*q&ts043A_Wa3$zvA!+8MSV=QSe&Sooqj`k~ID~Q9#kmrDWwE59i%zL~C z{1jwf2051vK};F~eK@PQ0d{-CB-F7@yV4Kj%i?WbjE{XWT60$Q1&q;J0*jY*2Vl3} zhRs^JcyjmBG063L(vEVEAP0R8WXF!rcdi#-lsQo56KH?B_KEFX`!xJK+q=FfdTKat zUQ_d?^XJC$8pOHyd+O2BM7;Nl^8i`+{*^AiTQJjwN0~HC!#v!G{zv){Z(|)#U!RbM?|#8%*LaX0$G0tO#K>u-KUd@D zATA7^zGl6DMX-C(aARG5?#QQ`RxRlE4}<+edw-iKKT#qAXigVgkkX?B|3uVZ-09X3T99;be6|E;>XX-!)`^v|f zr-pL)sd}~1>eo{H1tI)J(~O$4!^NmgE8%6eVC(g#@`>2?;_Z9VfHxF?ffwuliaW2c^R%r zI6nGr7Oy47t$X^upBwl6mPF*6`1epp%J+eoFW}!bIF6jtwXl20$?VksQ55Zj9XzT<6y@bleXfUUdynrF8e?{L7jaaIuJnLPQP*BW5xis_d9LzKIKc8#?OflPb8MsBz3WJ0I+H>LyQu;7JJQIOJS(iKp%FvDQJacf^97J)XNOTpJGcdQ(7B)5=`AWm|C1@7<1>tg z)o7oYgBU!|R*!FQKE(QqXglKHH>KV??Gxn!J0tU$e?y(Gs{=c(*=gJba@@f7H@9e&0v zH|tx*VLweogr-F-`$0Zhb4|wfkV#vmisOSArxWXu-+-^w%U+wGPvABaca1+PZsitupYyBqlW&08#0M1JzusMk^E+1ZH4_v#er$?hb42N*flDZ1E6e!$+A>tm2(z4#!` zK#QqQV~+k7=hd;#93?OIz=u7Cen((^{2SzVAHjVM&iw0XIP=2ifG>qz^d%NE-iqp= zeHP03KE(&VOHH~PK?C9z`F;f7qae*ygxH^ji@)GvG&bOig?(EpuyreS;` z-!T|ge`U7vVdk0%@8S=upKjKXCLKJoXsYW;22F~VBD^DatE5FV@b7R~V<)4I{Cki4 z<)+=u#&^MCW6QHg;+sgkehKjzaLF!L`jUN%Dg)P+A&^rY=Oy(U@=LLoD@2(4)O;@5 z#>w|Y^Z%*l`((&5fHeo7yV-1ke{zg>V)i5l z^i=^5=4bdkHm=HHu)W>h(muG@T5B;X3tFb?<5X^Xg@5r7_I zeInoW43=SSfNwhJm!;0fn3LJ&n>a_9hF>f8xVbJmSKEC8wmS>+Cd*;F`Q79ptcUI9 zT#@$M&ENFx>#DewG!s7`@Z*^@f1=2cu{7+#jKtCR7`O(@jL0x8Yc_rPZjY#f{b<1Z z`{h%CKmTR{VwM7)0Z+i%5YLx1LZ3D4DFx8)NAJqDeFo=sA0K=k89Nq%KWsDlJ=sS3 z2j^a@B{wT?a~Qc0_^`rG@Vd9xlYbcBU0^PXc_ip0DHY>{vYG zJSNZf;2IIPOe@8@P{-atDZW2Eob;!_R%kd20bd@Z-GGj>FR2@e+Wb1M>rhW0aufV8 z)`1f?qpwAnq>J6eya?-p#pcYr&Ofp2ne5&J`UH-u8*3rNH~!IN!;&|C`|X(uJDL0qj!mYsxt`&|b3QQ~Z7y{%*`upCO0A zT+1@x1_E~c0Q{~4-GRly?y<<_@IHupu?OcJu2Jh<${RS$dmZ*|GoH@^4|aoZjDwwX zoZmIoku$~L1!xet`g|)+>Z?yDeR%dzwtPlBt@w%ODn5pua6JnCPGNleRq_gJ5BT15 zK3BoG=gA>P19IpEC!y2KoBZo|?^BVKVYT>1S=5K`!PelN#vFW0R!=ZwE(h=O;ax^` ze<$wm1+9>8i==U&e5EbEWxl=*-Xt);R>cO>Sd;5rl$jn^+ z%^DFtT7vJv)y~1aVOAlyK)zPXzL6X?oCDe+Xw0uf}}uEGa2$ z%S((D!B^DaTh5)61bxCfeh0pW_Ape;v`78U{b-*8pSM6uUGf3i z?FURUa;$27k-FqE#HHzw7kuwLzB3WTZ!lm#^bW575I#e;1^nBdlqE+n=KIhO-eXUw zd=uXBxm0^}^hfxX1<&H)+lWi((@OA-6h1qF^>|hxvbYxhXYUwR!!QlsEq4%loC2H~#eHdC%>LE_gjU-p|M*z9VJdp&EKM zC@kxEcvRT>H8jz_g<06)*omYn<-Py*50cybLV#PX)W&~)FnO(g1nRU z(%o8zLko{CJC*mcW^wt~&R14<<17yScPp~Q48e#_al6ix*b`FY!REj$bISWgc81mVCCXz&vD3l#?`Tej$3j~*JF&^A14RupJ0x9 ztR|s;K6Nr*bZyD?#VXKg#8$GN`PA#b{t@b){LyBHGOCyd+ILPlwT+v&OR?r{9B|Yf1dpw+@zz?2P$hp~aOu$3lawic!m$H|9;} z{k7c5spHHFa^gS@&y){K4)Trr?ODF?8&U3GM~6f=4e}+{93MES<{J7>WK0FTCh~m` z=U&?aDGl=O8PZl|uiG@)m)w4g^>J_}c806XvPxu1Eo%r_+j6&J`!W2#=Q-sBtB$AL zwdon|&5IudS=$CX{MU(JII(3Uk|z|4>YY+6SA`$!8q3!(9{#GBXqs+e?_;;j!50(W zEk4Z{=N{gcac=*5_#1wsqvCm($yVde}OV&Zf&N$VsE$s ze51Sz8q;(p{br){SEw(4Hm>g?85c5_h`qRVk%=wmehPY8S3c*_gWL&`xj36XXnRuc zgs?8~-U-Pioyh!oZNN8p4Td%WbkvoRp5V{16^UaiRpu-HKuI^R-`fk=( zBk(04`qC#~xpR)_G;imc72PvT@$c}LfX?RFy`jktIVT~y&%dxoF8%e^wWam!E#M<0 zyw+8?E7zhy0pH|pN{{6vW?>Rh3_h1uZnCHSH_hR-F|NaG9eEpwbRXZgP5z4^Yhn#-t1d_3*K z9+g8~E}e%r#9rqv67BgpZJA1$;uA*dsGyEg;8p%%4j$Mphl<{MCGVh1K^|$|!CAHMfp)}*_k=QPud4;_EQV(<~4Iou1G5cK)?jsTbPz{tHm@Hz^O z@t@W(4!Tz0*Jef4#7eU(u1SmHw>7xtf!tj;~rsO zdrCJtdF}jls^5Q^w`6S~dqtm=wdK}uag??RZ@!DXU$xZ~v+n|(S)+gCtG^Z+)!~z; zl6F;M8;CN_y?Ksno-l2@g?#66#$D!#i0sWUuG`YstLE3n8T3lZ=DDeIkm-_fQB2vA zCkmaZZw0oWuFH5Q^QE?JsO(u~Qx0?~!2WYj272lU`GGrlH`@K9C9EZ{<7d#tgx|gh zuHF8A?RU|iUVMM8__n^c>fo)^{RTE;!MC{&eEX$=D>#2q@ns%Lmpo5_udH#rxZz9g zo*;NtzTdq)$Q)2fTiibEdvDDh_y1h~e6NrGnF~&J{_u*^^-s0t32Fa4uI)XW{t+K- zp8hG8{+Yx(bejXB+r;-1ve)USJI~NhhCY(-?npnKPg$qyr+K!Y7+XT~=s(d4nRlDTA1mLt6L}=OX#(jr zDZDqluY5RMFZ%}9V{@y3eFU2Q_q?| zJ(~!Jhljivsms z=*MzDX2cQJ&1K2X9X0t*z3h?C8)4=r3r@)O;D4eQo@?e#-hqBbd!iTMa|WN{GB=9; zG6vdZ8RjtA{~&$VG4`_Px5aX1#3Z)U=6T%7Xpp%RzB(XzZe@4WXco2t*yD(qd70w{UrJweH9hC z_ZfFxVQF)OGK9B9w~{mLFXN|h3%JJPHw*kkzd>Ir0H5*left$kYv$baI_@XQz4{UK zwX~_byI+0lQL%^jukW4=4gr60Hg}ZTa{JJ&%G~|lW9;ko(wS7Z`j9nB8);3;-?!*7S-{r|9BeLb zp{+uTBk-osH3d4D1nzPMN{byjFz-%+4i0Vqm2>^j)1LQlez$um7%(b0Eg{7T>Z zd?WUT29Br+q8|sgjE~89n8F7k%*VqB8sd*gM!K&!hT4%7l!O?+h#iSLz%pI+4Jw_gNn` z?s`J(Y%+di%uJ`;?lp<~oi;q;p8K80x5BoD_?`%~7yhE{6P);Z*B)Dg{Z-mjK>5Nm zZyxkJJp1OsKz;Xx@JyMn_#W<3h%N0DeSD4TGo{5X=;h6`K zq2SIw(LJpfq8F@5jAhWy_`8WvOzl?I{^`nhu`!6w#NI{$ve(gn%IQzhl~&#EtG9Yf zlzBLa{|C{NSnu^pR{)L5)wf5Or;``Gg8e*a?*{#+*s(1^zfsv3vs`5S};`jfOT2@d1h`9n<~C{*gH#KB5SjQ&{WP|2Yvir zT)aHXm$pR4uke=0%n;8r-RbWOU%^fOde*xhKP4h3U0vAUAm?MEQ4?Ug=^ z;GZgSBz(wtm$^TFzrw}VnCF@IyzAZQ?;pS?VX&%>HF+(xs=VWV2W}x8{r3HH5)HoE z&ULX2RUyOYt)p$pCTYehZQF6$HvRm)nG6W0 zZKCTpXnJJCyd6D*D-UZZE4&8(XGT*+&z4uqs?${*ySvmd5*lTiVbB#-z z0;j!6Rduwt!InXL#b@Po;%u1-kr^v1SlbmiZB42>M1t43)DGees)9#}-#+ioN1y z)tSV92s+mau}>~$-jeerW7u;mxTtwK=jbLZWrioK3| zCZdnZ{cGu8-Z}m+66?ww9~dGZ9%OAG`fI!mQ26b%<@!oLw%iYqRcBkSgDZDYM4lwB zSlC$!&Z2Lh4(D4>gL6E-PPzCHI@@yhod#zq#~i-I@o(_RUtIpQ`)l#%#G>$voD;)7 zcbaoz)-LYK`FB|BJkEYbh&7#IzLv9AQr|F#9(?1SK1=6r&|}zC>T=`^z3WH0(xFj$ zJNz@x_4Ak3FiYujGwI%f|C+I7zlm=n*%LXPtnBIMIKL@b5%WlpaWCupwDirJ?g1yU zMS{{E%)=-ywdqr)n|FicdDLg z7ai=X=dIu0=zG2AkLg2XOj>>K7roa@RSEU)k8#&b&-_L7KePWmbV0r+?atrW#bghb zelF+=B%lZNWL}$!E=%2aU2h2V>=s$fhHXjci!KEYaJM zL&%s3$ci~d$cnpeU$rr>L~Krsm(`m$?fm5fb2vM=J_~iG_9%{i+*4eJT@f_zap|nBvbj9W=?Lc?o9QuNt zS-y-akx3Pt2hV*Aoo|t=-%bnk)^Cx61q;Akd?|e$n!i6rzAHC{Z*+R~`KNpKRo(d{ z-u~c@zwR=#zYDqJ=vtK5iLNEzjd&-JfDN}Fw!Z%K*MNe@xch@H-Sk=@t>9JaN2WLY zmA+{Um?qa|kU@WAPk0a?ER20QH&(|SDc}3`>gLpk-+(7iYqvNXJ}b0*Mp^Rh(W?h= zMiTy!ev|K*chLs)ZT5=$7rX=Re}ks0nY(1qY!cts;9F8v=?P{?dhI=#x57)6$dcjk zU^(p*9z4l==>^R1%PdcdT?9R?;HRvk#m0T#P}&#Af3>M+=DpQ_Qr-i1(HkxA$==Oh z;2mkhM);u~K3=T+Hy68a+90$2mB0w)Irlui%X7mEqTqv5;qfxx;%BDIy9S_doH>`i zDUfehe~xpNGMCG@V~YK=Cw3;8@lW_Os#228yeW)DJ7-HduLLsS-QM|UX#NR_X2J|` zu8(Vfc)*$4U!v`Qi}s^bIqk&MkTj1$UBV$+6j3*6x{hYbrY{$94Z|XR=W!kZxM|xSGEnqCl zn2!AUmT2D0xn_zZrh_xO7Iowo2^ za2LPRE$EZ+ey8)1k4*Uc7x?_`3kR5aL-98~j-TsGy29}#o#ObCUe@DFI*Kpp%7EE1 z9ot?0N8LNVhu)Zv-{^YIw+EqbqK1DW^%Ac0o%AQ2_+Iz;wm=f!&hfWX?{(rkXe)Dd z^62pLJbsm=ZDTFHm;2;<&~@<>*5f~V;I{&EreMxg>zvtZWsrGnhEJK@ebcYP)DB*!yMzNOi z4@(Yyt2}vYl56)H{w-hHA8x;GsIRb9iH zO7wA=&-*zJ*TZAsnEwvW0eWyJy~wvs-PZ?;nZzF^4!XYcw1v~cGGtB0MmL)S9a zhA=*BzZUKaL-#=v#$S(wlO=qs8xBgi+70(39Hso>yN1UeJHl86KjyN|EZ^|}YVAFsWI&RqreS_O}wFFPh{ zl~(w&j&{_+J3;pOE8%5nOEWYJ8qTI6v(7A z%~C<1d-3TYZ!_=y&Qs{vqC61M_LS3}*NAh@g(^SX!?{qIuMhLy;dk^1SBF1&$4uyI z&mSQ7WSnt6e|(Q00kgDU>|g08v9o~kP${R|BNxvm|F=ITf82Q#=X)3y4_T|UG6pKY z*3UUh9i^Qk=o8T)f1>U3o}qO4gz>27Gx*SjGariYM)EdV-;EWNxpBI4FMCIX@%AV- zb>jE=#IHiBKbArtiR_WM$A}aCQtFIf2V@>|_5S#JWxaS1-mB%8ZsZJ9TD#0uQij+E z(~Nt*>hH|gw{RXs*5z`(K+d5edtCc2Yc|>IsXzuv{AA+g{=Ka2 z?%g2+o7#Eip_2s(XHa*@-#JOz8sy%x*od|=FDGKtbl!1ZdCZ4X4;BmyZwRia>P+Ok z^0e&42l5U(HuQ<1Vb}&K4rse1qHKK|fb*#s0Jy z9aG*72aieMF#$YUR(_*19X#rD(p@|PW?~+AU?Y3PFlPIl*Xxo<6dAwTrA?;&k7>6~%Umk*v^?e*Lj z^?|<$at?((1mUZjnX6^(!ae!)V7U6g*Zsj7IVTaOJ-6(3z9+Zg(bV08bX&2b_0L z4nB{`Bj-0(VR; zcQfs}9vq~uUsI>>N4zbe7u~RBSlfuK^EM}im&rHEi#>gj0|#>HLtv^vzh+6kMgCA$0$S2 ztH{0cI`Sp@d_(FNCd+;Dn0$v)_6?-$AUvCV+tiIo=_kidn6cyVn%rTq_ZQBTPJJ;6 zJ?!1TR_>|EnBD?UcVZKsXa1A zXe6>lWQ@g&Id$T1k%tbwmPsCbm9qYoJ!x=Cci!usm&lJ@;D;P-dd!0-X@^Fz-^h2` z;5Y6{o$3e3&JC^f@sG*df<7OloNs6w#eN#BFwVDny|T=d&OXrZhKeg1cY*$-!m_3^(NMgC@V5vL8e~3IBQf`>kZTdm#7U z*c--naw+ldnO?b{HXNJ62w8{TGnV&l7nal~;Xgy@lb;`C&S);K^LI{si@8DCC30#r zb3-=%{IEy#}_ivZI$sIHH8yfI1iJxm^;9{K3}JP!RhO?&9>K-FZc&M!@cC^ z%}JdB-KZ*$ve2hF9}<}(@ls~5_iF!w{zfurn$S2AZuIbYVm`9&w5HH6I9zXGmw{GPkt zRjO<^GnOdzJTwu~I2I*LPgGj$Rt) zKY)3BQ7LCBN|3E5=NNY$JiWaA=n(R@%Ya=nir>els#p&PZO7 zpW)m_B5BGmGfi^lY#w)i$}bBy$zJCV7~7M`hyA)qzJGK*KE9`Ou0q-`I*81d!4*q7 zlXhKJGoAKL?`key$2{uzzv0^wGtk8B#d^?o4LwDrg^*&Ym@OPY?KG(G|#C>PzgB^T=rh zWB9%mdgygC)ZczN^Mu%fw=rJJNpHYU_MN`Xog*fg#wzNc2`-G~1B+MO*qJ1KgIx-| zubal%|HrTyi@SewtzcQ<(G$>%F2AP5;>Q|J_$Z-mmw1lj2ITpls%94@GCDq zmuiPmC-tX+&oIVfjo)eCdTHNW+P8%H$7xS0-%O+oDPPK2ki|J}%9?kX;SBwVhO(n3 zR!_C9Jd`_TyDzKBr`+v`aTfjMOH3+%+Z40NPOnO#FNv%2aR-aJyz0f*m)H0@CvHUFTm`S>Feghn z?w(y{!w!66%Y9ZL1)1AKhL+`uY>+dKX$2+ZmpP7amy9pJ8M}%@v)6<;iA6e3{@przFiSTgt=^K3>X+@=P4SH%2Jy1^P+G z%Ms@8`Rwyuj=V%MZG5--+}M10Cy6rPu@m^{o0kl(Gks~vRg2#$+O~Ua&FhSN;p3nB zQfg}8r5W(>Dr`mgqMrx-lglYT8`^oxqYS6Kfs7f-J|JamV|+}fOz~+iWv!#EC6u** zvXV*nH*gYMY&qq`i_EdS5agRE(${(9KT2AM4yxCNk(puIC3CWz<3zXNyqQ1t>>tj4 zUOtn4`Y7dGl80=3!QDeaW;BY-7$455k+n-V`#|3Hi`X$lR*BtJ^z>Euf67E&F2uJ; z=U{wj(3dBws}H=hXk5)V;Sss7FKHG+|HbgItdS^*vE z$#*N8TG^A3Z-7dh*{`fw`M-&d6-vjy{Qkd3$7&B9_n(%I;T1P0^`henId{UiACkzo zV&drtFYg`6nG`QAbH151_jI((>Nm1V=xJ%0dzQ4k@GNNgar5^e%D9%kxjT-IvUle2 zBYoHxKiX^GZ4Pq%6!%Z&+LFNI|Jv$-X-ktCHtzINmB~H+{Ia+dz7AH zlN;tU4n193X0(g1XMCyd4M4*lS=q39&R=uSi5;OlsW-$tybXIq1$$)zN7yInB3{;g z+|@1+-ACx3T{fZSh=14&k()=$PV#cC@G^G*hxvvjKj9xywT3z^-hy+~pEje7c~)@F z#b5U+yv=xNm9-G^QRpYU{Ul@h?Dny(J;&849sfMw%Nl*oQtX*ur#<%|7dG+1+g87PGMYI zOry1{R>Ny*S9N4;yj|7WJ&Z4NsH}Had&-*!UdUbSTfOb=IoOhYq|GlZDK1Yn`zNDM z%{0+XA@)C#GT3`hKyTr$G)a2VY>dS19m$~}fooR9r7kGjPsd<|uD z?~ML9)sExt8@N0yWyyC;eoI-ET2>zANO{r@Cx2XjzB#wAdw;I~p!d-^W{K&1iOr^10HAHdxUrH9r|+`1B8&d>ZjSMF!07wq7EJ@;Wp zpyW8Tu)6=ileD?cOPgmIFRtCh#rdn?EWVD;8sI6dhX$J!#~?3COo zNyi@NYq*4R#eOLG3*T5D8S=dx8d~itG za^A@p_U8X|Pd%<3^0acRPd;>g)(Ri~lC@wavfznT{(OG*|4DmCriZ(la!r@CKO;5V zwUc$qH|XD=W5aj{-TdZHPpRMWx&HOHtSPOpoy#2(`t3Q^0Y4-Ch*Z8=&Qs2wRoq0eIn;Yo^pMyxg(JHB5vb z99&13F0r9Wo=2cn9{1g2=(|L z^BzZ8M<2-yH?{T;=R0%7xvtNPUobE1e66hhm%l5m-~NZI>mO%*B5ivKyjQYTzl-m_ zw_*R4^Cq$%)Iu4uCR{DyoN!Zpz+|8w%@99WZOE49;o+_e!6Aa|vpAi=hI<1zXF#Wg zJVy$hkSXX5vL@V+x2K>}#+3NoJri$cg#y2q^MK-$qYb`0j4Y8o0GY2Wd<3~7?;O7M z%wOfQ-pU>tOT}lg^v5ysSNi!*YL1D8vQ2C$-`75${*<=I&s9=>BJ+S##;$Sfhno{2 z?$7s@!|q&W>%m^v5TWcSb)fSXTuRx@{}bh#tTJx)y)EPYRR4(NZ%oX-G{!t2^)b&4 zjRi-W9)F0=JK7OkYdX(O!vCL)&))59{J3_u^NnL$w$PxjHoN0q<`=hJDa<7@w{WJd zX-q$p5%mdABv<*^V~oOQ4e-fj@SyO9>=8z@k=4E=hc8;-i+sjclrbS^B1?cbQjRS{ z_)5yKeC5rHoR&BlH#-h;$0ZHE4^fZgw{}*izdUD2y?o-fBW_;0IiaUr(oeD`yR5(C zcNe`QG6$cDvPNC@725W9*~iYrhJrmQ*qm200>3K9Jnx3LRPKBkyU%x6hgYr&Zybeh zmG}5=O)F`zn>E}|-aUjX`$w9xpZr9P+}8>wj;b-tKO?cP*J8_N4St=JF%z9t+9Y<@ zO2*tbS);EC1gqM)^CD-lq@C~IJf*(3PpXr5q-H=LE4Tf=ljmbk%5S$X<%~xibEVks zWR9=I9#9L8^}Gu<=hw7Bi+aZI1H6-T@@;V0!%1Y$3W8gHNptZY_B86jaj_|y$T)7A z)-N=vjy&JhJj2N&Z4p0R|HiwhQ+8g>%k000#AX33>8txlAM>PdE@gdCVq%TxzZIkx z9ZviQMyXT2&s`_a?yQN69bAk9w|z8V;$oBPgrgsgAnc~g`)Ke);T@r4{M_O4iFaS! zo$F+t6aJ9%!g797_G{V{_qpIH;duH?OE%l3Z8J1p_{QoHL1mA$i4-^NwHXrNCZ4D7E-O zaQmBe8~Uu3aWXFOBhXN8gts~;O25n8ISs#MdC0#s?sv&OWjO=H858k2xD5KvLsl=N zee+h+)>>%rP1-AEAvYX){h9r43Hy`}Sl=GVr9J3o4n5?aztF?xuZqk6Tp#&u-mA## z@G~|p?>EcKwXGi~|3n}E09?f;B#)fMDIkpPt3dP%Nhk96_oSN+y|cjeF!iose{2=@-WzJCtz}at@TXWNVe$)Ij?qTmcZpBGDC^GY!V3yZ`E8sV zd5yW@RmPTk7CQsq=+aJEL&?6_D96uqyv#_ZEw7R1)d1%($p2U95}%JX_&ru$o@w6M z_Od&!WZt#@(nL?oHzslczZ~?nY>ywcKJBSD_jB&+e&GQ2zcqpVvez$X{>A^h%+cHd zpiQz?65k}l8-592b_M$LEy4i}qZmss(5JFal(k^;Xy#(%vaAIga-knGfk!*}}Ye?a&!JeV~~ zbhGq^-*Nt1&JvV!zgynRepDVZN_3RxMqxLGAHKm}TP0_`hQs&6&_R9*Ucn&yJ-a6M ztaByqVb6P6lWrAQ*Q7z@(&60~IzEc;W*^XGI{u;E?>s=uB_qu|xeM5aohR`elksM5 zV!gCo=vu;lkZt#2_OOJmiJ2$cUCul9>6+>o$FE?AcJHako(KE-*yCH*_+uA>OUIbz zE8Bia-mB6Fb&QByDPzk|pCxh*y7hDT*t^^`eQ>8KE&ljA?prj1m831@Esh z#ht9Pj*aPG{|;-pW5}I+_IwJ4uui!>d@vusl==ACD`0*-#yUshWFPGK<}1gL zF42F%c^z4iD>3FY$@kcAWV|L`l`?1nZA>A2jJAt?Z{$^@27O}Jn3@&%<$C)<{QOhC z_|_{=4%VbnR>x(LD}$8RcF;8aEA5g#w>sn~bjbOhcf-&jlNgT={7ZP}9Nx?RWHsr1 zPhMWbnWEVD=>Kp(GeP`pK7pS2EPA5s+q~=_Syh5<`EBHh&`j)m!t?k)o%aql1L2GJ z*RWScABn808|ca^**mJFf9jZbbEr?kR#sJB;L4_Qd=~0imWFdV$KO1_OtNwKyOHNVVlve(9aoZ|lA{TgfEBh>#2_#Xxr+u!VG6t~^Uw-MlL{1O+p(T8p9k-Yuj z6#0%+(^O>6bMTnVk&-4=dB24-9Y@P3(<1{e1TXB#L*J(yWPC&S0>ip|cmsQJL+$wl zSB9rIRFHNc_z4eIvR-~48U7kF@>O`zm4EV03E@X)j|dr)-tZZ4dHgT#7$wgR7;16?)u-jAH!n^BoSw1pZxrbI*@RC->fd$TK6| zbfxgL_ufR7dgW%{_BB^e?Or2y++07R;*(Nr2i!TLJtL5r8MG&}LB8|+j(dL!xjLZX z58R&;J>_|95-0tyh)#mt4Z7cgj(Rh^^8;x28amgjfwY1>(C?i^rk=T`q3yv^=q^4e zMm8j{ZgA(DOs8KH$OBH?t2*=dDNnDTxb_-pm&kvSGslvBmx_*}clWq!ky!OMZS6!? zk^6h{O6-KcP%R2V~ESdw>lk8lUCMbk-v4D7$=+$(Y6uoug{X zkZCI`kmIkh-wJ;)ugdpohru7>zgy_(oHuEBjy4)}k``pb+YjQKxktWv({l%Hk?e2# zWB-8O9l6N22UNbLx$^Bu(3NlE|KiOV;ih+yVQ(S7K7owO54iG+bG*Ie*EHUX>=L zQIA|0#k;8UuJ_s{$T$@I?}BD~{DqU;G0B;DXd`@6N*hI=Od)?qR`ZonXd*fWckGH? zc`&TutHyMDOPe67^-fzf#KFVf~bI2;>ST1tRe%@2(CDcjUSU!0^ZlCE> z_!peSPi%bb-D9T;#{5^gK6dKS&&7^v;fH{;lFf-+&iw@kaDOXcx-u3If1ryr?~^YW z$mE{=3!8$R1!2v1q6Hm0E0Ec~7`^kLKa+FQ8SQT&FW`lqd(5qV_uJd|9N4(&pg+w? zlg}Q__%@)xF#O^Od|W;`ayUfOLFT-n(QtekeqjMJ_20au&g@cUZ%Mz%aMo zt-~Kk;e3qLdkyu^WN&=niL4@Q%R8+6J2ig>`CYuH2Qv1iDBjnA_e}5}sCc{i`>H>q zfqRNh{SCDHboqsr9Dc_RDCyJNr-A?T_`;HN+(+O;*XGT-QrmYCbWMa0-832PEvHG- z#awtZzWwB!`<|XOX+7oO6KI~?lW6IomwTpsoj>igeIz~(cMQE}(+kl5O=Mpe`~C7R zhcZrA7d|(}GltUL_{{eDI9wz?k@HcN{>;6|?DoBswIGnzj*ZIUgO&9CW&GfW82o@w z2s!U0_h&QOcmKVcbFb+QoKqShu+4J|@kM>)k#ckX);+Hi+Ds*nJ6>J87i+W~tUGsL zZ`{Fr&}%O+%-GE4_ayP0r7Mn)FC~w>zY!T_WyWNDMT^f$S$|vkaEx&;w&>%mU1k`w zmv!YMvc_Dp_*hW^{51UoXa$c(;Y+d0e1-R~b8qk>;`ok<6Nl{C&bgZX1*BQW6FvXL zy4bo+tXX$VhOhJ9>)v6@4H{of7JP1!dgCFumVj%y`shgq*Dzr(u7*D^eY$_^%-Q?J zMxJlN#U1$KzKi*RzKD&5Uh>VK0{m#@Cx$oFWbesLT)d4}%TKq)#G!-r}kv?k#3UInT+OrznrKGAE0CKSsUrc=?G7Kp$CCT0C7p$?hF- zvCWA6Uvz`Fpi6&Gzr2VK0xA1k^20aVWeij^7DPr~z}|#&|C{wRbe>Sr-|TnvLY~qu zo3T&U(O>w}E}qUjIsJ<~yGLM`yg{CZbZ7G0)0dB0FP&S#_a*k+O6Gse<=w zc`x&vyx+Ln7rVDK&=dD9ZyfLM-JQ@AcdIv!_xJky^~8PE6BpSU?y3TgJd6!no(qA2CH2HzRSl!obLSg>)0us_-Z+$HN4>?;M1Mo zUcz`5|5{=8*x;usv7s^EI|3zzF|ixCYcALB{xoZHIqPm}H-A>{td#3{`A=d)i~1e> zR$R#Yy9k&2u(`Z=Yb@!e%B<&GL{I`IlVd}UoH@=AR2{t;V7D{aO` z;MiNccjvXE56p}9cW5zQ-W$phJ4YTexpKEDF7L;a`ya@(p)#L)%XMx1ZrM*!cEv~C z<3r?=Jq2lBR$_lympXHDUw7^de=?s&P0=K=^|gYp>=Ps=o-=f^FW~rs43l4MM~MSR z4V}E&eOJLdS;xp7#;jd|Wl><`+x*#+>!4rtx^E@x7V{i)f0@~TBY53?ePL`BK8DI= z{#lk0yE*mlO_PCTt^H~I4vkNZZW^Atd6S&y!S1+&Hf{JM_0f+jl2{+g+=8Rc`|hR> zAt=&K`t+P_i>3$ra+eBrJI(i(0Draxj^pT)0BFCRK5 zzr`hUf5c@H_kN3W4#2esiTsx{lcMu*U-iDMRCA&YUY0YGSta3RWrXXxH_w?1F0^yS z*`MdK`=Y)E`KJ9Jm{VjAS@uTpd(#kMt`_^{M#keenddX1RabxZOpzy*jIA8rNk6nP zrUWhpmUg!#alZ;4UpU}_P2!hLa2MN>WACR8bEFOE(sE`p%)DmXu?Tvu;=6!}&_7rb zz7E^L{%K>%3%G;Xl=tc3mn8=1yGsmilNb*YPUbE!zY%6cjijCXe)o<}^wc)a(fonE z(qI7nj&rIqrnvKZAd5U*^tr^rrw5`s=A-VI-|%tvEo}9Ce=&04Y}>!P|M#8t+qNSg z4y0+@4eRD+`b+wLH1CPNjnmeF|zNU zkH42=oX5`paLPeP?s?#6p-moeTVMWQ*pC+5fa4E_{e*P!1#_qW+RJzjz3P^m3fKCt zU4PZmn}(cs>8#YXzH2w!v2>QiZ#eJ7O+&7_*@<83#E*00mlD5}xa-asOvU3!y*#cxZc_>)Oce=;9*@AwYw5Pvdzka;o&#Gj0We=2wrZt;2i$#nMN zPX<{P#FtD;Ki_r9tGT!FMYC++>Y7aPFXMd|05xj_dq3j(UK{kl(QPwB$ z=!A0SFY7~J)>{V?-~=&nXps8v3Z!fu0b~vA7?^WnP;~^$78hH>+3B3+r~5HOjXF7@@?a( z@_w{?*5Zuc$D}{3E-7=4=#r0NE0O*aSt)B={L(duyp%Kh;=|a_lQr#u51lg#k)iUf z411QG^H)QIoP95cZ{7P?X$|M1YoezXh>ZIzKIr7RkaMyU{{@G>of9RW=sdFSgWlVh zQ}(Li?%B5g5P$CQN?-c1D=(3eJ@@T7t4W)r9ciq0z3q@TNL%9Du~*yS%%PrhXtqtk zaVc{JXZmjZ-QXf;3w}hKZ2Pt$-=)tajjW^4p96whHpf{gYMXU#0oIzGS35<&3?=&y;r6b$721UZ2HT zO8l`PcJ~-^@7e&w%MP~S;Am;xJ$k#H5**K=cr_k68UlqdBL+Ic)t7XJke(z z`9fS2y|dh8ObR2*FY}xEM;CGCevQAr8oqw>559UC_qF)Cbn@#NTlwzE+i~kMdrrcH zf8dk$SU;D-Z>(>+@|xYXMc!CvZLz_&8$G;B!oB3Gr$25+K2*FhrHeC3j=y~H*k=y+ zk2(01gnRt(-9SBz#RCg@`b?eU1GM6e1V={7I>TAZpK`wcRK0@xIpSZpF+!bA9oLnJ zj!_``g^Uw-e{gt#=y5_r_@y9?a|}+}diTDHd_(zq^g1acE5$q#mA)7HU+KmZKI=Bv zIwQ2jDFb{sch;+Z_}!5OeXY5KudF<)q+RAj-#7_bft|Ml>r#~-(}RrIaDvG%2` zeZ!b@WDdHX_Q^TIa~N;Jo9M60Ze{L$j3<6EU|fWKbGoA^`_-zqY{f}nGjQ0kRBUxD7XUcp27LF$)z zN9G)vduY>vFTCuwQT%?M+K=A(ptt{(&vH(&vVWLw)VuyyEdG7@Ux{+w8=n%+-H86Q z-@(yC6J)RBTjg5Hba}G(ogCq-tlLa|+p6%R==@FKKPQ-Cy0VzB@omv%W}Dd8THJZ! zq%3pK!~X+b@xF8L++Tw1GUG4eY;eH%_O3Gi_A+$gCy{r^t*!+jb3)EhY^5I;a(*@x z>K<4TdSc*0&d-JnVIyHPF~@|9c@|rlBzTra%!vSNZh0<3Pt6WRx=M}j#FLEc$>{RJ z->Z0vtPh1=o;jLdb~w_NT@mT32yLEu1HV$^Kas=wd!fH@qUidegz&bUl#*?u(@VEq zFsf`@w(-Y$@+6pT3sZdCZb4S%|+5sYA+Lh@X~FE#X=ThbD%W z5?(6d3<;+YPWflsD(#K`1Gk#&j?JAy!vNuGczY`}%;rwnB7UJz1+)we+zKtTgS_Jx zGQ2Y(m!=;qC|dYIR*{#c-a3S?N0q)p=j@ILI)%OgXzitMGxW_iKI#k4l;>!9cHGyQ z-LbKA5pYGw%#`O1JcV9cp_kZ{z<BjysMRWp^4dH-th}9<=s+wmoYIr#5;bxqc2R#|0>P=3E`q@&SJd+ z|89ZL!q8#s*zg+*nkS!loxZ50PG8-)n{vzr=lRjo9}1h;L$BYqp%#9y@3*oR<^6th ze`uCjn=;sMzVxF~)BI9tYV%7E1xssc+0T>yc__i`w_$11;ec=N*7R^uDf^t+3FZWA zt$D{C{Vj69_GbZk+nzL!_78?PEJzH$!5M>j52IfODwlNn*M>W%nBd;2hs>jE%>~E9 zrtCfTOy^x~0?#~b5*nUP0SA7I`0W9g($Jnwi};m(u>9bH*0T0jAKd&>^YfdX`zWU4 zTN`Yd#|HcMau#aC)1ygi`Zp}%_bPbxXT1BtH<#Z6Y^mYYvXwsgC@UC#ql9`TUpD1j z2wwfq-?Qm8^8FS3URC^dL0jbc-T{?g?3B7}oV3H@AEKN)z|n03^>%gd@Eh(U1`_uk z1)sJ2Z2MZkX@Lo}|5kNgFW=knXvS1Oehc8)a_oEyBG|K_;exO^@g%Y(WSXyBZC=Ji z7`bwb*?fi2{RsSZ0d?LPS=nZ3~R=L>=`T#>Cc?$=huCqti>aEr|F| zi0*pFsN1(aJnE`#k|rVD*OP8AG8h|Vdl~J>1^-L1cVxqp0W)}SsTo`oS{vRLpglQv zmuxEy`%mOU_lmV>>MnC)iV+w>JIuZIULEu*ymEIIjuzkV{_8|TUA$#XKjNs)ZzVfK-INj21 zn>pLg{^fD#Jne(4y-A;`iLWwzDa0bL|gl@ zHY_w;=OU1IS?H)@XjEA?&IqdGBK6+?PzkGy5Z(U+U+} zKORa7zt_q<`5V)(fi$t#R2IKZTh~fB^z5buDKp#G@?3;Wu4tXI*F;XrW09p&$MM0b zd!-(+W#(f~D>bP=j({M(?Ui z&H3G?f8Y=Fr@q2T3Fkk%DKGnXn}h~yO|apM&_QUh1X>6k9x?^%3jF;Vj=$UO(u?$x zM&j>ao|5yDG>nRmK(NIjwxB~Z4cbK_Ip__y7%sB^!x9ogM8U)p}N zPoc{q^d8z-KRP2^Uy(ZHy;?K%z17Ih0n7_|GB-rbi9O8q3nJ)|$PsvYzq^JpCXil2 zzLNS?@Sfy@mz}voWL+S=l(^EKxWgjPBPNCp6O(a~2Q81Luc}WNxynhiDD~T$)~4RE zN#oe~C8Kh0@}~gvGmOQAl&7vZpP#(19(Ddr*+0&? zN#2_uhi>Z6IBkxG->YREN*%F>-|5~iy2{gxi>KlFr<=|GK;@S@NAt6^3egs!mzP$8 zkIV%LP9HL#>b&l!FJ&$eJ<-Sfz1lN>S3^JEHLccp8~SVqE=CScT-}rq##qE$)l-(FTSOlS-6d~@sYYKuHJ!BE{{4Td{h{#x_4eNo zSv@DA|IV)o9sF(I+^{|+VOAhD{KkMg8fVqQ2PLfGjs^mIbD0ayzdLl(6rNLgJ~-;N zo1WsgY*gW_4g3~$t~xmG*O$)Xn+hA``QYd$H=WO(#)Bqz-6HgDD-WbRDaR?}itL-7 zx*~@%emra3!{ctsl|2y7jm4KO<;hRtWv&zXBJ413`7YHyJ>%ra*U!yM7Gh7o?Oy+zhBZrsUrOvNedn9>i* z4%Qm8H=Gcuk#Ud>pB^5tdhb^DkalAmurlx);-b&8x8yeq(a za)@)s%&QNAzpOC7*n;ml3T@NMrDDPz3k6;h)kF48*JaF)bPSPeBquw?+xC~g+tKG!UlX`9>t?Z@7 zx7%GCemqT0AAer`mv1JF2pC_3*h6-m=gvcSXP9|qA(L8Jxv*$aFu1qExON;{R3L9x zoy?_KzCgQ=J73cWHouh5FU)yb@7&|e?ac3zu2tHDJPwks0)4Yrx+&qEdHj0P1xc6K zM>=$nJbtI-7aih%XFc$m>|?GHJe__3pML-Eb-uLItPu9Fv|J<5yR(l|YaF zvWD^6k#?Tmj`TGAEViUlp3)BK=iWA@r3V)@|8q8_qsU6frbM6T^0PLjE#UUCHYLSX zbgfftO2nPXrgX;{Y)W!Y%O8hNguWI#(;niyeI?-p=Go1W$tT*dE%{Tz^d5L%+IU*0NunKda!Xprg|T(dYV||Kz4IoJpDPJAYjjzXJH)uj`ss+>w~dn(WI% z?%d?n?Z!bfDO<`Nw<+Y5JMPzRxlUQw5=5sIeNylc9Hjn5zsjAp|X`C6#_a!}3 zdY1VU*}D!>hMZMw9pUZ++x;=Y zy`M47g8xaML%xPb*ozB&w7I2@Hn*V937q%Q%Po}C^~fR#Z*Fm)FSi`ScaSardgOzB zA5{N8yWkW1t{$I4?A1HC)G}V|`$W(CR%EGtzgT=xY5LWq{|$HdY+NwabXmOc@7C2! zocQZ1cG`D^K` zMAFx@cUlR}IrC7}2E89)Pg8t+$1><#zyJv`{}fR`6N=ZfNGi1>SxHvQ`v+T@;T@HIrJXYN^~ zv;17g`MHmyX)R}pe{>e$LO4;wKIDg-CA$T=Su5*e=qBf+ zu2MPL$elIeC6O!JBut+MkthGG+*o-Qa`|4$7vGn1K6)EC#uN_9d3k(co^gI*Yz#Qf zxZr$1N9v_lcNu@y3r={VC;SOd_$p7h)DxcS2~YQgXL-VNJmF7y!k_hozu*Zk^n}0U z2`}-4Z}Nn{<_X{G39s~oZ})_&J>fe%;dP$ycRk?^p78fQ;Z2_Kk38Y6p76t-aDylO zGf()@p76fZ$35X+c*4K-gm-(wPkX}8c*4K+gb#SaFL=T)dBT73gpYW_uX@7AJ>kE5 z!f$xO?|8!RdBPug!v3k2-}a^U_k@!?;X$78P)~TcC!FaCpXUkZc)}NW!Udl2#h&n` zp72CZ_!FM+Ri1FECp^^?p6&_H@`UGj!k_YlKkEs9!4qEShOgtC)VS*W*emF_PIzm6 z?1&BT&X2up!$OV`C57aOv3CgEqWyYz%qqrmr3w`!^fjIySb+hIfyR-Dkr`#>Vck zVgE(3m<{J#6#K3XmtGXZc&3ApHoW`d*q3ei$i=Z6Y}kKEjJe+} zC+Cvb7i_rnlGx{Lc;O|n`8HgAN$it0y!DdU92?$!N$gr1K5|KHrVaZGW7BLnr!Y3v zhD!@$Wj4I9Fc!Aq>cSYCC@wx*3uB+K;oXI?Nj7|>FgD(X{o`WeY&d6J>|z@(9T&sC zq4XIS%d_F?aqJb_^2fz;Ym%Gy$6oY*<}cKDeT{GV z9DH`_^OVZ}PvLV)MgMCrnicOBeZF;@aoS^_w$$29?)&JE+^2mX+}s=PeA

zj2?3 zG`)S+KI^^@J?B0<^jY{@7q;bAXt}fXeWN}*fA6L%f5CmW9&(?y{K&6*mt)Jb@jY-H z-cf~Zx;DkTHV%KWXV^0AGe979px?B0cVp%<2HQ{1pQINSm`S|-lTZb4>sh9k{B5M? z8@x{WUY6>sd|Qt#-+LUZ{`bRVYiDR&$e{-SsPA3ET^w{7Tr)`gk3oWC}OZ8f+!Qg)JVf&$;Cd*7S$s${YO~H@?3uPw}z!-5&=pkAs&gZ1Jtw>y~Hn3;))I zZJ)NpLZ9@{3yB^pzir-1&PKw)|PB=`Fv^*7WI?!Q)7r*{_ zH@}Uat@zmdM&Vq|e@J2OYC3<7nm?rQQjJG1cmDDezChuy;$!otDs1IThw_7^f1AQ~ z&gqOxA5qxi_hU_O<lin^_Ma`kQsI!sH){SIg$p%*p29}q0voUS&$0Oxw(`12<;@U{uTXhufVPwc@$$)N|Jd=7q3s{0?cLYr_IK@Z z_Ze0=@~R6rzu`VJI^1XBKip@lJ}dRPRMVL^-S~Yc+~<6K-mm%R>oY^&A5yqc^O?8Y zd=&~;DBPm;H0m?;sGF{>)qRGv{#uQ<^cT6w8rIRl8a0s`kbQioeFm< z{6j78DTN#LIa8l)`usqj<28MY!prqJU!V7D{7$W>PM>4-eNdma{Ld>qR`V~_XSwQI zh59Vg=X`xWrTLomdB4^Z(PyK|1KWqqe|G7z?=S8%sC<|AR~MfDlKb3wSmXcbJ}X{y zpG)-_(r2MQgZhl^lh3xtmV}m za?`EX=WNZFs`%UTquS0xHodlUww9l#&mw(R>T|i$aj8DbHGfE-g^E|>Yc3x7Y=T-^ z%XqPWc7E%*?`|sXqC;7=dD^Jmv`R<@2Pq2jKm2 z_(|P2@{@AD!Y{;cDLo9(G0xvU zz%8P}t6kjhbHCDt}Rhg%bVsP+j;GNg{9Br?~s-+JS%_m zHQwqWjT&$Dt|E=MdQG#!R*#vju+@WWHUD{T@uoxLtzH{aIHd6z3TG>vr|r#Ac&Ena zDjd@I(F(8Ec&kTtX#G}iu2c9zP2Z}p@T~mJ*Ybo1QRpGGW^DhcFYy32Y3pIYa!a;>+C>&9IX4&)#U#oDDrWd&+f6F!gQ!Z%g6c+g; ze@k`#`K$|?I-MuJsBo&zKdThJP0RPG0BHWZ$_op>?!p0uQ`=lPL1C-k_EUJ@D{g#$ zg=^bgc!0v||K`F$g_ml1oT+mD?0lB2aH`gyqHsjh4^+5N%O7OZtNa?QaI?ax3NKZ7 zh{9HHAF8m`+wl?N{%QH?3Wtul_zzRKbrP~i%tZ@$8_6`uly8rueQxtC1@~&1mRq>gsa75vMvFR0`X$n_p{B(t9D?CGCqwq|HLkiDQxI@dk zR^g=@KU?8_8b8P8SNeWRVWa*3X@v_l|7UHyw(pAyH!57E@Omx(MujW1{M8EADt&#b zfHZ4;2@2P0eFGF;s`O7(xKPVWQn*6vPqF#6e^M2mt@+awZq)d6g*&wV;R=V9UosV5 zuKjzi!mY~BV-=3*I^=SNQ?>l76mHb^lqp=P>8lj((DXi4s2UaD1cldYeFGG(Rs8S; z==_BgPExo-;S`09+66KdzTe_&^J{%o3Kv>@R6z?XeG?R3ujvO^1eR*#FRHbjC z!mYMH6b@T_$GYif+x9D5X!%*;M(saep_Xs^L*b=bUy{N`<9*}Z^y@7?3WpWnBn#X2 z7rE)1ZT~9VVdd2oZhXY%S2(2Q`@(MgK1(l!YqfnzQ{4Dki*LCLuebd((}kNApQPC? zTxjLvZ7v*9`eZ7cx5w2_tX^2^CNowKS27x-?O3Mq<(khX52~HykiJ;2_K}wq?oj*b zBMP@@e67Me)eiDKg=eds=65!|+GBpNaHZCFK;bsElhoV%if@y``_w-4l){A?|0jh* z3fpx+M9X_tnPOWc|#&;@x?YjPu z)~9S>GPFJ4()1aMpV$rL&#v>W9pHXl7hLT|n^Y}7L1Cly+jY%yrSF{@U-68~C)Q4I zzpgu!4SVbY)^3oh^=;Ms5yd~I@FBI6*>%%CE$=anFV}U;PZYN67`txkP=2V<_(pBd z0EL6fPj(#^)%c*sFV*rNwB>92pR@7G4?k77R_U=v;i$qJ6t2_u{6gVY?VtZrxLNss zyTW0m#|sKa6rX(xhm?LZ6mHe}nia0o_8(L@sO?L%@!J0V3fC(C{aN8crMK9XzFe;`?KTJG4F96uw{S@v?;#|BVVaD?Y6Xhn4=nRCu}4 zSL|W(*P`_uc0sdK`|pnmAJX#wqHu-Azo>Ah(*J3NtsNv+;TEmWuA{Bp!rDD5wf-A5 zy|s&2J4&0zS89Bl_D_<+sapR`g{@uVVudS|-Zv{8*8Ir|w<&)2*z`)ThZJ6_<^N3K z4DHWr6fV;Kd0gQ_?ayB+T&ML}yGm5s6V-TY_po-FHkCit&S33$DVjc{{cG(W)^20% zK;_CGw`lqztzXq16VdklhsJj*KGyEBv&EH912w)v+jp(P)-IK&aEI2nL}6=3%ThQ) z>2bZnM)4V>aJkm6(`=6&a?k z{y1OZW^MnM6|U3x(Fz-l|B}M{v_0QdxJB_DqwsR&r>`iSr}(b1@tXchg%2rz-l1@z z#$T>*r^c_fu;N#!@J=oN-xO|9dGZZ~8x{YrD;(1C`$>gswZ5SWcWQrrU*SWlFU(W8 zL;2x8g)20Fn!?S>pWji~+9f9{994X8SNML-pRRC=*7qre4{3XcDZF0m|Fpuj+P?d3 zyteOdh07J6%?ej)`|1>)uk{aCxK+!auW+N*KSJRQt?x4mTf68L3NP38eOuv>^54HJ zoT~WUs&KjD^FxK36`zp`&sKi=oWkohK1bm?jlV(RLM{K-3eVT_pH$dre51le8o$%V zE53Ub?$Gjoqws94KU3kb#(!SnJdHnU(`$e3R=804`9Bpd()foJHX8o}g=>}m=P2B& z^=(o(Px1d(g{|HEG7D?`N`>oGUW651s^evy!q!e+q;RG7XGCFZH!oIrzQ(UsxI^1N zO5sAK=NA;-r~G)6!XZt6uELFq-vXOn+do0!JmtUJ6yB-%Lkg$re6&#E42?fe;R>Z+ zg~E1UVZ6dY?T;TRyifV%n+hM&@-9@kQR5dY+@bCJs>1WNJpqMV75^g&*D3whD;!n) zwkRCd@*lP7m7Wa>?^Jzis=|$0|5AnJ{DlU49zF>T^PA;;oX_n^^glEZGV%X;#{S30 z^aYo*<9(+8wd^>@|MyP6n!RfK?=xrj?=7L)oc#B*M}0Q`Hh<`UXs@4ac4T$+nzi4) zuT=)&Ue4JKDJ@wJ@46{q+mANaZrS?aj~{yY-|Olde)7|8Kl_iy zM;?7_`;NzdzO(5Uzx>sI{`!gLUAv!r>c5`;P0OBV_CEXEZ-2LM|AB+g|NezP9D4Dk zKmO^@e|fp}@R6f`edX2H+KwG>fBkQN|3}A(H{N{f?RVbo?0WD04?g^;+xYx}gns=8 z1QU~zQw9zioH}G^TKcfzBQi#2o-^v)^RhzOIk}_Hzu>~W{DLuKFS_`W!f}^gHh#jy zNkzqmlV`s&hUU%UC1|EIlg0gtP?&fQ0TFmaq@ zASP8((r<7K2x4IcoKzu(jGjogBoCHs3qsJ0q>*RvNHfes$i$^Gm_$kGt(v-tnv!<( z9=+9mq*Z<pJCJT#_o3a#b!(<=}GFd%3N0zqD7)b<+Eabl;yB}z)MZEb8m`ypP4P*Vk?qW%GYzJvBdBkM>Y|fqKh9Vih^zWwOhsBk(fcvc zYZDY8eW7~?>8ql#pq>iu4-hY+ZfuR{r5nf%(?zNy67D#TeO~&nQYf2hY6=FLG2uc! zEwqk-whZ%Gw6lujx?v(L>nhR11A@HZ~nRfM9i0 z@Q`4op#M-qLp8$v6;4txDa4^S0Y=Rrs%N#kp_atqT9u9-M_ZKZ^4P zoY&&K2Iti{@gMPU0{7r7EW`=ijq{_pImdtGaf9BYR&YJiUW*gFYj9qTGo| zuV9;Ct6+Mp_KDQ%$0cb?_DQ(Z{6Xj(9a?wSicDG9Kj^t5ii6bH%W}BeVms2U-4^r=``!4QA zbrAK{MCQnaJ|-Rd?Pzl_uF$^++v!3M^uI|b1O1niq`n&AF?G1(cn3OZPq3>6DZ=QH z`DhNb=J2R1HGMP1XliN;B$6!w?yZSVhQbLa-5G>xal>h9YKho{PM=7&nm|os+S(FP zi4*O*tEY0CKA-Xf9f<{!+*mZN{fz6)mkr3V6Z;P(SK=>+JK{mzz=S@;6xtt^FWAM6 z4e<{JBf&r-SbykfO|<2BMORBCl?ZnRRY}WzDR{#MzNZxll0ns$jHfzU0=VKs@+p%c z33iIX0fX_*U{gmF!%<5#cA_mDG0`!e#(dF8xaGv{LE~f%!FYSPBS4i?8%&01q+)%W zFkGb~!KSuwhgtrD{8UFE5}F^rD3)<7~KV;Ipq2dL*k4YZyMWJ#U_IA}c=aL_dV zJ4l%qWH~%P$kO8XHbea1rnx!Tq-h5>L(eU2O6C|2+O!wLlJ;UqL6gAIWmWUu}l*Tf-n9HrHf-%$NTxBW+Wx_pjsp1Wij#(xY4b1is< zp=3^zC3Sr}NS@y~7`DF%PyCvuJNh`-bo9`{x|%zM)bk!EefUUIdG(=+x`w9ugJlOQ z8nW@q4po#isBAc*ArN$BeN+9NwKdgs2Pml|pm`Nhgk@ES9O=rcN)Rb4r?R^8AkV|- zBFjHqccAXz(K?Zro6r8kb!83J2NB5pvV*=mE30cNnkpL0YIF+9x2EoZLmnyU%(t`# z1ym*RU?rMwNi3WwsjIKn`W~vdeZAbu>av=Hbrm{2tW#2pOMPVZrTld`3Rri$BOLaz z^%FTwl?M-%=_m)AN_@VGx^fYx&|3u}!8*)u8=^I3)i(cNQ^O$?n*3RhlUOUzNzfl9 zRjy*K{+jl?sfYyl<4 z(bUw8?zGjA%2Nu`Qx*v%5*|zzTH@gtjoyKzhod;dOXBeW{g^u)lB6n(Vqo@v!jV|V z@HAkuzn+P7ejbk4oiVAv1*QQh8lrSMKaE|1_@%=;N&oe!vT~^%V(!slgnDqRr4225 z`-35msPMW`{q2E{z_DQKn~Llx7pwQWqRD*9p~ss_V(fOQqB-PUDhlVjpd&NTx9poa6Fj` zL_DqGL@W}(WDGM(PkSI{{G*d5L)R%kO-?(G2^Z;7tw~Qjh{X8WV<9bpf}O@t|y zpKflWZQ1x6T!2Q9R6J<%!Qx;5Q{5b2bwu$;r~~nIwj~42k>I6bA>V8vc;@4A2%++> z5C6<(b7J@<2cvjyzOX}Qv(~^44`8}yab47@9JL|xG zcZb|X(|c**9GdP23vrs~ade+rhCNhi zQgz6eR#IA#Tc@^Ec3q_qmSW0;V?2f4h5E0~9yuj*Xj=E6bi5iv>Byd0n(fK!G= zEQiYxu+uSZR&8iqAcd8Q6fDj+%(RYEXs_mwe-llA`JnY3%Gc1e&Qpjo8k+6Y0u7kM zb~$E;AB68y2-lw}2h}AXtRLyaM-_fa`WEEhj=u?;%j-y#uZfq zhUWS;t6Nxa)OL!Z#RPR6_NO51U^uK$J;JHZ)`ygX)3SkU^lq{9<@%-`fDdX9bj{`C zYYJh156fzsQnc<=h`;7JH0wcrOm;Aq5hHj z8D3YV{+47!plMQK(mHD)==FSB*QDM!wl01%c%%iD)hUPLZ{%~1ht*w(U$Y_Kk_~*8 zQ;(k#&W+FcmZBfX<#YUve73hKrRiU(pP+iCzkE=iLjG@PTE}(Lv<~Z}o7d6px_xBR zQ~RQk)o^H?HA_)DB|kEuM3W`6G_9XHXK$TVKo)az42K zy4R*@eVzQkg!4F=>o+Zk6GwUJaQcmt@AR9EeD)6~-{~J^8|1TpIQdTh*vMx;aPn!r zoW=>(n%XVVX7!xtB*v(S9ZvHFYISkcQ&8P#hjD)zw&T%yIMs`h%k|P?)3n}C_B7$N z9#8FwSLeyD{*lUWLdlPL-eDF-*}r1o@=*)Dv8rs-JRWCh9#^t7 z>zk#yJvZCwc|Kt5laQwtG`^7^AGc{v7qn@5zCr!hG0}^|PoOk>a6NX~G|%%$E{$(A zzl-SJkIGL6+tE%fPKM%eszJjs{d!E~asGxf{kPGM(%-MkXE==wWm(_FqR&G!K$hrF}Jj`x7>#~(oH`RIV93Nfk~nnnUA&FQn@UD|)M zG(G=v#;50MG=3U+Y!~XS`C$4!n>O{B8{Te*8-F+9raXq`c^LJVd~kRj#!Eihb$iUx zd_Q-<4rhJJZJO`r%50kDl{#p$*J1rV6UxEdkJSr@sa1_q9@ghBW%d*ExYl6PEbo9#bNYI9MADo4ms;V_oeRwrOgP`SVEtC&^L_CnkRwav z^4@NTvwkHu&H5b1{R$s+$5E)T4lHz59&`A6<4!Snw*n>O=*!{L71P-gz0rOo``aM<3pwmjBnzfJS}ztW~z|MGQonN6F1 zv{X18-%w`$e+2jQd~kjZHqE1Xtxfa1x7wz8-kYU)-kYU)-kYU)-kYV(yw`Ae-fJi` z?{(5NPGxDH_hxCH_hxA>ZNc4=lH7o(I-L13ozaI-55AnF;54OQju7{!2ZE;h6cKp?UsiC>kHA zyjhy(e+}rbO#U?9`fQr}H|o#$;P#!RS-&jJ^;c@g=knL9+a*2E^A6ZF$FHzyp68X? zG>6}b`s0J`bHt|E9`z2I@Ba;l%WJ6YJkD@T`}BzfmTxFCZzC@<`ICLBZJOt8x7#$& z+bV3D?Ne^kY`;>QW`E7nT;38poab%T@LE1NeXS}J+UQ>)9M<1ZW}a4q5u6X6r`>MT z+`iV+Wp+5v&+fwgJ0Cnh%hEhQ%hD__OY{6JOY{6JOY{8fuq~g1p0cce5Rs zf71$C)>{08_l@$W^d0&>)0wu2Gk+8LcOiFLli_umh^{Bn-$;0){JG}i`mQTmdXxIi zl%Hl+RDQZo-6$c5m49C8Ci||Jr_g#2VwA%E1I*2K*`;0|Z=-+G3UL&6qjo_SApZ_( z?|CcrNY;s=4MgE}Jfov|H?6UR!KD!+TO#&bqv9LcHKMhn^^~x_t0Rf@#KcJCwqc~b zad~O{q&mKsX5?vaUmscvPe3q~xURv(Z_)aSH7L-Nq1zEkJ+O66=vi>11z=O$b? zxt^0PJ8Ar8%J0tNgvw^r_tMp8D_M_XpTY8~-kB=kT6abJLla-YpXT z8OGWFaq)O2zJ-g=|HM*_*vIe3+4XnCdGp80|K<4G*BCv5#ezo!I|RE0zap3s{6oR- z3Z56dAn5)FmVd2aonV{bNx`oOP7BTpephfsFz?4K?*oFn1xp1R1(Skb5*!eGT<|%; z?+d;rxF)#y|8YK72<{Xt61+{YM(`fNnBZx_KEX-BCj_4p{J!98f20or0$Y&j=0({;uFz!50Nz75uTF3%*6i2L!Jb{DfeoV1r<@U_|f%!K_E# zn`pw;-X`qF2*%^V)}~|-n-;JYw~01)GzVH}r5SOEYHGutQnNXic(j|eDHP~v#qQ4p zc6`vPBJr{NAsK86(0-|=`@_jlQzY1NOmCW97uuX^L$*1ophYy7vp!dr9_~oqOk+q^ zA~@JV=Hx{69vHA3v9R$rh~0}Vxw`Upm!?#*jovuU%1oJTh{rojuyZ>{0=B(|6QS2P zAf-MQOo~acMVGeS&@Ha!H&+RNHiMD#_UMxtV@Ojb%G=Yp*@Nev;^av$T7w52dsY^ zfa0p(M;A_m0KL*j=QE(ci}OXC+3l}%r9XSV-L2G12>L%b6%tZ_?u%sCK3Srvvxxce z;IVK5J4Vfxe(;ql{wa?+xKw8^!<dEGlFx1S{VMk<3DWIcl?L#@K*ij>#B^# z+$udMRj;ZtJz1nzBaW&)R=IvTstoTRhcSby$Np$~)2!aA=xB+y27OUXQZO4m3L3aR zn)KUTy<$VXW04kLTk;GCxPsW7tPc2GT(SdE;(GHqK*6V%RiKF;|CJLzu zH{*qb6Zn}D2rVh|DSXfwS7p9xnm_)dzK*tI6MSn;xFcAC5rjgsoTKU*=5!>Ykzg&X zg5RTXa1N%Du@uB%N2cbcaL>?T-Vjrz8+p~Os?x!2&^x2SRL#V_SV7bS6hft@cPP{^ z6IFwk{3`gyAWbwB!y9K5rw+pxiqXH3i#iy{a@ivgb7(zJ*VgcQE>b^3yn_|BRNB9w zYkJ$Vq_q|Al%OWg8xE+dU?7IEbra&$(=;s=BXb{Bo0!uo?xbJm!@54)v2V1rK=`i(2o2nB>uNTJdp(2KvF#B+GzuM%CKv}^XoEe-N|WYB&m z_dQ#W1mlQShVLPu9`M>^AaPt>PTX+Y3H(if$Bv@%w;tgaGmtuoeo3hh8ICSAb^>iR zhG>Y|)={6`dX&DVfGnuJ9#!`+P1>si6^H67YHq&C`M#_fXD@|UZ}qreEMLgmbpDlB z_9&10`EM<5-Hhw&aQ$NC!e+X@ium7L+)Q!ih+nm^bqlWVB>nzlMZ#~S@c+8FZ7ag{ zwZy&I!Pj!P8o67wTpj+M#qF0NT`}Z7wVA`8Qk!-7ZNw8@o)TSPkDX6SyeB2zt(1?* z`KUwJCanHFi9E{|AG#KW*{Ts`yqe-XW9-=N`T#28gE(I--F3eH5^3sHw>uwkXs^PH z`xjhPR+PzYt}7`Wbd|ien7qOir(xlWcO!l$ z;5EqXQ*sUSD^+tE_cr%iNR4mD;`#*#y$$lVf`1CBu2(+yyS1FfhjxJ`8JiKd`w_^%`I^Y^ z;JOv(jxLrN!}Uo=xS>t>yR^=nM_9%3&pnc>CrK&#JoXuU0rz8&N$5rzlv(SwUv;~7 zn2lP~RuU4n~43p;n5N4tr^1{cngt|TY&Wup*|dk=61o$jPTik`+*2Iwl?oO6pmh#4b%jOM^-BH|_@)g$WP^65 z^F>^Z?-#^=1WoT!G55KLS&08{@V(P$@n@)CDf%AHB9M+Hp|3{NM{0&Qtl8rF5q;cmA}g!F5r<^Bf6c=F zDsTQLN$*oxe|;Era;4^R8@V0*7upb>O;UYw9z|;24WGyFMSAfL8Kq~NU5}rkMj6#k zoY!jph4a@*9c_m%QPs|FgRA$`6!J0s%~YWvqD|DL96rDYt(fqq<3#p^N4r;6wz3n)H;r-qWp8;+q!Ui zArH05K0XH@+hf|yDYm<@ljlkF8#w*20UgcCpMTCfe;vnq<&`h1BKNt4JoFGOYYDP^ zx~>=OK8{i@e^aTKpUL_|m-2e

jO@yqM|+67kBWj!ZgYcIfadckdyC$z4FT&q&_K3ZU&_=j#BX{Dl2Yssh!`gPNgD%%PIaS|Bo#C7n zInHrN+iRV#KZdx^;as{%{I4pX=PJtYk>@Y_o_6a3U00-Y9_k^qjNk4%hl|f~y_~`I zq=ViLe>P*pl^3x~@elCLDV)Z37;`rCC(pr&TmK5p@+ntX)3@yJBoXn_;{Dtj;61p51>7pTyaNJP0wyxvoLc zDaj^jV_$)9e}UwDA=kItkmm=q{HzrhpyMAQ{kiY;JgZyf7cZQraVLXzRCbZJ^%2tP zk=$}Ww#8B_IEzlQ{qfXIxAhwZe-`D!cyE`>gm+3fzPqL48|+X;o^#J{dsa01C1bZf z==ALCgrP6a*M4#;Ytx@Yzk+#zowxDx7p{QLIPVsnsjl>xevvuWmh%0PrG67O zdim#g+`i*=@;vl9VXdzd#%&|F{$IY%Qjr2nEs1_9l;>Wu`4@Bjk8BSgRjnU|{dQaG zwO?Q?0=*lw`$6`f9$Y`_px*}{$6Q#?8y!Z zq~E@DO6k7j!E!y9JpO6<{wqy=>F+7C!k7Nu@4t!yS$XCc8d;qo408U5PCRtAXgBhg ze9=G5caPY? z20n9X`49H%6nAV<>W-K0dC8-iUb^=s+NYFzochzH?=Sy@QXhNJXqFrP&qrOdnP3Tr zj!QNZj}HDf|L5O$!&qm3(|^uilh;inUhE@`W$WT~|1s}ZHKU?Iisrmtmuv$$EBR~) z5XQfB_D_Ue9`QGH!-L&Uewusm-+?dzq?gWR`LXRjyA8Aft>#^vO` zwQE{`rgec7?n{0O=fwRg-i^b&P3qyor?@`;srZX>>@)SdPwM%tB6R!ra9D3}_~ARTqo5J`TygSUlQVsyC`ajyc>9alTgx z76|SY^a|DpHVU>1#sp6a_6VL4Obbp5&Iz6sToim+a7FM(g6d(`Z@XZ=;4Z-;!F_^N zf(?Rx!H8g&;Az2L!N&wMf{zQ%3qB{fBzRtMRq%qK>on`TL(n6*Td-KLT+kMqkl?J~6M_qZF90xB|Qi*mwi(^MS=!%-9Qj44u9g=-q?o zpuk07BhX)j^&H?FUaCq0hcFfH0oGtKL>CKnmac38rg+ zkAvR)^Gsg_B)O`X>3ks37lht{2Y&OQmw}Yu8t^&LFWa0nhjup9tW2@ix>~GoEh%Uu$995yUzs=&RcBTNOa>F?`bzcrwKD z&V=#24fL6N1&<42K~D4AS>LV>rn{mn=dl>mkKHF27fi7Hr6ki!Df%YaPHPty@J}P3 z#`~4(B|W-W?yeJzt_PHQjP&>%+6A!tB>W#Z3w#2&09*k62srz0)cb?*ccA|lQIFg6 zR18=JoCg*IRX55F^a3f|2h0cd3N8Y@pgpHBmIM7jik}8H0yDt#?}a^qtH4Fz8gSP` zkn=w12Mhtzz$9=HcpA6@T>cs4^Dy~Kx5@w)q4&~hq=UZQkI=Ug=hX`EB7yE*+OxUuz2UgnpS8b&(bqu2w8=R~W(A8y)z*=ny& zm#4l=zezH${J`fRxA@nfFR%|-0eQ>7!w4@vL;hG|bpu@}XTh&4^$2z@&I0jFS}g%9 zfS#|2Jm58;dxTyP+Vxd>x3ScU3DUatFXuhGDg8B=9&$s!iFFO&GB5`0evH0t2|a*w zpx3_6`FVbeeh+0{d4ZHqNa!^1y*4aGYh{F4yCDsD4I`3O~ zRb$vQgYaHpiS@0##c{|3T{MCIh5Q8gMd;NysqhV;QfpSwHHG{T?wcn2ms)*5(tia= zxjtgR286r*GoEumZV#{>NNf4zPmMtGi*Dcvq+0_% zhWP0}R%!}+V}0}FKk!%Jn=&yjWr_p}{=f0^hprXE?A;0ok-fxlrKW$}z0muz4 zDD@MykQaKE@`pWuq<`q!WIxm+a2L|2pTlDs=;iqi?!i<=-YSsn;`=VknFW%6tpcgM z`F{d?B3&2I2dr8|{Q_r!r-7dDQTh_A5tu^0i@+zzw0x!3!wr2jDQlGS{H!Ux5dn)>K(zC=$1HS>e zjW4l(tN?3}KJ(vE-@xLR$qr9hb3kfep1;s`-n0nBR~@XP@1q=u*9}Yq^Z$~{;kA6g zMWTOz@#qTpC-5h#bW`sul;2sa>OAG|&C3A22=D$Yj8j0o53H`Y7V_}EFYJESYFwdu z_ga0x6!dieHTNHlz?3S>TLfNi-M(r0e_~uj`t<)odjY~|x*dCfh0xO{bWG?p@J{g8 zfOCjXdm|oE<#{W>1<;Lui#0;jXOG|vf zc3PP?|MyD$4luTceinS!kFhraSoIT(3&6&oD)nLbfA2pk_3P^Cydq_(F_br*XQ_`_ zXRXCemhN8)HZyhuN#7+wFP>SGox6Z{L!KLZbG{CJXzxic=;F&PH4j{MSc<66?qGnTe`iu@SK_2T@{e(yAQa12l9Kr z1-~e@dV#-z@PZwd`XSmu{*{*c4*KsEU>Ndzc;37h@%?z_Jgnv|7oID}K+ge5?i%n6 zXmu5y5mUSmTY7v6;W_X!=)RBOA>Ebew|8OB9I)V8OL>8Fcy4<)uous6$&Xiok3e40 z4W#E&RyVLjJ!#DYyAiJs&t#`izg2~>1890~g|CiS_?|dTYdzkX~T5G^>pxwy$0au?lcsV7z0rsBJ(-q0@q{~GdoK0|(neh>IV#Gk#}LYFgd_2Aj#4m?Zr-UB~E zd+`A`gT{ORY7yhvJaCDy3H1o{_^}TG=ndeRHpYi#U=8|3PYdcFxZDc6!XMLZ*qZ?K zA49o-o-pi8etI1KK^TGlgzc7UKsi(g`~Wx)Yy~by@jM^sNm?oi>`qzgB!zdvZ=oOU zHQkPR2<;aoq5Lgh^GArgtQlc__PP$ zD)<%cJ0N{&zriB>n4T-^c<6rKIo`3rI~Mr&WC2U%qc}Lbb4z6@^bFV!w2}X=&6r;x z%p-{ryY z#YIkd5WORD>rVXs$Sn!{;$C|oQHY<-h({CAwq#*TwEdPqqW#9skL}#%u@Af=6mG-M z>&TlnoXc&9un(`cCzAB$4N;&I!Il(WqdCDO81nON!B$^9+=+K-js+7YjN;qD6Y)7KkK**X=Q4_U*BStj}ZL9;ZJ0 z_BgcNx5pUdwrv}Y`p?PfMV(XSrd{c-bZ@#Z?dxys_xFeTyZXEPd;8P59AMc28su&1{w$a1EGP~K-WP2kY}i9$UEd4@(;y^x`%p) z(nGUD^Fxb6%R{R}YS=yO87><34*Q1v!?EG+;ojl&@a*vX@Z#|D@anJ{agTULiblL6 zz7hXOY@~ancO*SBJ2F4AII=vlI-*A1qn^>CQSYd4)IS;|H6O!Q9lO{6C>6SEU@6Y~=b6N?i|6U!4T6RQ(z6Kc{m>7Gre~+;rst;@ zrWdD|rkAHzrdOxerqzsV#yyiibYm2Zy+-;H?T0Ugk2JA1FpgR!Ggi!!K%T= z!O&pWV9#LRU}kV`aA9z1aAk09&^44lR4`OLR5jE%6dLLp>KW=A$_&j7EetIUtqiRV zxrXzH3x)mEpBv*GT?I!AS8))kxz=XrybTXQXc= zGcq@_FtRkVGO{+}8qFUq7%d*H8f_d6jdqRpjP{LYM(0KsMwdocM%PANnfy#arZ`iT zY0QK&U74OtUnY~8%PeG;GAo(2jB6}^tYEBotZJ-rEHu_N)-%>OmKmEHTNqm!TNzs$ zbB*VZ7mOE=SB*E0hsL|cd&c|5GvjmP3*$@UE8}b9u8I7Kf{9}IMI(Ho3;xgtUzmd* zEWroXCR~&GlLeE-lU0+AlcCA3$)3r+$;{;3= ztjw&G||xdO5wCR{idNPk&Lrx8H|e zASQjlEZYBK|1#RXLc8}26b*O>d}#Htf$o9cf%L%a!2H1C!1BQAfEsiUdIpOIy@S3% z|6pved$4yfJvci!Ke#x!Jh(cjhTQ)_`UoHThZy>XUi1sI=o1#vAFQG;a8G(BizdC3 zzDfUNY_fZ@cQQRWJ2^kOIJrEzieAEv9-;`ngAYAJ481}xdW2c@28-wkR?!Q%(E}8r z^`lPbaZd#3MtkZ-i%O$SsZ}1sXLajZL9gpVubV%tJb4OBA1aM@HIMdGfVLDuJDNk^ zx`f`+qv}#Lz;zbsI^emCT}@%%i0&W>&`BXajz4x3I{W%X@3Wy0+1=R4=l zyZO3#SKsKIarI3%-RyT>bFFh;;3ntwH#t3H#yfAkdFHi43M`hfzq39Rc2V0=23?Bw=%;b;*G}h(tJ9XS}iUXR2Hs0Im5CDq7~+5 zSX^o7hxo5u;79%kw`n4i?kSz&gfv6u&Ai%wwZ-zub09_=mKX535TAxWm&M{5BFQXY z^g)3O4FgU~e|#GLToy}Y$XrRtIzm^=NgyaP(Yc1qn(M#%nmO09kyN3aNJg3HBGWJP zxF@(RmLEx^r5c@LqH_(IH-Fv?kTAx}HM-I1=&qe}GYA=TU~kDrC7+3I1aklXzyAXQ zO4#%Fw+^$W!3*h5ZF3zL3A5P-*ZK zIH_GF+^1-})#3}=yYxaT^s%=g62qV9e=~AbUqOiyI;w;YdP6(KQ*)7(TKmIoT>Dk7 z4N9HCzMD)8rln)hBpLKSnVL5;SZ-#}Cmn;QC4;L?45phId_r2Ks_>v>(9$(TX3!xW zgO_D5{AwDFmzWtel2)l0G)f5`H%ZXZ%;3Is46c7p2&QB3!Uk{++wU_mc=tLJ1|!lj_))4b zYhbEJsxdRLren}sN>FZMFw)E*LRzI_FiT2MaB8Xq8D<9eq+{^(dyGM*i9y{g69yNi zW3XSUu-3$&%FN(b5-L@N9Zf93()k{H}>VsO5h!E5Old?ZzveR`?{hh~^C zn4gZpvjFRmeCa6@$5E2H%lZsTj<8mnGO|lHe>egO}1V z_)w})Ws>0gt4$c(kdDFU>sW&6CIINMzndAHnvTItDZ$4k2D8l!z9g+uF*r*~ zu-e4nG&6(e(lMx!5j=^8+K^L~)W@7NXnL+<_48E2soOD*I1T)PH z_K{Yp7!*kfelkfgz|3HIItC#r!7`HspG`AiFg+cE=hrd@^Gyt%HZ$m(j=?dhLf4{H z3@XhG{zqD+VsNsQ;DAYjer5)br(-ZjO0d@?!KYW5Ft{=ugOWPN;2jf#C(I0brDJfX zRAJiCR1Bt?8SEmhQZd*OVF}7i3{EyPcqAQzQ>6qsXQxW=@l+EAlhZL!qy)Q759lZss!7wFkvtz z9fOah1UpO&?l&{&oQ}Z~$)M}GsS=DeGuT90g+084hi9UN{S6wet5 zhi(_w8mMdus=EzTYiK833^x$&05lrAiAF*TC`C5|;rj`~Gm;1)q4?%<4Mzyrl4v^9 zNSIAc*BJ=kP7r=f4QVPvlgA8H_5{^y2C6k##BQE}a8E)&#w!UyuYvHD1mQJCj*N}d zKp0FA4l@#3TF~_2DG8OAqjxnBbCU?GK)BgJI48mJYicMiqs0Zn=M97pCOE#GMCb(J zLIa^cLHJ-2;c^g;HxRy;Ae@s#mC&Di$CA6NOApDK$$F*j7-ZT()N)UcvBxHCVFc1z)5WZw2 zWUc>TARL__3>pc!X}5u}Uqb6EjD*~DzJYLTf^evjkU8$3n9%yA1Yx$3kU6e55I&wD z+=GS`9O<}}q5G6ldn7Nz60j?w7A3e&xpMk6_q2L3^#+S2ewIX^lW>+aR|###LDKyo z*A9|q)A13X4mu`B99?jfM5rsiu&-dO_&YUDoj^&~nihzzgbs**Ptb(-hF-xM(lX24 zP`#JbvUscOuxky;CKQYXrF#|SiqAmrUcD2~zDzoWLg|!5={n|yMk>OK1XT{_Jol5PB>+r(V?Ipq=|elh%5I()MJ&DboHpUYbIYIHnne*6fSj&}_DB7LEF- zQNthEL#0Hk8k8DZQ`jC-(bDYUQEm!-OK7;4$=!p~5O-g+b;D>^E;Q zREQWW92u9QfO{2t5|^Puqp?DRxdQu9hoQn=V}*yz71*DC3Q@J8uym`j!nNiK>{tJ3 zs6aP3^iDX(T!Dj(g@y{kSRvC~p##drC3=M!i!3xCW>jU-$MsDDC@R-Sf}fr|QVFe9 z>b|*1sXKDEb*nOCt73gmm*gK~O=xx`#s|@$)OE(9Y{@w1cQGDkX55JwKWbo{D;anH zU5t;6F-e?5j9muC`I2$(-^KVTGh;h3{u-JP6mXh8I8Ao;I~&U;F9eAFoMBPG@@B{$J8gdXu$68SQmM4D++Gsq>VyxO33&{E%0f-f*9mVl6Y|*o zk0f;JgdQ^?kJ%-XuuvyF*-Xe|b%rD?(g_b%q^Rs(#bfjWCS=FtE2xy6b!umHR(p8< z+2r^eXT*C8^Rc17ETB4({>q1lrvCZ?;*gD?zZOw{iGvDARPbXYT zgk)1C-p~suh3|1ygDJF zd$N0yd!l>7q{$QMn$H3$>Y+}$sB;O)%2XsPNsQT|vnJ~7@}b|6bm#~kykBWzO;OZG z7C}@hLzDp!KNjDNhRC(M9W|S{^HIsCE|(+x+#CL7wG55Tnl)>PqhAe*5zDD(6ex9H zXHn%ax=eHeYZ~dWGa25MhlCi#a`?)yz8Yb*ctZ``)>`gglGG(?s8v*>xUbAo0dwn$ zXp9)a+`tzVu>L*xvehCwfEkFgISYu3M%2{<2BNG8wTRClhdcJJFSOq`Eb6##0`-oh9>|~cxCOUzJgBXAWO$i?8JDecoVGHxL-HvlnA8v;g;(sT# zuz-69f~~LG2Sb8!E|GfiM6$R8P|87oSiO#rpdoY`z|h7wVzcH)3iPCL{V)y{wefV^ z^~3dE>iU%NMO^i{z-*-%Bsy0k8+oR*L~ z9`a(06;ix;4vua)C@$2m+A&Go9@brDu!rlwH`N|!nn`aDw=1Nt*&fDe`EA(4dm34i zJv>O6ac~NeNa=Q58=MD?=u#ke`9Ox(2$HeOA8v2z@^hds0nipc?v>W&Md*e&o@5^j z3~4G~fWt^*Ii0V@(_D^2s(6~}&o-o~d^Qd*jO9}d=}AiUw^cNbc*fb>PB*~?G)kwW z_6p1kbD8*Rlr%xOP3Z_}#;MaXXH%w+#?u=qWmeHNgm?ynkb zzsEjz@jP#~&sVhkHth3shHY6vl70R}b>sHA2nn-&Zig4q?ejrq(wco9&NA8OvMVG~ zaeSU@4IdE9mB#T3xFq?fRO5gPr~Qp43Y1d)({oy8!at2*cqSCE4Y55~j7mR%3Zyg~ za+2G^$lN&~ZXA70YU{o$lXOn_uIDaK*0-SO`1a5p^twH~k!iMv*5|LLk)*%b9-h|n z+pvdTj8uv}bq4!ee{BX^q`9+OnO$q<(wJc~mushJ z11oMX-P^$L{mBOWZUe(qf8RQOA%r~X@Vi>eZv(%NHL|4f^nsR{gkOX*FiMyj1tc7lM-p+#<>(mz)Zm=90&|2{mmvQEW;s zd5D&oaLF6B9CpbR`-wGL&H{4M9?DrkIlzSnWhW#E7Z2N&lH#g;;k?mK0%t-&AsLr= zoPjpF>m>y&I>$yg;q?m5W0R8b*g2ClV6+J;j?eq8;WK&FBe{rL{1XlK)dOrbn3kfj zHJFyLj}?Qkjw1Vt8%P{1tCmkTLM)&c9uQwvCdHR`Xk--05@ZbGxmxBTEt4lZCuPQQ ztiQ-=Iq1m6n8UwQGHm5i)(O(eU`>A=yYdz=hW>Hz2{dl(1d7k_TuJjO*{clfV&P?to-u5<_&u zFF-~HRZHa%z5X)85RKc{YpvlkdHkxS7&&6cID>)R3Z`+KP)MUoNfSL_fKt^(!wD)3 zP$c4!BYCq*Eq{T=0w3TNev?;ORh`u!Zl+yJ0Iko(@@q0+4Yy-cWH8MhhI*OOt7f@#0IyYUwtLmg>r!60^ zLKzp-1a5amKN(zBmBBslm<}$1!{BZoV;rwpxR8-{ylVRq9#HH4?(3sEocex5T65(6 zh@-uA`g|8Qo=Cw|d|uJ=+rZ~^f-yb_ zpWr(2L5Pbs-}bpdHT+&LtCTdO#>e-BbB=G{9@N$Q_v;@t zO>1}&(3-N^e)Q2|(%0hqaUDbd=5*8g*Mx#xt;pcwJP4f9zdMwq z{+-#X{#raX67)I%Umer|;0WgU@fZ%79}wfr{hrz7DI2jwoV69)xDXd|XOnjfA^14d$gJk(;cp9e-I+0Tz{ z=@0UR{$QttqbH(&Q7igu`EBV>D(m`l9i#pZssA}_Vadi|(0{*K|MDdLJ?9?Ze`J9? zp+DID4*kz+MSm^7E&WMlU4O1))W5UTzko+etNMR$*58w)|FTx~*VZGMpw|I-0sKyU zJ+f+u1YmB8|5&Q!x9vaLX;8J{KlW%0$qVS~k$+Go@Z))?42k6ZWE}7wnI9t&FFn{gY|nqbbfi5SWK%r!K^>H{vUp zE9Rd;T5B64mD&t+sg}umBU7}@VVsE#CX2L!3ACsAJ~B~zf>QTc7BAw6D{tLhFxY@c zAFd0v=^zTH{T*=k0QNFLOLkF0BeH!ePJFSE!)H}+!QM`YVwSP#;bwt;OvP76jGLdg zL;+d{91AanU|6AaaRV_ruUi4E;z5n!KB*h@3{D&I*yW@^YCLw1mdWuL?HbVrN{tfgkaCHw2dM!V?F`Y$V>;ETrVWE#Zp zpkiY1uE7p30>T4g!D-+Z_h?r#^SDP78^NbG;#l-Pn&1q|uu?qkt@-~)8oo1d&7->F)G3AYpGrvX;j(`uLKA>%|P+h1&d`+ei zs>faF8%cYD<}36Q7 z#f8IQO&Erg$kus4vb_3${1ar812R$d3RDfeiy=*;9KD0LOya=+KKVXqA$P!PDURdO zNPm7YWVkiZixigjf9V2z37I=|ga+f^2m&-3Tvv$R#-yi*7vMKuzwtxge)h>{AeG;K zwqSiVnHtpN_fM);v;75dG3P0Pe0nqEd+w5lcXIN8_;Y^(j2-7Qp%UZOZnOkf$JoO!|BOFw{lB(AtJ31Z`Ed(D5_h){O5jj0@-gegyI8(oGglvEK2U4@aokO~ znGlYHzM(M^nbfDAFVnIUVZ(090c_-`#f3;9!h0BE*X;H=JX=y?2yr8K0r+7g^fCt! zFT*7KeWK&_q0y5(y7msy{U{8S!06`k#B@}QWizB{=|d7i9|en8NWI?W#I#Xla1`8p z<*%_=92|T~e?+5QRAY&1^hc+l9z#`=xK*0Ec;G{^N~&G#B*5e@p5~9@pk-@CZ7iIs zH8NTT5$1f5cZF7WCe_`qWv-afM8A;OR)H-+w=_gTj_a`*{I0|KF!=Uy; zFdD$pEE4zW$u0<3vWw;T)a~L?aM0|6dXn7ZY8XPH;`(Zzkp;LI$pNE7`eY2oSqoAuxKDh1Ek?&Dw7I=K2eM;TF zEOC^sc7_^8hjYFJsYNs+?G3GGgOzpgB1A=KpV)h{)e>A-;Ia5i%7@0hp>Y3RB5h!^{we zChWiynnTx%kBU*~7$3C0kVQQz&ZAG%s%+aLUhG9cX%@lwvqfa>W{db|k+g_+*$&7e zE+Gtci})2PYbyjmBX`c5K8{<&a>}b-N4-uiCVt`H=rE4sFRH=k_xg)4YtxFqsMHFR z{Kd~&Cdqmnf8p22lKjOxT4s{J_y;n9=kN3v6NpvZUwqWFRe$j~)7kQlrWnZy`-|Pw zf9i?)i!he1x^*N5{a1*w;4l767r|i@e`A{<>o}9d)2(9<^hos=FQV%I&0ky(4kzd@ z?q>1L{$i4rpYRtya!!iBc!x6M{$d0Y>HNj99x48!X>zi^SdDaAf3XrZPuyP|1a&%p z(eZGKDV%`6_z>Mh{-QIBdQ`Nd&lB?(cb;Uhh=jj*|3kKjyXe&c*ujHr2V@Z^6Nb7) zY=RQ0{^C(ol@>u`@PzzD6$thD<8stzd+^|5KPHdXUOKpiC5IQ4Aur7cGtB<|3?PB}0HS_g<>oUr}nCyLS(ho^z}eaJ~0-$9^&Lv&`Vk_$s)IIO*Z@YDwY ztxt549;Edq2d@?0i^4!D;2>qSi1fuvBO!EHZ)J(~suvUAcSVcgJ&(B0HN?ZW zpx77>cR?*}Tvg?w2vDZKWXJLFfILvEY2)D|-DOc5@$fAghopFTIAsFqB0_o#F$&uX ze{3@zW>&|GhtGK*kQ^r-?vC<+DIVSobCq~cpcZtz+i`owc=-Jt;2#lp4TAj}|5Ddy zFM&=oR=GY)v*Msj66?Bw4paWvyuWK93Sj9Kt1>uzh(jZmenF ziC|;xVgS)-tlIMI;C43F^lP^dP?)rKTgLWD4xkqas3W(L70}miPY}~aF{&^Qo54P} zotA8$w}3X)KGR-eWcv(uB>>af=M=4|4g1`tktNyZMlCbGugr+QL78#HdvU@x|A20^ zXtDh4tv$1~vh+m3I*<56xlU^|;Fb;AQBmfj8JtcKBmyAl70coQ!x8tvE6 zA8r&G{lz})+njiR{D58YR{En+D{7-Z++8Gxr2ZJLWhV8K z<8!?J_g`k5ElnIxm$AOB$pjQtTL{tDJ>+Dr@)J~?8FrKrIwR;&0~j_!yyyD=21sEK$(X?0ViyCeXsi& z$LkYXdFewl{Rx;L|H*pG3DUTc!HV!g_;0JiSjE^9=H(GBw?aWlRenh z$?BgVv2>KjunxxBeTe&7v3@`tWohrUl`6&|(`fGpHt9Go)#k@^FVkp;RGFO#>a_dU zJMFTFY?gY<3CV$E>Wd=dG!8TwlXK@)YmSyl+cuQxf_CCCF^u=bUpZm>;oG>qxAN8l ze7@mzk=I)32-cK4;^4+~2A?S3j&e450*{t^I9xg^mJnYy_^u?m-WBT@1LGF>Ux

!=2K%Krn6s@R@{;1Q)lKNwzmYLKa*HLD?KRR;4 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 Nu9b6rXS-ko{toSUcxwOv diff --git a/node_modules/bare-fs/promises.d.ts b/node_modules/bare-fs/promises.d.ts deleted file mode 100644 index 1d9d036..0000000 --- a/node_modules/bare-fs/promises.d.ts +++ /dev/null @@ -1,310 +0,0 @@ -import EventEmitter, { EventMap } from 'bare-events' -import Buffer, { BufferEncoding } from 'bare-buffer' -import { - constants, - AppendFileOptions, - CpOptions, - Dir, - MkdirOptions, - OpendirOptions, - Path, - ReadFileOptions, - ReadStream, - ReadStreamOptions, - ReaddirOptions, - ReadlinkOptions, - RealpathOptions, - RmOptions, - Stats, - Watcher, - WatcherOptions, - WriteFileOptions, - WriteStream, - WriteStreamOptions -} from '.' - -export { constants } - -interface FileHandleEvents extends EventMap { - close: [] -} - -interface FileHandle extends EventEmitter, AsyncDisposable { - readonly fd: number - - close(): Promise - - read( - buffer: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number - ): Promise - - readv(buffers: ArrayBufferView[], position?: number): Promise - - write( - data: Buffer | ArrayBufferView, - offset?: number, - len?: number, - pos?: number - ): Promise - - write(data: string, pos?: number, encoding?: BufferEncoding): Promise - - stat(): Promise - - chmod(mode: string | number): Promise - - chown(uid: number, gid: number): Promise - - datasync(): Promise - - sync(): Promise - - truncate(len?: number): Promise - - utimes(atime: number | Date, mtime: number | Date): Promise - - createReadStream(opts?: ReadStreamOptions): ReadStream - - createWriteStream(opts?: WriteStreamOptions): WriteStream -} - -declare class FileHandle { - private constructor(fd: number) -} - -export function open( - filepath: Path, - flags?: Flag | number, - mode?: string | number -): Promise - -export function access(filepath: Path, mode?: number): Promise - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: AppendFileOptions -): Promise - -export function appendFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): Promise - -export function chmod(filepath: Path, mode: string | number): Promise - -export function chown(filepath: Path, uid: number, gid: number): Promise - -export function copyFile(src: Path, dst: Path, mode?: number): Promise - -export function cp(src: Path, dst: Path, opts?: CpOptions): Promise - -export function lchown(filepath: Path, uid: number, gid: number): Promise - -export function lutimes(filepath: Path, atime: number | Date, mtime: number | Date): Promise - -export function link(src: Path, dst: Path): Promise - -export function lstat(filepath: Path): Promise - -export function mkdir(filepath: Path, opts?: MkdirOptions): Promise - -export function mkdir(filepath: Path, mode: number): Promise - -export function mkdtemp(prefix: Path): Promise - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding?: BufferEncoding } -): Promise> - -export function opendir( - filepath: Path, - opts: OpendirOptions & { encoding: 'buffer' } -): Promise> - -export function opendir(filepath: Path, opts: OpendirOptions): Promise - -export function opendir(filepath: Path, encoding: BufferEncoding): Promise> - -export function opendir(filepath: Path, encoding: 'buffer'): Promise> - -export function opendir(filepath: Path, encoding: BufferEncoding | 'buffer'): Promise - -export function opendir(filepath: Path): Promise> - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding: BufferEncoding } -): Promise - -export function readFile( - filepath: Path, - opts: ReadFileOptions & { encoding?: 'buffer' } -): Promise - -export function readFile(filepath: Path, opts: ReadFileOptions): Promise - -export function readFile(filepath: Path, encoding: BufferEncoding): Promise - -export function readFile(filepath: Path, encoding: 'buffer'): Promise - -export function readFile( - filepath: Path, - encoding?: BufferEncoding | 'buffer' -): Promise - -export function readFile(filepath: Path): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding } -): Promise[] | string[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding?: BufferEncoding; withFileTypes?: false } -): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer' } -): Promise[] | Buffer[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { encoding: 'buffer'; withFileTypes?: false } -): Promise - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes: true } -): Promise[]> - -export function readdir( - filepath: Path, - opts: ReaddirOptions & { withFileTypes?: false } -): Promise - -export function readdir(filepath: Path, opts: ReaddirOptions): Promise - -export function readdir(filepath: Path, encoding: BufferEncoding): Promise - -export function readdir(filepath: Path, encoding: 'buffer'): Promise - -export function readdir( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function readdir(filepath: Path): Promise - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding?: BufferEncoding } -): Promise - -export function readlink( - filepath: Path, - opts: ReadlinkOptions & { encoding: 'buffer' } -): Promise - -export function readlink(filepath: Path, opts: ReadlinkOptions): Promise - -export function readlink(filepath: Path, encoding: BufferEncoding): Promise - -export function readlink(filepath: Path, encoding: 'buffer'): Promise - -export function readlink( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function readlink(filepath: Path): Promise - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding?: BufferEncoding } -): Promise - -export function realpath( - filepath: Path, - opts: RealpathOptions & { encoding: 'buffer' } -): Promise - -export function realpath(filepath: Path, opts: RealpathOptions): Promise - -export function realpath(filepath: Path, encoding: BufferEncoding): Promise - -export function realpath(filepath: Path, encoding: 'buffer'): Promise - -export function realpath( - filepath: Path, - encoding: BufferEncoding | 'buffer' -): Promise - -export function realpath(filepath: Path): Promise - -export function rename(src: Path, dst: Path): Promise - -export function rm(filepath: Path, opts?: RmOptions): Promise - -export function rmdir(filepath: Path): Promise - -export function stat(filepath: Path): Promise - -export function statfs(filepath: Path): Promise - -export function truncate(filepath: Path, len?: number): Promise - -export function symlink(target: Path, filepath: Path, type?: string | number): Promise - -export function unlink(filepath: Path): Promise - -export function utimes(filepath: Path, atime: number | Date, mtime: number | Date): Promise - -export function watch( - filepath: Path, - opts: WatcherOptions & { encoding?: BufferEncoding } -): Watcher - -export function watch( - filepath: Path, - opts: WatcherOptions & { encoding: 'buffer' } -): Watcher - -export function watch(filepath: Path, opts: WatcherOptions): Watcher - -export function watch(filepath: Path, encoding: BufferEncoding): Watcher - -export function watch(filepath: Path, encoding: 'buffer'): Watcher - -export function watch(filepath: Path, encoding: BufferEncoding | 'buffer'): Watcher - -export function watch(filepath: Path): Watcher - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - opts?: WriteFileOptions -): Promise - -export function writeFile( - filepath: Path, - data: string | Buffer | ArrayBufferView, - encoding: BufferEncoding -): Promise diff --git a/node_modules/bare-fs/promises.js b/node_modules/bare-fs/promises.js deleted file mode 100644 index 64c65a1..0000000 --- a/node_modules/bare-fs/promises.js +++ /dev/null @@ -1,119 +0,0 @@ -const EventEmitter = require('bare-events') -const fs = require('.') - -class FileHandle extends EventEmitter { - constructor(fd) { - super() - - this.fd = fd - } - - async close() { - await fs.close(this.fd) - - this.fd = -1 - this.emit('close') - } - - async read(buffer, ...args) { - return { - bytesRead: await fs.read(this.fd, buffer, ...args), - buffer - } - } - - async readv(buffers, ...args) { - return { - bytesRead: await fs.readv(this.fd, buffers, ...args), - buffers - } - } - - async write(buffer, ...args) { - return { - bytesWritten: await fs.write(this.fd, buffer, ...args), - buffer - } - } - - async writev(buffers, ...args) { - return { - bytesWritten: await fs.writev(this.fd, buffers, ...args), - buffers - } - } - - async stat() { - return fs.fstat(this.fd) - } - - async chmod(mode) { - await fs.fchmod(this.fd, mode) - } - - async chown(uid, gid) { - await fs.fchown(this.fd, uid, gid) - } - - async datasync() { - return fs.fdatasync(this.fd) - } - - async sync() { - return fs.fsync(this.fd) - } - - async truncate(len) { - await fs.ftruncate(this.fd, len) - } - - async utimes(atime, mtime) { - await fs.futimes(this.fd, atime, mtime) - } - - createReadStream(opts) { - return fs.createReadStream(null, { ...opts, fd: this.fd }) - } - - createWriteStream(opts) { - return fs.createWriteStream(null, { ...opts, fd: this.fd }) - } - - async [Symbol.asyncDispose]() { - await this.close() - } -} - -exports.open = async function open(filepath, flags, mode) { - return new FileHandle(await fs.open(filepath, flags, mode)) -} - -exports.access = fs.access -exports.appendFile = fs.appendFile -exports.chmod = fs.chmod -exports.chown = fs.chown -exports.constants = fs.constants -exports.copyFile = fs.copyFile -exports.cp = fs.cp -exports.lchown = fs.lchown -exports.lutimes = fs.lutimes -exports.link = fs.link -exports.lstat = fs.lstat -exports.mkdir = fs.mkdir -exports.mkdtemp = fs.mkdtemp -exports.opendir = fs.opendir -exports.readFile = fs.readFile -exports.readdir = fs.readdir -exports.readlink = fs.readlink -exports.realpath = fs.realpath -exports.rename = fs.rename -exports.rm = fs.rm -exports.rmdir = fs.rmdir -exports.stat = fs.stat -exports.statfs = fs.statfs -exports.truncate = fs.truncate -exports.symlink = fs.symlink -exports.unlink = fs.unlink -exports.utimes = fs.utimes -exports.watch = fs.watch -exports.writeFile = fs.writeFile diff --git a/node_modules/bare-os/CMakeLists.txt b/node_modules/bare-os/CMakeLists.txt deleted file mode 100644 index c8da197..0000000 --- a/node_modules/bare-os/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -cmake_minimum_required(VERSION 4.0) - -find_package(cmake-bare REQUIRED PATHS node_modules/cmake-bare) - -project(bare_os C) - -add_bare_module(bare_os) - -target_sources( - ${bare_os} - PRIVATE - binding.c -) diff --git a/node_modules/bare-os/LICENSE b/node_modules/bare-os/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/bare-os/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/bare-os/README.md b/node_modules/bare-os/README.md deleted file mode 100644 index 8d48643..0000000 --- a/node_modules/bare-os/README.md +++ /dev/null @@ -1,252 +0,0 @@ -# bare-os - -Operating system utilities for Bare. The API closely follows that of the Node.js `os` module. - -``` -npm i bare-os -``` - -## Usage - -```js -const os = require('bare-os') - -console.log(os.platform()) // 'darwin', 'linux', 'win32', ... -console.log(os.arch()) // 'arm64', 'x64', ... -console.log(os.homedir()) -console.log(os.tmpdir()) -console.log(os.hostname()) -console.log(os.networkInterfaces()) -``` - -## API - -#### `os.constants` - -An object containing the following properties: - -- `signals` - Signal constants such as `SIGTERM` and `SIGKILL`. -- `errnos` - Error number constants. -- `priority` - Process priority constants. - -These are also available as a separate module: - -```js -const constants = require('bare-os/constants') -``` - -#### `os.EOL` - -The platform-specific end-of-line marker. `'\r\n'` on Windows, `'\n'` everywhere else. - -#### `os.devNull` - -The platform-specific path to the null device. `'\\\\.\\nul'` on Windows, `'/dev/null'` everywhere else. - -#### `const p = os.platform()` - -Returns the operating system platform as a string. Possible values include `'android'`, `'darwin'`, `'ios'`, `'linux'`, and `'win32'`. - -#### `const a = os.arch()` - -Returns the CPU architecture as a string. Possible values include `'arm'`, `'arm64'`, `'ia32'`, and `'x64'`. - -#### `const t = os.type()` - -Returns the operating system name as returned by `uname(3)`. - -#### `const v = os.version()` - -Returns the operating system version. - -#### `const r = os.release()` - -Returns the operating system release. - -#### `const m = os.machine()` - -Returns the machine type as a string. - -#### `const p = os.execPath()` - -Returns the absolute path of the executable that started the process. - -#### `const id = os.pid()` - -Returns the process ID. - -#### `const id = os.ppid()` - -Returns the parent process ID. - -#### `const dir = os.cwd()` - -Returns the current working directory. - -#### `os.chdir(dir)` - -Changes the current working directory to `dir`. - -#### `const dir = os.tmpdir()` - -Returns the operating system's default directory for temporary files. - -#### `const dir = os.homedir()` - -Returns the home directory of the current user. - -#### `const name = os.hostname()` - -Returns the hostname of the operating system. - -#### `const interfaces = os.networkInterfaces()` - -Returns an object containing network interfaces that have been assigned a network address. Each key on the returned object identifies a network interface. The associated value is an array of objects with the following properties: - -- `address` - The assigned IPv4 or IPv6 address. -- `netmask` - The IPv4 or IPv6 network mask. -- `family` - Either `'IPv4'` or `'IPv6'`. -- `cidr` - The assigned IPv4 or IPv6 address with the routing prefix in CIDR notation. -- `mac` - The MAC address of the network interface. -- `internal` - `true` if the network interface is a loopback or similar interface that is not remotely accessible; otherwise `false`. -- `scopeid` - The numeric IPv6 scope ID. Only specified when `family` is `'IPv6'`. - -#### `os.kill(pid[, signal])` - -Sends `signal` to the process identified by `pid`. `signal` can be a string or a number. Defaults to `'SIGTERM'`. - -#### `const info = os.userInfo([uid])` - -Returns information about a current user. The `uid` value defaults to the current effective uid. The returned object has the following properties: - -- `uid` - The user ID. -- `gid` - The group ID. -- `username` - The username. -- `homedir` - The home directory. -- `shell` - The shell, or `null` if unavailable. - -#### `const info = os.groupInfo([gid])` - -Returns information about a group. The `gid` value defaults to the effective group ID of the calling process. The returned object has the following properties: - -- `groupname` - The group name. -- `gid` - The group ID. -- `members` - List with the names of group members. - -#### `const e = os.endianness()` - -Returns `'LE'` on little-endian systems and `'BE'` on big-endian systems. - -#### `const n = os.availableParallelism()` - -Returns the number of logical CPU cores available to the process. - -#### `const usage = os.cpuUsage([previous])` - -Returns an object with `user` and `system` properties, each representing CPU time in microseconds. If `previous` is provided, the returned values are relative to it. - -#### `const usage = os.threadCpuUsage([previous])` - -Like `os.cpuUsage()` but for the current thread only. - -#### `const usage = os.resourceUsage()` - -Returns an object describing the resource usage of the current process. The returned object has the following properties: - -- `userCPUTime` - User CPU time in microseconds. -- `systemCPUTime` - System CPU time in microseconds. -- `maxRSS` - Maximum resident set size in bytes. -- `sharedMemorySize` - Shared memory size. -- `unsharedDataSize` - Unshared data size. -- `unsharedStackSize` - Unshared stack size. -- `minorPageFault` - Minor page faults. -- `majorPageFault` - Major page faults. -- `swappedOut` - Swap count. -- `fsRead` - File system reads. -- `fsWrite` - File system writes. -- `ipcSent` - IPC messages sent. -- `ipcReceived` - IPC messages received. -- `signalsCount` - Signals received. -- `voluntaryContextSwitches` - Voluntary context switches. -- `involuntaryContextSwitches` - Involuntary context switches. - -#### `const usage = os.memoryUsage()` - -Returns an object describing the memory usage of the process. The returned object has the following properties: - -- `rss` - Resident set size in bytes. -- `heapTotal` - Total heap size in bytes. -- `heapUsed` - Used heap size in bytes. -- `external` - Memory usage of C++ objects bound to JavaScript objects. - -#### `const bytes = os.freemem()` - -Returns the amount of free system memory in bytes. - -#### `const bytes = os.totalmem()` - -Returns the total amount of system memory in bytes. - -#### `const bytes = os.availableMemory()` - -Returns an estimate of the amount of memory available for the process in bytes. - -#### `const bytes = os.constrainedMemory()` - -Returns the amount of memory available to the process under resource constraints, such as cgroups. - -#### `const seconds = os.uptime()` - -Returns the system uptime in seconds. - -#### `const avgs = os.loadavg()` - -Returns an array containing the 1, 5, and 15 minute load averages. - -#### `const list = os.cpus()` - -Returns an array of objects describing each logical CPU core. Each object has the following properties: - -- `model` - The CPU model. -- `speed` - The CPU speed in MHz. -- `times` - An object with `user`, `nice`, `sys`, `idle`, and `irq` CPU time values in milliseconds. - -#### `const title = os.getProcessTitle()` - -Returns the current process title. - -#### `os.setProcessTitle(title)` - -Sets the process title. `title` is coerced to a string and must be shorter than 256 characters. - -#### `const priority = os.getPriority([pid])` - -Returns the scheduling priority of the process specified by `pid`. Defaults to `0`, meaning the current process. - -#### `os.setPriority([pid, ]priority)` - -Sets the scheduling priority of the process specified by `pid`. If `pid` is omitted, the priority of the current process is set. - -#### `const keys = os.getEnvKeys()` - -Returns an array of the names of all environment variables. - -#### `const value = os.getEnv(name)` - -Returns the value of the environment variable `name`, or `undefined` if it is not set. - -#### `const exists = os.hasEnv(name)` - -Returns `true` if the environment variable `name` is set, otherwise `false`. - -#### `os.setEnv(name, value)` - -Sets the environment variable `name` to `value`. - -#### `os.unsetEnv(name)` - -Removes the environment variable `name`. - -## License - -Apache-2.0 diff --git a/node_modules/bare-os/binding.c b/node_modules/bare-os/binding.c deleted file mode 100644 index 30009e9..0000000 --- a/node_modules/bare-os/binding.c +++ /dev/null @@ -1,1538 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#if !defined(BARE_PLATFORM_WIN32) -#include // getegid -#endif - -static uv_rwlock_t bare_os_env_lock; - -static uv_once_t bare_os_env_lock_guard = UV_ONCE_INIT; - -static void -bare_os__on_env_lock_init(void) { - int err = uv_rwlock_init(&bare_os_env_lock); - assert(err == 0); -} - -static js_value_t * -bare_os_type(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_utsname_t buffer; - err = uv_os_uname(&buffer); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) buffer.sysname, -1, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_version(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_utsname_t buffer; - err = uv_os_uname(&buffer); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) buffer.version, -1, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_release(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_utsname_t buffer; - err = uv_os_uname(&buffer); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) buffer.release, -1, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_machine(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_utsname_t buffer; - err = uv_os_uname(&buffer); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) buffer.machine, -1, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_exec_path(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t len = 4096; - char exec_path[4096]; - - err = uv_exepath(exec_path, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) exec_path, len, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_pid(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_uint32(env, uv_os_getpid(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_ppid(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_uint32(env, uv_os_getppid(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_cwd(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t len = 4096; - char cwd[4096]; - - err = uv_cwd(cwd, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) cwd, len, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_chdir(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - utf8_t dir[4096]; - err = js_get_value_string_utf8(env, argv[0], dir, 4096, NULL); - assert(err == 0); - - err = uv_chdir((char *) dir); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - return NULL; -} - -static js_value_t * -bare_os_tmpdir(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t len = 4096; - char tmpdir[4096]; - - err = uv_os_tmpdir(tmpdir, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) tmpdir, len, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_homedir(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t len = 4096; - char homedir[4096]; - - err = uv_os_homedir(homedir, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) homedir, len, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_hostname(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t len = UV_MAXHOSTNAMESIZE; - char hostname[UV_MAXHOSTNAMESIZE]; - - err = uv_os_gethostname(hostname, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) hostname, len, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_user_info(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 0 || argc == 1); - - bool uid_undefined; - err = js_is_undefined(env, argv[0], &uid_undefined); - assert(err == 0); - - uv_passwd_t pwd; - if (uid_undefined) { - err = uv_os_get_passwd(&pwd); - } else { - uint32_t uid; - err = js_get_value_uint32(env, argv[0], &uid); - assert(err == 0); - - err = uv_os_get_passwd2(&pwd, uid); - } - - if (err != 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_object(env, &result); - assert(err == 0); - - js_value_t *uid; - err = js_create_int32(env, pwd.uid, &uid); - assert(err == 0); - - err = js_set_named_property(env, result, "uid", uid); - assert(err == 0); - - js_value_t *gid; - err = js_create_int32(env, pwd.gid, &gid); - assert(err == 0); - - err = js_set_named_property(env, result, "gid", gid); - assert(err == 0); - - js_value_t *username; - err = js_create_string_utf8(env, (utf8_t *) pwd.username, strlen(pwd.username), &username); - assert(err == 0); - - err = js_set_named_property(env, result, "username", username); - assert(err == 0); - - js_value_t *homedir; - err = js_create_string_utf8(env, (utf8_t *) pwd.homedir, strlen(pwd.homedir), &homedir); - assert(err == 0); - - err = js_set_named_property(env, result, "homedir", homedir); - assert(err == 0); - - js_value_t *shell; - - if (pwd.shell == NULL) { - err = js_get_null(env, &shell); - assert(err == 0); - } else { - err = js_create_string_utf8(env, (utf8_t *) pwd.shell, -1, &shell); - assert(err == 0); - } - - err = js_set_named_property(env, result, "shell", shell); - assert(err == 0); - - uv_os_free_passwd(&pwd); - - return result; -} - -static int -bare_os__population_count(uint32_t num) { - int result = 0; - - while (num != 0) { - result++; - num &= num - 1; - } - - return result; -} - -static js_value_t * -bare_os_network_interfaces(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_interface_address_t *addresses; - int len; - err = uv_interface_addresses(&addresses, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_array_with_length(env, len, &result); - assert(err == 0); - - for (size_t i = 0, n = len; i < n; i++) { - uv_interface_address_t address = addresses[i]; - - uint32_t family = address.address.address4.sin_family; - - if (family != AF_INET && family != AF_INET6) { - continue; - } - - js_value_t *item; - err = js_create_object(env, &item); - assert(err == 0); - - js_value_t *val; - - err = js_create_string_utf8(env, (utf8_t *) address.name, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "name", val); - assert(err == 0); - - char address_ip[INET6_ADDRSTRLEN]; - char netmask_ip[INET6_ADDRSTRLEN]; - char family_string[5]; - - char cidr[INET6_ADDRSTRLEN + 8]; - uint32_t cidr_value = 0; - - if (family == AF_INET) { - err = uv_ip4_name(&address.address.address4, address_ip, sizeof(address_ip)); - assert(err == 0); - - err = uv_ip4_name(&address.netmask.netmask4, netmask_ip, sizeof(netmask_ip)); - assert(err == 0); - - strcpy(family_string, "IPv4"); - - cidr_value = bare_os__population_count(address.netmask.netmask4.sin_addr.s_addr); - } else { - err = uv_ip6_name(&address.address.address6, address_ip, sizeof(address_ip)); - assert(err == 0); - - err = uv_ip6_name(&address.netmask.netmask6, netmask_ip, sizeof(netmask_ip)); - assert(err == 0); - - strcpy(family_string, "IPv6"); - - for (size_t i = 0; i < 16; i++) { - uint32_t count = bare_os__population_count(address.netmask.netmask6.sin6_addr.s6_addr[i]); - - if (count == 0) break; - - cidr_value += count; - } - } - - err = js_create_string_utf8(env, (utf8_t *) address_ip, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "address", val); - assert(err == 0); - - err = js_create_string_utf8(env, (utf8_t *) netmask_ip, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "netmask", val); - assert(err == 0); - - err = js_create_string_utf8(env, (utf8_t *) family_string, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "family", val); - assert(err == 0); - - err = snprintf(cidr, sizeof(cidr), "%s/%d", address_ip, cidr_value); - assert(err > 0); - - err = js_create_string_utf8(env, (utf8_t *) cidr, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "cidr", val); - assert(err == 0); - - char mac[18]; - err = snprintf( - mac, - sizeof(mac), - "%02x:%02x:%02x:%02x:%02x:%02x", - (unsigned char) address.phys_addr[0], - (unsigned char) address.phys_addr[1], - (unsigned char) address.phys_addr[2], - (unsigned char) address.phys_addr[3], - (unsigned char) address.phys_addr[4], - (unsigned char) address.phys_addr[5] - ); - assert(err > 0); - - err = js_create_string_utf8(env, (utf8_t *) mac, -1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "mac", val); - assert(err == 0); - - err = js_get_boolean(env, address.is_internal == 1, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "internal", val); - assert(err == 0); - - if (family == AF_INET6) { - err = js_create_uint32(env, address.address.address6.sin6_scope_id, &val); - assert(err == 0); - - err = js_set_named_property(env, item, "scopeid", val); - assert(err == 0); - } - - err = js_set_element(env, result, i, item); - assert(err == 0); - } - - uv_free_interface_addresses(addresses, len); - - return result; -} - -static js_value_t * -bare_os_kill(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - uint32_t pid; - err = js_get_value_uint32(env, argv[0], &pid); - assert(err == 0); - - uint32_t signum; - err = js_get_value_uint32(env, argv[1], &signum); - assert(err == 0); - - err = uv_kill(pid, signum); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - return NULL; -} - -static js_value_t * -bare_os_available_parallelism(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_int64(env, uv_available_parallelism(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_cpu_usage(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_rusage_t usage; - err = uv_getrusage(&usage); - assert(err == 0); - - js_value_t *result; - err = js_create_object(env, &result); - assert(err == 0); - -#define V(name, property) \ - { \ - uv_timeval_t time = usage.ru_##property; \ -\ - js_value_t *value; \ - err = js_create_int64(env, time.tv_sec * 1e6 + time.tv_usec, &value); \ - assert(err == 0); \ -\ - err = js_set_named_property(env, result, name, value); \ - assert(err == 0); \ - } - - V("user", utime) - V("system", stime) -#undef V - - return result; -} - -static js_value_t * -bare_os_cpu_usage_thread(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_rusage_t usage; - err = uv_getrusage_thread(&usage); - assert(err == 0); - - js_value_t *result; - err = js_create_object(env, &result); - assert(err == 0); - -#define V(name, property) \ - { \ - uv_timeval_t time = usage.ru_##property; \ -\ - js_value_t *value; \ - err = js_create_int64(env, time.tv_sec * 1e6 + time.tv_usec, &value); \ - assert(err == 0); \ -\ - err = js_set_named_property(env, result, name, value); \ - assert(err == 0); \ - } - - V("user", utime) - V("system", stime) -#undef V - - return result; -} - -static js_value_t * -bare_os_resource_usage(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_rusage_t usage; - err = uv_getrusage(&usage); - assert(err == 0); - - js_value_t *result; - err = js_create_object(env, &result); - assert(err == 0); - -#define V(name, property) \ - { \ - uv_timeval_t time = usage.ru_##property; \ -\ - js_value_t *value; \ - err = js_create_int64(env, time.tv_sec * 1e6 + time.tv_usec, &value); \ - assert(err == 0); \ -\ - err = js_set_named_property(env, result, name, value); \ - assert(err == 0); \ - } - - V("userCPUTime", utime) - V("systemCPUTime", stime) -#undef V - -#define V(name, property) \ - { \ - js_value_t *value; \ - err = js_create_int64(env, usage.ru_##property, &value); \ - assert(err == 0); \ -\ - err = js_set_named_property(env, result, name, value); \ - assert(err == 0); \ - } - - V("maxRSS", maxrss) - V("sharedMemorySize", ixrss) - V("unsharedDataSize", idrss) - V("unsharedStackSize", isrss) - V("minorPageFault", minflt) - V("majorPageFault", majflt) - V("swappedOut", nswap) - V("fsRead", inblock) - V("fsWrite", oublock) - V("ipcSent", msgsnd) - V("ipcReceived", msgrcv) - V("signalsCount", nsignals) - V("voluntaryContextSwitches", nvcsw) - V("involuntaryContextSwitches", nivcsw) -#undef V - - return result; -} - -static js_value_t * -bare_os_memory_usage(js_env_t *env, js_callback_info_t *info) { - int err; - - js_heap_statistics_t stats = { - .version = 1, - - // Since 0 - .total_heap_size = -1, - .used_heap_size = -1, - - // Since 1 - .external_memory = -1, - }; - - err = js_get_heap_statistics(env, &stats); - assert(err == 0); - - js_value_t *result; - err = js_create_object(env, &result); - assert(err == 0); - - size_t rss; - err = uv_resident_set_memory(&rss); - assert(err == 0); - - js_value_t *value; - err = js_create_int64(env, rss, &value); - assert(err == 0); - - err = js_set_named_property(env, result, "rss", value); - assert(err == 0); - -#define V(name, property) \ - { \ - if (stats.property != (size_t) -1) { \ - js_value_t *value; \ - err = js_create_int64(env, stats.property, &value); \ - assert(err == 0); \ -\ - err = js_set_named_property(env, result, name, value); \ - assert(err == 0); \ - } \ - } - - V("heapTotal", total_heap_size) - V("heapUsed", used_heap_size) - V("external", external_memory) -#undef V - - return result; -} - -static js_value_t * -bare_os_freemem(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_int64(env, uv_get_free_memory(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_totalmem(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_int64(env, uv_get_total_memory(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_available_memory(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_int64(env, uv_get_available_memory(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_constrained_memory(js_env_t *env, js_callback_info_t *info) { - int err; - - js_value_t *result; - err = js_create_int64(env, uv_get_constrained_memory(), &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_uptime(js_env_t *env, js_callback_info_t *info) { - int err; - - double uptime; - err = uv_uptime(&uptime); - assert(err == 0); - - js_value_t *result; - err = js_create_double(env, uptime, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_loadavg(js_env_t *env, js_callback_info_t *info) { - int err; - - double *data; - - js_value_t *arraybuffer; - err = js_create_arraybuffer(env, sizeof(double) * 3, (void **) &data, &arraybuffer); - assert(err == 0); - - js_value_t *result; - err = js_create_typedarray(env, js_float64array, 3, arraybuffer, 0, &result); - assert(err == 0); - - uv_loadavg(data); - - return result; -} - -static js_value_t * -bare_os_cpus(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_cpu_info_t *cpus; - int len; - err = uv_cpu_info(&cpus, &len); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_array_with_length(env, len, &result); - assert(err == 0); - - for (uint32_t i = 0, n = len; i < n; i++) { - uv_cpu_info_t cpu = cpus[i]; - - js_value_t *item; - err = js_create_object(env, &item); - assert(err == 0); - - err = js_set_element(env, result, i, item); - assert(err == 0); - -#define V(name, type, ...) \ - { \ - js_value_t *val; \ - err = type(env, ##__VA_ARGS__, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, item, name, val); \ - assert(err == 0); \ - } - - V("model", js_create_string_utf8, (const utf8_t *) cpu.model, -1) - V("speed", js_create_double, cpu.speed) - V("times", js_create_object) -#undef V - - js_value_t *times; - err = js_get_named_property(env, item, "times", ×); - assert(err == 0); - -#define V(name) \ - { \ - js_value_t *val; \ - err = js_create_int64(env, cpu.cpu_times.name, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, times, #name, val); \ - assert(err == 0); \ - } - - V(user) - V(nice) - V(sys) - V(idle) - V(irq) -#undef V - } - - uv_free_cpu_info(cpus, len); - - return result; -} - -static js_value_t * -bare_os_get_process_title(js_env_t *env, js_callback_info_t *info) { - int err; - - char title[256]; - err = uv_get_process_title(title, 256); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_string_utf8(env, (utf8_t *) title, -1, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_set_process_title(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - utf8_t data[256]; - err = js_get_value_string_utf8(env, argv[0], data, 256, NULL); - assert(err == 0); - - err = uv_set_process_title((char *) data); - assert(err == 0); - - return NULL; -} - -static js_value_t * -bare_os_get_priority(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - uv_pid_t pid; - err = js_get_value_int32(env, argv[0], &pid); - assert(err == 0); - - int priority; - err = uv_os_getpriority(pid, &priority); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_int32(env, priority, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_set_priority(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - uv_pid_t pid; - err = js_get_value_int32(env, argv[0], &pid); - assert(err == 0); - - int priority; - err = js_get_value_int32(env, argv[1], &priority); - assert(err == 0); - - err = uv_os_setpriority(pid, priority); - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - return NULL; -} - -static js_value_t * -bare_os_group_info(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 0 || argc == 1); - - bool gid_undefined; - err = js_is_undefined(env, argv[0], &gid_undefined); - assert(err == 0); - - int32_t gid; - if (gid_undefined) { -#if defined(BARE_PLATFORM_WIN32) - gid = -1; -#else - gid = getegid(); -#endif - } else { - err = js_get_value_int32(env, argv[0], &gid); - assert(err == 0); - } - - js_value_t *result; - - uv_group_t group; - err = uv_os_get_group(&group, gid); - - if (err == UV_ENOTSUP) { - err = js_get_null(env, &result); - assert(err == 0); - - return result; - } - - if (err != 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - err = js_create_object(env, &result); - assert(err == 0); - - js_value_t *groupname; - err = js_create_string_utf8(env, (utf8_t *) group.groupname, strlen(group.groupname), &groupname); - assert(err == 0); - - err = js_set_named_property(env, result, "groupname", groupname); - assert(err == 0); - - js_value_t *grp_gid; - err = js_create_int32(env, group.gid, &grp_gid); - assert(err == 0); - - err = js_set_named_property(env, result, "gid", grp_gid); - assert(err == 0); - - js_value_t *members; - err = js_create_array(env, &members); - assert(err == 0); - - for (uint32_t i = 0; group.members[i] != NULL; i++) { - js_value_t *member; - err = js_create_string_utf8(env, (utf8_t *) group.members[i], strlen(group.members[i]), &member); - assert(err == 0); - - err = js_set_element(env, members, i, member); - assert(err == 0); - } - - err = js_set_named_property(env, result, "members", members); - assert(err == 0); - - uv_os_free_group(&group); - - return result; -} - -static js_value_t * -bare_os_get_env_keys(js_env_t *env, js_callback_info_t *info) { - int err; - - uv_env_item_t *items; - int len; - - uv_rwlock_rdlock(&bare_os_env_lock); - - err = uv_os_environ(&items, &len); - - uv_rwlock_rdunlock(&bare_os_env_lock); - - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - return NULL; - } - - js_value_t *result; - err = js_create_array_with_length(env, len, &result); - assert(err == 0); - - for (int i = 0; i < len; i++) { - uv_env_item_t *item = &items[i]; - - js_value_t *val; - err = js_create_string_utf8(env, (utf8_t *) item->name, -1, &val); - assert(err == 0); - - err = js_set_element(env, result, i, val); - assert(err == 0); - } - - uv_os_free_environ(items, len); - - return result; -} - -static js_value_t * -bare_os_get_env(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - size_t name_len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &name_len); - assert(err == 0); - - name_len += 1 /* NULL */; - - utf8_t *name = malloc(name_len); - err = js_get_value_string_utf8(env, argv[0], name, name_len, &name_len); - assert(err == 0); - - uv_rwlock_rdlock(&bare_os_env_lock); - - size_t value_len = 256; - char *value = malloc(value_len); - err = uv_os_getenv((char *) name, value, &value_len); - - js_value_t *result; - - if (err == UV_ENOENT) { - err = js_get_undefined(env, &result); - assert(err == 0); - } else { - if (err == UV_ENOBUFS) { - value = realloc(value, value_len); - - err = uv_os_getenv((char *) name, value, &value_len); - assert(err == 0); - } else if (err < 0) { - uv_rwlock_rdunlock(&bare_os_env_lock); - - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - free(name); - return NULL; - } - - err = js_create_string_utf8(env, (utf8_t *) value, value_len, &result); - assert(err == 0); - } - - uv_rwlock_rdunlock(&bare_os_env_lock); - - free(name); - free(value); - - return result; -} - -static js_value_t * -bare_os_has_env(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - size_t name_len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &name_len); - assert(err == 0); - - utf8_t *name = malloc(++name_len); - err = js_get_value_string_utf8(env, argv[0], name, name_len, &name_len); - assert(err == 0); - - uv_rwlock_rdlock(&bare_os_env_lock); - - size_t value_len = 1; - char value[1]; - err = uv_os_getenv((char *) name, value, &value_len); - - uv_rwlock_rdunlock(&bare_os_env_lock); - - if (err != 0 && err != UV_ENOENT && err != UV_ENOBUFS) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - free(name); - return NULL; - } - - free(name); - - js_value_t *result; - err = js_get_boolean(env, err != UV_ENOENT, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_os_set_env(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - size_t name_len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &name_len); - assert(err == 0); - - utf8_t *name = malloc(++name_len); - err = js_get_value_string_utf8(env, argv[0], name, name_len, &name_len); - assert(err == 0); - - size_t value_len; - err = js_get_value_string_utf8(env, argv[1], NULL, 0, &value_len); - assert(err == 0); - - utf8_t *value = malloc(++value_len); - err = js_get_value_string_utf8(env, argv[1], value, value_len, &value_len); - assert(err == 0); - - uv_rwlock_wrlock(&bare_os_env_lock); - - err = uv_os_setenv((char *) name, (char *) value); - - uv_rwlock_wrunlock(&bare_os_env_lock); - - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - free(name); - free(value); - return NULL; - } - - free(name); - free(value); - - return NULL; -} - -static js_value_t * -bare_os_unset_env(js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 1; - js_value_t *argv[1]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 1); - - size_t name_len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &name_len); - assert(err == 0); - - utf8_t *name = malloc(++name_len); - err = js_get_value_string_utf8(env, argv[0], name, name_len, &name_len); - assert(err == 0); - - uv_rwlock_wrlock(&bare_os_env_lock); - - err = uv_os_unsetenv((char *) name); - - uv_rwlock_wrunlock(&bare_os_env_lock); - - if (err < 0) { - err = js_throw_error(env, uv_err_name(err), uv_strerror(err)); - assert(err == 0); - - free(name); - return NULL; - } - - free(name); - - return NULL; -} - -static js_value_t * -bare_os_exports(js_env_t *env, js_value_t *exports) { - uv_once(&bare_os_env_lock_guard, bare_os__on_env_lock_init); - - int err; - -#define V(name, str) \ - { \ - js_value_t *val; \ - err = js_create_string_utf8(env, (utf8_t *) str, -1, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, exports, name, val); \ - assert(err == 0); \ - } - - V("platform", BARE_PLATFORM) - V("arch", BARE_ARCH) -#undef V - -#define V(name, fn) \ - { \ - js_value_t *val; \ - err = js_create_function(env, name, -1, fn, NULL, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, exports, name, val); \ - assert(err == 0); \ - } - - V("type", bare_os_type) - V("version", bare_os_version) - V("release", bare_os_release) - V("machine", bare_os_machine) - V("execPath", bare_os_exec_path) - V("pid", bare_os_pid) - V("ppid", bare_os_ppid) - V("cwd", bare_os_cwd) - V("chdir", bare_os_chdir) - V("tmpdir", bare_os_tmpdir) - V("homedir", bare_os_homedir) - V("hostname", bare_os_hostname) - V("kill", bare_os_kill) - V("availableParallelism", bare_os_available_parallelism) - V("cpuUsage", bare_os_cpu_usage) - V("threadCpuUsage", bare_os_cpu_usage_thread) - V("resourceUsage", bare_os_resource_usage) - V("memoryUsage", bare_os_memory_usage) - V("freemem", bare_os_freemem) - V("totalmem", bare_os_totalmem) - V("availableMemory", bare_os_available_memory) - V("constrainedMemory", bare_os_constrained_memory) - V("uptime", bare_os_uptime) - V("loadavg", bare_os_loadavg) - V("cpus", bare_os_cpus) - V("getProcessTitle", bare_os_get_process_title) - V("setProcessTitle", bare_os_set_process_title) - V("getPriority", bare_os_get_priority) - V("setPriority", bare_os_set_priority) - V("getEnvKeys", bare_os_get_env_keys) - V("getEnv", bare_os_get_env) - V("hasEnv", bare_os_get_env) - V("setEnv", bare_os_set_env) - V("unsetEnv", bare_os_unset_env) - V("userInfo", bare_os_user_info) - V("networkInterfaces", bare_os_network_interfaces) - V("groupInfo", bare_os_group_info) -#undef V - - const union { - uint8_t u8[2]; - uint16_t u16; - } byte_order = {{1, 0}}; - - js_value_t *is_little_endian; - err = js_get_boolean(env, byte_order.u16 == 1, &is_little_endian); - assert(err == 0); - - err = js_set_named_property(env, exports, "isLittleEndian", is_little_endian); - assert(err == 0); - - js_value_t *signals; - err = js_create_object(env, &signals); - assert(err == 0); - - err = js_set_named_property(env, exports, "signals", signals); - assert(err == 0); - -#define V(name) \ - { \ - js_value_t *val; \ - err = js_create_uint32(env, name, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, signals, #name, val); \ - assert(err == 0); \ - } - -#ifdef SIGHUP - V(SIGHUP); -#endif -#ifdef SIGINT - V(SIGINT); -#endif -#ifdef SIGQUIT - V(SIGQUIT); -#endif -#ifdef SIGILL - V(SIGILL); -#endif -#ifdef SIGTRAP - V(SIGTRAP); -#endif -#ifdef SIGABRT - V(SIGABRT); -#endif -#ifdef SIGIOT - V(SIGIOT); -#endif -#ifdef SIGBUS - V(SIGBUS); -#endif -#ifdef SIGFPE - V(SIGFPE); -#endif -#ifdef SIGKILL - V(SIGKILL); -#endif -#ifdef SIGUSR1 - V(SIGUSR1); -#endif -#ifdef SIGSEGV - V(SIGSEGV); -#endif -#ifdef SIGUSR2 - V(SIGUSR2); -#endif -#ifdef SIGPIPE - V(SIGPIPE); -#endif -#ifdef SIGALRM - V(SIGALRM); -#endif -#ifdef SIGTERM - V(SIGTERM); -#endif -#ifdef SIGCHLD - V(SIGCHLD); -#endif -#ifdef SIGSTKFLT - V(SIGSTKFLT); -#endif -#ifdef SIGCONT - V(SIGCONT); -#endif -#ifdef SIGSTOP - V(SIGSTOP); -#endif -#ifdef SIGTSTP - V(SIGTSTP); -#endif -#ifdef SIGBREAK - V(SIGBREAK); -#endif -#ifdef SIGTTIN - V(SIGTTIN); -#endif -#ifdef SIGTTOU - V(SIGTTOU); -#endif -#ifdef SIGURG - V(SIGURG); -#endif -#ifdef SIGXCPU - V(SIGXCPU); -#endif -#ifdef SIGXFSZ - V(SIGXFSZ); -#endif -#ifdef SIGVTALRM - V(SIGVTALRM); -#endif -#ifdef SIGPROF - V(SIGPROF); -#endif -#ifdef SIGWINCH - V(SIGWINCH); -#endif -#ifdef SIGIO - V(SIGIO); -#endif -#ifdef SIGPOLL - V(SIGPOLL); -#endif -#ifdef SIGLOST - V(SIGLOST); -#endif -#ifdef SIGPWR - V(SIGPWR); -#endif -#ifdef SIGINFO - V(SIGINFO); -#endif -#ifdef SIGSYS - V(SIGSYS); -#endif -#ifdef SIGUNUSED - V(SIGUNUSED); -#endif -#undef V - - js_value_t *errnos; - err = js_create_object(env, &errnos); - assert(err == 0); - - err = js_set_named_property(env, exports, "errnos", errnos); - assert(err == 0); - -#define V(name, msg) \ - { \ - js_value_t *val; \ - err = js_create_int32(env, UV_##name, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, errnos, #name, val); \ - assert(err == 0); \ - } - - UV_ERRNO_MAP(V); -#undef V - - js_value_t *priority; - err = js_create_object(env, &priority); - assert(err == 0); - - err = js_set_named_property(env, exports, "priority", priority); - assert(err == 0); - -#define V(name) \ - { \ - js_value_t *val; \ - err = js_create_int32(env, UV_##name, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, priority, #name, val); \ - assert(err == 0); \ - } - - V(PRIORITY_LOW); - V(PRIORITY_BELOW_NORMAL); - V(PRIORITY_NORMAL); - V(PRIORITY_ABOVE_NORMAL); - V(PRIORITY_HIGH); - V(PRIORITY_HIGHEST); - - return exports; -} - -BARE_MODULE(bare_os, bare_os_exports) diff --git a/node_modules/bare-os/binding.js b/node_modules/bare-os/binding.js deleted file mode 100644 index cea4630..0000000 --- a/node_modules/bare-os/binding.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require.addon() diff --git a/node_modules/bare-os/index.d.ts b/node_modules/bare-os/index.d.ts deleted file mode 100644 index cea5ffe..0000000 --- a/node_modules/bare-os/index.d.ts +++ /dev/null @@ -1,150 +0,0 @@ -import constants from './lib/constants' -import errors from './lib/errors' - -export { constants, errors } - -export const EOL: '\r\n' | '\n' - -export const devNull: '\\\\.\\nul' | '/dev/null' - -export function platform(): 'android' | 'darwin' | 'ios' | 'linux' | 'win32' - -export function arch(): 'arm' | 'arm64' | 'ia32' | 'x64' - -export function type(): string - -export function version(): string - -export function release(): string - -export function machine(): string - -export function execPath(): string - -export function pid(): number - -export function ppid(): number - -export function cwd(): string - -export function chdir(dir: string): string - -export function tmpdir(): string - -export function homedir(): string - -export function hostname(): string - -export interface NetworkInterface { - address: string - netmask: string - family: 'IPv4' | 'IPv6' - cidr: string - mac: string - internal: boolean - scopeid?: number -} - -export function networkInterfaces(): Record - -export function kill(pid: number, signal?: string | number): void - -export interface UserInfo { - uid: number - gid: number - username: string - homedir: string - shell: string | null -} - -export function userInfo(uid?: number): UserInfo - -export interface GroupInfo { - groupname: string - gid: number - members: string[] -} - -export function groupInfo(gid?: number): GroupInfo | null - -export function endianness(): 'LE' | 'BE' - -export function availableParallelism(): number - -export interface CpuUsage { - user: number - system: number -} - -export function cpuUsage(previous?: CpuUsage): CpuUsage - -export function threadCpuUsage(previous?: CpuUsage): CpuUsage - -export function resourceUsage(): { - userCPUTime: number - systemCPUTime: number - maxRSS: number - sharedMemorySize: number - unsharedDataSize: number - unsharedStackSize: number - minorPageFault: number - majorPageFault: number - swappedOut: number - fsRead: number - fsWrite: number - ipcSent: number - ipcReceived: number - signalsCount: number - voluntaryContextSwitches: number - involuntaryContextSwitches: number -} - -export function memoryUsage(): { - rss: number - heapTotal: number - heapUsed: number - external: number -} - -export function freemem(): number - -export function totalmem(): number - -export function availableMemory(): number - -export function constrainedMemory(): number - -export function uptime(): number - -export function loadavg(): ArrayLike - -export function cpus(): { - model: string - speed: number - times: { - user: number - nice: number - sys: number - idle: number - irq: number - } -}[] - -export function getProcessTitle(): string - -export function setProcessTitle(title: unknown): void - -export function getPriority(pid?: number): number - -export function setPriority(priority: number): void -export function setPriority(pid: number, priority: number): void - -export function getEnvKeys(): string[] - -export function getEnv(name: string): string | undefined - -export function hasEnv(name: string): boolean - -export function setEnv(name: string, value: string): void - -export function unsetEnv(name: string): void diff --git a/node_modules/bare-os/index.js b/node_modules/bare-os/index.js deleted file mode 100644 index 095b126..0000000 --- a/node_modules/bare-os/index.js +++ /dev/null @@ -1,131 +0,0 @@ -const binding = require('./binding') -const errors = require('./lib/errors') -const constants = require('./lib/constants') - -exports.constants = constants -exports.errors = errors - -exports.EOL = binding.platform === 'win32' ? '\r\n' : '\n' - -exports.devNull = binding.platform === 'win32' ? '\\\\.\\nul' : '/dev/null' - -exports.platform = function platform() { - return binding.platform -} - -exports.arch = function arch() { - return binding.arch -} - -exports.type = binding.type -exports.version = binding.version -exports.release = binding.release -exports.machine = binding.machine -exports.execPath = binding.execPath -exports.pid = binding.pid -exports.ppid = binding.ppid -exports.cwd = binding.cwd -exports.chdir = binding.chdir -exports.tmpdir = binding.tmpdir -exports.homedir = binding.homedir -exports.hostname = binding.hostname -exports.userInfo = binding.userInfo -exports.groupInfo = binding.groupInfo - -exports.networkInterfaces = function networkInterfaces() { - const result = {} - - for (const entry of binding.networkInterfaces()) { - const { name, ...properties } = entry - - if (result[name]) result[name].push(properties) - else result[name] = [properties] - } - - return result -} - -exports.kill = function kill(pid, signal = constants.signals.SIGTERM) { - if (typeof signal === 'string') { - if (signal in constants.signals === false) { - throw errors.UNKNOWN_SIGNAL('Unknown signal: ' + signal) - } - - signal = constants.signals[signal] - } - - binding.kill(pid, signal) -} - -exports.endianness = function endianness() { - return binding.isLittleEndian ? 'LE' : 'BE' -} - -exports.availableParallelism = binding.availableParallelism - -exports.cpuUsage = function cpuUsage(previous) { - const current = binding.cpuUsage() - - if (previous) { - return { - user: current.user - previous.user, - system: current.system - previous.system - } - } - - return current -} - -exports.threadCpuUsage = function threadCpuUsage(previous) { - const current = binding.threadCpuUsage() - - if (previous) { - return { - user: current.user - previous.user, - system: current.system - previous.system - } - } - - return current -} - -exports.resourceUsage = binding.resourceUsage -exports.memoryUsage = binding.memoryUsage -exports.freemem = binding.freemem -exports.totalmem = binding.totalmem -exports.availableMemory = binding.availableMemory -exports.constrainedMemory = binding.constrainedMemory -exports.uptime = binding.uptime -exports.loadavg = binding.loadavg -exports.cpus = binding.cpus - -exports.getProcessTitle = binding.getProcessTitle - -exports.setProcessTitle = function setProcessTitle(title) { - if (typeof title !== 'string') title = title.toString() - - if (title.length >= 256) { - throw errors.TITLE_OVERFLOW('Process title is too long') - } - - binding.setProcessTitle(title) -} - -exports.getPriority = function getPriority(pid = 0) { - return binding.getPriority(pid) -} - -exports.setPriority = function setPriority(pid, priority) { - if (priority === undefined) { - priority = pid - pid = 0 - } - - binding.setPriority(pid, priority) -} - -exports.getEnvKeys = binding.getEnvKeys -exports.getEnv = binding.getEnv -exports.hasEnv = binding.hasEnv -exports.setEnv = binding.setEnv -exports.unsetEnv = binding.unsetEnv diff --git a/node_modules/bare-os/lib/constants.d.ts b/node_modules/bare-os/lib/constants.d.ts deleted file mode 100644 index e09a68f..0000000 --- a/node_modules/bare-os/lib/constants.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const constants: { - signals: Record - errnos: Record - priority: Record -} - -export = constants diff --git a/node_modules/bare-os/lib/constants.js b/node_modules/bare-os/lib/constants.js deleted file mode 100644 index eacb070..0000000 --- a/node_modules/bare-os/lib/constants.js +++ /dev/null @@ -1,7 +0,0 @@ -const binding = require('../binding') - -module.exports = { - signals: binding.signals, - errnos: binding.errnos, - priority: binding.priority -} diff --git a/node_modules/bare-os/lib/errors.d.ts b/node_modules/bare-os/lib/errors.d.ts deleted file mode 100644 index 6c0214d..0000000 --- a/node_modules/bare-os/lib/errors.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare class OSError extends Error { - readonly code: string -} - -export = OSError diff --git a/node_modules/bare-os/lib/errors.js b/node_modules/bare-os/lib/errors.js deleted file mode 100644 index eea81c5..0000000 --- a/node_modules/bare-os/lib/errors.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = class OSError extends Error { - constructor(msg, fn = OSError, code = fn.name) { - super(`${code}: ${msg}`) - this.code = code - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, fn) - } - } - - get name() { - return 'OSError' - } - - static UNKNOWN_SIGNAL(msg) { - return new OSError(msg, OSError.UNKNOWN_SIGNAL) - } - - static TITLE_OVERFLOW(msg) { - return new OSError(msg, OSError.TITLE_OVERFLOW) - } -} diff --git a/node_modules/bare-os/package.json b/node_modules/bare-os/package.json deleted file mode 100644 index 737acc7..0000000 --- a/node_modules/bare-os/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "bare-os", - "version": "3.9.1", - "description": "Operating system utilities for Bare", - "exports": { - "./package": "./package.json", - ".": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./constants": { - "types": "./lib/constants.d.ts", - "default": "./lib/constants.js" - }, - "./errors": { - "types": "./lib/errors.d.ts", - "default": "./lib/errors.js" - } - }, - "files": [ - "index.js", - "index.d.ts", - "binding.c", - "binding.js", - "CMakeLists.txt", - "lib", - "prebuilds" - ], - "addon": true, - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "brittle-bare --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-os.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-os/issues" - }, - "homepage": "https://github.com/holepunchto/bare-os#readme", - "engines": { - "bare": ">=1.14.0" - }, - "devDependencies": { - "brittle": "^3.1.1", - "cmake-bare": "^1.1.6", - "lunte": "^1.6.0", - "prettier": "^3.4.2", - "prettier-config-holepunch": "^2.0.0" - } -} diff --git a/node_modules/bare-os/prebuilds/android-arm/bare-os.bare b/node_modules/bare-os/prebuilds/android-arm/bare-os.bare deleted file mode 100644 index 445603285b9987d202292087caf255937a9f5983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34280 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 Ue|#f!eij!V(ZcTn+NK5h-%Qvv<^TWy diff --git a/node_modules/bare-os/prebuilds/android-arm64/bare-os.bare b/node_modules/bare-os/prebuilds/android-arm64/bare-os.bare deleted file mode 100644 index cba03bd8d671b5ff8e53eec687ecf5429c6bf320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39616 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 bbhAIp(Y|dU^CEZ{PUn3MUWc~NR4V)*^-i&E diff --git a/node_modules/bare-os/prebuilds/android-x64/bare-os.bare b/node_modules/bare-os/prebuilds/android-x64/bare-os.bare deleted file mode 100644 index ec756dcdf454923cbafaee2d93cab4213adc5365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38184 zcmeHwd3;pW+5aUVB7%u1O5GY45D-Ixh%7D%$%F|^7PGLpG=yYABH20%i-k5CVwuLV z)QZwpEw1IYzHccCMQUwC1YG)>sp* zz2E0K&spxd=bSst`Hsg|m^NsTrH{eZUj6+qzVr zae^`cCD!cfNez%i9k&m(D%1;Qj|s-ZysP=lN!SMx`KRxZuolDtUGR5Z@S`sHNOah#`k9k~rz+>OUGOO`erCGhSGf2obHT55!P{K$@3`RKcfmKg z;9G&GDxb$(_)ojwe{{j$cfpUk;6pKJOI0uD08bU?L>K-{7ksV@ezlAL$>KRR(po$b zCph%@YYxswStG4Bg~MDOY3LHuFm7@FOGcd6|Nk`UJvm)xs#=qhW2-^dGNU|dM=}>_ zRxq9!Ff6MAf0U=;&&sq;q(aOd7Y!7@e`<|YU0u7frnSg)wc$gSxagH{_3UvP<3-_UAW0#-BQ!+uU?)l@fcZM1Rh>q-P%&?x2_9T z*9QD>TOAAq8e5iDheP$#i3Z_|PU@=L0tG4C~HL6hLNsxMMY_~E9!IxYHOOBmN1USmikr= zF0W|{JIe(wY8&brMH&bz)Z7+V8d_0Uu}es%p*0v1ajQa-?o>Iz)3U}Uk=>f*$al>W zR9ah20CD)68iUQwf|@p!(ZgpT9IRO?N+PB(@BW%tP8$3*Z7kCennz=8kahuou(8hH z5)yUV>~C%jtWxf(>jQp&wG#@phH9D;uy}}0Zf$D|YN4jF1EgY*D#TB&b6^)^W>L!27 zQq(n)W1ICi`J0hfswkqwCJbjH%Q24tNJAU1^#@U-jUfaIkglAdqZVc31rMzN_HBX2 z)<7d}5sARqL{xhY)UjDBioa!fV*oc03}TnVEe1h^saefv7Ol0)6zKui84S17`O!)E z>nyYa!J?(%cSXSPipXdiPjyAWk!rX_F_7Cv-gnx0EURdw!60s&L|}@AmVm0zakYeH z>qY^Iti;VwcK$$pO|8GWrmhZcGw2tsw6Se!?AC5cPzACV{2*{ADcx`AV88ar|g97C+w;WcnP%40{Ffg6tzYoURg>j;YtT*pXf z4F;~Cxy0KH{5S&YSZUzHH3->m;Kv*IIs+eJ;Oh;1q=9cVaJ}@y%bN^5-QaIFaC1Df z#lTNA_&W^T9OrZ!_(=wTpMi5dLLWT_K3ap2y#{`Yf%h5ssRnKv_!t8}VBlXf@FNB; z#tHh`qw<7xd%DIThZ*=82A*NyT>H?+7y~~`gOHg9{&fQ%Z{V2*o^9Y~8~AhsKgYmx z4g6dK_Zs+l23}_1V-0+vfsZrr#Rh)9fj1cVcmr=U@CgRK(!kY_R9tO0@Cyw7Is>0% z;OhQ@Ery|#lX7_{2~M2XW&x}yvM-JMZR7G zpJwp;4Ez!Uw+(!{fgdn%b0zYKfzLGf78lHLu>H>xXYym1fydT_aVf*VFEjXK4E%Bf z&ouBW41BzS=Nfpnf#(_cbOWDl;JF5#Z{S`7FEH>j1NRvCLIW=}@Wlo`$G{s5+-u-% z23};~D-C?Efwvp@JOf{6;64LiZ{WoSzR|!-41AM;mm2tH11~f1Ee3w2f$uQzas%gS z``WBLIb^L8Lu$+&T3UlvMbVsjMLwV9Da@<#Ra#}`MWy9Mm5Zupdwit}s!K}Ci}QRI zhqpn?Q##*MUI^IYC zy*MxRlz;(pS-#~d^OP4`o^nrdX{D#A)DrUpV}xBSNA8HQ2u2WPMP(k#Q(Rc&gD5GT zT~$~?Sy@n24rja=3qNl*g4N-3icl5Ah*1oOia6tew}ts-RaQ9Y4?tFO{2p8tv>NL$ z9BvGJ(+bvN5{PWJHHislGc6FKr#!D@4pOi1R>|ze#=XH6HEkHqmxe>6URhNnLS9f* zBJ*8VURqgNT2^WKS7J1XIj*%5lN<~_%j8JBQVhgVsGgSP^ZbYemvAbQMfJdCWqDp1 zWg!b8uc*4hQ$D{aALsdbCHWqorvPOki>BCDR5H(Mu31@LfdT?GZ%$qjYJ%}sF07ng zvB(Ox`B5HXl*w3X0<{g6oax18aTuw#h6A;J*<92d$CFo3P+nA0RUvAivZ6Gf30>D3 zD8n?ZuqNCTvX-|tg3fmQjf82GLXRbbLm+kp1NYN+I7%NiS;Jhsk?O|n!)V~!G( z%}UHoWQm9bQO9}n^NP?)k(t?f1%PJ3&h*EflSya*?QA zOU!;zZdDcKIV?ZaL?LCxBI%+S?XMiha9vVbkXM-pKNX@$p_!5+st#3Nj+%@$Fm-3t z2Nz%-ui8$R{AQD_>~|Z@JO}&wPl5sAx|4 zV+CAh%(EMVzQzzHeV&%OMyz14V9H^O1VldbOMO;zV~bg#^}%w^w_6&qd@?qB%F3B; zAC{O(qmz+YE-e#o*+wcCiAL)~H&B40_Tf%IDf=prg;MxL%l)2 zO><+@DoZaRF~7KhytseiQ{9E=jzj)t-8myc+`v;r)mKy^Bl+IEa^69b#z=Xss8rl# z`CeZE)%lgOzE}o$B$QX8PGSv?PqG$&sJSM%j9f2@2cohPT_xng!iuX@WyPOuF|B<6+PDD-&P? z*#mhEWF{sW?T}mp=X;-QOfY&N4?unjxdju8@mL&a!$hJIG7}SrcE}#chp8hIJ(QRr z9HGR7AQOuQ-BT^g3)y!uY$3BTV80Er9dZX`59Di*nH;bW1r9kL@&IHRjg2l8d&9B5-8o{NF?B*-!hq!&W=Vc@(LGBXe52$?Y(7-fNFjX)W;c`fTw$TAEp z8z6a{EQK}b`f_W~%8Ws$k2rSNdXzQi`kc=mL3(;!ff%xA9RkMc;6V)TtpmW26>$*b zmk0I(Q^^Qk6EGXtDS{PRO_^Eq~rtQ?s#O_ zcixxdR)X8}CAsb3R*wC0ejf(67hL8$Dc(Rl-b`HX1-EIOWr?|hE*nqB;MIyo&ZppP z{2UJRor(KqH#lFECb>Rv7oKlfTXCKg-<|RJ$XyBUesI5x-}}LBhtZee_JDgb?(2KZ z7>ZP#UgeD8Q*bwe`}0)Xjd5-!u8&7Qa0dDZxAH`FTRw2S;E0<;m$|oNaN7HEU*v_r z%S7MuMZ7z~I|AM&$XI#8-{4yY#~jk%Zd`9eA9Nb(GsZ(*4?ccSjF*W^`@w6#4eZ0Y z$y=jXf0cRmN`#*=nxL1QS27RTNC+hM-+-do-ur2cL2d@mgHk_Mr zr`5!HlW^&I@HT>X8|pR2EABY<=Alv9Bdke_8L$n03jQ$k(Z9fXjIZy1e~c<(7>|zU zW^li2a_4poxn*!#P&4VX47@|&Jz?^6`&*%zvQJqJ?m9dhzNr1t?`CjE;CV69tm9Z; zm$pZHCii7<4}ja5k~{c(-6~jSeC||YVJO$+nq@XYvt`WL;MZZn=mXm7I*Z5gCo_&~ zz#Wfg*uPBQx-5R6nRtf5)jDuL#q*8N*O=cjqwZ!7i5W1DJHVfmEBm<^KNiQ}r*zck zf%_J?eR-Dk0M29Fw4cQM5l%e3(aR#J>;AggmX-eXT2vvP9S<7(C2Y@qsKgcXkg$ep7ZEG9?8g4 z@mb}Kyq&iIQ_#u^Z^!;@Z{)+G$Y*ult|4Pt8s3Pf7s;La98RMb_nm>~-Jg+RoSzP- z-e_@;FY>W>?=B9;?BDZBS8)#lyXS*}0bYsx)qYO$`++3z?}_sl9EkCM0@N41Y@zT! zat)I7$z*)UxlGBE(`~O+#xfOOEQ&2V0l;RI>;wGV~iGCcHCrZ_6e z@IbBzb*nUd)6MWz&{!_7l;!l$d*GR)TvT!E58P+Em7D&SvWQvE~3@=PFJYE_;BlGy1b6r9`bXj5^Uj%{% zQ2TdLIOm=3V)*MM!yie*UYW<^(GR6;ayKR!E|!K@$|iS?n_*Fs;rY_AQ08%ln_)(h z;ro}0Jf0)-SmtK0esjm@_3({;m#z(jnXh|3&W#shBqV`R!hVC zWj)@2=YPsjy-9}Sq~Sst>Jc}?^d!T7U>Jftjz{76qGMmcL_R4+U*ruwuwDYwSw6p% zwvVB?x*6S_WVBit$+CGLD+NimOwFHUm@f^N$+Gzf!}^qlladUFOT+tR{XfjHcd7^S zhZwv$^Y?ooD4Rantp=yK8176m+$aqvyesPe#~5*@O!0;!!)hYYDn4nS7-V6v(xNCB zlDv+(RYQ{Lf)?Hf)xJhD_JQ#UD^U(wPLYnfV~#w67T$*(c7wVZrAX`dF~UWHf|tew z&vf!m$3Ts|JqC}HF8d<_T`_+TDBj%$j{{cwcTV0jinrY0VNh<_4>)<76|cnLVX$i1 zYn;5*Dj(w#c~wr{8d)^NPqZ}7&D*XiW-zA4K&%iw*Dylb7j7gV_nHF&3ycd?V# zqEw-c@)oN0vfbdFLEhU0;^lIeitiSKcP4qiaq?y>UVS2OgOm4tmG0#R z?=1RjcJihv-YEv}>*RTyyp4a8<@Y|ma-#DqcxO6!zk6Hq_6S~>{iOYOp382uqEB4r zH1U4vX$Kfj{EM^6zX@8n8`K@>aqE<))dmmqt^xbkPTpE|2UQxpyUF{ZlXrqDxk(1^ zF7lQ+c?%S8h{5|QdHGJ>%dg9vzJ|vfN<`%2Bl1pn^4?P|^ihN7#a!3^kU&=~zb~tr zxY^*%A@4aS?}#iyyUyShl6Rkzch?&-zDo_>Eb_kPbc)5&KypX}mBkvI>Zoi2*z4U?Ctp?$8CcfKmW#|_?(=VrdEfoBO!s+%hg)mFKHkauFU7mx z;C-LGzY&O+i>|lT2Jchye(mJF^cR_KrNP5s2K}Ftw_de_Ne1r|@|HPy_r50m4KaAP zlb7%0ou>N9*DwXr<$^&Y`adV{TPnUs4PGyK9}#$$fEyq^7j2n##d+X z9whHRC+|{~?xh9~SwsKlvHl6l)v)~9=aj)e@@=l zRDFDk*|^ScH+i$1yw?@)WrKG=c_%q}yH&am8$3Kx(EkyL=lADm92_;QHF&6U^nXs? zL{)y*7`zSS{lv+8TGj7VgNI2F`adV{J1X4~1`i>l|8w#xRXM+f_j9^jHj{U*llNaL zzmFTdd&v8QKs>)$D!$tc-Zt`Ha`NW>QI<=S!2=EbpOY6*yaI!VTOa+OlXr*W@m-|O z$7AGO?c_b9@^J|7H#P4*@-A}n?o#=9-rzkz-tkV}K2>k`8$2{2^nV26p9sQq^_n?Yzh{5|edHGJ>4%J>>!@`;_ms`m@ z-N_58{_0VKhanRBKLYXmW~umYHh5SlLjULFEm!f?8N4(;fA4eh-d5>eYVZb;_bn&y zM=ITu4c<|vTjAt=Q{|WM+I4>MNJjtXzDwSp3B=1~ z^UKm-$lzhfkN(fe`-4i?XYdM`-!3Qb`zl?oPwRXQ6nQ5(dH+=DK5Xz_An!c_@%(O3>8>?+N6351$s4KsT_bp5&OhvSK@roZY*}oa zY0Z?Lws59(66bcSq^BL2X>Gww>sQLtD1$egyepl&hhLO6@%OQ!MCdQ)usz91`q>{O z>FGF0PVa^|d1t*Od3PB+F|2xxKv!4?H(v!8Hh7}@e$>gkK~;Y-;P~6jS)Sf-hBwmd z?bw}tb>203-^i=J_9;68PV9{+-gaL2KX`w-R)PBcXodHN{bR5s=Z$<4_ZRW>d85DS z`vlcd2YzSw$~MU5IN}DK%EU+h-eQ*Ril<$FWsS1I2Q!B*vagod&5Jqj(kd~XA)%U8!gK6U*2P{D&N7WM|7 z;#(ZOc*W$&dB*;L33Y{gebH@f1&@hV#Dov>9n>4R%EwSYWM}uPb7jvq51NXz45#rp z%b}t6)E7@?dHTW`Io;?R8I@{D_Fu8cDBHFEbo6(r<9BJ_OGH@cvEADDASCwX+jkIb zm9LdFjFtcO(2~plWT1)VKjtgNzZD)nxBcW{h4;(H{|MMB{v9-o#lI6;a{QG*o$+_< zZ%DXD`@DNS>+&o(i>_JkjfU6R{Qd}Hp5pDQS_c4NaXV77Z^z=cx69LR-o1U{D{%KV zI69FN;z6F|2y%3aAfL2<0k^uLC>d`r9s9?ph<9I_h_?za1dDrAGatsJy2AKkQ`K%p zyHM)*W>i%-buaX;HM=orvx{*WZ|l`aUzKSca~LbrdT7qJJ`!!cWA}L7&_BXk0THo# z|922RB70O1Xdj~gF8BV=>Fym#u z=t|80vnv01f%LigcX2u@mD5*$r}7V{Uz~rCzD)jiurQ7KhnY+M_qgO=)J8)7n~*Oy zr=57w_PP0YaXKoM)2+{|{KF}3(RQN|zA1_%A&6Znh>Im3olvaNZcWAiP*vJ7l8+86 z#=kKY{~xN6{{e3u5zj`0U!ICTLHU0`@;4d$b5ijyeMaUtEcu%a{y`C9LVjnd{CXsR zi^1QOihm*spOrLP^6};^mfu@b@qdk*mHfByHWvBqHuy_Y@qeb`*(UkuWn=!Qq~Z@& z_1h`=JqAB575^+%K2?&BE;{D_MUkb1^2t*1jFtR8gMV)-{?Vspem}xnYUI~8_<>aX zM^*hkE%;y1KjG(G)&1GA-<#Mur)M0KfyR|S!PAG+kKh-lD35TDJ)S8?@nsTJ#LY}7 zx~AJcSA@eFsoKE{FUcJ88!V{R(H>QClVnCPCH`z6bS}tSNPaL*Mw1zRrpooeXp!qa zCwY~V+=%54`gl>2Z7131BtN6b4+yenpR@Dk@ZHOv`yE`C4{-PA;cR-A^8qg=1b-75 zbA2G*raZd)OLO}B;ph7+_(FfXM9ql#3ggTFe1C^dj*qWW&wp-o`uk9ppxXrK{x9-} zMq}HT!{@>D3=i6MxQ~^1nT)b8xn9JysziB>53+Q5CXTHRh^mPe_dS7jiSIv&Xp8&s z#jf6+gT+|n^(Tfwa^hf%iwNffnWx_5)W@?`^kDgl>51>JSIKX%uS~daaEGixFB9Hv zZ-ukY?(}uXV1(zb4e!=B#zVlnJiEQPwwAxjnfKdl5yxSC`F-PhjH&jObTv)yncL-? zjv^^u#}gYT?L0Z)jYK(c;rS7qb3ik#V8uFtYDJ zHJ~>#XdicjRwij=gq@D?UB$t_<%-*z_67P1(|?nRK1Oc{wky2O7xix<>2{Pf^v#H4 zlZ<2alStr$6E(A)thOZ9eY?PVMzglDq)42TM7$c&*qdTR79)vgB@w5QxFSYmA(Qx# z%!Lu)C=yFZ?DA|Z8rW0Rv3I&}#)0(CiCB*53h#bzf}D^38Wc4~@0M=WO4}}IIoV4g;o4+kn0zEemw@W=!E9k$3+(e^n`_L zb~VxvQ#!1*s6``+_#$EpXNXut1Zu{i77^jXFKMt^{Hvn8%(1sjC)!{{}{7`*wt#lOSsC_fG*S&VvkMp z?eGa=n$P4AJ#OoNr5i=4?{D^jiG2#^mpw9;D%|I>Wr>9{5Ip>=o<{)ocqG}i2LBZ% zyw9G5a}@D~{H~RnzO6!fXe8av66NGmPse0S`2l#UIB%y(Y&N$MT4HfNX-@%a)_>~w zQ_VN&4+V)V$@yjj+a;D+bifOttNCU#PUG{<4^D_hcnGKQ2oFOu3%xI#FyHJ1AvWI> z{i*){K#t`?tn^%V!X2#00XvORMb{w8@bmUDP_S-Id^k=$orlxceV47IHjHwY)8sr< zOIP^$&colHo;7Y*<5wXA zu{)z^#>cCl!j0KuKO}0~S$(}??I6C!&vo<{;Zs%LAL%|;eXl}uR$p)ENjnG>C8FD3 z?EgnO%L6Tt|D&7(545M)ioq*P05#~tNDK+(yqNP$apZ{o0$^X4zq@E)w=d%F_C?;c zKSf;^VH(fsMiE4I;p^h0-cJwF%kJ5LZb7t%y`CMsp?=E`dylZ%i&Xidhr@~8Kst`x z5jv^k$YC|&@GVzG}IA(B6b$dU(iw?|7p(FzQ1+@A0H{)JP9%guhMA8exX8PAQfu3z#G(D5w$UQP;?2OuNg! zMb-%3VZCc#hj?X;u>bhi4+6#nMBc{R!gpbv17;8hF|l;Zyqqd%W6@ z9{P(TeRdD2(F=d~L+1Ab`%2J|Z}iFbe4OS*&?r8zug0mT^Q~297a*3iU{Mr#ny2UD z6y7*SK$(rDE0o#4*`iRQA3>Tocu)95v7j{Fd^T;uYdmLr&P*u1UYGVfl!+&|=K(lO zXwQ=nNUHYyGO5wAzrU67zH3*BxIebnK%$WlT7pwg=KwQ4V2=e|HI|7u6&V+eWfJ`$ z<3qqUGu#_a7a7iszt{WaacDU@zkGfqjt$+OA7hxJ>~CK{%C?P~Z(sAmpzxLG?>5=} zP|??Qc8BWNuUwC0RKM~aoQhDzQ}zaE&i34w-nkgJuN*Uomyar$jZ9_`k`+q^NMnOe zBYY?BWpQ~chQ}O&MXT16{S;JKZ$uZl9#gb~kI7lrHG;JTtaW7F6=$sj>nwbggzz-L zzOL{lmgG#fYq<{Vi(t^Z%N`atYKKv9r!*QQjk;+h`v)=fg+FE2bF2n?9eeo z`xfiCb_1E-&KJ|yJ_?pE`al^X_h6_P+0c$F@6C$+f8DNa!m=y6Q99swe-3?g38pgT z0CmPI>1!`xnq8d?XI^x~cJGsK3`x%zGAupAH!LGPqjFegdd4-wvePFNugC1aJ$*ve zrt}HdZb{E57?um5yCD5nYi=uu9O>x$xW3~^8d?hqIl7HW+kv5UjU}>JxuYW1^U4@; zMX*rdgoN4Xy(n}0cwDT{>ljEYi2UYeT-uo>I@dL~6-VAh2OhrMo`H6&Q8c`5nJ5bT zJb-&Ucfg>iZ28nZosZ+p`mi8%%CZnDsPe&5r!7g2)@`+bfUR zL050)4SK%w#n4D^)H}%AaU|Uv*%x>np>vcg|EI7o`rphBXEhfc!|W$#vJp3qJ&qSe zQ89RJ46A<+Np1C07R>=(6jscqVYS!As_$2@+KG$&e<0RQe)#10AALCfAK-5vL9EeE z(Uu}_U?%)+HU~$B5L2Uz_gcnu4K5a>Z}+UjM{xunRo}zMwO#n|-&`E|0J1sy1O~y@ zPJUqe(aqSSBme#Az(7tnZNp8Q}wj&Ex@W*?x(pdM09TNLBq6eG^cgqwzq#II;T$Fre_nbS-YrQ||VFdl6&js=Wx!z6m#3`jg+2Px^iGZj-}5AKKF$G7szUENe%S>>|%YJI))xxY)C$r0cu`@Pic_85|#E zIcTj6u303Dte&jO5GW_(-(;@L|3u4J2WnRf_O8QK0!RI&?lo`z83wnAANK4mh=hX?(_+3dg6nX zi06nm+L_IcCgM5Zje0U5ZSRguq>;^g5??FAx>%n#@=DH&#gQJ{i}H$_&+;4zABUF7 zkT6?*4#GGFE`GMqvIfRJk5B%-#K2hU4P^B9A<2QUyQm|FR)3GscTz{CTK!lv!u74x z(LSyIEkb{YI%>n}-z4;VsUsq*f4$IuOnoTzcA?)&9nIG2Zxj0WsAK40^)D9sjnvV< zTm5B1zn(fC0#<*n&;!)*2)6pOg?=4%j8UxqOrbBKj?tghpCRn4kvf*dkbj|{Lmdlt z$iL7}qmE@#Rj~fUo7-A>Uej7{0sf42Rh#MApb%?NFDFGkbj~7 zojTtAA^$>ulRDmoBL71F6Lq|HM*fBVB6YlHNB;Rm)v?b~&!pZb^j*}?rrsm;oz%~v z-YxX4)X$~9Md%MvKact*q2Eh=EcNw5|1tG()Z2xAEA{iKw+a1w)W=g_Ec6?xPoQ2V z^y{flq@FAE0QC!~XAAv0>XWEv3VjLn3#n%a{VM7ll=NFdFQ-14`T;x@Q2*3ODfANqq|SZlO=1ei8L8LZ3)|D)mi5KZp9o)Yl9BH0pem_qPju6!lA}w+VeX z_36|X3q6hc4C-YX|}+llo=UGlc#p>X%cug#IG+ zE2tm9cMVbh)N`rxi;1}ZspnDe5&BN*v#ECreJk~R>RW{V5Ow?^|3bf)I`V-03;oB` z(Wa4qq2Ee<4)r#ne~-GC`eLEqNWF-9nb5DNK9_o~&;!)xQO_3ob<};-Gljl{dNK73 zpqF{lv;03 z(78Vh4|YI2B1-2C$%7pq4}{iAsr^`eQg3HZL|p0YsCW!ky0&MB!ehPSv%}`Gg*`0} zcGx_|JR&7KEFS8zHB_qB5oO2@mIpf~9x80>Ep=hIgsqM0!bhLUc)Qhgc33>t{ZdMH zP&{<}2ULC!C`ag;ME>to_NWy=!t z60=qXj|Hf&n2x* zA&90BmF6a5OYjrAb(yU#nSqO^T{L}qcI|}B+NPS8rJ3rtku#^{WMyY%XO3?Oh1!BM zCr?&Cqnov~wRLHe`qApF+ScaDA?(sr+koAACO0)LZ@v)Q+i;Jj%!~aqrcIkRqdt3D z_9d5O&zMnDGc{+*jO^OFB~xoJ_D`#?$*#Y6#zj+Spp)}8wk-1pW@h?)1+io&H@Ac) z*EI&01t%{FH#XH>$n(j;K<#81KwFc4<%KFHnXt;ph3fZ#C%1+}j);WvRl<_Bk^ISi zbBOiNfy6860Mf9}nC`bnC<6N<;<{hg{aY4r?&~#O^@AG~KTpU(;gO`Sst2y zNa5KE=YW*Qup!boi{}cu{0&c>j#hZ4 ztT;;v>uiO$CE!^K?^gKZ(w)WqPU*khCxNXB_bNQMSOS{AK;c%26X(9B^wX{Idz2r} zF^RX8O5o=T=Wi<#&n%OGj{iQ*SGXQXY}5Fa$^mp9|EuwGsf*wG#Od1#&zLW9@!Os_ zJ*x2R1rk@;wmAD2<&c1%uJE1&e5%4T7drivD!fhMDlF?8+K<9jw`{d2Ja>`wBYt}m zr{7X|-_;WTg%s8Xg|ELx0^e2mFBG16tpuJ>_-^e-;kx`^)qdoSEPodhHt#EZQ?+y; zeghMy+^3Y~lU*b6T$Ce^6L>$eewRr711YRbg)gp^fcOndoKDfWU*h8TDsft@@a{&5 z_bUI3f%AUc{gK3{OJRLe@i#4#zyk{Zk>HQ8de4!7zJLA4LC34y#PJrFwMQviQ+(or zp9+Vm_!9(<`*fo8qWh~ng|{hO_s@%fXP619^BNa?g$o{a!8f_!zi`33UGU$#;BNp= zRSpMT_=Aw~RQcsrld15px!_}6@To5N6)w2X1;5G#uW`YbyWrnz5f}b%UGU$#;I<2X z$OY#f6RGOu4B)BaJkNzc)deqb!K+;STUjlwA%B*hV2Vv;6}Ge`oF%7!*j*;8ZdFTg zRkM{vRBz#9D%Amb4LgA}NOlMa=7Ry6inE%mHf)}h6=^)FR2&kn)O@TCtO9T^+VOwz8IBI~vZA#m2E& zh&)uY#L5abU`JDVCZ$yy2ra>uqb=3J)~s4=!ra zs%lwO0uuQVXJUUDaprHqenNH2s&!fMT$E;YOPJfwSW6nQJyFY2q$)Og#-^(Nm2Ito zP%y5yaLZimV7xS36R3;949l-Ci5-=-1F@lvR&>Hz*IV~!U2lA&b#6z5^22^a8sP>@ zv2#=5enI+z+)_(xY8N4`>fLYRy4pWk17brot;9BSa_pL{uX2Ciu-Mlv3DNr{>kE2c zuLM4Jn!!HF383DBM%%_Vc+x;TDrq0jd27;6$=XJ3C8kxqOODpXHeg!8K3ECc66-72 z7s};|v{73|Iq3-?nQSb}xZ#>+Dln!qA&_Fa*saNlU=t>}U$ge1w)z36w*EETbI)EU zTenxM`YPXay;E;lZB@=C+(fuqZY^FN#9mf8&1LgyugA?-SdNXqsy!tI)z#4Ig00mJ zxb?7iUD7V<{^oF~i8~v|HbqBnL6bYHE3-iLiU7B-3s|uY*SQ(HQrhJ1S$gaB|7^yN zy`cZI8N29ibmyWr3;)k%?El$}{Xd(rV`F*_g#v+^RbRXrdv(DgY~omypJF-ZD??oN z!c+)rYVy$Q_gZdLxE5G$aU7$enf7|!Ud!_wY_5$vkMU5C$DdALzekNpI>$l5STPL{ z#~3BEA^FZz+w1qDTI%&~EU$?}^R(m(f4)Q2x_*zUWu`QXrJoo-*K-dW_WC`pmOB4B zeI37YYjL@l*L3>&J+YShJ+bDiWlF7DVmZ}FU%&U(GI4IC)7P>Ao|vcE%A#pmSG44wgXWP~{_AkjwAbsf zT8>cdNBc+!$GTP7V|hg!`hAy{Rk~o*^~Cbz{lWCLeOZ$vYMG7oF7rsVzY7;>uiHoa zFD1KOy$4NmuSBowv1id>-Fl5%D!Edzb-~?ul@cOwr2eL zdlF-UxPW7`u2`ui)&D-=^r_SD-X@9NVJUNmOQ}CqI9j#-h%<-1TDRBsm&Ta#B(eRx z2ADpx6L{LbG$BE)YWX(o60#^fWvq}6#W(73%KL?1KGNl<@1K7F(|N~f>{z*0o+iGS Y)#+;D$2du4zoJtzTCh%G9*Oq<4{L>J6#xJL diff --git a/node_modules/bare-os/prebuilds/darwin-arm64/bare-os.bare b/node_modules/bare-os/prebuilds/darwin-arm64/bare-os.bare deleted file mode 100644 index 01b1b1bdfd97475cefbdf26f89c44d408bb51f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73280 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 diff --git a/node_modules/bare-os/prebuilds/ios-arm64-simulator/bare-os.bare b/node_modules/bare-os/prebuilds/ios-arm64-simulator/bare-os.bare deleted file mode 100644 index 953fe9051425fd13bfe12481895240263480ef02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73232 zcmeHwd3==B+4h-CAYlZ&-#5IXqv}l29O`x^3wKgcVRH<(QTI1I8DPpi-zUzL@d1mf;GPv~ny}$2|_Zc`j z_kEx1KFf91=gcJY=dVBeroRvtfmd&YGn8u)M7Gr*!R8g<1{7C2di5~Uygu+2z^@?cz@$J2OjZAneMaH_W z;PH9G=yG}d)u9-H#`;aZQF>;m3`kd1RhIb3<*KP(Of0?<{04^U?yy_ede*OYw@e$RAf)sBVxCfRxt51wv!Q2xn^b;#nIq3nTL4%Z@wNcL<;u@1 zSm?;flf4OxLfRl|FR2e49n*MTr@=f9f!aZKOCKuLDwey0-V6O9+q8)!32_#Baxzi~ zm5QIKh^4L>#VqInkl2u7(dv~1Gvzre)gsm-u1&LuHaPZ!T!cWc^Hm`11qhsfsBy2Z z(=B3KoJA@l5K%eDpPk~r{?X~r-Mi_@8}{#h{c~EbG7#kS9e~B|4AfBdQU6iN;~_`K zC}dh^W+6~sRG*|;JC;X_m{b!APO9`Rr%McjG88dYy|v^*W+>B#uZY9_cj-f%Kvg7STc#HD4wJCIcn|CIcn| zCIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn|CIcn| zCIcn|CIcn|CIcn|CIcn|CIcn|CIkQL7|0M}lL(B8v{+qlAG8MpS*@S2oqHhGa=FE&4kq=K7n=|2`*)S?{_)!sQx288GiMo4y zupb_3JAM|@vUZHp>>buYO?T_~gYo!lIR0o1zXA4(kjIOCM@R7K^kz@djK~M7oDSb}?NzLzHSO;6zK z(0y;veA_&>q=de`68O&0eIHT2b-fb$9vdM0hI4hE?)!rB4fIav`(Xm#VY=^Y%6C~x zLf-=keEaCWZ!6zzeG~frK7sGouxVrCpUSu8w1mF968L_i`}Q3}<-2TXLf^X+`2Je=U9NoVh9~sBA%X96y6;QMH!vchuRnqB zHr@9fpY}~Kb7fD;Cqkm z`?d02HZq}aaRT3sy6@<*vX7cG68dH*@D1y}S;|+OpU`)D0$;E0dx!GfG&7;^ISG6h z!*)oWO)^DY@f3y8&Ops$Bl>=u4|~T(c~%-pm_h2C^l1!3?K!`OjIdSJfl&+1brF+&)p6_|f= z%r=QR&4BrUV_GC8nPKdfy5fTzb5LUb4V&IB3ovhSOqaxb&M=w4{DEWA&(S#ih+$f- zb;Ye5GhJfZ8ODu#c5sYSV*bi79mwZ7jtNW58w^vAe4gN#%@XrlhG_-nL5|rjF)uSr z2QZsCX1~Pzf?+l!)fL~#F-Ik)iDBHp+{7{I=W6`aGfXBhYdL1R#B5<0J1_x`aZ1cj z8KxeX6&w?mm>)AtD=^n`%w~!C5yM!3Ddm{$5)G^3a<&!PfAI#;nPYIV|Z`5#~ zO5AXUL0M^sIVO3W#?KiH)6uIg?H!KEkeF14vGlG>+s85a64MP^v_8mZFUQ<0F~=Cj zo?MsqD#z@Qn9mrdWA%o#mpEp>#JtZimNgsFp5d5*=WFeHmtiu2d5mLbNz9uJv!QlF z+5;R@DKWoi7(4R0hhw%$Obf%ffw`Sy_Djq!8D;}8bsW)i07@NfS8D;~<#w?BrOH4V#STLR^am*HpxrSk|_NJZ7G0hU=WEe}oy0lRovsYpk zGEB$G4Qc5dgXbJND`YXu2F#0o9Fsml!_4NGl)AJej#(fvlNqKS`5f=d=JI-pIgepl z!OsznX^@!F41={d?L&?^C^3T>rXKvf$1zl`yd zV!nn=UlZI|qxNvjGKu*=3{#If@8XzRiRomR4anztj@c|R|IIKR;IM&X9+Q~28D;~@ zdYEH=BQbwsn0oZr&p4)CVt&Ig*bCC`=9n&t`4z{Yzi#H3^obgWFEC6i%38-Uvm~aG zVKULKAjecn%r=Ix1LNbEO%ih-!?dE#%Q&V*Vt&Fg$Y%-19F&+_7{-o#3OMG3#H?qS zO!Sw7V}?!A+8$yUH^$*Sj+rho*D*}T*BjENaZHiKxEUrB`_6cdsg#(d41+U3S|-PA zm6$??sqa&lHjHC-NK7unSkPambIg8;xtL+x;HNjobVUgq9P=BA z`3AP=eD7bE_B)O_C^26$j2(6UHOF*G%%==v0p>-HnKeb@=P<)$f}f{3rc7eqVHljp z(jMiQI*HlGFq!Dn`#ENd#O!654ag_LF)b4FD#O^p;cXmqP-0$U7&pqgkzE2WV5O#de%R!^Tlv?cj*UfGw$OW(VZMR^n`s_I}kPT3LjU}s z^^?{l;Y6O1lk2ijjve*b(?IXb(R*(P;rAtCIvXw_ZZvri-tQXRvTHd{}1Z_1$>DA`lRHz`e(u3 zZvEl>uZN$`|5uPX|5rl)HvW^5{zLiS10Pxc{&DqBgI%wGAKVXo-|>?VKfV6HgUstc z9=cwCW1cjA_NOGMe~N8i_ePsbgXHVhVV;uYd9uFYTL_FTD%A)!ILwS4+zWTVZ z8+d#SY2U_U0n&d+d&Xg{?@STLiQh-TKfQO*3&Dqc>aEvw$@ATyCM(7drPaXRo-HDq z5!)Q{{sI+{c;}c|LOQ%24B6M z??UGD^%Cgc)-RpC|KHlP1^Fjx&lkw|KW)zh)}AK~?dkg+?b(iUyR&=Yb17-q7YAYg zO>aDD?S;>!h$iFOGcH4pv33{M9*naqkhhK29;`DRupPF_wWo#JqV@sfoS}XAEWg?dMZH^*Qq=$a=KD z?xX5GL-YCJ^`<`3>)q9h`s@4E`(t3Ed>@hA4gQXL|DF5b^JCOUsZ{<5j9=A{`#EN* z#B{^fF(!ujBgcd#<``kd#xT1%W{1RlMws(rn4KJRLSo)0%mpz_Gsoo2)av{$VJ5{e zPjXD1#9(9F+%YYNd5B|PmYClYW@ZfYUmVjZF)f6d8^heiG0C&E`uvhGm&Py~Ip%DM zd6qEQG0gQGlOr*Y6J~x4vx;NF60?;s3uBlHj%kpXdkIq*!?-x6|7@+!cfcmsh6M8r zYh?WA54H8NEwy!CMD(&f)1G2^hTcQJmdf$S`JYGmWsAta$%b>Lz6RMy$9jpeO7C;E zW!1{^uOmCwy-SnD^ER9h^zk=c$765M@V804Ru;yo5kJm|ZuebX1XQFj>CFQ}+sVU@}Xq`=P#$9gk?MnXszVi*fAN>H|xdz{Net<7Mk3J~d zcoOZ_#!oBxqmO#*Emj&kcs^feZ9KV0X#2_`5BAV(5y72KaWnkrZsUWoG9L@>D3)Wd zrTz8SlqdRNqAUw}XJZe@YV5YkyMXRJN!YiNt4{cPHGaLKcVm|;1?PiQVEUlEzPJ-e zlKa?UoITzW5#mP-z#YKMx}EZ~A@~d|Y@IW0I~xXw=_65QI?C?z!S!#AJ1zB(bT%G} zG5Xc`Igw6`om9)nJ4fJdV7S-bIP8k7#=&R8*2ngW{QStErn{&uDOruQjvm6jzzd{% zWV<@7BeeU5ACnEA9U+W1p1Wp8o`Ow0o^d+utNQ$@GU5i#iPXcUr>|n^hpa=J?x!@I zJM{9%_9NI1W$Wb+Z*r3l-Zzexjs1=49K)R1wA6^P&53M`!whRGG-8}{BG<=ZhBW0G zF=cZiROeV(gPSfkVru6^Dq!2(Tb!{Keb$LNG{!RWlgy*tPOQs2@i(&5>C8v%($7yc zU$9o-9!B21Tm_xZeE6f$=@#^5JNj)6Z0%TEPOiHQV3MCs{w&w()0bngf=Mx?(@_rt@qEbp0$#pSkW&Wnw<4=btv? zy}-$JB`Bj9b-5hlId+~U-t@N7oZ@Xe8#+7B#^p)p**B~>2crJpUiZ;manF4lW6yn` zz`x#lZS1)Z?W1}473}R8M>NJ7HeO55v~gv(M$e|QO?rFq;P`Fl>nNXezSin=x;U<_ z4I5+U>(`KncAhSg<9Hv{WvFdu2kJxPFoU=sWZS9lFOO3?#*I2d$JbMPj_7%(NMouK zemd_S1MgG^;yqEG#Crhg-|`$0*UnQtN8E)x_;bX4q_gLUdr8N0#0b<)e~$PSY?K(0-x?|`h9~Wj7_Z9>+m}VSZnFI4xjIAdoimo*80Is+SvABO+}yl z2|mOh+54al)05F3L$SV&mHl-Q(y_1a#J;;~A^0CG*Vs2Zv94QuHC=qpTna3mVfFQM zIdrTA5z6nyED?D)$@0mHB^A@l@k=IP#``dmrOduCsM-T2a=yuy~suiV^YPGR>&PzSr379 z{Jr}04$KWIduW0@{IFq9N}pks&*ysIQ2qy!V)gkcaK!P8uu)#W(Bi~%&TXY<_nvc3 zZ`*n;uOUsTsy^-b-0VikyubdT<)7a4bHt~bhwUf2oj*Z(_a4i>E|(SKAsOQWzb~_{ zH_ica4C8L%d(B0>fuhaD_thB2dam^$wU_oJtq;)`)b`!5X?=(>spIuN)bgRRp!z`1 z=TXWBd&3Zn1@sm28Pe1Y8}+F+78IU-Z-zccd>_(gqV8X5^KWR=RK-8_OFCrg?{@6> zlOQj~y&UDY9X?pMVIQK|V|)&6x(8|0e-14k+?0(t(ORM3)16$G3oaetGza@8-iz5I z=h;;Fooc;^;~MKa-*XOU$JX}(pfIEvN(f)wtiq*3h2o$7k@N zb7`V;DCdOUmm*FYHjeCi|1+g$WB+|r;(rVM@U2-G`l31OwmI4w_yu7W0<%$KUM3ySZuD7e4Yx(&K7#!y z&TG`BFCkMq4tu0e2W-F8{m>_xUxV~}m;5G4zYlf4?3iDp?uT)s`K6B0>h&kGUtl|q z^ULZV$qqOlzgGJ*)d;?rZ+9%W_|Vop>1xUfR)~L}xwmWw)~exbEzfeJA`w zapoL`IdmrG(s0bF5m=u_VvkMfdB(I3?`p@HwBr{^kwfrbHWd5nbJ$lmCTVqd!S*%u z;lspqJhQyniM?;|L6o(Oi%6+64X5VJdPwe1vi*SIuefS5IT;xKXU zX#D;~`Zj~_R_LkVWEkex`N-qr|}C zhtV#oBX7$vVwF zlPrzxUnE63&l8Pyd}ct-qq&hGlt1h||96e~XW+g^%ip$hOfRvjW9Y-f52^nC8^a#5 zp4oH^I*k?krx+tQV(u&4>kOxr?VK0+1h%E!-9tN`i#_8JKl++>BV@j&9Ri-#wCFP) z#xC}%&FvWD4c04rJfCFZ9CUKs)tGNrVcuPd`F928;Zi*NEy0;FMSJeU*LGo!(z@Ln zxD?FGRLo0xfAD?R?FWztU$>uwPV083MNF@PjI&r%d$!owzEMQ_p}rYOVmhtkW44Pa znSF3p!x*9Yc@MDk+**LKt*yn1JF?SSOaA|cobe6TVdX>lAH{k~Yv&V?jcaEG`65sC z`SRwh@I0-oyU2b4`X^hKU8>{swNkCkH<5j;#NeyvHg{sZ8;rYiaq zxmJmz^T}nf@iRTulb-K2|0}{>rQdYFsMSkfTer%3l>ebo!WK-bbVYL zhs?*t)zDA1*U>ZT$#o0RxAQRua?$VddEWw`$v8I*OtKvpNn_sD}4q$Q` zlZP;QIFm;+`79=%%jEG)p2*~>OrF8yIZVEU$yrR!W%6ZAE?{yolNU4jN+w^+@=Z+sF_Z6L@=ut250ih!OrF8yIa0<~xiwEY)F*Oe{;Q36 zu0@??TZ-`2amTTj2)sx>2ARG~j^r;OpRMF0kf$m6Gssw{G|b14u|{d~hmh}3^81h< zQE~_5mzDe;hNS^amm+|5qUYOUb(+_r=Ca_FqE2K*`%7&sXyEkX=fC7V>H(KLwdC0LZri z@>5EF9P%zDKLYs=N`4sfyGq^)`C}#j9CAPWGB4%xGsq*Ad@tn5O5Ow+_dOcsZpbA{ zz5{Z(l5d54qmpli{HT&QK;EO|8z6t6>1NnU=UkUkZB`<-D=T{BygpBtwH2HGK3zS>{ zd6|+ILSC!n1(5N+orZTnZcuU-WW1NE*)N6sS0&GbjQ3MD`)tT5y`?+@@+c)wgFIEq zlOg9T`9jEe-&yk=54lFk=Rv+p$!9~xXA?9`Cgj~p9u4_jC69o7Ov%F_pN=nmq`nvo zdAyR-AkSCw>5#929RC%KK7U9AD&667f3QlpgHnXz5J&J&@Oa$nMXAMF{nJ*~9RRM}B{8e5Vhr-qFDz8}StE?36 z)ox#cnSYo%Ns z^m?I-us`gsBq5sbA`K<9Z>0^oQP(nMsR@LAs0DpjrF-=XDl;Tjc*8|OzsDO2IepU8`jQQB=4?6d?nOYN~Z1llvP?nskucCiWVwxX-V-E(n}ok7gG#-@? z`8lNH3v;zxOPqyTVa^h#jGcJ}8s1r0N^xoNe2SK47isF!+>$FvU+mN~E-Eg}CCie$ zg6st(aIvE}H@|R+rl6(H!t6q-VxFtS zQM@=WTcSz|vllwA0N)Off`%bSsuX^fmOzeGBYT0pxWs{Gf&Bt|7FtM^Bc<4p3o4?D z2Fh`iIH}dej?0C^u`~}~aO}vnm*!KXF}a|y#90bgJBW9n)y4F4u^kmeA2{+#C}WCq z@{p2Wh>mtF%FWA1Jr|YCFUh+S0=3jxSeRc}fSxIEICBb@zy(4y-va4TP?%Mk3tGXG zV=+Yzj2}dxkRo_cq)}8@q{$^k*<_*tfXFE;13{||V#lH)C)j~R{7C`R!V%-Vh{mi# z8_5nWXDHMMYc*_cF!lFD>j6DF+5-hu3;R|?5ywzcfi@hGNZ?(5f zUm>&oHAq)u&7f;ybA;yzYRLwhv7z4Iy86dxKbe zMU}tITPZ>TFO0NnghaK^qmdzeW!NWt!BwILo8AfpVouxNLim#QN}-8)MXRR^{Fou! zWo6jK;O`ArxkD>Oxx30&xmKJLnsg5KOJ7+~oHKc9?VMBnpbZxdQPm20`~fc&OIwFl z5VpSM*rMfkSmP)xx=-=Kah1NaS>Wg<#v#y)VjLmKhU*_X$%!QTe*1g~6!h<^Cz-z} zkN)BeoHfWrBn`xmj1eMf!U!R{Mhi<|48FJdY+(tXEv%cz3Cn~FL~`AQ_@3yA!qPSo z@ift^dAbk>W{TeH=c4Wwk&N?tGL9z6aMd!UjLnzHfXRT#fXRT#fXRT#fXRT#fXRT# zfXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT# zfXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXRT#fXTrB zUj`cRHx1~uUBxXbeqF@}RQ$e*kEr;Bic`bVKV8KcDxRR?St`y^agmCzR&j-j!z!** z@m(t3qTOD!t!!;&8B%JNyO#T^%e+CciTDZ{J<8p_N+bnSkyCll>m_+0<9b4t*OZrQl?hIcODyx(EU(l` zpA}~>uc`Kgeg107&K8&As}4__O6CPd^Ni_aE{ZezmtW`ggvq`%&K?Q}ebp;mHR1AE zl(;M|F}yb5EsHj|A}*~aT7E#U=0Ag+4q0)RIS6q25${qq4-b!zkw_4+TFEjUSQJYE)R|NfQT;5>N zPop(>z=CmD1@8PFQrk(z7}WJn(nHk&^k2A~07o=KIEe8_Y8T~Nv)biejUn#F;Bp1r zL3n#BeW5A>)FnxPr=rZK6?mI&2-HNoYLjkTqw%>#si>rj8bbMO(`~ihfLjjy24$id zw2xmT~C4%nhh{%Vix5M2+syw$6HLAiP~ z#H<=8EUDR$v?A!Q2~f^E3<&{uC?p3$ODu)@DeAE|-X3#kOO&9kUkBn+P%SFCJpdh!~q0JM1ew6&xq-W)8WRHAIJ zF`=efPil)#S`*Y04j2<+KJ6-rD%E4Abn1!WV067YqHHyRuuoeVXv4L*mb-&qml#Hh zRdkl&$I&t&l4#Ua`O9jsE)h+x)sw}5Ahz5P)&xBPwn5}4;MYHS(~SNvTUxY#ZI*fS z+AMo5ZTPnr|K{zm?65TVx+`fOUbd_EC%0HOSvrwWm(*fClC(K#bMj*;l+V+>gcx8E zqIN22LcF5%+ZIXvfYLWB{U1s%Dv;@4DSaRvKJZHIE%R$r`k6}KR3y_UD1F)GQlG8# ztxBJ-^aDzFD!rjt;yp?alt?|KbemJ^H!FQ$snma_^aDzNOzGPe%k(`;KdAJ#mA-k2 zOh2OZ{H0P)1#86Di7TZ(TIs1*OMQ~kbChmZdY#g*Qu@nEU!(LcrQfRbS=Y$?wkUnG z(w|Uzr%R@{D!pNu)DP0zZ$hmK_Y zm#fa#JUTg6a=~4Y>2K^a>{;ENL%b>q+(7!b3DY7!r@|R5 zpf5J)l?MH0gZ_X)Z!qY)4Eh@ez0;tdH0T4+VKBwoW6&=$=nkpFMZOjp^u-2!nL)3R zdbGTo4EkLL{pSX~-k?8g(03X1*A4nd20h6d-~LeseTqS!Z_uwc=+_za8x8t>2K_OE z{=7loWzb(U=zlio?-}&Z4SI5Ne0zr)^l=7#jzM2!(62J+)dqdNLBG?WKV;CKG3dWC z=x-SGg9iO0gMQqgpMm|3kM~T2KFy%dH|SRw^eThC(V%ZK=nqIeI)5&}G`bLBBElpD z`Xg*p5NNrahCu7(MF=wxW+Kc&n2j(8VJ^Zvgo_a_LAVsbhG0j?LdZtQL2w|@Iy)a> z0YVKaxw$G~&XxpQ$?OFs{ ztCu0T5tbu(5Xum|2;~U01=0HLL!j+uB|;?vZ8g;heuMzRDuf_H2qBD6gRmNb{$yP( z08j70fPDoc`movJB-vY(kj4h!WN;Io>+=UPM)8mnT)1&JNYR2z&^h=%SZBFbO z2RC8b{mrQ_ZYV|G*l3b|x1uR{G^aRvIio4+R)*yG>zJq|(G3M95&=CfVDy9pH!pe; zzjD!S@lTMtHSUr{8P)AdoTgu^knvQt_30NW8c4rEAw|17Awj=0Az8aD(S+D7iBjXP zN4QPia&U{f-%utZEDl44o)Br7s`V8vAONDPhFBia+m4utE;N{CQ1v?rh0t#_l!_6` z@`o0^!%zTqd7(6UYY|nLccOa=!Ufp{1=H2dM4UxkFEE?Bi-@x@6iu(5V+XTDUOSMR zx^L)l;V&0t5bUiD_=Dk)TDoCC=hMv?#)E#Z62;QG6$7sJ219iD9!(Bns=GrBQRVhj z;Px?w@YZ@g=yTkIMxC_Y(yl>Jb|6mk(3I7a)U?)By<2oW+O08zx)qD&AV<2M9-F)T z<~Itads%st+0zuAaC%#X4G>e{r|GQO^VeOV2}kse3+ygV9P@8cHj@YYpXUb575aN{chpRQEK6 zaPy_TMG`Hu+8bWu57OPAx+&*n&?T+HyR^ZNdA%BMQN>t~j&XIy&}*aHaTrvuuixw6 zf=jtyLDkRN>9FDHFX>5nN+y6SNHnu>#x7%omcK$aQlQOzbk#!1>x3nd*AfqZL2a?oNvA7#Ld4OlUf`2 zM`*!_nt*T5FV+sftLD*rryTJ;_t>kI!|(XS()z)qi@rJgFCF)uJnFh{x;16N+OE2*f4lX-i2KF7-{;)> zx38MNtN#Df=|2hmDEUXC=gzt}w!ZNEAAkBkUH;@x zAI^5)@t5aIAKf+e#rGeothn>x#n;^u8q#~>Z`VBhgl$aa^`q|?@M7)9j}Kil@5Y>& bBc@!qZP(Om9xS-K2JO1s?ho{m?==6^z!@Tp^b4RE8Ui#N2NV~nZ`gzv8h+4Xiq7WUo75M8%vt(^?Uv% zm9)#PV$ykjSvo(oUA|O){>D&KYbXkfJ->}x74AiyAL%?lF{FOMSUehTX;5xM@+=VkrXc^~?Q=^32m2kglt$E$NZp-`27r+*0Qcx70_FWY2H0 z&aX$ik)GDx^z7s~*&*{O^j3TQ1?6Q`YP9rfphw3xo$5$|1|W?%zrP`pY9;B;`Q-vD zU%lz=r14g+Qsg_0-^IvW<--!xkQc&Z*{BA1dE~pSlT|me`29@*e{558ZKTQH8jqed zzl}+fTxtAMH&?2x<-6Zs7l;Q^27CQBW~lmD?Iit^`?EHdnhitS+oAJ&Ays5re!BI^ zRN}1|!S63EDO>I`oQbKG{cO zPR~3aGL2{JH4B35OAmy01pT7*XE6e$QC=Avy;wF~VoqBuI;SaIOQC90EFNl}oj<#7 z6EuMEnu=VASMv8XMFMr9sJ}H3Z=91NcFF8{pN^xv=yeW)tS|U1hD_X%PW+meVZbn8 z7%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^fMLKeU>GnA7zPXj zh5^HXVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^!2df2 z@`UIR<0d3}-Tv3`OV6CaZLXK!TjlOLTAtZ;V)L-B69ulsyKYzaQMc$`Ls&5?0bI}Y z_F0J!PZ8Uv!#2HmLgLT^BGKp0>CO=Ccija0p-G!Jb)(Kk9P&-4kS4_}Tsb8tqTzQ#l8b_9e^rS?zn@97o?G z2j2~r@9!<&`HsF9JNPzQz8_n@7diUQbnv~}@;zgsYVUoE9eq!8@V(OV&DXwpOC5bj zIrv^``BrM*ahEyzemGY3E9ZHZ-;7B# zHueScvK@Wza`4@2`L5Ky{#d?>tA}^BjDy zv3&2>z8&W~`c8K6U2gflseRioaP%GR;JeiF9e$eP3hTPl8vD`bhR*#9E#Gsr?~w}~ zecy5LJ;U<7MEiO!cJ%$dgYPMp?~Ru4C62zoa`45UYEX0kDXYEC>twHk?|;K4*Nr!& z?~!1ha4h$62j7F1@8rqE^O2y(?dW^IgYPSrZ_(t$MEJgzKVpdQA@{^?+6(V;@ZW3s z*G@jE->nXQPgs6murt>m7W*Y56{@eJh;Tja3f5w_Cmk zweNj-j^!3R_-?X%&!3|DXs+{_VTpt94X_>5XOrooz0#*K@(fflC1LHEYhdr+rp`)p z2{T@wlkQAms9gtx3PX9#A>3`=E}7S(3RlK3USQ7Qm=_d=>R{y)0OoX#Ijk^C8D=Xm zIUJKYRn~g}!*l{Onq%@5=6r_P155_Tcob&34Rd@9Yu6fu$z>R?tG)6F$81rUQy9ht z%%3@Chr$eJnCZa$o?~_?%n8^me)hQAEB}*YUR9W*3==>;FLKOLg?Wo%`jO9Gj>$P) za(IwoI+4#)9J5eie#0<(fO(u_sugA*!}J5QlVjov^M4p-YeswJcQ|Id!aU0`0bstt zF}oDz35J;t%vU((RfTz!VZ6ZH$}vY3<^hK31ZFeGlwxiOc}@YC`>cM1c32z%mIa|W0`!_*!uO_GLF(u(d$pEN~hf-V|N5=jKj)aZ!W@ImYP)O0*6ckT z)1xqdWti!}JjpQ!6y{G1vvuRv?8i7}%ye1j-!Y6A`8>=q9))?8VFJM1!!dD%`31vl z1!g

`<8J7^V}LFKbK&&J+31E6i?&*#pci9CJirdKji3m`xlr^-S5WM;OM1wzqOj zvBKQTFrC0OaLg8k`8vZ)2j+T?=~0+F8O94t4af8;%r=JEim_43F*!42oo{3q7shh| z$1GNubqs^GH~SKfsZf|khH;H<&z{FIjSAyunEn%6vuAP)o^$A|u##c6VqQ$+m|Y69 zf@4OsXHVpq0fi}Km`>#LIgXinmMrU1hS>vtGC8JLVdgUo*52$7N2&QP$IljpIgepF z!O!0~W{1M$F$~t#>^C@Om%>b97*|$%b|1&Qs4!z0CV(~S*Bm3xmhBqGFrBFLOB|D{ zFdxBY&G)Uy=RY`Rp~Ae&F#X{0X^tsWm^T?_E6VyI$J8lIKf`pQzq&c5U11I|4EBQT zPLA23Fu&p$^w$oK*`+W)WtcrE>t8wMfWkb(Fw@blFLBJ6b0mkm7{&|CO&l{%$E;D9`#A>rtmT+33iB<7@gkpEj=5W5Iv8d;`s-?rc~W6+W0(NOVFky$sxV(* znEns8W-sHIBMQ^TFw?Q`T+T6L&XxQ$F$~TC*%xulQiTaJOy|h<>{%SMT4AnX7#I3$ z2FJt|<|>8>fS<`6vqNEu8D=`>&Z!*pq{3XmFr64bSsc@+FpC&wE80FdlFj$bnX>H{ zGE87pd-i)AbC$xK#V{`P*E<|jsxVU+rXL(0=9oH#$!3_qnD*?~IcAH(jAR%u>b#$0 zb|{Qs7#A=<j-!Za{U0B3-?9Mh*T*K-WU z;kg|1k;2q4Oh58DgJYInAUP~$m_6@p&7Qz9*C|W^!}NpaF&wi+VJ?BKU!VC$QTk}l zak;nOt@Z&L&$Qm{#1UD1>9|(E{W?^xS0&&#WTo%bIehNnZ__!6DkKdrgWCf ze^IJosJV%6e;0hNwoKi4&Xi zQH~e&*t?THm!r?#j==Bli0N#&mf9rc@%X%JLibBZ!=HoQ@04fziNWfPNdK&L|2yhS z^}krxzcV8%t^Qy7C+pwK>VK)N{`Y=L{fqyJ`j1G~KQpcVEC0#*cd+`8w$;DoQ|h1l zPt^a{@S*Y3nK34<{^!8n=l;jX&l>nyoDW&zmdb(A;&@+BBxsHCpu9C`+d-@`bQf_5i(sq1IWPx#0+ z!pXPB=KJhPeC_k{f5Yoxl;Ondw{+P~>%*t zJIT1&$Jf!Bv^R_p$BF+3&_DE9!!U$($hXt|`D5ygHon`9@kMDj!QNLO5_co^xQ;EN zb@P76R{c-6)xRBSnv=A;yIcZ)?Yw>e$;R7R@cZAi%RV1|gZ!NO?E=`@d`PR~r}bMM ze64o>0WzQO`OrV9-`*bnf46-*P@Yr!-bFe8Z2M-h_B~>2->6S%-!7CpSTGFVbIHa& zJ0AOaPS*+dFnrHN?&axYFi(xaK0nqjjKiyuw};j)tW*849dfI+tC!l6T9?!MiuUyr zo2yY)754PXE|e|T4H};xz|ZQZHd{LmAnj!RMEm+J)DFk*>!i11V3IgqOmhiqFwL1m zL6NZL(!I!|A9uh97pQhTMmj!|vevxslJ54NNA7SqUxBD#NK5^w!Cw-{SrRe|VU2n{|vU#w;t@e#isP|p)v+8}0%;U4wJD1l%*SkRa zpS<3qxsR^*BI)yw*PHsts`s&B)L);i-fse%x7w;!aTw;d2?iau<>p0Uy#Dw%Q4p}%+CmOaSHQwj=5c7dI@uB3UepNJg6`~Cd?Hn z%r=gBUSYmZn1U4MMvghGFb@%CSqig`V{+!ocHK>wECA*-T1FU_GJYYCd4q$_xeV-zDJ+QUr*%()%-7^{0c&9qZl|nc{H|&JWi3TWI02H%R{`l$opVQ!uhTl~a7M1R`5w#s?7quvzHj^kzL(m3 z|LY&{rRUpwR2xsA-Ln7okU#op$ll_nv4iLR&F-!fdxhLr4hFG@7KjAyh$?&FM|UNE zoT2h@;m)HLdoAs+&r+V~gW0MqvmMtnFVP8` zmA;OpA9PRZ{x+rI++meRwwqu(SYVYuxjR5U_#8S}Hug8Fa|&}>_i8()Z(d?s8YZ{9 z+>SXqFL7fUW@2}d9g{gfL3K`*HKF@5J0^F2q7k<3!^Nq0qt6B~ho-rvzBT>mU^Uj| z-T1$da_G!Q?Xu2KG+(e*;9f`FO5P8GAdD*t1zBZ=UL*-Y8%Zd-nO%#f6{sOB{$B2sQ)L|{fuL2&xPAk z&xLQnzteqv>bVf@qj~r~?0pzVG{$yryPodd($1!Pl4n!ZCaXPou>8#DYgwmL#BsSc zY)hT5e~LWhdAdrCl9#NXK);6x7Xnj`(-jtU52U z)%jaU)AjA)_X?l%9C0~(1`Fu-3mF)jSg$wZHw;*7>A9{3zaMxae-zgG3EgsR2eGE2 zPksp>;*abjQHO<@=#NQQUuUTPx(Mmm*LP#zUAG+1aTC-UyMF-dx+~mvjL(@XfTc66 zwSLw@$6An}{GP}ciSJ~%-dg_gU^VRtKR}w=V+&E&0?Z@q3k7OlpgZ0;(k*WO3YpKN zO6b&|CpHiD{jB|Xvhg|@c~id~#`sk0Z2NvU$~p)30qk=VhKa=A=`Ig^Er5-<<9OOP z4k3;5!QFWe-JSP9&ca-z{YW4_8#=X3aZJD2n9$u0+qB<`c>-sr_mDO%OU&B?x!?(t4+E&`W6a9W6c z6QAwuRr72<{7$xBq;ZXPo$on^3R3HP8SX>O*@MAjKd-VN_n>&Ay@51yNM zQ@M4z+%+E!UevGCe?{p9*nb~T`2T=@=(cy-zCg)V74jD)1>3sjlR1r zaf=o14cL$3yhd&MJ7j9dp`h~VhwaCfANoZ46)V5j$#0JG`?KX&kn-!Y{4j2$-_D7$ zUcV&!1)k$LzwA0RL*eP{b`R{Cv{q`{_bq?Sed*t%%6$fQ;$;GO=|g+;Suc%a@%O>% zM&JeuM!ft{WD?GtxtK$zVJ=O^oSK65X)5;E5!M+qxjyZ5Pd?U%Gim=1GZF{kzh)Bl z)yJ@}Zp)B$_rvx9^vStmA)ZusP;e=MW@Ta}?I~kMT^5lr>fona-Z$ESDzlkq;zvuoJ&-V^ZX}`?v>b5D*9e&4HJvd6Nb73#;pW%}AS%LhB%R_FZ6OYSbJ2axudfw>C zzjc116}HYxGhUW!=dkulnGendkCOdevQO-O4)&eUXO6t1@`bNH938k+>>hkqEE%}X zvs=(zZCLh%O{Tqfo=svCcJ?J!6yl-QS+>E)eaW68QEc@t!#9Oef9vqz1|5)l7 zkNC0Hw3{LGHSHkqw5BDW@i2C=S8eaZ7~ko>hMrH-=HPUkgHCL|4)g6=%)4ta|E|V7 zT#aYHRX8(_kk5TLQ+*3)-5w6y2+YeY%u98D@LAXGe?uO8-F^%@t=j`Gv9K93&SKqt z1!8yKHjx;O`sQVbg|v=O+a=~rABnRX#t6;NyMU$V)-sH3xfW~g$WCi5`F{vG?_;dP z+K2K#iuIJ%&W9n}*Um=rMV|D1b;*0qLRr?GWWNCYQ=rPmIbY$dwNkImw~&2?!r;Fc z-#&o#ZUXK?F3J$Q=+1=Z^X;(9a@`6?=aVa8<7axRCq3Uw|EuH2YCax(Le|S#TbHVO z)dNTE{CA2`Z~VW+In=f5>OumN6*E6}6$@NUWfypgQjxu>YlW%157npntlfT5|JDB`cCf~*6Z!r1W zOum=N_cQrnCU-OW`%L};lYhkIr_fa}bj^i4Zd9@@xyP}W2)r${ypSZwEQ~cH?@2KGX0nFRPKL5o~Gsf zkT2EpuOL@x`9;WKE&mMi7q$FT$Pa3HFXZR6+zXlh-~{FW4CKFR`6J=uI0NSzp3SKK^~1C z=~6!5fIL;pUxPeX%N>w$-y<T8==zLCZ~$|3%AT$oFWu9`fT_4noGAtjvE6d?93f?ks)Jhuo&+b0OcU<+C8;y9p9A z9rANpJ_GXWTAl*=JuT-#K4pZ$Pk?;Bma`!*)AA{huZ3J2h=wkV#5@aTFPS}0gd;K0 z+7yV_N21Ll5N%$x5bwc85#Q7r66-_JSUA!mqM@cxAQlqMfnZ~}B_u){L&1tbyiv4< z>qINP1velx)`g=Y-rP!2W28Bx;#j;T&>RwL!%a;hus#rO3e+}*Dgx0!Q&XrZ9BUTA z*0!2hpdlpUjnPn`uE0{Gp;)9X8Vsq#=1_Aax=G3P(NGAwh)3dqCK8hQu8=4ZjI_k! z(E#dNr!8%*@i1!96baM?);Ca@G0_l;S41PhP%Ks*jyHuw%%;oqa3mUzZ&GPmhTYe) zetBq<%mSil48$lx1{AfmSVAlmEorHbh?Y=%LnOMkq$M7T)(23cXoyDIT4h=|RvM0@ zcwb9hIM5+o&Lh3bw`?WF(C1TJQKE3((#jR2SNl|4P+VF_dO^7=yQ;ce7FJzVt>WsE zGKsG)uc5f6av4Rd3o4|#x~S?J(pOen8CO)67m;OENm)TL2_@z7y{t&aRaaMuP&C?t z!RVWxU$RX2yaffmDnx~al_h00RX!z_l~;RLdP_>76_u4&)l^iJqxC-TGB4`m^OpDt zU*ug;QhK#glL`6W!lF{|GRm^V52YBaDy6_%R^Ti370Q$%m3fJuWwOGzqP$Y&S5{u= zt@cV}S$Uav1y!rWU%t{;SyWoSN-Ah+b$LNKRk6fh<*Qs-QlL;(fkb;IG zN2(OwYpNips!>qvt*r8)Szy1+n~xS!_bq!p-Al`>oSJL}RFDi&W@Rd|i#uOKpAf>b%9qn6DR8oq1uBcj8RdNjk zYH4+Od1-kWdZx@*U0A*fE)bIWmMM?2^8A`2&D=G3}{2&5_6v2ZcNl|%)l&dNV z$V3AGQMIZJ1X&xzz7-YKUtMjRIR#S6o%9fYOhGQuE%2pG5D@sesP${BV zaZ-t~QZ0!^jj7^As@Rg!D(W9O23Wyt1VFYCnyx zq>_(rTIDY*uUvs%Oj_+aM$Ss#5L7Xim6Q)@7(b#73zdj%ip8;(l8kv=P0OV+Sz2>o zV`Wv9h&5sd(d%ke_{I>echXcChzHUPRq;S@t+X_UTO!d4Eb>Kxwx&2Xk{h@h+Yo4N z4b_#m#YKIr5_{=AqzO?Vx~U+7#dTx6 zYC||4Y{UW^ZaHaEG!_$$p+IXjZ68vqi6LKjhoV?}MRTMs)Ffi9AsA`bh>4bPP?90S zb=W7u(RHE?n_dF~u_gDnSYrqqoD@qc)-M!zTOMUZ5^^8Y<;!Zq6Myr)NAl0FG`<^fTNqh z{fc~1j3Xr3aQ#CkIj9~XN+D2q{wBQPMKXU;9%IC*IGd1*$QXyWyeT4M))XPKrU_U3 zG$C$3OSqmtOSliu6s|27h|GN#;-O)-aOKTGyg&>S_`@_a7mML9UW&TAL?+JbnK+tc z!c}HU8Jm}3z%XDKFbo(53GHFkl!k3>XFs1BL;^fMLKeU>GnA7zPXjh5^HX zVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^fMLKeU>GnA z7zPXjh5^HXVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^ zfMLKeU>GnA7zPXjh5^HXVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k z3>XFs1BL;^z(3AF$5!QYw~lw}c$bcQb^M}^59s)?j*sa0BOPbmqVmhpah{H6>3Fe@ z3w2zf-at$KdR#=b^N@J_v!ezIv&vRQ5}n0RXxY(I9JDK z>3FV=m+H7!$JIJsqvIwWZ`ARvI_}W%-8$Z><6S!L)$xluKA_{nIzFP~k93^%Mcw~8 z&eQQM9WU0gLJ9HI(~r-!WD^?(3GHFkl!k3>XFs1BL;^fMLKeU>GnA7zPXj zh5^HXVZbn87%&VN1`Gp+0mFb{z%XDKFbo(53GHFkl!k3>XFs1BL;^fMLKe zU>GnA7zPXjh5^HXVZbn87%&VN1`Gp+f&ZTwIQ2}irW^#E>hb&i!N#?*_*#EmAi5#k zBCc8|I>;J}2ZC!U&EL=#h}OYax2dTP=C)dYZMdZ_6crsJs&YtS>jU8?vS%UZ`e-Ob z@;Jy1p?Ihvj9f%C_i~T_hL}GX4F%#Me;^tSY$9{sP_utSINs=Q3bi!E8woOVD5SQn zzFyU2Zdzhpq^-6|mcBU6UfX7sw?-qap=ez4-oaDbnq=?oV74}N zb$z%cB>V0@masn1)D}V=G;KSFB-yy=83IVP`AMA?j``Ed>(%xc$OtusnnNv;^B0(T zXp8pg)OcewvcVsUMk8{l9&lkCHiNrJkXY#>6=TrS2S|^#w4(pw^#nK~4e=<(AF0PE z*S7Wkz)6pMvq_dlsIG@w$IZw@s_qH+NA zvh-l21-%xa?)Ik;FEE6xLMmw=OTwrMqEvr899L8C085NV;(;cXXJ0BU+7=5m$fgh2 zjehiDC?KgiqSH>&%41e?>%t_H?QYd0;nqb-+wI!6Hmrtvht``Sfx5u@2I_zv+7xLC zst&RAm_O9AJ{(o6$Ig^ha>9~&Y)K8#NLwrA{G=_RH4uxbfzX>up?*qwypV2BIqY*v zkn7ihv=mf}O72TDHb!D`Yq$-hrL?Lw`bfG_TaTq%qv1$2tQL{>OvQ90=5LH(h0zlr zWyJ*6HR(t*V!9x^Y zV=_Ayjd|MDEC2PmmM-mc9dPyG-wXJ+^hwu~uAX6cW-P_abKR?%y{-<|0210Wdfi7d zwr6b5d~gKvd1japV^R1x59KPvOIpvnR_SkOeU{eW*ZP3gvxY1Go!2S+XxEiht@U=ThqS(Cjl##ZzBr)tTeY5BtMspH{g~Dt(Ry!Cr9Ywd z+v}A6s@9*^`k%GFC8W|_Ac^={Sg-Wcw0^iz>2tJxB&>9g)@R+I^h&KaYQ0J84{H5( zt@mktht~7fD*rC6Z_)aXwZ5-erSI2zM~l+mvHT-ScW0^kXSFK*G_CK``W#DNr_w!I z?}#b=Dy@q)rPpaaXT8!lXnp2JrGHK9FK$-)BczWMVq*qK#Op^|Z`b-uq>mD!L+cs9 zoI+3!0$x)PNFU=N4gG)sRb>X*XVX{NbfT5xso7lLr1Xyw$=4ltM|x6!#HK%M)A!l* z!#4fzHhs7%Jehy4O`l`aeKviSO>eO2H`(;B+w@0m`fi*43!DB2n||D;k41;Ulx)v5 zn?A>;7uoccN=Fvzb-hh*u<7e;`X;3(%m129zsII`+w>pU^q<)DU)c2D+4K)=`gnIb zAG2+GzD-|k)0=JjW}Dt&(|6kRCv5t2HvJbi{ns|V&!+#?rn@uK+c&|c&$Q`FZ2EGW ze!Wd^vgtS5^sm_TyKVYoHvL(f{-RC)gH3ULRf@wF~VYmB?y-wT#B$1;WC8F z5w1Y+Ab1h-5eg6r5qtu{!32@VI_ zAvalRmss**D$Sy%%F{{35Aq!Dz-78so`i+uhwO=J!c6z#CcSuPyT^?CV>K4bc@av*5`>?_<< z07Q2ZsXUU`A}JHyd@#+XT9+3ZVO@P_6(f}84=s7wp#l1qLu=}KBdIWNrwa|jMcGXT z)AbcbnnmA3Fq^)#NV6~$O|PM22eU-oPmr6wm>BZ0fLftJaA;#|BpQ$DwHyX?K3$<< zJXjYnNi3~fDd750G)A}d$>b=edLYIS&4FMet|?Q9(8f>@eU1y$q?7C|d0&FEThp{4 zO<5~RPisrHy2a9y-I_A!>$7AIYNT7~skzIqh?8Ktz*SeCLruvEXXS;ykF-T`r)%?2 z_gZ!<%^;+tnkFZDnk7{^eKnS<#L&y%WSZ{lq@JA7Rz1-u*3okQrCkRnJsk#?m51`u z7lJkiyOppsl-7ne*~*o3&dQQXOEa{!3^m1YK_)*-NtW3Xif@QS>5@=isq-@EHdo{Q Ya`0nbug7OuDb|x?T%R$l+E{k+Kblv0YXATM diff --git a/node_modules/bare-os/prebuilds/ios-x64-simulator/bare-os.bare b/node_modules/bare-os/prebuilds/ios-x64-simulator/bare-os.bare deleted file mode 100644 index b547409196d156fa7f6dbb181e35daa730cd0fff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39752 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 RS!-g9%NoO~+>#r{{{WAG0V)6h diff --git a/node_modules/bare-os/prebuilds/linux-arm64/bare-os.bare b/node_modules/bare-os/prebuilds/linux-arm64/bare-os.bare deleted file mode 100644 index cfd9d1f3a10d22201bb5fc7fff59b5835b35bbd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36728 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�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

r(- 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 -1 && !resolvedAbsolute; i--) { - const path = i >= 0 ? args[i] : os.cwd() - - if (path.length === 0) { - continue - } - - resolvedPath = `${path}/${resolvedPath}` - resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH - } - - resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator) - - if (resolvedAbsolute) { - return `/${resolvedPath}` - } - - return resolvedPath.length > 0 ? resolvedPath : '.' -} - -exports.normalize = function normalize (path) { - if (path.length === 0) return '.' - - const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH - const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH - - path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator) - - if (path.length === 0) { - if (isAbsolute) return '/' - return trailingSeparator ? './' : '.' - } - - if (trailingSeparator) path += '/' - - return isAbsolute ? `/${path}` : path -} - -exports.isAbsolute = function isAbsolute (path) { - return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH -} - -exports.join = function join (...args) { - if (args.length === 0) return '.' - let joined - for (let i = 0; i < args.length; ++i) { - const arg = args[i] - if (arg.length > 0) { - if (joined === undefined) joined = arg - else joined += `/${arg}` - } - } - if (joined === undefined) return '.' - return exports.normalize(joined) -} - -exports.relative = function relative (from, to) { - if (from === to) return '' - - from = exports.resolve(from) - to = exports.resolve(to) - - if (from === to) return '' - - const fromStart = 1 - const fromEnd = from.length - const fromLen = fromEnd - fromStart - const toStart = 1 - const toLen = to.length - toStart - - const length = (fromLen < toLen ? fromLen : toLen) - let lastCommonSep = -1 - let i = 0 - for (; i < length; i++) { - const fromCode = from.charCodeAt(fromStart + i) - if (fromCode !== to.charCodeAt(toStart + i)) { - break - } else if (fromCode === CHAR_FORWARD_SLASH) { - lastCommonSep = i - } - } - if (i === length) { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { - return to.substring(toStart + i + 1) - } - if (i === 0) { - return to.substring(toStart + i) - } - } else if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { - lastCommonSep = i - } else if (i === 0) { - lastCommonSep = 0 - } - } - } - - let out = '' - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { - out += out.length === 0 ? '..' : '/..' - } - } - - return `${out}${to.substring(toStart + lastCommonSep)}` -} - -exports.toNamespacedPath = function toNamespacedPath (path) { - return path -} - -exports.dirname = function dirname (path) { - if (path.length === 0) return '.' - const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH - let end = -1 - let matchedSlash = true - for (let i = path.length - 1; i >= 1; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - end = i - break - } - } else { - matchedSlash = false - } - } - - if (end === -1) return hasRoot ? '/' : '.' - if (hasRoot && end === 1) return '//' - return path.substring(0, end) -} - -exports.basename = function basename (path, suffix) { - let start = 0 - let end = -1 - let matchedSlash = true - - if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { - if (suffix === path) { return '' } - let extIdx = suffix.length - 1 - let firstNonSlashEnd = -1 - for (let i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i) - if (code === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - start = i + 1 - break - } - } else { - if (firstNonSlashEnd === -1) { - matchedSlash = false - firstNonSlashEnd = i + 1 - } - if (extIdx >= 0) { - if (code === suffix.charCodeAt(extIdx)) { - if (--extIdx === -1) { - end = i - } - } else { - extIdx = -1 - end = firstNonSlashEnd - } - } - } - } - - if (start === end) end = firstNonSlashEnd - else if (end === -1) end = path.length - return path.substring(start, end) - } - - for (let i = path.length - 1; i >= 0; --i) { - if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - start = i + 1 - break - } - } else if (end === -1) { - matchedSlash = false - end = i + 1 - } - } - - if (end === -1) return '' - return path.substring(start, end) -} - -exports.extname = function extname (path) { - let startDot = -1 - let startPart = 0 - let end = -1 - let matchedSlash = true - let preDotState = 0 - for (let i = path.length - 1; i >= 0; --i) { - const code = path.charCodeAt(i) - if (code === CHAR_FORWARD_SLASH) { - if (!matchedSlash) { - startPart = i + 1 - break - } - continue - } - if (end === -1) { - matchedSlash = false - end = i + 1 - } - if (code === CHAR_DOT) { - if (startDot === -1) startDot = i - else if (preDotState !== 1) preDotState = 1 - } else if (startDot !== -1) { - preDotState = -1 - } - } - - if (startDot === -1 || end === -1 || preDotState === 0 || (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { - return '' - } - return path.substring(startDot, end) -} diff --git a/node_modules/bare-path/lib/shared.js b/node_modules/bare-path/lib/shared.js deleted file mode 100644 index 0640aea..0000000 --- a/node_modules/bare-path/lib/shared.js +++ /dev/null @@ -1,67 +0,0 @@ -const { - CHAR_DOT, - CHAR_FORWARD_SLASH -} = require('./constants') - -exports.normalizeString = function normalizeString (path, allowAboveRoot, separator, isPathSeparator) { - let res = '' - let lastSegmentLength = 0 - let lastSlash = -1 - let dots = 0 - let code = 0 - for (let i = 0; i <= path.length; ++i) { - if (i < path.length) { - code = path.charCodeAt(i) - } else if (isPathSeparator(code)) { - break - } else { - code = CHAR_FORWARD_SLASH - } - - if (isPathSeparator(code)) { - if (lastSlash === i - 1 || dots === 1) ; - else if (dots === 2) { - if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== CHAR_DOT || res.charCodeAt(res.length - 2) !== CHAR_DOT) { - if (res.length > 2) { - const lastSlashIndex = res.lastIndexOf(separator) - if (lastSlashIndex === -1) { - res = '' - lastSegmentLength = 0 - } else { - res = res.substring(0, lastSlashIndex) - lastSegmentLength = - res.length - 1 - res.lastIndexOf(separator) - } - lastSlash = i - dots = 0 - continue - } else if (res.length !== 0) { - res = '' - lastSegmentLength = 0 - lastSlash = i - dots = 0 - continue - } - } - if (allowAboveRoot) { - res += res.length > 0 ? `${separator}..` : '..' - lastSegmentLength = 2 - } - } else { - if (res.length > 0) { - res += `${separator}${path.substring(lastSlash + 1, i)}` - } else { - res = path.substring(lastSlash + 1, i) - } - lastSegmentLength = i - lastSlash - 1 - } - lastSlash = i - dots = 0 - } else if (code === CHAR_DOT && dots !== -1) { - ++dots - } else { - dots = -1 - } - } - return res -} diff --git a/node_modules/bare-path/lib/win32.js b/node_modules/bare-path/lib/win32.js deleted file mode 100644 index 62617f9..0000000 --- a/node_modules/bare-path/lib/win32.js +++ /dev/null @@ -1,513 +0,0 @@ -const os = require('bare-os') - -const { normalizeString } = require('./shared') -const { - CHAR_UPPERCASE_A, - CHAR_LOWERCASE_A, - CHAR_UPPERCASE_Z, - CHAR_LOWERCASE_Z, - CHAR_DOT, - CHAR_FORWARD_SLASH, - CHAR_BACKWARD_SLASH, - CHAR_COLON, - CHAR_QUESTION_MARK -} = require('./constants') - -function isWindowsPathSeparator (code) { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH -} - -function isWindowsDeviceRoot (code) { - return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) || - (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z) -} - -exports.posix = require('./posix') -exports.win32 = exports - -exports.sep = '\\' -exports.delimiter = ';' - -exports.resolve = function resolve (...args) { - let resolvedDevice = '' - let resolvedTail = '' - let resolvedAbsolute = false - - for (let i = args.length - 1; i >= -1; i--) { - let path - if (i >= 0) { - path = args[i] - - if (path.length === 0) continue - } else if (resolvedDevice.length === 0) { - path = os.cwd() - } else { - path = os.getEnv(`=${resolvedDevice}`) || os.cwd() - - if (path === undefined || (path.substring(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() && path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) { - path = `${resolvedDevice}\\` - } - } - - const len = path.length - let rootEnd = 0 - let device = '' - let isAbsolute = false - const code = path.charCodeAt(0) - - if (len === 1) { - if (isWindowsPathSeparator(code)) { - rootEnd = 1 - isAbsolute = true - } - } else if (isWindowsPathSeparator(code)) { - isAbsolute = true - - if (isWindowsPathSeparator(path.charCodeAt(1))) { - let j = 2 - let last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - const firstPart = path.substring(last, j) - last = j - while (j < len && isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j === len || j !== last) { - device = `\\\\${firstPart}\\${path.substring(last, j)}` - rootEnd = j - } - } - } - } else { - rootEnd = 1 - } - } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { - device = path.substring(0, 2) - rootEnd = 2 - if (len > 2 && isWindowsPathSeparator(path.charCodeAt(2))) { - isAbsolute = true - rootEnd = 3 - } - } - - if (device.length > 0) { - if (resolvedDevice.length > 0) { - if (device.toLowerCase() !== resolvedDevice.toLowerCase()) { continue } - } else { - resolvedDevice = device - } - } - - if (resolvedAbsolute) { - if (resolvedDevice.length > 0) { break } - } else { - resolvedTail = `${path.substring(rootEnd)}\\${resolvedTail}` - resolvedAbsolute = isAbsolute - if (isAbsolute && resolvedDevice.length > 0) { - break - } - } - } - - resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\', isWindowsPathSeparator) - - return resolvedAbsolute ? `${resolvedDevice}\\${resolvedTail}` : `${resolvedDevice}${resolvedTail}` || '.' -} - -exports.normalize = function normalize (path) { - const len = path.length - if (len === 0) return '.' - let rootEnd = 0 - let device - let isAbsolute = false - const code = path.charCodeAt(0) - - if (len === 1) { - return code === CHAR_FORWARD_SLASH ? '\\' : path - } - - if (isWindowsPathSeparator(code)) { - isAbsolute = true - - if (isWindowsPathSeparator(path.charCodeAt(1))) { - let j = 2 - let last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - const firstPart = path.substring(last, j) - last = j - while (j < len && isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j === len) { - return `\\\\${firstPart}\\${path.substring(last)}\\` - } - if (j !== last) { - device = `\\\\${firstPart}\\${path.substring(last, j)}` - rootEnd = j - } - } - } - } else { - rootEnd = 1 - } - } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { - device = path.substring(0, 2) - rootEnd = 2 - if (len > 2 && isWindowsPathSeparator(path.charCodeAt(2))) { - isAbsolute = true - rootEnd = 3 - } - } - - let tail = rootEnd < len ? normalizeString(path.substring(rootEnd), !isAbsolute, '\\', isWindowsPathSeparator) : '' - if (tail.length === 0 && !isAbsolute) { - tail = '.' - } - if (tail.length > 0 && isWindowsPathSeparator(path.charCodeAt(len - 1))) { - tail += '\\' - } - if (device === undefined) { - return isAbsolute ? `\\${tail}` : tail - } - return isAbsolute ? `${device}\\${tail}` : `${device}${tail}` -} - -exports.isAbsolute = function isAbsolute (path) { - const len = path.length - if (len === 0) return false - - const code = path.charCodeAt(0) - - return isWindowsPathSeparator(code) || (len > 2 && isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON && isWindowsPathSeparator(path.charCodeAt(2))) -} - -exports.join = function join (...args) { - if (args.length === 0) return '.' - - let joined - let firstPart - for (let i = 0; i < args.length; ++i) { - const arg = args[i] - if (arg.length > 0) { - if (joined === undefined) joined = firstPart = arg - else joined += `\\${arg}` - } - } - - if (joined === undefined) return '.' - - let needsReplace = true - let slashCount = 0 - if (isWindowsPathSeparator(firstPart.charCodeAt(0))) { - ++slashCount - const firstLen = firstPart.length - if (firstLen > 1 && isWindowsPathSeparator(firstPart.charCodeAt(1))) { - ++slashCount - if (firstLen > 2) { - if (isWindowsPathSeparator(firstPart.charCodeAt(2))) { - ++slashCount - } else { - needsReplace = false - } - } - } - } - if (needsReplace) { - while (slashCount < joined.length && isWindowsPathSeparator(joined.charCodeAt(slashCount))) { - slashCount++ - } - - if (slashCount >= 2) { - joined = `\\${joined.substring(slashCount)}` - } - } - - return exports.normalize(joined) -} - -exports.relative = function relative (from, to) { - if (from === to) return '' - - const fromOrig = exports.resolve(from) - const toOrig = exports.resolve(to) - - if (fromOrig === toOrig) return '' - - from = fromOrig.toLowerCase() - to = toOrig.toLowerCase() - - if (from === to) return '' - - let fromStart = 0 - while (fromStart < from.length && from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) { - fromStart++ - } - let fromEnd = from.length - while (fromEnd - 1 > fromStart && from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) { - fromEnd-- - } - const fromLen = fromEnd - fromStart - - let toStart = 0 - while (toStart < to.length && to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { - toStart++ - } - let toEnd = to.length - while (toEnd - 1 > toStart && to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) { - toEnd-- - } - const toLen = toEnd - toStart - - const length = fromLen < toLen ? fromLen : toLen - let lastCommonSep = -1 - let i = 0 - for (; i < length; i++) { - const fromCode = from.charCodeAt(fromStart + i) - if (fromCode !== to.charCodeAt(toStart + i)) { - break - } else if (fromCode === CHAR_BACKWARD_SLASH) { - lastCommonSep = i - } - } - - if (i !== length) { - if (lastCommonSep === -1) return toOrig - } else { - if (toLen > length) { - if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) { - return toOrig.substring(toStart + i + 1) - } - if (i === 2) { - return toOrig.substring(toStart + i) - } - } - if (fromLen > length) { - if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) { - lastCommonSep = i - } else if (i === 2) { - lastCommonSep = 3 - } - } - if (lastCommonSep === -1) lastCommonSep = 0 - } - - let out = '' - for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { - if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) { - out += out.length === 0 ? '..' : '\\..' - } - } - - toStart += lastCommonSep - - if (out.length > 0) { - return `${out}${toOrig.substring(toStart, toEnd)}` - } - if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) { - ++toStart - } - return toOrig.substring(toStart, toEnd) -} - -exports.toNamespacedPath = function toNamespacedPath (path) { - if (path.length === 0) return path - - const resolvedPath = exports.resolve(path) - - if (resolvedPath.length <= 2) return path - - if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) { - if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) { - const code = resolvedPath.charCodeAt(2) - if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) { - return `\\\\?\\UNC\\${resolvedPath.substring(2)}` - } - } - } else if ( - isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) && - resolvedPath.charCodeAt(1) === CHAR_COLON && - resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH - ) { - return `\\\\?\\${resolvedPath}` - } - - return path -} - -exports.dirname = function dirname (path) { - const len = path.length - if (len === 0) return '.' - let rootEnd = -1 - let offset = 0 - const code = path.charCodeAt(0) - - if (len === 1) { - return isWindowsPathSeparator(code) ? path : '.' - } - - if (isWindowsPathSeparator(code)) { - rootEnd = offset = 1 - - if (isWindowsPathSeparator(path.charCodeAt(1))) { - let j = 2 - let last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - last = j - while (j < len && isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j < len && j !== last) { - last = j - while (j < len && !isWindowsPathSeparator(path.charCodeAt(j))) { - j++ - } - if (j === len) { - return path - } - if (j !== last) { - rootEnd = offset = j + 1 - } - } - } - } - } else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) { - rootEnd = len > 2 && isWindowsPathSeparator(path.charCodeAt(2)) ? 3 : 2 - offset = rootEnd - } - - let end = -1 - let matchedSlash = true - for (let i = len - 1; i >= offset; --i) { - if (isWindowsPathSeparator(path.charCodeAt(i))) { - if (!matchedSlash) { - end = i - break - } - } else { - matchedSlash = false - } - } - - if (end === -1) { - if (rootEnd === -1) return '.' - - end = rootEnd - } - return path.substring(0, end) -} - -exports.basename = function basename (path, suffix) { - let start = 0 - let end = -1 - let matchedSlash = true - - if (path.length >= 2 && isWindowsDeviceRoot(path.charCodeAt(0)) && path.charCodeAt(1) === CHAR_COLON) { - start = 2 - } - - if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { - if (suffix === path) return '' - let extIdx = suffix.length - 1 - let firstNonSlashEnd = -1 - for (let i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i) - if (isWindowsPathSeparator(code)) { - if (!matchedSlash) { - start = i + 1 - break - } - } else { - if (firstNonSlashEnd === -1) { - matchedSlash = false - firstNonSlashEnd = i + 1 - } - if (extIdx >= 0) { - if (code === suffix.charCodeAt(extIdx)) { - if (--extIdx === -1) { - end = i - } - } else { - extIdx = -1 - end = firstNonSlashEnd - } - } - } - } - - if (start === end) end = firstNonSlashEnd - else if (end === -1) end = path.length - return path.substring(start, end) - } - for (let i = path.length - 1; i >= start; --i) { - if (isWindowsPathSeparator(path.charCodeAt(i))) { - if (!matchedSlash) { - start = i + 1 - break - } - } else if (end === -1) { - matchedSlash = false - end = i + 1 - } - } - - if (end === -1) return '' - return path.substring(start, end) -} - -exports.extname = function extname (path) { - let start = 0 - let startDot = -1 - let startPart = 0 - let end = -1 - let matchedSlash = true - let preDotState = 0 - - if (path.length >= 2 && path.charCodeAt(1) === CHAR_COLON && isWindowsDeviceRoot(path.charCodeAt(0))) { - start = startPart = 2 - } - - for (let i = path.length - 1; i >= start; --i) { - const code = path.charCodeAt(i) - if (isWindowsPathSeparator(code)) { - if (!matchedSlash) { - startPart = i + 1 - break - } - continue - } - if (end === -1) { - matchedSlash = false - end = i + 1 - } - if (code === CHAR_DOT) { - if (startDot === -1) startDot = i - else if (preDotState !== 1) preDotState = 1 - } else if (startDot !== -1) { - preDotState = -1 - } - } - - if (startDot === -1 || end === -1 || preDotState === 0 || (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)) { - return '' - } - return path.substring(startDot, end) -} diff --git a/node_modules/bare-path/package.json b/node_modules/bare-path/package.json deleted file mode 100644 index 7a0a023..0000000 --- a/node_modules/bare-path/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "bare-path", - "version": "3.0.0", - "description": "Path manipulation library for JavaScript", - "exports": { - ".": "./index.js", - "./package": "./package.json", - "./posix": "./lib/posix.js", - "./win32": "./lib/win32.js" - }, - "files": [ - "index.js", - "lib", - "NOTICE" - ], - "scripts": { - "test": "standard && bare test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-path.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-path/issues" - }, - "homepage": "https://github.com/holepunchto/bare-path#readme", - "dependencies": { - "bare-os": "^3.0.1" - }, - "devDependencies": { - "brittle": "^3.3.2", - "standard": "^17.0.0" - } -} diff --git a/node_modules/bare-stream/LICENSE b/node_modules/bare-stream/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/bare-stream/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/bare-stream/README.md b/node_modules/bare-stream/README.md deleted file mode 100644 index 1f85723..0000000 --- a/node_modules/bare-stream/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# bare-stream - -Streaming data for JavaScript. - -``` -npm i bare-stream -``` - -## API - -See . - -## License - -Apache-2.0 diff --git a/node_modules/bare-stream/global.d.ts b/node_modules/bare-stream/global.d.ts deleted file mode 100644 index acc12a4..0000000 --- a/node_modules/bare-stream/global.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import * as web from './web' - -declare global { - type ReadableStream = web.ReadableStream - type ReadableStreamDefaultController = web.ReadableStreamDefaultController - type ReadableStreamDefaultReader = web.ReadableStreamDefaultReader - - type CountQueuingStrategy = web.CountQueuingStrategy - type ByteLengthQueuingStrategy = web.ByteLengthQueuingStrategy - - type WritableStream = web.WritableStream - type WritableStreamDefaultController = web.WritableStreamDefaultController - type WritableStreamDefaultWriter = web.WritableStreamDefaultWriter - - type TransformStream = web.TransformStream - type TransformStreamDefaultController = web.TransformStreamDefaultController - - const ReadableStream: typeof web.ReadableStream - const ReadableStreamDefaultController: typeof web.ReadableStreamDefaultController - const ReadableStreamDefaultReader: typeof web.ReadableStreamDefaultReader - - const CountQueuingStrategy: typeof web.CountQueuingStrategy - const ByteLengthQueuingStrategy: typeof web.ByteLengthQueuingStrategy - - const WritableStream: typeof web.WritableStream - const WritableStreamDefaultController: typeof web.WritableStreamDefaultController - const WritableStreamDefaultWriter: typeof web.WritableStreamDefaultWriter - - const TransformStream: typeof web.TransformStream - const TransformStreamDefaultController: typeof web.TransformStreamDefaultController -} diff --git a/node_modules/bare-stream/global.js b/node_modules/bare-stream/global.js deleted file mode 100644 index 1e04e7e..0000000 --- a/node_modules/bare-stream/global.js +++ /dev/null @@ -1,15 +0,0 @@ -const stream = require('./web') - -global.ReadableStream = stream.ReadableStream -global.ReadableStreamDefaultController = stream.ReadableStreamDefaultController -global.ReadableStreamDefaultReader = stream.ReadableStreamDefaultReader - -global.CountQueuingStrategy = stream.CountQueuingStrategy -global.ByteLengthQueuingStrategy = stream.ByteLengthQueuingStrategy - -global.WritableStream = stream.WritableStream -global.WritableStreamDefaultController = stream.WritableStreamDefaultController -global.WritableStreamDefaultWriter = stream.WritableStreamDefaultWriter - -global.TransformStream = stream.TransformStream -global.TransformStreamDefaultController = stream.TransformStreamDefaultController diff --git a/node_modules/bare-stream/index.d.ts b/node_modules/bare-stream/index.d.ts deleted file mode 100644 index 02db8e3..0000000 --- a/node_modules/bare-stream/index.d.ts +++ /dev/null @@ -1,235 +0,0 @@ -import EventEmitter, { EventMap } from 'bare-events' -import Buffer, { BufferEncoding } from 'bare-buffer' -import { AbortSignal } from 'bare-abort-controller' - -import { ReadableStream, WritableStream, CustomQueuingStrategy } from './web' - -type StreamEncoding = BufferEncoding | 'buffer' - -interface StreamCallback { - (err: Error | null): void -} - -interface StreamEvents extends EventMap { - close: [] - error: [err: Error] -} - -interface StreamOptions { - eagerOpen?: boolean - signal?: AbortSignal - open?(this: S, cb: StreamCallback): void - predestroy?(this: S): void - destroy?(this: S, err: Error | null, cb: StreamCallback): void -} - -interface Stream extends EventEmitter { - _open(cb: StreamCallback): void - _predestroy(): void - _destroy(err: Error | null, cb: StreamCallback): void - - readonly readable: boolean - readonly writable: boolean - readonly destroyed: boolean - readonly destroying: boolean - - destroy(err?: Error | null): void -} - -declare class Stream {} - -interface ReadableEvents extends StreamEvents { - data: [data: unknown] - end: [] - readable: [] - piping: [dest: Writable] -} - -interface ReadableOptions extends StreamOptions { - encoding?: BufferEncoding - highWaterMark?: number - read?(this: S, size: number): void -} - -interface ReadableFromWebOptions { - encoding?: BufferEncoding - signal?: AbortSignal -} - -interface ReadableToWebOptions { - strategy?: CustomQueuingStrategy -} - -interface Readable - extends Stream, AsyncIterable { - _read(size: number): void - - readonly closed: boolean - readonly errored: Error | null - - push(data: unknown | null, encoding?: BufferEncoding): boolean - unshift(data: unknown | null, encoding?: BufferEncoding): boolean - read(): unknown | null - - resume(): this - pause(): this - - pipe(dest: S, cb?: StreamCallback): S - - setEncoding(encoding: BufferEncoding): void -} - -declare class Readable extends Stream { - constructor(opts?: ReadableOptions) - - static from(data: unknown | unknown[] | AsyncIterable, opts?: ReadableOptions): Readable - - static isBackpressured(rs: Readable): boolean - - static isPaused(rs: Readable): boolean - - static fromWeb(readableStream: ReadableStream, opts?: ReadableFromWebOptions): Readable - - static toWeb(readable: Readable, opts?: ReadableToWebOptions): ReadableStream -} - -interface WritableEvents extends StreamEvents { - drain: [] - finish: [] - pipe: [src: Readable] -} - -interface WritableOptions extends StreamOptions { - write?(this: S, data: unknown, encoding: StreamEncoding, cb: StreamCallback): void - writev?(this: S, batch: { chunk: unknown; encoding: StreamEncoding }[], cb: StreamCallback): void - final?(this: S, cb: StreamCallback): void -} - -interface WritableFromWebOptions { - signal?: AbortSignal -} - -interface Writable extends Stream { - _write(data: unknown, encoding: StreamEncoding, cb: StreamCallback): void - _writev(batch: { chunk: unknown; encoding: StreamEncoding }[], cb: StreamCallback): void - _final(cb: StreamCallback): void - - readonly closed: boolean - readonly errored: Error | null - - write(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): boolean - write(data: unknown, cb?: StreamCallback): boolean - - end(cb?: StreamCallback): this - end(data: unknown, encoding?: BufferEncoding, cb?: StreamCallback): this - end(data: unknown, cb?: StreamCallback): this - - cork(): void - uncork(): void -} - -declare class Writable extends Stream { - constructor(opts?: WritableOptions) - - static isBackpressured(ws: Writable): boolean - - static drained(ws: Writable): Promise - - static fromWeb(writableStream: WritableStream, opts?: WritableFromWebOptions): Writable - - static toWeb(writable: Writable): WritableStream -} - -interface DuplexEvents extends ReadableEvents, WritableEvents {} - -interface DuplexOptions extends ReadableOptions, WritableOptions {} - -interface DuplexFromWebOptions extends ReadableFromWebOptions, WritableFromWebOptions {} - -interface Duplex extends Readable, Writable {} - -declare class Duplex extends Stream { - constructor(opts?: DuplexOptions) - - static fromWeb( - { readable: ReadableStream, writable: Writable }, - opts?: DuplexFromWebOptions - ): Readable - - static toWeb(readable: Readable, opts?: ReadableToWebOptions): ReadableStream -} - -interface TransformEvents extends DuplexEvents {} - -interface TransformOptions extends DuplexOptions { - transform?(this: S, data: unknown, encoding: StreamEncoding, cb: StreamCallback): void - flush?(this: S, cb: StreamCallback): void -} - -interface Transform extends Duplex { - _transform(data: unknown, encoding: StreamEncoding, cb: StreamCallback): void - _flush(cb: StreamCallback): void -} - -declare class Transform extends Duplex { - constructor(opts?: TransformOptions) -} - -type Pipeline = [src: Readable, ...transforms: Duplex[], dest: S] - -declare namespace Stream { - export { - Stream, - StreamEvents, - StreamOptions, - Readable, - ReadableEvents, - ReadableOptions, - Writable, - WritableEvents, - WritableOptions, - Duplex, - DuplexEvents, - DuplexOptions, - Transform, - TransformEvents, - TransformOptions, - Transform as PassThrough - } - - export function pipeline(streams: Pipeline, cb?: StreamCallback): S - - export function pipeline(...args: Pipeline): S - - export function pipeline(...args: [...Pipeline, cb: StreamCallback]): S - - export function duplexPair(opts?: DuplexOptions): [Duplex, Duplex] - - export function finished( - stream: Stream, - opts: { cleanup?: boolean }, - cb: StreamCallback - ): () => void - - export function finished(stream: Stream, cb: StreamCallback): () => void - - export function isStream(stream: unknown): stream is Stream - - export function isEnded(stream: Stream): boolean - - export function isFinished(stream: Stream): boolean - - export function isDisturbed(stream: Stream): boolean - - export function isErrored(stream: Stream): boolean - - export function isReadable(stream: Stream): boolean - - export function isWritable(stream: Stream): boolean - - export function getStreamError(stream: Stream, opts?: { all?: boolean }): Error | null - - export function addAbortSignal(signal: AbortSignal, stream: S): S -} - -export = Stream diff --git a/node_modules/bare-stream/index.js b/node_modules/bare-stream/index.js deleted file mode 100644 index 0011d5c..0000000 --- a/node_modules/bare-stream/index.js +++ /dev/null @@ -1,492 +0,0 @@ -const stream = require('streamx') -const { ReadableStream, WritableStream } = require('./web') - -const defaultEncoding = 'utf8' - -module.exports = exports = stream.Stream - -exports.pipeline = stream.pipeline - -exports.isStream = stream.isStream -exports.isEnding = stream.isEnding -exports.isEnded = stream.isEnded -exports.isFinishing = stream.isFinishing -exports.isFinished = stream.isFinished -exports.isDisturbed = stream.isDisturbed - -exports.isErrored = function isErrored(stream) { - return exports.getStreamError(stream) !== null -} - -exports.isReadable = function isReadable(stream) { - return stream.readable && !stream.destroying && !exports.isEnded(stream) -} - -exports.isWritable = function isWritable(stream) { - return stream.writable && !stream.destroying && !exports.isFinishing(stream) -} - -exports.getStreamError = stream.getStreamError - -exports.addAbortSignal = function addAbortSignal(signal, stream) { - function onAbort() { - stream.destroy(signal.reason) - } - - if (signal.aborted) onAbort() - else signal.addEventListener('abort', onAbort) - - return stream -} - -exports.Stream = exports - -exports.Readable = class Readable extends stream.Readable { - constructor(opts = {}) { - super({ - ...opts, - byteLength: null, - byteLengthReadable: null, - map: null, - mapReadable: null - }) - - if (this._construct) this._open = this._construct - - if (this._read !== stream.Readable.prototype._read) { - this._read = read.bind(this, this._read) - } - - if (this._destroy !== stream.Stream.prototype._destroy) { - this._destroy = destroy.bind(this, this._destroy) - } - } - - get closed() { - return !exports.isReadable(this) - } - - get errored() { - return stream.getStreamError(this) - } - - push(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - return super.push(chunk) - } - - unshift(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - super.unshift(chunk) - } - - static fromWeb(readableStream, opts = {}) { - const stream = readableStream._stream - - if (opts.encoding) stream.setEncoding(opts.encoding) - if (opts.signal) exports.addAbortSignal(opts.signal, stream) - - return stream - } - - static toWeb(readable, opts = {}) { - return new ReadableStream(readable, opts.strategy) - } - - async [Symbol.asyncDispose]() { - if (!this.destroyed) this.destroy() - - await new Promise((resolve) => exports.finished(this, resolve)) - } -} - -exports.Writable = class Writable extends stream.Writable { - constructor(opts = {}) { - super({ - ...opts, - byteLength: null, - byteLengthWritable, - map: null, - mapWritable: null - }) - - if (this._construct) this._open = this._construct - - if (this._write !== stream.Writable.prototype._write) { - this._write = write.bind(this, this._write) - } - - if (this._destroy !== stream.Stream.prototype._destroy) { - this._destroy = destroy.bind(this, this._destroy) - } - } - - get closed() { - return !exports.isWritable(this) - } - - get errored() { - return stream.getStreamError(this) - } - - write(chunk, encoding, cb) { - if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding) - } else { - encoding = 'buffer' - } - - const result = super.write({ chunk, encoding }) - - if (cb) stream.Writable.drained(this).then(() => cb(null), cb) - - return result - } - - end(chunk, encoding, cb) { - if (typeof chunk === 'function') { - cb = chunk - chunk = null - } else if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } else { - encoding = 'buffer' - } - - const result = - chunk !== undefined && chunk !== null ? super.end({ chunk, encoding }) : super.end() - - if (cb) this.once('finish', () => cb(null)) - - return result - } - - static fromWeb(writableStream, opts = {}) { - const stream = writableStream._stream - - if (opts.signal) exports.addAbortSignal(opts.signal, stream) - - return stream - } - - static toWeb(writable) { - return new WritableStream(writable) - } - - async [Symbol.asyncDispose]() { - if (!this.destroyed) this.destroy() - - await new Promise((resolve) => exports.finished(this, resolve)) - } -} - -exports.Duplex = class Duplex extends stream.Duplex { - constructor(opts = {}) { - super({ - ...opts, - byteLength: null, - byteLengthReadable: null, - byteLengthWritable, - map: null, - mapReadable: null, - mapWritable: null - }) - - if (this._construct) this._open = this._construct - - if (this._read !== stream.Readable.prototype._read) { - this._read = read.bind(this, this._read) - } - - if (this._write !== stream.Duplex.prototype._write) { - this._write = write.bind(this, this._write) - } - - if (this._destroy !== stream.Stream.prototype._destroy) { - this._destroy = destroy.bind(this, this._destroy) - } - } - - push(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - return super.push(chunk) - } - - unshift(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - super.unshift(chunk) - } - - write(chunk, encoding, cb) { - if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding) - } else { - encoding = 'buffer' - } - - const result = super.write({ chunk, encoding }) - - if (cb) stream.Writable.drained(this).then(() => cb(null), cb) - - return result - } - - end(chunk, encoding, cb) { - if (typeof chunk === 'function') { - cb = chunk - chunk = null - } else if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding) - } else { - encoding = 'buffer' - } - - const result = - chunk !== undefined && chunk !== null ? super.end({ chunk, encoding }) : super.end() - - if (cb) this.once('finish', () => cb(null)) - - return result - } - - static fromWeb({ readable: readableStream, writable: writableStream }, opts) { - const readable = exports.Readable.fromWeb(readableStream, opts) - const writable = exports.Writable.fromWeb(writableStream, opts) - - const duplex = new exports.Duplex({ - write(data, encoding, cb) { - writable.write(data, encoding, cb) - } - }) - - readable - .on('data', (data) => duplex.push(data)) - .on('end', () => duplex.push(null)) - .on('error', (err) => duplex.destroy(err)) - - writable.on('finish', () => duplex.end()).on('error', (err) => duplex.destroy(err)) - - return duplex - } - - static toWeb(duplex) { - const readableStream = exports.Readable.toWeb(duplex) - const writableStream = exports.Writable.toWeb(duplex) - - return { readable: readableStream, writable: writableStream } - } -} - -class DuplexSide extends exports.Duplex { - constructor(opts) { - super(opts) - - this._otherSide = null - this._cb = null - } - - _read() { - const cb = this._cb - if (!cb) return - - this._cb = null - cb() - } - - _write(chunk, encoding, cb) { - this._otherSide.push(chunk, encoding) - this._otherSide._cb = cb - } - - _final(cb) { - this._otherSide.on('end', cb) - this._otherSide.push(null) - } -} - -exports.duplexPair = function duplexPair(opts) { - const sideA = new DuplexSide(opts) - const sideB = new DuplexSide(opts) - - sideA._otherSide = sideB - sideB._otherSide = sideA - - return [sideA, sideB] -} - -exports.Transform = class Transform extends stream.Transform { - constructor(opts = {}) { - super({ - ...opts, - byteLength: null, - byteLengthReadable: null, - byteLengthWritable, - map: null, - mapReadable: null, - mapWritable: null - }) - - if (this._transform !== stream.Transform.prototype._transform) { - this._transform = transform.bind(this, this._transform) - } else { - this._transform = passthrough - } - } - - push(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - return super.push(chunk) - } - - unshift(chunk, encoding) { - if (typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding || defaultEncoding) - } - - super.unshift(chunk) - } - - write(chunk, encoding, cb) { - if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding) - } else { - encoding = 'buffer' - } - - const result = super.write({ chunk, encoding }) - - if (cb) stream.Writable.drained(this).then(() => cb(null), cb) - - return result - } - - end(chunk, encoding, cb) { - if (typeof chunk === 'function') { - cb = chunk - chunk = null - } else if (typeof encoding === 'function') { - cb = encoding - encoding = null - } - - if (typeof chunk === 'string') { - encoding = encoding || defaultEncoding - chunk = Buffer.from(chunk, encoding) - } else { - encoding = 'buffer' - } - - const result = - chunk !== undefined && chunk !== null ? super.end({ chunk, encoding }) : super.end() - - if (cb) this.once('finish', () => cb(null)) - - return result - } -} - -exports.PassThrough = class PassThrough extends exports.Transform {} - -exports.finished = function finished(stream, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - if (!opts) opts = {} - - const { cleanup = false } = opts - - const done = () => { - cb(exports.getStreamError(stream, { all: true })) - - if (cleanup) detach() - } - - const detach = () => { - stream.off('close', done) - stream.off('error', noop) - } - - if (stream.destroyed) { - done() - } else { - stream.on('close', done) - stream.on('error', noop) - } - - return detach -} - -function read(read, cb) { - read.call(this, 65536) - - cb(null) -} - -function write(write, data, cb) { - write.call(this, data.chunk, data.encoding, cb) -} - -function transform(transform, data, cb) { - transform.call(this, data.chunk, data.encoding, cb) -} - -function destroy(destroy, cb) { - destroy.call(this, exports.getStreamError(this), cb) -} - -function passthrough(data, cb) { - cb(null, data.chunk) -} - -function byteLengthWritable(data) { - return data.chunk.byteLength -} - -function noop() {} diff --git a/node_modules/bare-stream/package.json b/node_modules/bare-stream/package.json deleted file mode 100644 index 6db81b1..0000000 --- a/node_modules/bare-stream/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "bare-stream", - "version": "2.13.1", - "description": "Streaming data for JavaScript", - "exports": { - ".": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./package": "./package.json", - "./promises": "./promises.js", - "./web": { - "types": "./web.d.ts", - "default": "./web.js" - }, - "./global": { - "types": "./global.d.ts", - "default": "./global.js" - } - }, - "files": [ - "index.js", - "index.d.ts", - "promises.js", - "web.js", - "web.d.ts", - "global.js", - "global.d.ts" - ], - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "brittle-bare --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-stream.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-stream/issues" - }, - "homepage": "https://github.com/holepunchto/bare-stream#readme", - "dependencies": { - "streamx": "^2.25.0", - "teex": "^1.0.1" - }, - "devDependencies": { - "bare-abort-controller": "^1.1.0", - "bare-buffer": "^3.0.0", - "bare-events": "^2.5.4", - "brittle": "^3.5.2", - "lunte": "^1.6.0", - "prettier": "^3.3.3", - "prettier-config-holepunch": "^2.0.0" - }, - "peerDependencies": { - "bare-abort-controller": "*", - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - }, - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } -} diff --git a/node_modules/bare-stream/promises.js b/node_modules/bare-stream/promises.js deleted file mode 100644 index 5781ca8..0000000 --- a/node_modules/bare-stream/promises.js +++ /dev/null @@ -1,3 +0,0 @@ -const stream = require('streamx') - -exports.pipeline = stream.pipelinePromise diff --git a/node_modules/bare-stream/web.d.ts b/node_modules/bare-stream/web.d.ts deleted file mode 100644 index a011d15..0000000 --- a/node_modules/bare-stream/web.d.ts +++ /dev/null @@ -1,152 +0,0 @@ -export interface ReadableStreamDefaultReader { - readonly closed: Promise - - read(): Promise<{ value: unknown; done: boolean }> - releaseLock(): void - cancel(reason?: unknown): Promise -} - -export class ReadableStreamDefaultReader { - constructor(stream: ReadableStream) -} - -export interface ReadableStreamDefaultController { - readonly desiredSize: number - - enqueue(data: unknown): void - close(): void - error(error?: unknown): void -} - -export class ReadableStreamDefaultController { - constructor(stream: ReadableStream) -} - -export interface UnderlyingSource { - start?(this: S, controller: ReadableStreamDefaultController): void - pull?(this: S, controller: ReadableStreamDefaultController): void - cancel?(this: S, reason?: unknown): void -} - -export interface CustomQueuingStrategy { - highWaterMark?: number - size?: (chunk: unknown) => number -} - -export interface ReadableStream extends AsyncIterable { - readonly locked: boolean - - getReader(): ReadableStreamDefaultReader - cancel(reason?: unknown): Promise - tee(): [ReadableStream, ReadableStream] - pipeTo(destination: WritableStream): Promise -} - -export class ReadableStream { - constructor(underlyingSource?: UnderlyingSource, queuingStrategy?: CustomQueuingStrategy) - - static from(iterable: unknown | unknown[] | AsyncIterable): ReadableStream -} - -export interface QueuingStrategyOptions { - highWaterMark?: number -} - -interface QueuingStrategy { - readonly highWaterMark: number - - size(chunk: unknown): number -} - -declare class QueuingStrategy { - constructor(opts?: QueuingStrategyOptions) -} - -export { type QueuingStrategy } - -export class CountQueuingStrategy extends QueuingStrategy {} - -export class ByteLengthQueuingStrategy extends QueuingStrategy {} - -export function isReadableStream(value: unknown): value is ReadableStream - -export function isReadableStreamErrored(stream: ReadableStream): boolean - -export function isReadableStreamDisturbed(stream: ReadableStream): boolean - -export interface WritableStreamDefaultWriter { - readonly desiredSize: number - readonly closed: Promise - readonly ready: Promise - - write(chunk: unknown): Promise - releaseLock(): void - close(): Promise - abort(reason?: unknown): Promise -} - -export class WritableStreamDefaultWriter { - constructor(stream: WritableStream) -} - -export interface WritableStreamDefaultController { - error(err?: unknown): void -} - -export class WritableStreamDefaultController { - constructor(stream: WritableStream) -} - -export interface UnderlyingSink { - start?(this: S, controller: WritableStreamDefaultController): void - write?(this: S, chunk: unknown, controller: WritableStreamDefaultController): void - close?(this: S): void - abort?(this: S, reason?: unknown): void -} - -export interface WritableStream extends AsyncIterable { - readonly locked: boolean - - getWriter(): WritableStreamDefaultWriter - abort(reason?: unknown): Promise - close(): Promise -} - -export class WritableStream { - constructor(underlyingSink?: UnderlyingSink, queuingStrategy?: CustomQueuingStrategy) -} - -export function isWritableStream(value: unknown): value is WritableStream - -export interface TransformStreamDefaultController { - readonly desiredSize: number - - enqueue(data: unknown): void - error(error?: unknown): void - terminate(): void -} - -export class TransformStreamDefaultController { - constructor(stream: TransformStream) -} - -export interface Transformer { - start?(this: S, controller: TransformStreamDefaultController): void - transform?(this: S, chunk: unknown, controller: TransformStreamDefaultController): void - flush?(this: S, controller: TransformStreamDefaultController): void -} - -export interface TransformStream { - readonly writable: WritableStream - readonly readable: ReadableStream -} - -export class TransformStream { - constructor( - transformer?: Transformer, - writableStrategy?: CustomQueuingStrategy, - readableStrategy?: CustomQueuingStrategy - ) -} - -export function isTransformStream(value: unknown): value is TransformStream diff --git a/node_modules/bare-stream/web.js b/node_modules/bare-stream/web.js deleted file mode 100644 index cc0a4f5..0000000 --- a/node_modules/bare-stream/web.js +++ /dev/null @@ -1,607 +0,0 @@ -const { Readable, Writable, Transform, getStreamError, isStreamx, isDisturbed } = require('streamx') -const tee = require('teex') - -const readableKind = Symbol.for('bare.stream.readable.kind') -const writableKind = Symbol.for('bare.stream.writable.kind') -const transformKind = Symbol.for('bare.stream.transform.kind') - -// https://streams.spec.whatwg.org/#readablestreamdefaultreader -exports.ReadableStreamDefaultReader = class ReadableStreamDefaultReader { - constructor(stream) { - this._stream = stream - this._stream._stream.once('close', onclose).once('error', onerror) - - const closed = Promise.withResolvers() - - // Avoid unhandled exceptions - closed.promise.catch(noop) - - this._closed = closed - - function onclose() { - closed.resolve() - } - - function onerror(err) { - closed.reject(err) - } - } - - get closed() { - return this._closed.promise - } - - read() { - const stream = this._stream._stream - - return new Promise((resolve, reject) => { - const err = getStreamError(stream) - - if (err) return reject(err) - - if (stream.destroyed) { - return resolve({ value: undefined, done: true }) - } - - const value = stream.read() - - if (value !== null) { - return resolve({ value, done: false }) - } - - stream.once('readable', onreadable).once('close', onclose).once('error', onerror) - - function onreadable() { - const value = stream.read() - - ondone(null, value === null ? { value: undefined, done: true } : { value, done: false }) - } - - function onclose() { - ondone(null, { value: undefined, done: true }) - } - - function onerror(err) { - ondone(err, null) - } - - function ondone(err, value) { - stream.off('readable', onreadable).off('close', onclose).off('error', onerror) - - if (err) reject(err) - else resolve(value) - } - }) - } - - releaseLock() { - this._closed.reject(new TypeError('Reader was released')) - this._stream._releaseLock() - this._stream = null - } - - cancel(reason = new TypeError('Stream was cancelled')) { - const stream = this._stream._stream - - if (stream.destroyed) return Promise.resolve() - - return new Promise((resolve) => - stream.once('close', resolve).once('error', noop).destroy(reason) - ) - } -} - -// https://streams.spec.whatwg.org/#readablestreamdefaultcontroller -exports.ReadableStreamDefaultController = class ReadableStreamDefaultController { - constructor(stream) { - this._stream = stream - } - - get desiredSize() { - const stream = this._stream._stream - - return stream._readableState.highWaterMark - stream._readableState.buffered - } - - enqueue(data) { - this._stream._stream.push(data) - } - - close() { - this._stream._stream.push(null) - } - - error(err) { - this._stream._stream.destroy(err) - } -} - -// https://streams.spec.whatwg.org/#readablestream -class ReadableStream { - static get [readableKind]() { - return 0 // Compatibility version - } - - static from(iterable) { - return new ReadableStream(Readable.from(iterable)) - } - - constructor(underlyingSource = {}, queuingStrategy) { - if (isStreamx(underlyingSource)) { - this._stream = underlyingSource - } else { - if (queuingStrategy === undefined) { - queuingStrategy = new exports.CountQueuingStrategy() - } - - const { start, pull, cancel } = underlyingSource - const { highWaterMark = 1, size = defaultSize } = queuingStrategy - - this._stream = new Readable({ highWaterMark, byteLength: size }) - - const controller = new exports.ReadableStreamDefaultController(this) - - try { - let starting = Promise.resolve() - - if (start) starting = forwardError(start.call(this, controller), controller) - - if (pull) { - this._stream._read = this._read.bind(this, starting, pull.bind(this, controller)) - } - - if (cancel) { - this._stream.once('error', cancel.bind(this)) - } - } catch (err) { - controller.error(err) - } - } - - this._reader = null - } - - get [readableKind]() { - return ReadableStream[readableKind] - } - - get locked() { - return this._reader !== null - } - - getReader() { - if (this.locked) throw new TypeError('Stream is locked') - - this._reader = new exports.ReadableStreamDefaultReader(this) - - return this._reader - } - - cancel(reason = new TypeError('Stream was cancelled')) { - const stream = this._stream - - if (stream.destroyed) return Promise.resolve() - - if (this.locked) return Promise.reject(new TypeError('Stream is locked')) - - return new Promise((resolve) => - stream.once('close', resolve).once('error', noop).destroy(reason) - ) - } - - tee() { - const [a, b] = tee(this._stream) - - return [new ReadableStream(a), new ReadableStream(b)] - } - - pipeTo(destination) { - return new Promise((resolve, reject) => - this._stream.pipe(destination._stream, (err) => { - err ? reject(err) : resolve() - }) - ) - } - - [Symbol.asyncIterator]() { - return this._stream[Symbol.asyncIterator]() - } - - _releaseLock() { - this._reader = null - } - - async _read(starting, pull, cb) { - await starting - - let err = null - try { - await pull() - } catch (e) { - err = e - } - cb(err) - } -} - -function defaultSize() { - return 1 -} - -exports.ReadableStream = ReadableStream - -// https://streams.spec.whatwg.org/#countqueuingstrategy -exports.CountQueuingStrategy = class CountQueuingStrategy { - constructor(opts = {}) { - const { highWaterMark = 1 } = opts - - this.highWaterMark = highWaterMark - } - - size(chunk) { - return 1 - } -} - -// https://streams.spec.whatwg.org/#bytelengthqueuingstrategy -exports.ByteLengthQueuingStrategy = class ByteLengthQueuingStrategy { - constructor(opts = {}) { - const { highWaterMark = 16384 } = opts - - this.highWaterMark = highWaterMark - } - - size(chunk) { - return chunk.byteLength - } -} - -exports.isReadableStream = function isReadableStream(value) { - if (value instanceof ReadableStream) return true - - return ( - typeof value === 'object' && - value !== null && - value[readableKind] === ReadableStream[readableKind] - ) -} - -// https://streams.spec.whatwg.org/#readablestream-errored -exports.isReadableStreamErrored = function isReadableStreamErrored(stream) { - return getStreamError(stream._stream) !== null -} - -// https://streams.spec.whatwg.org/#is-readable-stream-disturbed -exports.isReadableStreamDisturbed = function isReadableStreamDisturbed(stream) { - return isDisturbed(stream._stream) -} - -// https://streams.spec.whatwg.org/#writablestreamdefaultwriter -exports.WritableStreamDefaultWriter = class WritableStreamDefaultWriter { - constructor(stream) { - this._stream = stream - this._stream._stream.once('close', onclose).once('error', onerror) - - const closed = Promise.withResolvers() - - // Avoid unhandled exceptions - closed.promise.catch(noop) - - this._closed = closed - - function onclose() { - closed.resolve() - } - - function onerror(err) { - closed.reject(err) - } - } - - get desiredSize() { - const stream = this._stream._stream - - return stream._writableState.highWaterMark - stream._writableState.buffered - } - - get closed() { - return this._closed.promise - } - - get ready() { - const stream = this._stream._stream - - if (getStreamError(stream)) return Promise.reject() - - return Writable.drained(stream).then() - } - - async write(chunk) { - const stream = this._stream._stream - - let err = getStreamError(stream) - if (err) return Promise.reject(err) - - stream.write(chunk) - - await Writable.drained(stream) - - err = getStreamError(stream) - if (err) return Promise.reject(err) - } - - releaseLock() { - this._closed.reject(new TypeError('Writer was released')) - this._stream._releaseLock() - this._stream = null - } - - close() { - const stream = this._stream._stream - - if (stream.destroyed) return Promise.resolve() - - return new Promise((resolve) => stream.once('close', resolve).end()) - } - - abort(reason = new TypeError('Stream was aborted')) { - const stream = this._stream._stream - - if (stream.destroyed) return Promise.resolve() - - return new Promise((resolve) => stream.once('close', resolve).destroy(reason)) - } -} - -// https://streams.spec.whatwg.org/#writablestreamdefaultcontroller -exports.WritableStreamDefaultController = class WritableStreamDefaultController { - constructor(stream) { - this._stream = stream - } - - error(err) { - this._stream._stream.destroy(err) - } -} - -// https://streams.spec.whatwg.org/#writablestream -class WritableStream { - static get [writableKind]() { - return 0 // Compatibility version - } - - constructor(underlyingSink = {}, queuingStrategy = {}) { - if (isStreamx(underlyingSink)) { - this._stream = underlyingSink - } else { - if (queuingStrategy === undefined) { - queuingStrategy = new exports.CountQueuingStrategy() - } - - const { start, write, close, abort } = underlyingSink - const { highWaterMark = 1, size = defaultSize } = queuingStrategy - - this._stream = new Writable({ highWaterMark, byteLength: size }) - - const controller = new exports.WritableStreamDefaultController(this) - - this._controller = controller - - try { - let starting = Promise.resolve() - - if (start) starting = forwardError(start.call(this, controller), controller) - - if (write) { - this._stream._write = this._write.bind(this, starting, write.bind(this)) - } - - if (close) { - this._stream._destroy = this._destroy.bind(this, close.call(this)) - } - - if (abort) { - this._stream.once('error', abort.bind(this)) - } - } catch (err) { - controller.error(err) - } - } - - this._writer = null - } - - get [writableKind]() { - return WritableStream[writableKind] - } - - get locked() { - return this._writer !== null - } - - getWriter() { - if (this.locked) throw new TypeError('Stream is locked') - - this._writer = new exports.WritableStreamDefaultWriter(this) - - return this._writer - } - - abort(reason = new TypeError('Stream was aborted')) { - if (this._stream.destroyed) return Promise.resolve() - - if (this.locked) return Promise.reject(new TypeError('Stream is locked')) - - return new Promise((resolve) => this._stream.once('close', resolve).destroy(reason)) - } - - close() { - if (this._stream.destroyed) return Promise.resolve() - - if (this.locked) return Promise.reject(new TypeError('Stream is locked')) - - return new Promise((resolve) => this._stream.once('close', resolve).end()) - } - - _releaseLock() { - this._writer = null - } - - async _write(starting, write, data, cb) { - await starting - - let err = null - try { - await write(data, this._controller) - } catch (e) { - err = e - } - cb(err) - } - - async _destroy(closing, cb) { - let err = null - try { - await closing - } catch (e) { - err = e - } - cb(err) - } -} - -exports.WritableStream = WritableStream - -exports.isWritableStream = function isWritableStream(value) { - if (value instanceof WritableStream) return true - - return ( - typeof value === 'object' && - value !== null && - value[writableKind] === WritableStream[writableKind] - ) -} - -// https://streams.spec.whatwg.org/#transformstreamdefaultcontroller -exports.TransformStreamDefaultController = class TransformStreamDefaultController { - constructor(stream) { - this._stream = stream - } - - get desiredSize() { - const stream = this._stream._stream - - return stream._readableState.highWaterMark - stream._readableState.buffered - } - - enqueue(data) { - this._stream._stream.push(data) - } - - error(err) { - this._stream._stream.destroy(err) - } - - terminate() { - const stream = this._stream._stream - - stream.push(null) - stream.destroy(new TypeError('Stream has been terminated')) - } -} - -// https://streams.spec.whatwg.org/#transformstream -class TransformStream { - static get [transformKind]() { - return 0 // Compatibility version - } - - constructor(transformer = {}, writableStrategy = {}, readableStrategy = {}) { - if (isStreamx(transformer)) { - this._stream = transformer - } else { - const { start, transform, flush } = transformer - - this._stream = new Transform({ ...writableStrategy, ...readableStrategy }) - - const controller = new exports.TransformStreamDefaultController(this) - - this._controller = controller - - try { - let starting = Promise.resolve() - - if (start) starting = forwardError(start.call(this, controller), controller) - - if (transform) { - this._stream._transform = this._transform.bind(this, starting, transform.bind(this)) - } - - if (flush) { - this._stream._flush = this._flush.bind(this, flush.call(this, this._controller)) - } - } catch (err) { - controller.error(err) - } - } - - this._writable = new WritableStream(this._stream) - this._readable = new ReadableStream(this._stream) - } - - get [transformKind]() { - return TransformStream[transformKind] - } - - get writable() { - return this._writable - } - - get readable() { - return this._readable - } - - async _transform(starting, transform, data, cb) { - await starting - - let err = null - try { - await transform(data, this._controller) - } catch (e) { - err = e - } - cb(err) - } - - async _flush(flush, cb) { - let err = null - try { - await flush - } catch (e) { - err = e - } - cb(err) - } -} - -exports.TransformStream = TransformStream - -exports.isTransformStream = function isTransformStream(value) { - if (value instanceof TransformStream) return true - - return ( - typeof value === 'object' && - value !== null && - value[transformKind] === TransformStream[transformKind] - ) -} - -async function forwardError(promise, controller) { - try { - await promise - } catch (err) { - controller.error(err) - } -} - -function noop() {} diff --git a/node_modules/bare-url/CMakeLists.txt b/node_modules/bare-url/CMakeLists.txt deleted file mode 100644 index bbb030d..0000000 --- a/node_modules/bare-url/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -cmake_minimum_required(VERSION 4.0) - -find_package(cmake-bare REQUIRED PATHS node_modules/cmake-bare) -find_package(cmake-fetch REQUIRED PATHS node_modules/cmake-fetch) - -project(bare_url C) - -fetch_package("github:holepunchto/libutf#6b1a36f") -fetch_package("github:holepunchto/liburl#2215632") - -add_bare_module(bare_url) - -target_sources( - ${bare_url} - PRIVATE - binding.c -) - -target_link_libraries( - ${bare_url} - PRIVATE - $ - $ - PUBLIC - utf - url -) diff --git a/node_modules/bare-url/LICENSE b/node_modules/bare-url/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/bare-url/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/bare-url/README.md b/node_modules/bare-url/README.md deleted file mode 100644 index af95e3a..0000000 --- a/node_modules/bare-url/README.md +++ /dev/null @@ -1,172 +0,0 @@ -# bare-url - -WHATWG URL implementation for JavaScript, built on . Provides `URL` and `URLSearchParams` classes compatible with the WHATWG URL Standard. - -``` -npm i bare-url -``` - -## Usage - -```js -const { URL, URLSearchParams } = require('bare-url') - -const url = new URL('https://example.com/path?foo=bar#hash') - -console.log(url.hostname) // 'example.com' -console.log(url.pathname) // '/path' -console.log(url.searchParams.get('foo')) // 'bar' -``` - -To register `URL` and `URLSearchParams` as globals: - -```js -require('bare-url/global') -``` - -## API - -#### `const url = new URL(input[, base])` - -Parse `input` as a URL. If `base` is provided, `input` is resolved relative to `base`. Throws if `input` is not a valid URL. - -#### `url.href` - -The full serialized URL string. Setting this property reparses the URL. - -#### `url.protocol` - -The URL scheme followed by `':'`, e.g. `'https:'`. - -#### `url.username` - -The username portion of the URL, or an empty string. - -#### `url.password` - -The password portion of the URL, or an empty string. - -#### `url.host` - -The hostname and port, e.g. `'example.com:8080'`. - -#### `url.hostname` - -The hostname without the port. - -#### `url.port` - -The port as a string, or an empty string if not present. - -#### `url.pathname` - -The path portion of the URL. - -#### `url.search` - -The query string including the leading `'?'`, or an empty string. - -#### `url.searchParams` - -A `URLSearchParams` object for the query string. Mutations to the params are reflected in the URL. - -#### `url.hash` - -The fragment including the leading `'#'`, or an empty string. - -#### `url.toString()` - -Returns the serialized URL string. Equivalent to `url.href`. - -#### `url.toJSON()` - -Returns the serialized URL string. Suitable for JSON serialization. - -#### `const params = new URLSearchParams([init])` - -Create a new `URLSearchParams` instance. `init` may be a query string, an iterable of `[name, value]` pairs, or an object of key-value pairs. - -#### `params.size` - -The total number of search parameters. - -#### `params.append(name, value)` - -Append a new `name`/`value` pair. - -#### `params.delete(name[, value])` - -Remove all pairs with `name`. If `value` is provided, only pairs with both the matching `name` and `value` are removed. - -#### `params.get(name)` - -Return the first value for `name`, or `null` if not present. - -#### `params.getAll(name)` - -Return all values for `name` as an array. - -#### `params.has(name[, value])` - -Return `true` if a pair with `name` exists. If `value` is provided, the pair must also match `value`. - -#### `params.set(name, value)` - -Set the value for `name`, replacing any existing pairs with that name. - -#### `params.toString()` - -Return the serialized query string without the leading `'?'`. - -#### `params.toJSON()` - -Return the parameters as an array of `[name, value]` pairs. - -#### `URL.isURL(value)` - -Return `true` if `value` is a `URL` instance. - -#### `URLSearchParams.isURLSearchParams(value)` - -Return `true` if `value` is a `URLSearchParams` instance. - -#### `const url = URL.parse(input[, base])` - -Parse `input` as a URL without throwing. Returns a `URL` instance on success, or `null` on failure. - -#### `const valid = URL.canParse(input[, base])` - -Return `true` if `input` can be parsed as a valid URL, optionally relative to `base`. - -#### `const pathname = URL.fileURLToPath(url)` - -Convert a `file:` URL to a platform-specific file path. `url` may be a `URL` instance or a string. Throws if the URL does not use the `file:` protocol or contains invalid path characters. - -#### `const url = URL.pathToFileURL(pathname)` - -Convert a platform-specific file path to a `file:` URL. - -#### `const href = URL.format(parts)` - -Format a URL from individual `parts`: - -```js -parts = { - protocol, - auth, - host, - hostname, - port, - pathname, - search, - query, - hash, - slashes -} -``` - -All properties are optional. If `host` is provided, `hostname` and `port` are ignored. If `search` is provided, `query` is ignored. Set `slashes` to `true` to include `'//'` after the protocol. - -## License - -Apache-2.0 diff --git a/node_modules/bare-url/binding.c b/node_modules/bare-url/binding.c deleted file mode 100644 index 79081dc..0000000 --- a/node_modules/bare-url/binding.c +++ /dev/null @@ -1,186 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static js_value_t * -bare_url_parse (js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 4; - js_value_t *argv[4]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 4); - - bool should_throw; - err = js_get_value_bool(env, argv[3], &should_throw); - assert(err == 0); - - bool has_base; - err = js_is_string(env, argv[1], &has_base); - assert(err == 0); - - url_t base; - url_init(&base); - - if (has_base) { - size_t len; - err = js_get_value_string_utf8(env, argv[1], NULL, 0, &len); - assert(err == 0); - - utf8_t *input = malloc(len); - err = js_get_value_string_utf8(env, argv[1], input, len, NULL); - assert(err == 0); - - err = url_parse(&base, input, len, NULL); - - free(input); - - if (err < 0) { - url_destroy(&base); - - if (should_throw) js_throw_error(env, NULL, "Invalid base URL"); - - return NULL; - } - } - - size_t len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &len); - assert(err == 0); - - utf8_t *input = malloc(len); - err = js_get_value_string_utf8(env, argv[0], input, len, NULL); - assert(err == 0); - - js_value_t *handle; - - url_t url; - url_init(&url); - - err = url_parse(&url, input, len, has_base ? &base : NULL); - - free(input); - - if (err < 0) { - url_destroy(&base); - url_destroy(&url); - - if (should_throw) js_throw_error(env, NULL, "Invalid URL"); - - return NULL; - } - - js_value_t *href; - err = js_create_string_utf8(env, url.href.data, url.href.len, &href); - assert(err == 0); - - uint32_t *components; - err = js_get_typedarray_info(env, argv[2], NULL, (void **) &components, NULL, NULL, NULL); - assert(err == 0); - - memcpy(components, &url.components, sizeof(url.components)); - - url_destroy(&base); - url_destroy(&url); - - return href; -} - -static js_value_t * -bare_url_can_parse (js_env_t *env, js_callback_info_t *info) { - int err; - - size_t argc = 2; - js_value_t *argv[2]; - - err = js_get_callback_info(env, info, &argc, argv, NULL, NULL); - assert(err == 0); - - assert(argc == 2); - - bool has_base; - err = js_is_string(env, argv[1], &has_base); - assert(err == 0); - - url_t base; - url_init(&base); - - if (has_base) { - size_t len; - err = js_get_value_string_utf8(env, argv[1], NULL, 0, &len); - assert(err == 0); - - utf8_t *input = malloc(len); - err = js_get_value_string_utf8(env, argv[1], input, len, NULL); - assert(err == 0); - - err = url_parse(&base, input, len, NULL); - - free(input); - - if (err < 0) { - url_destroy(&base); - - js_value_t *result; - err = js_get_boolean(env, false, &result); - assert(err == 0); - - return result; - } - } - - size_t len; - err = js_get_value_string_utf8(env, argv[0], NULL, 0, &len); - assert(err == 0); - - utf8_t *input = malloc(len); - err = js_get_value_string_utf8(env, argv[0], input, len, NULL); - assert(err == 0); - - url_t url; - url_init(&url); - - err = url_parse(&url, input, len, has_base ? &base : NULL); - - free(input); - - url_destroy(&base); - url_destroy(&url); - - js_value_t *result; - err = js_get_boolean(env, err == 0, &result); - assert(err == 0); - - return result; -} - -static js_value_t * -bare_url_exports (js_env_t *env, js_value_t *exports) { - int err; - -#define V(name, fn) \ - { \ - js_value_t *val; \ - err = js_create_function(env, name, -1, fn, NULL, &val); \ - assert(err == 0); \ - err = js_set_named_property(env, exports, name, val); \ - assert(err == 0); \ - } - - V("parse", bare_url_parse) - V("canParse", bare_url_can_parse) -#undef V - - return exports; -} - -BARE_MODULE(bare_url, bare_url_exports) diff --git a/node_modules/bare-url/binding.js b/node_modules/bare-url/binding.js deleted file mode 100644 index cea4630..0000000 --- a/node_modules/bare-url/binding.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require.addon() diff --git a/node_modules/bare-url/global.d.ts b/node_modules/bare-url/global.d.ts deleted file mode 100644 index 509bf92..0000000 --- a/node_modules/bare-url/global.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as url from '.' - -type URLConstructor = typeof url.URL -type URLSearchParamsConstructor = typeof url.URLSearchParams - -declare global { - type URL = url.URL - type URLSearchParams = url.URLSearchParams - - const URL: URLConstructor - const URLSearchParams: URLSearchParamsConstructor -} diff --git a/node_modules/bare-url/global.js b/node_modules/bare-url/global.js deleted file mode 100644 index 914e88f..0000000 --- a/node_modules/bare-url/global.js +++ /dev/null @@ -1,2 +0,0 @@ -global.URL = require('.') -global.URLSearchParams = require('./lib/url-search-params') diff --git a/node_modules/bare-url/index.d.ts b/node_modules/bare-url/index.d.ts deleted file mode 100644 index 1b34ca3..0000000 --- a/node_modules/bare-url/index.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import URLError from './lib/errors' -import URLSearchParams from './lib/url-search-params' - -interface URL { - href: string - protocol: string - username: string - password: string - host: string - hostname: string - port: string - pathname: string - search: string - searchParams: URLSearchParams - hash: string - - toString(): string - toJSON(): string -} - -declare class URL { - constructor(input: string, base?: string | URL) -} - -declare namespace URL { - export function isURL(value: unknown): value is URL - - export function isURLSearchParams(value: unknown): value is URLSearchParams - - export function parse(input: string, base?: string | URL): URL | null - - export function canParse(input: string, base?: string | URL): boolean - - export function fileURLToPath(url: URL | string): string - - export function pathToFileURL(pathname: string): URL - - export { URL, type URLError, URLError as errors, URLSearchParams } -} - -export = URL diff --git a/node_modules/bare-url/index.js b/node_modules/bare-url/index.js deleted file mode 100644 index 6abdcd5..0000000 --- a/node_modules/bare-url/index.js +++ /dev/null @@ -1,407 +0,0 @@ -const path = require('bare-path') -const binding = require('./binding') -const errors = require('./lib/errors') -const URLSearchParams = require('./lib/url-search-params') - -const kind = Symbol.for('bare.url.kind') - -const isWindows = Bare.platform === 'win32' - -class URL { - static get [kind]() { - return 0 // Compatibility version - } - - constructor(input, base, opts = {}) { - if (arguments.length === 0) throw errors.INVALID_URL() - - input = String(input) - - if (base !== undefined) base = String(base) - - this._components = new Uint32Array(8) - - this._parse(input, base, opts.throw !== false) - - if (this._href) this._params = new URLSearchParams(this.search, this) - } - - get [kind]() { - return URL[kind] - } - - // https://url.spec.whatwg.org/#dom-url-href - - get href() { - return this._href - } - - set href(value) { - this._update(value) - - this._params._parse(this.search) - } - - // https://url.spec.whatwg.org/#dom-url-protocol - - get protocol() { - return this._slice(0, this._components[0]) + ':' - } - - set protocol(value) { - this._update(this._replace(value.replace(/:+$/, ''), 0, this._components[0])) - } - - // https://url.spec.whatwg.org/#dom-url-username - - get username() { - return this._slice(this._components[0] + 3 /* :// */, this._components[1]) - } - - set username(value) { - if (cannotHaveCredentialsOrPort(this)) { - return - } - - if (this.username === '') value += '@' - - this._update(this._replace(value, this._components[0] + 3 /* :// */, this._components[1])) - } - - // https://url.spec.whatwg.org/#dom-url-password - - get password() { - return this._href.slice(this._components[1] + 1 /* : */, this._components[2] - 1 /* @ */) - } - - set password(value) { - if (cannotHaveCredentialsOrPort(this)) { - return - } - - let start = this._components[1] + 1 /* : */ - let end = this._components[2] - 1 /* @ */ - - if (this.password === '') { - value = ':' + value - start-- - } - - if (this.username === '') { - value += '@' - end++ - } - - this._update(this._replace(value, start, end)) - } - - // https://url.spec.whatwg.org/#dom-url-host - - get host() { - return this._slice(this._components[2], this._components[5]) - } - - set host(value) { - if (hasOpaquePath(this)) { - return - } - - this._update( - this._replace(value, this._components[2], this._components[value.includes(':') ? 5 : 3]) - ) - } - - // https://url.spec.whatwg.org/#dom-url-hostname - - get hostname() { - return this._slice(this._components[2], this._components[3]) - } - - set hostname(value) { - if (hasOpaquePath(this)) { - return - } - - this._update(this._replace(value, this._components[2], this._components[3])) - } - - // https://url.spec.whatwg.org/#dom-url-port - - get port() { - return this._slice(this._components[3] + 1 /* : */, this._components[5]) - } - - set port(value) { - if (cannotHaveCredentialsOrPort(this)) { - return - } - - let start = this._components[3] + 1 /* : */ - - if (this.port === '') { - value = ':' + value - start-- - } - - this._update(this._replace(value, start, this._components[5])) - } - - // https://url.spec.whatwg.org/#dom-url-pathname - - get pathname() { - return this._slice(this._components[5], this._components[6] - 1 /* ? */) - } - - set pathname(value) { - if (hasOpaquePath(this)) { - return - } - - if (value[0] !== '/' && value[0] !== '\\') { - value = '/' + value - } - - this._update(this._replace(value, this._components[5], this._components[6] - 1 /* ? */)) - } - - // https://url.spec.whatwg.org/#dom-url-search - - get search() { - return this._slice(this._components[6] - 1 /* ? */, this._components[7] - 1 /* # */) - } - - set search(value) { - if (value && value[0] !== '?') value = '?' + value - - this._update( - this._replace(value, this._components[6] - 1 /* ? */, this._components[7] - 1 /* # */) - ) - - this._params._parse(this.search) - } - - // https://url.spec.whatwg.org/#dom-url-searchparams - - get searchParams() { - return this._params - } - - // https://url.spec.whatwg.org/#dom-url-hash - - get hash() { - return this._slice(this._components[7] - 1 /* # */) - } - - set hash(value) { - if (value && value[0] !== '#') value = '#' + value - - this._update(this._replace(value, this._components[7] - 1 /* # */)) - } - - toString() { - return this._href - } - - toJSON() { - return this._href - } - - [Symbol.for('bare.inspect')]() { - return { - __proto__: { constructor: URL }, - - href: this.href, - protocol: this.protocol, - username: this.username, - password: this.password, - host: this.host, - hostname: this.hostname, - port: this.port, - pathname: this.pathname, - search: this.search, - searchParams: this.searchParams, - hash: this.hash - } - } - - _slice(start, end = this._href.length) { - return this._href.slice(start, end) - } - - _replace(replacement, start, end = this._href.length) { - return this._slice(0, start) + replacement + this._slice(end) - } - - _parse(input, base, shouldThrow) { - try { - this._href = binding.parse( - String(input), - base ? String(base) : null, - this._components, - shouldThrow - ) - } catch (err) { - if (err instanceof TypeError) throw err - - throw errors.INVALID_URL(`Invalid URL '${input}'`, input) - } - } - - _update(input) { - try { - this._parse(input, null, true) - } catch (err) { - if (err instanceof TypeError) throw err - } - } -} - -module.exports = exports = URL - -// https://url.spec.whatwg.org/#url-opaque-path -function hasOpaquePath(url) { - return url.pathname[0] !== '/' -} - -// https://url.spec.whatwg.org/#cannot-have-a-username-password-port -function cannotHaveCredentialsOrPort(url) { - return url.hostname === '' || url.protocol === 'file:' -} - -exports.URL = URL -exports.URLSearchParams = URLSearchParams - -exports.errors = errors - -exports.isURL = function isURL(value) { - if (value instanceof URL) return true - - return typeof value === 'object' && value !== null && value[kind] === URL[kind] -} - -exports.isURLSearchParams = URLSearchParams.isURLSearchParams - -// https://url.spec.whatwg.org/#dom-url-parse -exports.parse = function parse(input, base) { - const url = new URL(input, base, { throw: false }) - return url._href ? url : null -} - -// https://url.spec.whatwg.org/#dom-url-canparse -exports.canParse = function canParse(input, base) { - return binding.canParse(String(input), base ? String(base) : null) -} - -exports.fileURLToPath = function fileURLToPath(url) { - if (typeof url === 'string') { - url = new URL(url) - } - - if (url.protocol !== 'file:') { - throw errors.INVALID_URL_SCHEME('The URL must use the file: protocol') - } - - if (isWindows) { - if (/%2f|%5c/i.test(url.pathname)) { - throw errors.INVALID_FILE_URL_PATH( - 'The file: URL path must not include encoded \\ or / characters' - ) - } - } else { - if (url.hostname) { - throw errors.INVALID_FILE_URL_HOST("The file: URL host must be 'localhost' or empty") - } - - if (/%2f/i.test(url.pathname)) { - throw errors.INVALID_FILE_URL_PATH('The file: URL path must not include encoded / characters') - } - } - - const pathname = path.normalize(decodeURIComponent(url.pathname)) - - if (isWindows) { - if (url.hostname) return '\\\\' + url.hostname + pathname - - const letter = pathname.charCodeAt(1) | 0x20 - - if (letter < 0x61 /* a */ || letter > 0x7a /* z */ || pathname.charCodeAt(2) !== 0x3a /* : */) { - throw errors.INVALID_FILE_URL_PATH('The file: URL path must be absolute') - } - - return pathname.slice(1) - } - - return pathname -} - -exports.pathToFileURL = function pathToFileURL(pathname) { - let resolved = path.resolve(pathname) - - if (pathname[pathname.length - 1] === '/') { - resolved += '/' - } else if (isWindows && pathname[pathname.length - 1] === '\\') { - resolved += '\\' - } - - resolved = resolved - .replaceAll('%', '%25') // Must be first - .replaceAll('#', '%23') - .replaceAll('?', '%3f') - .replaceAll('\n', '%0a') - .replaceAll('\r', '%0d') - .replaceAll('\t', '%09') - - if (!isWindows) { - resolved = resolved.replaceAll('\\', '%5c') - } - - return new URL('file:' + resolved) -} - -exports.format = function format(parts) { - const { protocol, auth, host, hostname, port, pathname, search, query, hash, slashes } = parts - - let result = '' - - if (typeof protocol === 'string') { - result += protocol - - if (protocol[protocol.length - 1] !== ':') { - result += ':' - } - - if (slashes === true || /https?|ftp|gopher|file/.test(protocol)) { - result += '//' - } - } - - if (typeof auth === 'string') { - if (host || hostname) result += auth + '@' - } - - if (typeof host === 'string') result += host - else { - result += hostname - - if (port) result += ':' + port - } - - if (typeof pathname === 'string' && pathname !== '') { - if (pathname[0] !== '/') result += '/' - result += pathname - } - - if (typeof search === 'string') { - if (search[0] !== '?') result += '?' - result += search - } else if (typeof query === 'object' && query !== null) { - result += '?' + new URLSearchParams(query) - } - - if (typeof hash === 'string') { - if (hash[0] !== '#') result += '#' - result += hash - } - - return result -} diff --git a/node_modules/bare-url/lib/errors.d.ts b/node_modules/bare-url/lib/errors.d.ts deleted file mode 100644 index ee2a612..0000000 --- a/node_modules/bare-url/lib/errors.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -interface URLError extends Error { - readonly code: string - readonly input?: string -} - -declare class URLError extends Error { - private constructor() -} - -export = URLError diff --git a/node_modules/bare-url/lib/errors.js b/node_modules/bare-url/lib/errors.js deleted file mode 100644 index 87aa871..0000000 --- a/node_modules/bare-url/lib/errors.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = class URLError extends Error { - constructor(msg, fn = URLError, code = fn.name) { - super(`${code}: ${msg}`) - - this.code = code - - if (Error.captureStackTrace) Error.captureStackTrace(this, fn) - } - - get name() { - return 'URLError' - } - - static INVALID_URL(msg, input) { - const err = new URLError(msg, URLError.INVALID_URL) - - err.input = input - - return err - } - - static INVALID_URL_SCHEME(msg = 'Invalid URL') { - return new URLError(msg, URLError.INVALID_URL_SCHEME) - } - - static INVALID_FILE_URL_HOST(msg = 'Invalid file: URL host') { - return new URLError(msg, URLError.INVALID_FILE_URL_HOST) - } - - static INVALID_FILE_URL_PATH(msg = 'Invalid file: URL path') { - return new URLError(msg, URLError.INVALID_FILE_URL_PATH) - } -} diff --git a/node_modules/bare-url/lib/url-search-params.d.ts b/node_modules/bare-url/lib/url-search-params.d.ts deleted file mode 100644 index 80026cc..0000000 --- a/node_modules/bare-url/lib/url-search-params.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -interface URLSearchParams extends Iterable<[name: string, value: string]> { - readonly size: number - - append(name: string, value: string): void - delete(name: string, value?: string): void - get(name: string): string | undefined - getAll(name: string): string[] - has(name: string, value?: string): boolean - set(name: string, value: string): void - - toString(): string - toJSON(): string -} - -declare class URLSearchParams { - constructor(init: string | Record | Iterable<[string, string]>) -} - -declare namespace URLSearchParams { - export function isURLSearchParams(value: unknown): value is URLSearchParams -} - -export = URLSearchParams diff --git a/node_modules/bare-url/lib/url-search-params.js b/node_modules/bare-url/lib/url-search-params.js deleted file mode 100644 index c3d6f1c..0000000 --- a/node_modules/bare-url/lib/url-search-params.js +++ /dev/null @@ -1,194 +0,0 @@ -const kind = Symbol.for('bare.url.search-params.kind') - -class URLSearchParams { - static _urls = new WeakMap() - - static get [kind]() { - return 0 // Compatibility version - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-urlsearchparams - constructor(init, url = null) { - this._params = new Map() - - if (url) URLSearchParams._urls.set(this, url) - - if (typeof init === 'string') { - this._parse(init) - } else if (init) { - for (const [name, value] of typeof init[Symbol.iterator] === 'function' - ? init - : Object.entries(init)) { - this.append(name, value) - } - } - } - - get [kind]() { - return URLSearchParams[kind] - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-size - get size() { - return this._params.length - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-append - append(name, value = null) { - if (value === null) return - - let list = this._params.get(name) - - if (list === undefined) { - list = [] - this._params.set(name, list) - } - - list.push(value) - - this._update() - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - delete(name, value = null) { - if (value === null) this._params.delete(name) - else { - let list = this._params.get(name) - - if (list === undefined) return - - list = list.filter((found) => found !== value) - - if (list.length === 0) this._params.delete(name) - else this._params.set(name, list) - } - - this._update() - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-get - get(name) { - const list = this._params.get(name) - - if (list === undefined) return null - - return list[0] - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-getall - getAll(name) { - const list = this._params.get(name) - - if (list === undefined) return [] - - return Array.from(list) - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-has - has(name, value = null) { - const list = this._params.get(name) - - if (list === undefined) return false - - if (value === null) return true - - return list.includes(value) - } - - // https://url.spec.whatwg.org/#dom-urlsearchparams-set - set(name, value = null) { - if (value === null) this._params.delete(name) - else this._params.set(name, [value]) - - this._update() - } - - toString() { - return this._serialize() - } - - toJSON() { - return [...this] - } - - *[Symbol.iterator]() { - for (const [name, values] of this._params) { - for (const value of values) yield [name, value] - } - } - - [Symbol.for('bare.inspect')]() { - const object = { - __proto__: { constructor: URLSearchParams } - } - - for (const [name, values] of this._params) { - if (values.length === 1) object[name] = values[0] - else object[name] = values - } - - return object - } - - // https://url.spec.whatwg.org/#concept-urlsearchparams-update - _update() { - const url = URLSearchParams._urls.get(this) - - if (url === undefined) return - - url.search = this._serialize() - } - - // https://url.spec.whatwg.org/#concept-urlencoded-parser - _parse(input) { - if (input[0] === '?') input = input.substring(1) - - this._params = new Map() - - for (let sequence of input.split('&')) { - if (sequence.length === 0) continue - - sequence = sequence.replace(/\+/g, ' ') - - let i = sequence.indexOf('=') - if (i === -1) i = sequence.length - - const name = decodeURIComponent(sequence.substring(0, i)) - const value = decodeURIComponent(sequence.substring(i + 1, sequence.length)) - - let list = this._params.get(name) - - if (list === undefined) { - list = [] - this._params.set(name, list) - } - - list.push(value) - } - } - - // https://url.spec.whatwg.org/#concept-urlencoded-serializer - _serialize() { - let output = '' - - for (let [name, values] of this._params) { - name = encodeURIComponent(name) - - for (const value of values) { - if (output) output += '&' - - output += name + '=' + encodeURIComponent(value) - } - } - - return output - } -} - -module.exports = exports = URLSearchParams - -exports.isURLSearchParams = function isURLSearchParams(value) { - if (value instanceof URLSearchParams) return true - - return typeof value === 'object' && value !== null && value[kind] === URLSearchParams[kind] -} diff --git a/node_modules/bare-url/package.json b/node_modules/bare-url/package.json deleted file mode 100644 index 1eeab07..0000000 --- a/node_modules/bare-url/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "bare-url", - "version": "2.4.3", - "description": "WHATWG URL implementation for JavaScript", - "exports": { - "./package": "./package.json", - ".": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "./global": { - "types": "./global.d.ts", - "default": "./global.js" - } - }, - "files": [ - "index.js", - "index.d.ts", - "global.js", - "global.d.ts", - "binding.c", - "binding.js", - "CMakeLists.txt", - "lib", - "prebuilds" - ], - "addon": true, - "scripts": { - "format": "prettier --write . && lunte --fix", - "lint": "prettier --check . && lunte", - "test": "brittle-bare --coverage test.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/holepunchto/bare-url.git" - }, - "author": "Holepunch", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/holepunchto/bare-url/issues" - }, - "homepage": "https://github.com/holepunchto/bare-url", - "dependencies": { - "bare-path": "^3.0.0" - }, - "devDependencies": { - "brittle": "^3.3.2", - "cmake-bare": "^1.1.6", - "cmake-fetch": "^1.0.0", - "lunte": "^1.6.0", - "prettier": "^3.3.3", - "prettier-config-holepunch": "^2.0.0" - } -} diff --git a/node_modules/bare-url/prebuilds/android-arm/bare-url.bare b/node_modules/bare-url/prebuilds/android-arm/bare-url.bare deleted file mode 100644 index 528ec16ef65508d94b7589b853492b30e01c287c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69888 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

^?)-HQ|IaPl z`RiPH{%YaQU$?;G$r$R>!TIY7E&K!vcm6sDpJn0BUpLvtzrwf=itv;xbxS!bsVo)xbxRduy`aqB{!VE?j2js zNfz$>b&k)^v2f?FbMQ}DxbxSYZR@q#z-=J#SZm`uKc0(!kA*uw-c>fu;}-7xcup?; z)WV$~FVDt*)xw=0Z?emqb#SV$^W!~Z;o~jb`SF}QKg+_MAJ3JOd*uA~vVOVKEuPO< zxbx!`Tlj+(?)-S?TlfJBcmB8AEd76H;m&W?Y2&|b;m+UHY~yF5>{Ku3r)stFCtJAl zFNH1q91C}Tp+?IOODx>^b6&UcYb@OPVVW%b77Kr@!w0zj_$3Q>{*7yGIltlX*m3=B z7SA&l?)(X^oPV@%=Lc~5;vEZjJy-{6!Y-#>IISUSi>HT>NnhUuEHLTET+-jv$9#)>I!VPVy>irPjCyRLT46o1)Y)iQ6&vbD7h zYgc+x1hvZ(V*(}hez3Bvq0*1t2!wTjWlCz^>U-bHrmU(VoBFzCWsPOtl#0rd<@IGN zD@rPtk;a9*DUB6P#4=G8QP@c1O<7)5TUAn4UthM?fO+}q;}29r4{ww z(yCe&ouZIC|CW~3SCp)&uc1!$6sb2@URG;CDo~TBC=Or}8bDb?c@@;ESyfq9!V=N? zvhv1?`jUo<#z6d%%DM&{ZYZy;pd}K-EI+-ZysoyfzK()au<*3Dv81B5ylz=V09h=& z7m1(M>NOShYm=sJSXEJ8RaR4S^jPsZH`c3>ZOt1ilVfizt8Z*5xuJ?UH$dOI8yZTM z)mL3#QBqUU2tj-lYZ@xRw;b+?tw=Am8Y=7R8!JTi#!5d4jC-B`FO zZCt*%{EDfwR+Tk0l+-QNs^OA`sv9e&u3UU^`HhwV#fGsgpDYM(SC!S)Rx~v9a<3Bm z{|t)j%WA6V6)ameU;~4#=nRdgHrAcGrg3>;@=sG|CjT~ln!Xv*`lYL>sJ*VS^3>(^ zbu0U!jr$ghH}0d4*pVPmR%Ag{?bPHYip3g8NF`&D26ODgn!GNtn1iYNp+?pPWl3La z^ft@?TQ47l9r}oofc{74m5)MUhcu3YF&r58Ef(!DxVf+RfwqiggqXZyKP7MFKD_^h z8pNVaR0G6mUtc;Fd&Fv;|5Z7Cy5fITPSD!;zol|YN-n%?&cX{yE?9JaNr@CdNy)N? zx{^u^vYHA4uZ$8x^crxu&tEp=3>MJr-YsOrh$EwZKtHO;wFHS$)Y3^<}Ft z0z4mV(b&MM#>)DNvSlPeIal+o7nOw=3+=j!#*&qF%huFXl*slgx&CzDa_fz3KLTIT zP*M&?tjOhSYRenh`6CdFWKu3GVLK0HX;d*A8q3P7QRdYp%gd^26ixY*m(|oP)dv|b z4oJ^lQ&F;%ok4LBJt}C>udG;EzG|(f9Bqk8MC#gQB{fwvM_EmxPXSA^ zf4b|dDsD)S$Rnqfb=RxWuXnbND5t0xV$M)8L8t?>=mT#{{kMi2%2t)E!9tok(|qX- zPoL)b29}eZo-dDO9?Om?X{_@Jnh-p7COIYi0$vOEbq<4~x|K1Q;^0A4ai73tC>$t~ zkGmh3Xa-Mwbixiv5O)wu5FUdj?t{Z)d5F;)gN;BtssUl4IOwtp;@8D;N__JW*YOi4%Rt6~Pd`LK3#NeC4W`THCaK zgjjMISVHL-Oq4J}!>ymiG-c`)7KLI5lMrjR=Bc z<2h=?Ua<@rCE9{=xleq>e-X`9-~@1AeodW;j?j?Om&-v+F(3L6#e*FliWDs4^l6Dp z7z=l3`$3)b=0oE0#eE1M3dXlp7YRtvS3aCdzG&v9S0wW;y8}CDx$!tC;CqgGgYu;q zr7{rC+BZ50N){2a{kqe<}93do^xsb zcb;-5v($#Q9`@&6?DKvHx6ib=@Myxp^xF5QpL;rguMgE4uh^gbxJ>o-=HG79yXP={ zP2lH+Exo4+E?DBWz_hWfxKeN8M{N4El?&;1iaPh7C-vzx-^QJPn^zJ+c_w0>m zUtIo-nnu=h|5AdD~Tx_nhG-K5TkdZyWR;u<6aRN!}OC z@xQodq{qedpYi!W2w3%Z>Eq9ZXpd{~`1W|zrgznJ`}Y^m^%KUIH$J?R^h}w$^N zoEO1d`k&c}#h;z;r$0T8e{6AFa_=B-f}P$A@n2l}OX3o^pnJYXbjN!^6uB4rF-lMN vq3Um^0dnPc{qJwUUD<=_n^*ej(_BXOV_eYtFiHB`YW@&wrMbq{Ot0wABA82BI$(51J~BpPDax(~{Ef+Bg50blcgK zy|0emy}Ezp#HOCOqxsc7;@MGgs&7h3N=v*TY81gDm7gb+0STM*vW;?)>*7B{eqCB@n=2ob?g>|I1PR?;^sy{xL%9P zpm#%?AgtHQe~EG%p5tSJ>N^9tO*{X!55wEXc1UFg4OwD?GB7}}q%#cxCX=9l@nCHnq? z^6{TX_+5tlxyawC!4C&N5~~E^oEHBC^mRaVe#8?s_|u42ye|l6wD>Hl z5B#!e@z)Tq_(%{|X!t6qJ_zf#T7DAbV?!(2r^Vf%&jtG8wfHfV+w`0u4ASE1;KzpN z1>v+7{}1sS!j!Dx-w%8pp9?~pmOqv7K|YhT_+s!c5%PC~7Wbk&O@>3Y@(#4Wsa_B+ zM?J)E0qvW+KcYW=M(t^d;LAX~BPxC+>Q97z3F$utcsIN%2p?+oJp#OQ{}$=*Pf%Z8 z6ZC^t-z1cu`)NczHiG_5;KxL*{PV!KXZ zdeF(}F8UMCLj4wcr=LGAexNW9C}Bbx1ns|TmgofIT+-F7s`vxF?M zkVU^Z!3;SNjEih}#tK2VM!@uG7UE+xN(~cS22>yzdEBfe3!7X}lW4Ub^kJggyjH3Z zGF@ha{&tt(>K~6pMmWHMZqSI^NILZ67(cEQSX+ea5RSk@^E=H2RyFPDXCfY& zb8_)a!!rZVU3l)sGat`=c$VQQ##4f)ZNfYAAAP(sea(|61CwXO`2*Maisw%J%`+#O z^*5djUb*@0w5y*nG`?}|xt~=B|6D%n(<Ce);Ih+jl_ z?=Jeo+#7dJ-!;UVHRYSj=e_^#uvtUwS8sM+v3cZYlAHwmop?&xXJJK%4Q3@11LA z9^AY0y~b|~{`}8({*y8?b41?H{(bU=31@ydnX+_4O0K6ord(M+;fIk=maqO({m&o# z;l8K;G$;1=-jOdZ`S9v*E`M$H<|7y1GD&}J(fogW^UGhwqP~L*YR=Rg-!pOgGuJ=o zoV#xQpuz{uY4cYfym-kKSGHBJJa+rv4^O&y%$<|pGd^b7f9d>DTV`E)N!Rau#uJ|E zrw%;&$6YI4IJK)dzHQy^PtG`>IPs@QS@HeCJ@bke&bfD?W6lH17C4tIoU?S^0}JPr zCi3(!u$GDR`%31_FJ1_Aa|)eH=Q|cJTS`eKKtLrI%qc2fRR#a9Jp^blwu@!a4UWTgJc^1EHgM@zQ&{XY;fVVe!I+1glXN4XD-Xc&KRMf_cTo^BxM<>sVC0Z26pp#l_2tL-h~= z3+F8r&_IU%frSsuFM3Fz8a0aM%quEdxOBmsC5yqsc}x1rn!jjX@x1xS?klr&@xtYO zqzkC&fn}xCTcssSi_msQA#sjC=b*mD^Oi1MSW?2G;LehTp|^YZTgmcyMRS}eWl3W> z;dpYAFt23(;>B~o;l&HkZNidyj>StYbLKBwT8e&}<5OrEG$NsMwc#Ggs#1xm|oZeLodOY4@vAULJJ=#!nle? z$B5~jJbzgap=EHrQj3Zgk}P+_sHM&6MNTNAZ|M%@_BAXPF9jdEGm$6tu0%`kyACb0 zuPV@xCG+NYXSJ5ryOK~w-?fBt`>F;bzNC945ZU?jy0=Z^b+2>|+MApx_}-aXp}t9t zF4;GPR=lsaL>KNWfBv!uiZC^hhFv=Ufue3gqLt+U(ekJj>Qg&L7wQwB#CZ=NW4-I@ zJ1d+DW!9I#pC^Cu(gh1w%vnY{wl8JPX#EM8CG$!gPy|1X=e&SnwG1|rYKzv(5%twG zhj>n0>LZ=&FH0Kch=^W}#?&n%f~aS52oFe#rZG9GZwkAohtT#)4QX#=^i5xnj3`9W z@LJP}1t<`quXu^3n(-1=$#^HbV^Q(KLcys;O6D(G_yC5o7Ii{Hk@*r%D4JJNvV2)F zbYrOWvJwn)EmE|M^jRn}&#@>RdC6Q7Tu|yR*;diDr{W%KBnukMR0M>#A3bB|lQi$b_ zi9)Oy%@m?wEQK)q<0!;BXc&c9jK@#B6V<|=d zX}^cDE{cAz7trk&T*v^vn$BQ=ES8;lf>VHSw230`V>K05j`SPZcG;D&s&5B%rNCwCQmT6Qx9pl$azXCQFGaQevu< zm?kBrONkj$qE$-FloD-HVwRMcEhXBe#2m?zC|N9$B}uX*OO_PLk}6r!Bulzv$&f5o z$&x8qY?38QvSdpZyJX3ck`kpPiTBX!XDb*&WW=W~pQmS1_&5_a)r8J9_mL#PmOKB-mTB?+m zCZ(lIX&F+QRZ7d0(ri*%mXww)rP-yl94S3fO1DVqNm6>Ul%67`r%LH*QhK_So*|`M zrSwcG-6o}HN$J^Ax?M`okunmc42zVJBxNK^87Wdms+5r?Wu!|P8B&H-%E**5Y*I#+ zl#wlE*rkjd$(krxEs`}!vL;K`6v>(@S<@tIx@66etX9dIDOqijHA}K)OIEvN&5<$_ zrA&*InIvTn&XMeilHDTNlO%hxWKWUosggZSvZqV-49RYl?3t3?CfTzjd$we^ zOZFToCsE3=NI6MTPO_AfBITq?IcZW(x|EY4+S83<1!E$z4bu>$69q`q6%4u>Fdw4) z^Unr@zs3`{DH#0gR?LS8?*Q!TKV10p-@sq_r`~v}{3W2*^z?;4|1Eq^+*JOtKl6F# z|K_>uf9Hz-oh$x#uJ|t$^ZyU#3f+}4V=Ay_c7iP_Sc5j=eF4Iw2pzO0#X8!9Fc#rv zgeeG{5zatpz}nV1u zxDakbXvF$_+e)ml5yt)+Yhr{62x+f31)&FFHo~V6&Oo>o;R1wygoahv>qVGShBZ4Z z@RZdkk1!jH<_!o9F0>0_EW%cV2?$Rh-1rFK;RjgY#{M+I?6rdMG;Ij3!-521iVPnC z?1YWK!TgGF8^Q$$n-Q)+Xiz{8!dirWgxTxCH-rli(&oMcVJt!q!s`)kL^zhxv0zz* zF#A!YAxwD;U+7PSClEFv%zg>J8HC#q#>2EqsDLj7 z;R1vU5N<@c0^y98QI!gC0l5ngXbxql-Mp#z}<;fz;N55ne39M3_RQU(0* zztkd}fv_3jB7`Zg<9q-@!y8CLxEZ18V#MEsF9u=CTWBZ3T7*>yn-Ml5+z2m(5&j#G zA8kO`hHw?aglgm=oPlr~LI=VIgqsl_Mc9VW41Z2S4R9k|fG`i?W`queZ3s6|{x0wp zVKzcP!i@;q5PHs`JPfz&A5acqY!LM#oN<*-*n)5y!b23s>jVSF9*VG^Zsl}Ax5}uy z(qu4{>mUP2rDrbMA`wL95TjRbyQrVd9Ww_oV3{x$PZ9C~&VH1Zhi3`WFcjI3a4f*H z2x;+@5{2hZ;GujE9?DPbk$<0-zZvN(kUz3Vej)OS{#rcc$Orob!9K*8ImCdItNhH< z2BbqoBlYI2?YGY0j?q7g!kMOi7@7>$h(;KIAR{IUb|Qz3xh^IQOnB*>XdHOw)As>8 zM&Au~E?`&13BorSQLq{fF^4n4u*A#tfE_nY5dMvK;#1}jQ|1tJ=8)K|A@Q6Nuiic+ zA#+H){<$HsEDHdvxvUM1DDOx4w-JW<9I9)ZE?gJ2p%X9*ZWDx?hW7y*e?=IU`XmAE zT=5`3kD$@DHf9}20c|Gzct!!=56nOg73Go%{@5pJigM(?u7eGAmHVP|D9~^;t%LEV>9A8(UGP z31#SPUf*TTbSpz5*NQS*F(>-*9x1cdur9`p4kRJcZz3@xDMDmg=$-g841JWiA~KdK zEfHxWqtaOWsV|Ynj*j=mvzYna+MfbED^O;^L;T!cgf7T>h|e*vN0&hc#wNAF`;iO?6ovj})%UHlwc1W(qGyiixn$Q+UvV~cJxlkZI^H}(;J zUKMCq+BT$3KpI%WexySikTwHpH&6=tAf&4oVhAN5DS-S1$j7u4$q(tmSJ`l6I>Zdy z=N#Z5&b{FlbRUmn0h_mmpCu-6l8-#3%|aSX1NNh|1xUNSN7@Rc%|IGV9QGrfL}#T5 z-+Po2YD0*|XCieIY!zS)Zhr2$7wpFFux)_d0@yG5!n>_ItQpE+iHDy@?1lHQ-C@T9 zHr~tUpI)$!cZXdB*jm8$Nke6K*o}ZKUyFX|i{7`p!}&7k$T$zx5&rOl=p(WJ_2WgFuES)XM=mejf%jf z0Pd;B_!;1yaQYu2^vxoC8~EAdo^UafBltXktNJZ$t-g3YGlFj`;5qygz6xTZh<2;48a)HUqW+ zu$da{T73Z-E5>`l5#m8D@;i}FcMvohVai0?694HouZ{&+C)K|hc1X`MQFerV$S}lW z7WJ6a*?gWsYuUf@djoyfIW@XYX1@@vMJQ+bJNSh6KFjILyV-DNfNe&ZMJR(Qoc+k2 zs6yHTq|rJ02%fAVi6MI;C38q(OinZnj8`2fw|)!1PoR~HvVmR*v45Jze%96mtiP{+ z;e0l+97Qv0Dq9=QLb(kn*PTY>_vSGOC0i6yz+}w8>U|pJD_-PxZ6a+%`Hkd;Cf+1b!0ZafeNgB*r{Zgju;t}73Jk!7U{jn%ImPMDZ18UFT zcPsLy^pS^T;T--HA&=^zUpyZ3Q0P0PO{9bnuQVIe0Oms0^m75b>2OZ@+$q={lMM-heL&%^HQY6O*M`V1`khkMc0fn6H*~|N2R_Aa z^!gq8U=v5xE&s?c)Ns_mtMn-+j&ud{f==VKKq0F-7FBnHe+BRy7+~h0(*)qaq%dqF zeyl0CKjL3Upsv69yMntYIs7Ah1vA}8O`$g54M3&LxbQhz&B^u-_fezIe$=O=v~>l2 z|6UISdG`s^?hDQ=2y_f2hQtS*M`xn$P#oX^pW^tEz+a69uMU9+W-3k-%KKS@nO8N& z-r*c1cera!ch5mP1OG-QsO0oLauljd2$A^4l_1e+RP3gO%0-OK+>Uzh5-^@D5+XRa z)%OI&@54QnY18v&2Ar&_VLtEuNCmTw&I}Z@B$Lm3A5UtV8Cb>%sg`mcAQt$= zp?1G`y}RwLt{`5UeD*5YUQut~M%k`6sjyBQ;hlg`^kR`D_`F4U2S>rD`-Gqqcz?n0 z#w%}XIRycU*CZd4>i~J5Pym|RrUkm-_5(*1j-nG>MefYN01nMswnaXEpO6>WhNik} z&2l{hILXSHy+N`3UzmWw93=a^3#etBiq@Hd=QQMRQZn)j0?+bd-Kc1t7FfXn>lhV6 zz1IPFYAt6*xp+Nq?NIwuKD$fyu0VFZca;XDuv#sb%isY3uRE{>SG|KM@d%* zfCyqG!FUbp0-k5_yWS*`(>bTJf&CUA5HkY~UN}_rQdacwP*H0L zwI=;zayy)ZAE_mI50)r(q4mdM5V6d>(4z+Lc*~?|StKRM*W++Tw z(J&#VV3<^N8zz_X%GfX=KCofpN4ZEd^c+O7SNU@NVWB;0;L>b&`Etvx4H20-z%wj< zw0onUB+9o4h^Ik0c4}q3ln^CUlOL%iv0*|LswRSP4KGEQSX;omnSp6w>kPKaxs7suv-nz#Z^Fm!)5FAd5_q7je{2)wpH}i) zf}bijgV!%UQLW^+dH0JO-}b1YHw#r*b|ZOXwVd0Gb|^(ACASsrmk*O zca9Q0*C1DX&F}7Kwtnh4B!L~g(~?bkn0Hy0Szk+{fWj2 zCed4g5@@tyGs*U5Wm1B*TCq2awrcn3pfWvP%(gdMYmg&mHK7j_LCLL^?M>DO(X;GY z6l{?9DUc?=dLPAzSY@S&5$OFCizzAs%c0gvToFBs;CfI5->rIUwYc_vMC92GzVW&X z5GK$x#$GFW%%D~is=UBk_>v7o$Lm*SH;CSNWT|hYV&c>~?<#TKY3e-BW3f=?)VYei zjdhVHcZ=xV0MJuSx?LLEw}Tu(edh<_xuI$7KyjUg8sKbYgTR*?ke!Xzy^a{g9#G2K ze7EYT4c84s8}ggc47qb(U|=VW1U(-K20ku~i0!2Tu{Q?;P04LUG0!ttl4-4&7U&eB zTk%h1so$p{zs!VAZ^s)fuakmK^tOW@_Xb}L%bTce9-GUvtSmV-&1V9i3||O zK$0Bq>+qC8N?Rf9?lXGP`y7Z6D|Ix;W5mjB=^fQwL3ir_@%cK@T@P-Hm6CWi0gEr=zSTI;_ftv zo+($+ON{89hZomsokR2%us3~?=*`7jy}b(T64dXoj%GTE(a=z>g3|RO(ZE<&UGj)8 zOGg@NjNMrB5tLJZc~|=Z^o?w9Brc(^9XC8u*2wzh=kC=|2T%BsF$?O()8I7Y^%ln< zcUj}LqIV(I@#t8^-m2ub`KATkXZk@r#dVJ(UD^0#Iq9)8!6UAW8%6JGO3Q67bf1R4 zxc&x2>@AQm!7&I)q*o}3%Ncb62EOR|Ln83+QFQ8)^n!{=KgH2V7CnCIGMk~$UDgbm zp>FLECl=S4}$}IZf(w51PpmMbADYsAIbWy~%*M3Vj*xlec3u2^Fr|BjhAxz@=h{Lr4X64T8yxW$Lq?XyVFY^2&I5WrDnN zq&f!#$OrpUDZ{x+xm=Sk(Q^rer_kL61v3zDd?xh-eunb18z8#!0rzJymf%}pt>8Xm zD89vg`KGTCflPp#`GIT!ERP9wCd5!U#LF%!BLI%PWujrx6T*_#*9|G1yuwC?gbP5$?&UOr@k$`cu2MJ0(#@U&>M9)So#CDt+6984Ndzk5%KHM8)&+Mf8Hve<~JK z{CQ;e%Jz!34p!MQOnxLzn91uzPbzFIh(a;~HXuMLFl;!9MwXeBf&^u`$$DHqCffFp zjArju3gWGM$NV4ie6c5(#(a~ zi2sCs=#uNJzcml6AFsed0g8LCL*tkQidFA#Pa{%mR*R8%(!NQD{t&%?!r;|}?~z~O zwX6lSW46Ou@nI-gvfRT4TwdTth$_=DV)<==me2NKy=@0W!@XMeJy>#n3t~6*&i_LT zqOwz?i`hZUg7`Ojk_jY4l!Py$*D+~$PEc2!pRT-1{zr6O41E-~Y=(2X)T@xF*c;W4 zAu#Sv7!elCJD5$?8ptZv0b=DI-;-t-67nb9Rt}s1`SN$*^>&aUKz++eCon8N#(c!g zG16;ffkAXir(A&Ph1!|cceKfy}>0k03|_O}AVUH1hHS z2^f`{Buqpp`Mc1F3mfq{ni0S9JI4L?@m{|(UCA{mnQ?A^%$Uq!&Jk?EbI9lV53Ezx z^855y>+c8*09~x{psf5Wm=2_IXs#KC=|*0WAg>syp12+akkVg(7v9m{R=o0+LqAl? z%~ob=uX_T_g9WV)#N@;IS89})OPVA)a{ik*FpTlXZV!qG6JXGP#X#p#*P+f{dYU^m&F|G_r^j-r^;98+e61|t>O{~n*yN(=o zow17^8N*N2Q#Ki4r>VdS9p1jhn=&;K3sd>HQc9DzwNuQhcc0cNlSYcRdbtMtu|bE< z#(zz4I5mm`UjzkTjP;`O8&$*Oh0)7jM?wxuF^K8tVvBk zL9x>8J|l^qg{aMa2G!DLEC>L}OWB(qBrm`lNRDYA!`hP1L69+-XN20~9m8^BP}suW z41oCshv^q;@AWjLU5rF7dl&>0q5PYa=}@(ex_#E_(y13BcVnEG>L7A-mlvLH)uzkpE_ zTDT{}^yW0o%nS76ZPFI*S;$iLAY(hmqF`-UzJ+v^6{*oWtd%L!W_2;r(XaA^1bM

5#GHf92-j{wbE)S&Q!b*&vkz;~NY-Ur{=K6y{| zSNef_o%x0S`hM=2DlAi`z%Nf7smwMhlTFHPiN2LV z>$_ssY4;hOXgjS;9%(%-X1%N2Wz@aHJVTBF%EhoQ+XvL!n@JW&ysP9l`b?K+j>(17 zs;M+fcjm&R(J?&Sl@l2KkVNNLbqdj&>u(>YjX`*#0##r0ZnQU|bAnDk9G`iCYk46| zkkrgeS+N#5(OErEI>81DcW>^;q?m9ib420`7Z;*KmE>`1=@ z4l14Xbm;{7@V;*c9+pp&Pw=!1fiVnxmtsa9Bk`euvJy^(u>5>=lyMKVd!IzQ`c*s; z*`od)5i&1^iwOH%*vC>1Ti9QYxBpHZ+#MGp0i*6-PJ+6aC7LkL%I^n`v=d#Xf|+t% zULap1@}%gQMD$@)F2~}~FON4X1t#5b&Slt%G$yA9uH)c*OzP@nT4IHUH~jm>>5lxa@oF7K-m z|A{qhM2E6D;AsD-j@kQ_CL2sopF@`V4h#oqzfzMjA;Ee~?%pbSj?#d|J263=HN?fO&oklKBi1V$ZryX_o>s!i}J+LMPidMXeFATV^lZ1wRnq?kC}mQ0|Z5eSQFV3b9o^$#K3<5 ziyrdv_MZRMwVy{Uh!?|1m<4fVHzcBGaGw~M@ul7pg=T&j4YO^USu|qX)RMELyIpuK z1eGhNQ*9A)uI!FyeGfdVdf?G)q?IOjya(}z1x8bY z*vcKQUqQ|6z@>jIf}EE{7C_EHt`#viik_il(XBRNecj)=1eU$rDW6hG6MZv-)*ARf z-CYoYCeha9KCO2y8B;KF`MppvVx^HRrx=*JV&%rmn75z2_~RFm{Dp&v1>IG6TXDy@c>jef@;byW7}Pc)`O0Z6+QDc zl(wGF-0dX&&NTYL(6%R5qr<*rf+p8_PdaZ@hhIq}fsEAxv@G!07fik&UQDUdN2X~m zf>QmS4Z#+<$SAKcW9biq>I^rJQi_aN&iEeE$z^^S4gm~_gO1yji)lY9Ma;1tES;&t z1Ow~x^m%t?A>~jmjudS?P6ncP-z1ukkO%I5k3FH%wYU@L^D!Uf`*KsoWU^NS&80cyKrdzK-4An&o z46>KX8G19+G_#i)n7#BJPt@$C&oL86hWDK&49mD4OBbw);E+@YqZ(43P1>SV-H&Bz zs3F6y`Vy@6c&%@zb)JM!A<;)iAx?}J*V1B^zn9Txk6qSyL`_tYu?tJTkus7Dv z=CYmri4-G@S_2!nH(~#7<sTi|if?Qz$1S$4b6#1yB>HMC2%JAC*BFG{-0 zG$bB>rwq~YK+l7icz3nIy2ts6yEO*N*J0+Rl*?VFLGhUroF|EqMJ8WPP*td=+$vf> zkB{^2R?2V;V=vO&r~9KM_WQiwW2&bK)oeW@dOkEDGQc;L8H*ny;>$Vj0S}y*Fb}NG zq@r{pgo_bQ08I}ZKFnlMeF(|yA6~JL;brZRkHaV+f0UJ)ogr3=*p_$Bz&@eq`4uWe zs_4BRFRq7aOMV{Sw)X?Uu7_z~embIRDkx^h8L|-rg7zh>DN26Dn0%wSCW~P1z#l@j z(cZw_hJzkxaAtFy7aY~WKP08 zhyfYWY1f>H@%#~ajQD?1K_I3&N-zx~UHv1{DI*9mX6==mq{mnjX@`rXI8R{H1%=u+!hCZ7xLWqDzTXbT4oE4>DAr?(N# z4nnEtJ_t|h;yM+!C@n8u#9SHiZIPU=d;T-ZYEtjVDw}16mOJa1k&2n7Q~e8c5XLvT zaNava)Z+Yi6LaC@XcTpjdbENZZEC`@aT1z9)3q^bx>kM-?@gS$Iz}lOX6=&Ch_-`n za@M{-Vvo4C61^TX83&5VuQh!d>C($NdLS=9gn1bXo}H%|7IKWl`yL8f>&2{2<{0Tz zY{SN}eFG@*5;!zW$~a?;y$J?3=k|T03F#}W37B=n@^wIZLm4T2ngy80W=G&Jk^Fm+ zuN56fMVCji=(LeCyG6+|wL=-S$XUZ6GB-e3WW{rIXg~#(xh+zL?v^k$O+GESakXX? zC*&xTMna|6!;?ja&#=JC?zDD^S*JvICapnjMqLN9l4zpgtvLD-6B}wpHJlzJPK6uM zNVR?($^Hv@N63?OJ)0n}htElEhho7HTsZghlZGb2!TAAC#Ee7I_73K8)*z#d$vEOi zQ_7mrlU36KFNVNdVrUBy|I_}VyGsv+S9}LM3TcQV&q@r=Ip9>%Ahx2S16|c6SUGKT zt%}o)b|#_#3`FV$Iy{*jr{~8bmk$Y@8WY#dLoPdPcsqd+s}phN93udyPO^@PfUmLyk!rSy0fxUsV9>;8I=$LJ;YcvPSfaTpt?LiM~66)?H#& z3meop1vk>#B4+J^6Gw-$lvOxB0rM30I2J<@=kJfL`pfVFYPTSWV?H|EqzQ=EkJ_@K@MR+=p&q zei8_>8rzH^b$&mw=>8p+1W~?X)W_Y$e`if&s&EyM{+PRX1He!hx|$o$g;-l)G{9FZ zzl%OO9=LTRF0)}w-a_?|k{&5%n$!uHZNNd)HZ$qZd+}~6j}1B|5YEYJZD>koNSFTu@a>rz*RkspNZ{bIeGA4S)1+JT0*~=T z#lD5hm1i}uXj30%BtdsEi0}fikrxO{5PcIN(gL@w-O z0Y1XqCf#Ys;<)o#=3z$}@W{@m9an_K@ov@_bNerqe0W1Qhdp9w*nxelogoW2n?v$; zrjtE{R$|{W_i1^mS(#}9XLBoJa{ZclhQ-~*yaf09$*X_Vm@OWb!)(A3JGW%X1ca#? zF#%OZ3De$hVU-tU0ydGR`Y@9HEV8wd%#M92lI1}bXE1SeYCQH_VRc!XU`9pVgt-B8 zbcm%mFm+z8hPQ`-CB#yAz6SF;!BU)mvHL?TrA37cgC%NFag0SZ(P^V)5o0L{&Q$D0 zHS2Isqbi0u4KcSAufAiMG9Lt+EFPh_k9kRL6|hmMYU=+w2G|L2=;amQ(qS zY%#~ru8mYPu@cq}kbZ$zXcIwg!;3cEGwp%0>I58f$1qk0A&;xQg1~}zHQqF`>Fzxi zWz!ukqe)#9vt2qH4XOT6OOs4+RLbyJP8udpikBx5Gw7BJoHe(OWZTJ!J-3rbvh8He z!1DKPU||n%L>&w{T?gFHIsb)mRmHTtd=}=FQ6t{(w5lee9%tnE&J%YZO@o2xfP;m} z0(T#M&Z3%$*+P6oJLnt)yfWk^3VGI{cKp)P20K#Z z!|a&&^H5$nr16RpH4$L8)>FJViNFKYPiIw;T;s8%>bCBQwzGOHI}_Qev*ccEPt$%p z&StPt%C_XQB1q|bGdI9m(3Y{No2@%R`;Nd!fN}X@_qbI3K_&|j@W3^UmdV^%p8z^E z(itGhjTve39;W-)sbQLhvo2^BW`~8JMf*6#n1~nrhxl(+Uqm9gru_)n@oe0Dz#N!g zB~LTZLeGw?4UVDARiorrjmd-eN8YWu9Mp&LCf7u!a&awMC!CL>=uM>iI5F5ndcTno z)Bfv_5ipY_gcl(7JU?s%yhgP^JHXp&l#9%AU1$f%I%+3o2SNSq7i@}V@3-R+zc$LC zSOaI@(FBk0NiES(b2Gp(7r01Xx^GJ{q|i>P6?oabJoP==$%R|<12n?7t_agEPBgM> zaCw39Yglu<{uM)EDB?_iZh$RToU!c*NO%kO6|VR4G{?o9w!FX^5C#nBlpYt@XYpIO z$M@h%6OH*%x9f2YUx4RC&Q35W(-M8QAdD6^#Bo?gnTGR}b#gtl;*12NXggC`4E>UPO@m@vE<<)N#? zEbR4tfSchr!R2e(&cmG{gI>-($}cUITr1D+P|}t026>lnLX2;`(OTzN4HxV_aor=- z$%E0o%H?vW@~{CGsoRgcn;lp(dtN{$16#Y5}Qp6@K0lG{P|KUx8e-o)~r>#KyM`LBQI_kb+BE@}7NP@e^)(e!|VbV@AY6yQOuGWG3hx5cF?$ zbHub;YE%COBy1y+nlyu~Zadbz9jcoVf*rJgGP|Q7Fp(94FD}5QhSxa`?@7mlfR_{H z6-F$oZ^zZrqdvnpv_;p@FA*27uv4rrpE6u8z9tmPhT-nMtDIuN zsS&tf05Y1&MzCFTcwh)mj3(M1y#_-61c7kiGaNO&X4k;8@&P5kL43k*tnuX-+;v9l zUYId!^TB6pLrI+c4z3OF)}7p?qegj2SJZQgJBD5}M@ z4O>R-y*$)jw$X6l3&MvcZ=fdEp(&U1_QI9K(xO`1Ik1DbcBr0Kt7z?xWGV&_4c9eY z1IcCp7IV0@3=3wh2v4ZN^#e~)TX*?v26v4ScV=qDwRfPcAQL-QdrIPYb8C2W;Y1ST z!`3~bH;6Yi2hCON4e~DdTvRJXoT$^#pIz0Ydxn+Ul8MK3RrB#(#sl()GOj+>f}_X4 zEyt}gG+ud#9|PDS3p!z;b<6&*K>q+8PL)$5f3q!}(&aADzyBMME>_NNFdlS$p)-Dm z^&nPaugV=viaj66yF_ol%R@4c508l6DOZ5qWUOo(3F4@4yuYrv&KJFhxZI$t-!MevWh1@XjF#2axf5wE!q#}$+kRPMt zsTz-mS`lY;y+^eGo|S-m=@Sx%avvgoHwWlUBPd&jEBL7D|7oTyHyqNqu>Kv*Bk?Vys;LV{Y>FbgTQr2 z8^qcQ8g_xkCfJUkJuta@SBJRc`tv$AIXH2)$45Z5MQ~#lt z2&?BNq^OzrWBEw?ic0&Xg|KMb2Nhx;x7|>PH2^+@A;13?&GaBj>wb?8WpD-E-HGco z^I=gd`8x_>8g2BuP7lB(bYnGi9+Gi2b_7j))YD@The+mE>GHP~dUrcw;a!Ts=O&Qs zx&>&4;f0CQB~-9-0RJXIe?-`)EFgqNvGM>Q9M}QB+O@06b#~zLM0S<;OVmSy?E~EW z)9v>e9tWVV28lP(M1lHC8`L-HRv<|@1Z|i2n#0~w{e@9?yilHDZ}CmjiLX_=8}zub z;_TOjO@&(CV0)vy543xyp!KK;rUX+sYy>O;LbZ!&COEtO1%Zm4H0n)Q*Wr^Od4X&E zObN)x!+Od?U+jlDwZfyLAH2i}XKUfj#m<`#&|5=Rz~Lu$v;j{8swR%066CBmD@d+y?!6Jplqr z{tzDtzyfA1nK^P3PDJDO*LgoT(TYP7G+!J>rF_1C^)AEoBkR4|yIb^J4Q!}C20~?@b zARl~7EH9wru=K$fas|ooa1av?fpKD`y`kK2IZlV>AF`nv$ID&RM{91zsB52yMry|r zIo=G0*DTw&F<*Zb{0e!2=XoO5q-eJ1cB%mDcvb<&KD7NWw6w*HgVo=0m=%m8uCeAD z9fKxe>GwUp&VY64N*$ao)_3Xi5cMO#TAJTu>z>?L^t>&puDpkem@fb8z2Uj{V)l%zN5f3b|~nzS(}`kUaW6%V{nh0zsV+MHz1b3 z6`Q8m0Kf!8jJTDyHOp%8agiF3`N|-&AMHETIdF%1gN|Fh`yGS84~u_{v#KNk=ghlR z#_H3dz6sWj((kK?KjRc>g{SxBFG6N=8`W2kUT=q?L?gAf zIuOUa3Vxrm2b)?x=Yc$sGwnXZeTJEVuW*$LpWe!2AI%G_;@H9N@&usu-ECBcD60)V zoJNHy_5n^Jc@!{C8LY|(Xeyy8-SY$L6D#*$zYnXgM^CfJG4VC~7q~^QJ2+K*ZI!d7 zP%itTP|kL?xNw`rL*K5Q1PDxYjlPsYVURWk!oF05&GMHB(`)u49LQbQ6~c5x1M6aY z>g5~^qn~iO>wXAWobshP$kDvD>;s^@cSbQs?XsMBsjOhWla>l%s|1nXc7*O zyI&XA| zQewafINxMi&gC{@H({W577-rgtn+PtY9111Pq`Qe;ZF4zOb^soah}zv>ya$CsLxQ4 zyF=ZAKF}_)(brmL@3=t!X9JEFc$$etKvOSh7F}cPj zH@VN?i$%N8mO}R`dyC-2BCV{}-8sN%W{n$Bjk{H&)TaU9%hM6ehl1lec^}kqUVu0gCUtSEwKM|a-Q~Zy< zJbb}smAzGPzDV)k`11Nu{D|QEBjTc`lqQ0_{*=}xIM=eYdyqy6UkDB(4(_TCAWlkp z5<;BI++$SlqEeaIeBBYut$oF4flUWRyp1ePCWhtt6&p6l*b2aOH_Qs9pK(BRzl0?N z1QXMi_|macpNf?q>2?i02t88);l!47t@A%H&g7PBu@8igf_NSVyt`}@-U4X3#lJlW z(HN6kdnN3XHTMuQd({~GR&nk3Sae{yqvUSU?HSR4#SS#r*g??cnbrp9_w2hTIEsZG zqhs@`gj6b z?YIM)p#^Hdr#!D|-D&sryRYBOz;dz+!YX$l+%(K&W1>Xc&y8Zah)Y(=Af=dw68h8n zf#{ir214)NN`bu!C!6W~M-rf|pNJk(fyi8oAf$M%d6mg5+%}Jz{Mh7bqLOr4X_JTOthB=`lg5J!}jJ#PM_@LPGV@csWf$k`gJ19BX=$9*Vj3yd>SW}?daDBzylfEAmp;e?gd?> zvECTWfs&_B!S?LZqd3>1b?GA<5q0SZ;^Y5|UAh!LhOnwV{R(Rvx^y{`sY~4~n=hj7 zXSrcbdq@Muehk;Nka>&`&$qaL3h7;mV>SkUYQ@k#k+-iP@C%M3=-kFUwY41Z zVeY*FY#4azCM1flWtV*z?$icSF0k!p1}?{}%=8PKjDZ(X0L_E4Krv0lh~+N@unQLK zFM86Tr4_xkg%nna64UOe(5VSXj-J!9E{5rh@ZTNS)3yRAG%a0+o! z47!Xo&A+Isk8@lFrAQ@Ja3+AUVH^w#!IU;6U|XI4$k*oFUT# z*RTYVq#ZP8Kd#Z*QaX-Caf16x(juV}x> zXM<%@5zO6z`JCA%_H8)y7B)^WcJnJ>myCv8GJ5tl(R~?>6Bs5~Prh{g)Dg`v;YP_0 z+?U0~7dA@1f(X$C9i|GxHpvcVlk7zvdcL~V$Y&uO#otY?f z&7qf-g3O+VO8#bMr93S=w~>`{KdQiIlVPQ7(>ZX8sDak$Hz5=&$7#!hXK6ku+lJ)< zxfC?lU-TM*nHk&Tz+3e>Op_=~+<^&aufSqjE1(&2IC}_AWiU=vi0-35Xq?&tPC+s? zW`RRP4|0BO10U@>LMGe}z%y>q4BvxWn+R7oZf$1V`o%Fye_Cg67-6r1QxR<(YrN4h zIMbS2AY7V!(j}$MU54r}G1DH@y$^qRSW35HRFe4gkkUP2DSaa%rT@ZrLP<(-qO)Nf zcpl8%hQ2haF7y+>;xQC{$H0jfFR11!(c|u8eDqm!N~q=_b^~&&qQ?ckN52DT;8I|g zJL8hp;TRfc=~@5{jfx-Z@G55`b;1*V82i`eviFVf5i>&x-}yZWM`|UIU>_N#B~^r@ z45_FQmxPM5#7YZ0*bY}@Mh9Gx%)QuAa)aw3oYR*obO3VTvh_s0Z`#N1GsBi&^cMfF z>%o$kyXWk}_bwfs7C+v)oi`XJ=eCAwdIvMMOrNSX$@xbuLHK}1%6s_oYy%vE%+Ja0 z3pn9`HVxrlFfAU0)yPrj;dX2sj={?!nBtSLOg}1P$GzHTqtgkc4VP9FUXlSqdn2E`gTA^}1u^#TEqJ75Kd3v>f>I=V8)#x>e>h!O3N;o z1ufdQV2A}{IUQQJIDe`B7AQkBzx4NRT!;_TY&SWU$cc223RgABC(xnTJ9Hh)+Y`XW ze%L7Zl0XM5ZboopIyg4 z1EC!R2`u;&b?nyrX<8-uUioR;9oI#3<$utlRprOTYGYp z(YGXF7|uY&(ey%_%b+(Fw+VhlXyrZrull?8_+6jw^x5_0x%d_qftKeAxK1v=jnfQp zdVC1VeRIs#1EpAcn{M{(e&~kwI!=^gx>?D-*)%x&W`i>0W_&PfV9lu-){u(`k7xIa zXMA>D`%CWNx8gb)<-m;VN;m7u?K%qe<#w!QvTu$lx8tA&u$0>|KV{$CuiV~`!v5v< z{uB-&Er11TI-ZXZP9;Bxz53QgruMhGt|w_ilzkaGJF3dM4} z=ziNwG^xLU@L{K$UWeiJ2CzpCXpCe0ngV_;0ZSXaU*q~Lh~^w~|6ndL$PMi?e1^ro zVK>6(@%S!$|LF00xxsVRd9(bj`^yfW;UUXMh2pnbo+f98Jleq{Z@v0Ogu{(OJ~w8joEl+8Hzkd^B^PE?He)*b9zUZCOA^2N#- z!*zvn9(XrnxE?QH+Kk~bcmcO&3^(8fY??8=A6~$p8N>VI1&o<7d;ngCxc#WwX#Ln( zF`{8#XSB@pZvT;}_M2GyXZZ{-^lpC+wZGG6*xs%E_`H{CIQ|e#to`#C4+_P3j1PYx zKKy|ZbJ%$x!iP(>=3>7kb~v%a0Cs#AVMku~d}^3ZV}f35dW_a!gPaGc1uNvdSjGuC zFOD%n&Ku_T$8$cwo~`cGM>B#C_eKow02m<5d89rY>tY&qv`wQBQ)VQXEhnL#pj6>q zUQ>n_d9VA6PU?P(zffHEl1P3cd>hWiR9{gDF6?pPBc!B4m_Cm4i zZKNGRS{u^veDoR88gW9!TIa08D_B=l{S98K@zRjbQ&u;$UrhGHUAwRoKQ_rPKC?^L zl4CvQ?4UI0tB~qqE$SK9^jBCv(7)+O3JU*p1M7qGA-Y{Ta*MnR-^Fr|LZ&avY;7t9 z2TfPA<7H3=AGKRT-LXM2U9HTx8hY(&gRcmIG3gxE2L%830x)V+IrRMpk+Ka&hFfsqps zmD(t=#@19SiJ~TeaveZOAfO3q#Y+`LO9hje1Sx@mnLtjbQ*B>u`}p`&TYa9|Rx4T_ zM5USlk_ah=ix31gAlf+&mEZ-rDEWQY-semvfu{8LdH;EB!<==_KKty;+H0-7_PU%G zI{v!x5ULVa-M*fo{Ug1b)P6wID@!&{;S-0dmejI@iUzrBr$Anc2Bpyb3qV|C zCT41$kxGxvxKQM$k`&pDC(fR25{))ZXs@EYqA!iz?uGIqLHe#UR_|8heM!oAUkBaA zjMJvNW90L?*eY{(cwg(%V|6lqH6i{LM<{}o=2L0-gF*ElNY}4(hxd)l*gf0y@?ETp z5|MEGmt^RmczE9uZmTl0&51IO*FkC~$^c#mshOx=hty0|Wgs;ZWvs4))R4x43rNjG zAvMw@Yp@Vq8q~J*SSxi0$4CS&8Y5ej`VUljX-WOQo*BDYp4X*?_m9lj1SyoaRnyX~ zj~Gy!aK9^;RCjdgu{Nph-q_Ui!mSlIhd=05|3QDLz)c19`&Gqhx?*GX-0RZAACAm; z$GvIkI+v?Gz5e6gT(q>eXZ&sH-&|Oh+25OO&PjvVKp#99z*zV5vD~;#DB;gv+Qfk$ zna>gyOg1bcOE$NwL zR)Jn?#)^x$&)J-5FxwZniAN#7Y35YHhYQlpsWSK%5a$v4TXaDWb1L+==z^Z+RK8hs zK`(PEtu4C1YfjCU-wbnVj{NpEr(P<*eeesBU!OTOPkzrbrw*0hzUI^d`8CX`Bf<@% zq|?@41RLmW+qJE#3;&0IF?UYs?RRLZ?rmV8o70Sr?w+MO(Pa#dQbGNPMBslr{L#qz zk9ub8Tzb;wrMJsuAQ=nuZy8@G{{!wrxr}9*G-2s+S1X^9X$YSUY@uo7I8ZfFo|_g3 zYd1>ctx@wcio|Y6#|b;EcEV~#ifAL8q;BcS5RZdDLV_8XMyj;ro$pg8qd4GPb7#lR z@kkK$ANE(s?u!l0UAhq*Z(quX4b`ZsOERo*>&W`np0c*qWo%Mz66V|1J*W>Z1BdI| z)65Y$QBMxJ`D~Ka!T$Wu(Y2zSOksc0Xx61K|A>jD1-x$=H*DT_Kg{XSHpTy*$Vu`& z2aP-NzX#s#r5WD?JLCdxcLyBtPX2@w-T^1PlRt+8ZqWShv>eb-J7{C|h%4$3^>QB- z_V=mUQp@^Wdhl_Y=dkhWXKDLSb41B4UHOY3#v?f>UopS#VCK(p+hOK(#<+CFQ2Juz zj?2m8dV{)-X%Z!9R5MpK#CkOMnuUmh?4XE&YK_c`woBOa^}xAzDDl&x|zEt)tx)| z7kOdUTin^nHBV<9=XVFcH|FFqwA=XO+k5^t+ej4UNV`;fX0>u(gpUsyZ~pddnr*z# zTZygI^d6qW3!-$}4!T!)zro$xW5^&;*SCzcq$s&gM*dP0Ua z+|tg4LLn8y6*Cb16;+M2YWhqs!IsP8W{GN-|J6I8WqnR=M zrtrb}G;mh*-2A%2tyP)ImqqEP1g>0gCVDYcCHMtz3=GnWu~$?BlwvG!rQ`8}&@fmj zq6XVf>qWQX_qNaXU|BgW{;0l} zig>`D5={Ii=>aH&8JR?JWriUfhA!PCI)J1!;5mfNq`wSr9Ypbm=Pr)^D)sAy+*rDorwk7TXuBE zjR8_iibis@?yso60<%$4Ij%;k=7i7II!gRD@sOR?o`)(ho@Ecxcw%X#I1Z_~3O%9* z&`yNsbLL7SQi?|FNboT|UYk-7^pyVfRs9p?mD4$I6w9NkK8YK&!gEvQq<>*k-_g^N zx~DVjhKcUA)Q7#EKhy3k9mCSrTZX0W7`qVGy2<%f-TDL4k!Wr;3T8Up>hE-mDud7I zo;930U)TM&;GdeWJaM|Z-V+;8C{7f?HZ;mNNAobvymitU#IROgY=N2dNaDZRZNg_F z@I%2^@#zvjNfrr_bUlgw${x4y)2gS*87TMAobJ-oDDhiL_4_#AxyN_zZ(021Ur2wG z?qlDzKXtrjTkuic&E}2?JZ1i-JWYRtvWlVv{`ACr*GOlf8tVc#Dm%#;-O>ohbVOYC z0@HM7f2|s%41TFLaJzHJ$!9vy^bg`0_ZB@w_lg2Lpx>dq(!DwhmI*D3x1i%q>EQKt z_38}O8~m;AW&x~qx-g2wMF$UP$Cm4 zmL6&%JG%BKy2e4BuhvtD-A5M}Pd8xM*U373|9Z zi5B{ehZWA_o=MO==L|%7XqKpc-q7tNb}YaWy#ROW>J+KDReEWAHIDLh^zyl+3SH-i zMnA3J68rhiEAl+`AbC1btII)Pp4L6y)(w9C`L`+Su|(D*^G6UuS&;|TiYzER{x4SK zE+M76Cg4B`lFpSbPK$r`kfsvi#T4`f7D+F~co4S$?1ky*IV!w*;c-@EwO0&@OAktq zw}P@I)2GGHw)<4+X}`Mtn)oVR9jV{kUFj^I1?Q@#Y5+BzJ)P|dxu zEPjd8flRQC?!KX`k*8g|8_!kGlC%AoE-GhH-r&Q!t8XPIymNm!c6{v#L{83=XoBNw z?AA=vS+TnbH@y4w$t>)N1}$dLUGdf}i}&v6v9QflT<+ua_)jKwg4o8im6VMyix=3P zLt|F#tM#^b>7hCEpz;GA9aCgUl8uXf%Zmz3VVkOto%@F~?t8z{^U2vw%KGi0Uyfb} z@+H?V#_A0a88KGxe*HSe>J5S0=r%Iaxw<+@ejB(?`dpx?RM+(@xI6=o?dpT>qb2cC zx1N(dBTs_~j|9`84?a9=5|G-#zG2r3;c zG-+jNW?;NY2JeFemgb-{I*pT4pZiPq(OgM6FkRxS=x>0p>BLNeor}PM>=pl=u8i!h zog}X$=Ie`7@Z&Z1@*+&74AF68#dbA91KdYtY2?R7qcP{ioO4yi63$!IH?c??j0sdZ zzguc=C)FArjDu-`ehd|2^MRk(bRqE#SPJ&o3bwN^?9vZwj&zKRFEG~3x5wo{k9%jX z2rC>F`UgNRkj_5WuQz8#0wB>q|3h2jsy)%+VE zkcfG#yv+EHTHVwJsh!Xu@WkUbVi2obO#e#{RNnkA1aI4zk1=4)NK^#Y%pSX9C3}0- zga=1jA;#Ml=c%~r_Y$bDO$F+k9xqgHB(^O9$HZ9Rpf(m@Gvq#*dsIkI znOPinZz+p6=vNTa(y!w_krn9TjQAb)ZT|sNi&5R2rzgj6@qftp$>}`CgsS=Gm$`2l z%f41CDAQe!Zg~7r@Dyr;1YuUU=ALwKj1I$+g9vu`piK~>!=B~LD2|`7A&iKM){GJ4 ze{lpX?6o10Z&RGA)$AOi5*zPe;#wweI?{YERf-WisA4rQ&@ZKuodJOoUK7f5peyAe zS)}_d_u*W;*%bl$iGJHzY4pq{Ko{8$l56cW!*?qFUH9wLk00sOg+|-sCw=k{bhqU~ zkmAH6CuNBeu4Y8BvWOQRuDqpN669Es$~!W8P);v0)$Pmm=pmD7N)z-3Cs>dSm)aev znydbY4~r~T+@@k#O-Hqbg^E!*~k4I*I;4kZ)lMf7?k9%wv}oXDWA$ zw&)ewJjn-ZFKw$btff5H=u+BNS=F8Ud8ZY7fnKq>x`86n>FySLgWpNa5?qV_S454B zPNI{k3w9I>j7lM2Fdd;_7^1khy0_%Y){LW{_+@tYg@{pv@C5^Evlxvobj)FE&Uhr( z<0mK}lIu~HVnuJ&N^4LjgkpL`9y&*nw*e5(&p0hmUK!C!BqBky;6Vw+cEHBAIHJ75 zwgYF3ZNa!ux>k*CW%0v&!4ZXRQWYF)L312zqh`T2Y?}^7OXDge;`I1r^_Hw%CH1Y< zm84L+NisH9uu8?Ad6I`PM5n>ExAkisxYnj{?SA_$xeHPl(kb;{F7+duDUl?` z{;0rKhp`hwB62sXrTHQ$*fWR^1PLv_rCYOkkd8#M?o9W=Zee*(RpoUhsX7F2i#~RATP$Lq%eiF~zedF4`OMmvZ$c5?JwMEdSCP_{|nkj#uN_^`;PmDH`W zok5c{Tz^Bnse{)f?s9f8FM?$hRS|`xVEn0&Uil!Zh_(al*U&QrE@wVFbTVXm_9#UR zua!tIgxNDI+!k8UNm@A#{`Ey0gKQ!wQtXS(5Xs#9Xln9#fn})n3MzM>wqQ!%N!&Q&Hzd`!nfN&m@GSxSg~Grl=`LLWob)b&JPw z@OEWN>dg8J5=kdBAxcKdW$SXZGx`9iYt)D@Aai5Ql>=>YDL6_L!YTD(aY?yBc-$p5MI=@T>uB5koIioIRv zN6gbNg?dyUgn;}T)T17QB%69Xl`=gJ^*AWh1LCEr2V2`D^U?7L6pEBJ?qkYZI`1E@v9}!CSC0Z(PtR(qgJ&KWf2`iPR^C^2YU4VZXabji5rT+yuuApa=%U{)6#Z>WS!-74_I@7sP2gaG6FCTkGk5AAZ7H zv<+89X!@UYQE6+c?$be#Q~1jkW+qxqV8a1Wu-H_uY1qWW-6r{M<3crx+t9g`-+CrJ zqz`5B-~Tv?8Ka;Eig?IAnXtk!p$-|)Bqjm9urGg4;g%{RF~@9F11VtT_hVDKjR9oS zi%@kOcORh)f*?m^b;ZBue3=EW-A^QQ<3NXQkRorl9Xj(M%g;M4zDU1d(+#Ku8|b#E zL6@22B3z$l9>mXSYPVgtSt_KE$gekRS};J@tJuUnmSDf?pQ^6v1reU_RA?adCB9G% z7wuGZLz-UWSEOU0A{`2C6VM~3w@8&0KPg2!{;FR!55rbKjDfHfr9zz#P8@V^5!~<( z05RD5|HA$X9ZXfIF$c+!H&!eYtCAM}>54B&dGa@?RfL%My)m+I4r>^rIn6{*?17^a zX*wQ0c|-{!2dnNn1J6(FLE;M@R2knR&k0JDW@;BNErV1aB*bV0m7Obkje|6r{a2l9 zvD1X6C<>;<5|JId-S^l$T`(tbt~oR(zde3pf%+(90!^O+4E@?~e(2pcO{0t?F$RF%p zQiw;ayaO5d(9E`~Th1Vw46Tg+uu3C?7!lfpgB55*$~zGbq+!tD2)m>mA1NF?|fw2F|$n* z2!_{KA^xe>KRO76gAd95&|p4)WnllN8B0+n5dWpZ9!qKro|_OgCod^oSAwrk?Q;0|N==wNDq}I8zOp zD6nV5_v)J+gQf@nFqP}^r;)~r8LWlGi>DpW_t415ju7N|z{7#NlaEQho7bKn-{Uka z*qbo)zpBe}8LvV9oY1|e%+JrHzTg0~s)b)lHeSj7A`F*K#2-qj>&sK?I&J%|Q}x;V zeIgYqjWbF%GBV#$&bmEr9#%>dMB9`PPN(G;{p+ut2EVqThmiKO-^NO&)GMEqiIW*P z^Z+0Hlt=1|DW4;p|6gc~lKvT|f6_PUUm1p01ES+FxSH?j6eo)NnGlq*TXVOjXHr00 zW8K!p982uA#8zv79oI@lvu{j&7otp=r0LKp^YaPJRCWk#2`72b6>lMvIGQd@LX^9HD8<{>;lk&gw?a^Qdm%=;b7&pB)7*U4%SU*Nn z1~T<{-o{=TDgECm?Y~^wFZepZ&Xg4m4pa`kM`6|~IYjQRXkRg_kfW!-O`JWvRr!4c z_t?~Kh3KSuL*6QqMT!1b_dw7^Fb*&=A&?8L@*cOX$Ak%Me0l|Ub}Ezh z4d@xzpHg3!?kRr&Mu@bGMns|w%i74_gPrvI<`;>J<%#sN<3A$T#ltNKcjhNXST|Ni8mtPnicfL1TbiS`o(fOV}p7S#rrIJ4=i~n^JkIr*`q;A1L!ZV3G zcT0X_MqBV>Yb-UXj~J_u68+Y80|<^bzb4f{LmEY~9X$53`o>{n*|`)ap0#zP{z4;? z0T5brzWa6a3;C4svzwsS)@PKZMyX6&*#`r)+MZ=ou~7YTJ55RhRk2wc4P*86jrriT3vyLuti|ZNTulW0=rm{Hwh_ z?$k~2(1gN8j*I2t@=0AkAG|_+ddX${q`$r-$2OF2&8u(qx#K;=OrGy5J9+um^4WX~ zlg+f1?hel#d;N>QhuR#^T>8cpD0^sJmQ1#aesrVq0~wg#{wh7eD=gDk_Ioa3p58Iv z6sYMh>cwBMF26leFYg&Os>hqdAGARuvtt7WV%=Mp|0YJ>kFL^Y!JU$aGX9tbXHDUs zyQg3uoWNW+fuV1K3oGyf*Z$eY+`Tx|WqHH(nT4B!+j;7^j3u!6RW4(4XC6R#vsA#v z;s$9-;qJg<^WE^i^uYNY$jO!QlIQ-6hT60-{_F9-qhRjl@QJUgrpJcfAKutA*UH~x z`f^g&YZ zy{B+@u+dG3y00MGHL{yK%Q|548ubo{cec<(ua2rTfGxoNu?d zT!CU{wC2x(jl1iuo}oAEYWs#h7#Z3es=dt}-k6qnJluYw>esaw;)k*j7c+4+TZn6! zxJWI;r7S(X(IZVLUuykIreE?;8DY6xy54oE7@_l;@zVDC{k>yZy}3s~8}kjYq=zeq zZ(_UAKeVZ>_FU;$ecYEb(if^F%vQWU(bH*0T4>+M(3>IsEmpMEi$zNOU$Oh~g*LU? zFVlFtoICj@smGKG;WCENc1_DalK3KJd~alY@h`!SwmhnR0nc`(*i3UL!s|SRpH<9Y z7H>D}^|<|&p|%GvxVMMyW1Ok{x;@?Hs=5l#qr$@#m(%at)0WmtcfYK6eT8SsH|sy_ z9rNU}0^P2^rcp=YHy}Y){qZ!jSuH*0xs(5*vd_;}3lNvg7too2ltX0!igO|ZmX~Uu zf0!B_`}_mSi{o=;lRr+mEGVOVR>O(`+8skY5Dxvr>8bw3U&WKgKLPRAoQIvfc6Yd& z1$PG~`^v2WGy9W!d4h@k-MCoXfo;EXfWXb+Bu)_XaHyC!fV$sdfd&97>-Y}8NjJ}Z z6vX*u9v1lTd`uaB55;-@4=UnskHzyt%37Z^y38}+L6-9yVzG~-Oo}TgN(xdIrgVY8 zCs*Xxg-+lWiot&9L>or>+D89Fy}YtJ+vs=r`;>|<1YR#=tJK6W$<(n`=S`j6UB&r< zZakq~8s`08oF3>(Dh-2l4Ho}~fcQ5YqO-H{dp%Ak4t>h?XIyWgQyciR{ayuhh*(#@ z*M7?DXX%I+liml~?KOodD}PI9I{LT8q*rJ+KQq5hoYyfx=6fvE&58$C%mmp67%vT& zZ#G{d#6WoJ+b+e9g1g|Co5SzADuylHFOGu7OWW}Ff>s1`^;@2sE)k5rRvre=he(8X zv57aowkt1x%H}1V-3PV*phD-Hm)7q`XMtZ}R?R;G1F1Ee#WyhjNcd}SMJ9B1o%J~A zoL^@Nw~l398XNFDD*RuJ%SkVMUw+aQ(;-8_YOW*P4$d ze)5v=lb24*PZnq8!6EL>Q<)w<3*rKFdXBPqOX0hLa?{c*KkBxi%?37)|?glW7R z-0pq{Vj&#kq|GtHNxwBs&Dc*tFyy;X1{ME6gd1p^#6RdSAFdrZ3Vu=ewh=zW;Kt^q z6~0~BCz|z|gCkr%t)OZp9U|Zlvdb9|8kRiRA zP4%DOeytd%U;8g7TAUHETll@$pOnAtKYA~HL;P)*ejtot>1J6i zv&~Cqo6=cN;|*Y^(tn5euR>P>f%<>TA0Kpd+Ak^=r~OZX4xngee%)(a z>39N<3W{_hun&z>D|g-#JJfIG0f_DMHj%Xx$2d-c0dW!(N4q_TXB)v2&{w?19Jjoa z4cvp)9{QYnkc2&7KxB6+1`~XZ%Vv1WI$IF=OUB_G4>R#$pYl zee&3@LiY1Xf3hD)B`BUoD*@VeD0}P<<|FA)20m(ksA_)c|*Qr*prPUEP^hdzaD zk;i$(r}QExqt}Z+!~)N4wd+?WQ9+X+zq*KLoM3_gi7!;5PL@9ol%v)J*G|Hu77Bu*ulgl|k%=>U^!e(dm>UZP7- zfl8VY^ya=-*-ND`A23iwRYz01w`zAZvSQpuGN2r7ZzV=I>2S%Fp%a{wkb^OZ{`8@h z^86T?CfoO6XT@IdQL@w?Afm=2Z$vDkW-On`f0Nsf)RPF97?9EVDCt^Jq?zyQ#CIgt zjsK%i^_60^{dvJWF?xiAQP<3ZP|>gd-{?`{!sF(1}X`ka%C(u+Y;}+DPDx znw6O{#ZA#MK9V*@C*>59IdF$DrXCGdbb7Wi&c6d?D|f~=GY4YezJWY}as)T;VqR<{ zAPU%2XWb`|G?v`Rs)058*k;KqC|ft6tRyFUWKJJ$u|Xw4l(GDW03@~&yYX(+sx~sw zCQ>CEkxW|4pbF-c#9#ZqJ)9)cGHSAUWW9Qo2+Ml%E-+RclgW!bl+&Om7yDf`MUmoX zjGBij`en0wy*=zN(;Szznb-tov(B}WFC7TB+6gh@1ZyOA8aXlI(dq+wlfC@g8T6ra z2i@rIT-H{uvd{>kF9|vRi=}G!Vp{y@EvdbDjz`uPL%CJ$W6~2`q3=E7BEWWn_TcQ= z)2KO@R!X{BGVBsgx>=?tGKKC()2t$X)cn^RCV*k=$L`_PL{tBeYtTM4qF@N2ZvZUO zilriYRqt1HoWM=xnW(1FN@NJ;)V$K$+tz}^L2J1bt*$*q?c;Y{$BZSlAeXsJ1CIeOtU^m za_v+qa~&~^x9U`i(cr4`B{YWiJ_s*|C9{hn!3TQ>B4yT-1jktBM*ufg_YEQ9)Vu(u zgpYcRNYMpyk#5x7$wg?fJ7CnzP*-X5jhbSv$b-#rxvbB=>*zwY z#EPY)b`c6S-0!W}L!gbG=K92T@R(dvGD^&K;IgIFO=@1g6N;V>OGG$|k zo?pF#HbY!KV6q_yEV@YDIZ}N}u5^-JAsQvgK{mj@M++{c#w0CxaRz`GuPRzlz$5GV ze5#k$3%QO=r)@8@T=nXR>^~;daTD<{)lDO^l^fQG&V~M}3TYDh0@ssYW;M91|KU=| z=K`O(Ap2!uyD~|{DM=~5jB7PIis&Afr3=wDYTCFW(yk)6O*Xl0N+q{VLT;N<$gLW8 z0y#z=ypaB2epP2xa>Xa%jTZzxEWO)BqB(pmb8@ieRLIpA312LaT&eZ}pnr{0tt>ZF1Hgw9;jVp&>XW8H> zJRWSsy5U^+(fn=d{Sle5p;h6H&0`9;2S1T`H8en0$dVykFs)bzPb37dr|O)SVWIHN zy~9^6yQvAOK2k^vRS`{ijYuz{NyDrj{HQK6?Bt;%B(3o5Kp$BN@aIk3h?cU>j(^{X zd<*6tK1y283%O|UKPi2*`g5%U{Jbikw8rrQrJ0S78B-Dc#t)S2?~UeLPD1!&impmK zKo>EtyjUhE&ALc_1nYg~_-q({%`lnI@j2GL{3?OrI^&^wt_4*hFPtS8;O>_LXvJ>^ zcm9}tI?B-~%umn>PEJ_Xt9nw*WnIaSS`f698XhKYtsEN9$RUk==fm9@NcSQDj3ols z=jdI{(kAk2lM6(QY&Hn#sPTNqZnjtW8Qr-hiyLVwld}>RW&-~U`f$>0(B|w>BowN+ z=i78n2@9Cj{rm<1BE^?;^N9aRyeD=THUG)twUKY>_qZe#ca_L(7!)i~Q6+fY5#UPV zmxHQ`#u&9XP@33ar%G=xGoZ;?t(JJ;-AfQ}>ea>={Qs9AR!_IvrD&g$ApXKkDue_@ z1^GJYI!q(-xlC2}?J7B2rs?07Z2Ciwl9J7Zx?R=<+$2Mq^)3h_$%1O~;X80si+w4j zeFXK2{c0~Vn)#lVmE)h&eDgEL`emAdDVAYgK^%AMUHFl9tc0$~F$cp|S#$;i$Jdqk z_-pk+TYOwH%^o&GXUtq8+>U1cK6M3w3Bqn4sS`}Fn^zLgVO83ga6NBfRcf!eq!2&e z7UCCvrba(80q2El#8Q1U;pNhYkIo9>M8HA#-dN~wl21XZzAp_^k+tz&v`clKe%F4C z=-}|0EZB{?Aje!V*!uiZ8A^!$-CXF2u4&~`?;LvYQ7yJAQG3Os3?34+l>zh7<5!8l zeltpgnD06@ie~kW%IRisO}7T|wyP?^tqVzpvKO)6h>VdrRX(eECC-@ClycL`la{lf z7||PnS!PH4&$wl=M}9sCxC8%eu{t&>UG@bNc^Df*?#O>`KW#5_1Zp8iAHv5p&Y|u4 z<5blObE9>L+tJbv@x8REa1)EZiv<4+66(LZ`0hH-`5;yjh5Ccm{oItk4nvL!6I<~zDf52wGE3QOzHO^tgj0yI;_&C%(Q+9vl_T%^1AzDc@B z!|Fh}ImqI&8c*OT{c5p2-2_9d3Gl#rSr|!mi&Y6A3umIwYIaiyIsK7!p<{E5N8j+i z9h|Ji^{w#j(Bd=%_Xe)Sg04BVI34NzuYgL%-|=m^=wa0SNfq@}um$1@$zIM6t#5#= zTyu#NfmzxdI#y-W+y*nJev016l~BCM$AY7>Rk&MKlg6`KbTtqgm$glyuvUmHD59te zAk!qSLY4wmq9T&3&>BPxTzAcKjFEk$DH@3=Im#U46M=)+*|DExHImbA^;eKn;oBnm zwaVsA@j=K-S-jUo`G74d*P2x6D1VR{ZGmy<%g6&rXw^HAK~{eP`6yn?-piIE1EnHC zR^D_*lvi)uuSE3LZD8ZxL-)xR*2nV5N~0OJk#p5ELaPe7n@Yo46(QYW-OGLE)ts1P zP8@6zA&hIP50B|yyCGl*8CnAO{T zQig1sYKb`K)qKi*Ygp8UhUbChmJ zTA6AVwmAWPKpjy&k<^sWmvExCXmAHk5X~j=SM)2<+r7~VzSw{~a|T2PfRcGEOu%s&;jdYyFCGYNJU-X8&*ur+DbPpd#0e>tyd9c#pN5AiNZ&sS2Kriuf z+>z+j;NJnGbLGB8UiFyoywSsp5$&2Q$GVT788+H6|3&LI(IFqf5mu43x46zugtWH| zO;mi%1U-$Uq?389L-AP>zgWKngOqNbqh4#_c*J}l6PK;)eYP9UUR<1-r^Ua}RirQW znTxSP^|45!lZM6~Xoua8ZG#_TwHY0ghn4c!jTMulc%Jxoh~KC8zL6q8?bNUHrP@Ei z@GcAPaCA_4B6FcT|!Yz>8SB$iisCd zi&EMSeHl%I%X)x0+`kzGm75%e6V3Ox9?E#%JSItckC`BhC*v)Fyc){Pcx!?z zl!d*Wg#!M3JYJ0+ZLj$i_pOh!rI9VxF9AfnxKMU1r`^~OkSA(me;!x=9yz#epwk2< z_#WK^>t1!!2cN~-c)wrTWe49VwHrwQ;z`mzRwWrb{dMMq%;*eU`SmCxC(4?f9{;v3 zuGge{qbXY~XGvC_b`e%LxsS>stR}BBnd8nVuM}H86=_D68TqeNdo_~_7FbV-#0h(2 zDGt-beMa2SU6MA6<7G&{AxWl$4o2qdSA^Ft%#4H-}*R9uk@pz}3#frVV}IM_2~Vz!L4aYNDRuXto_MsR@oRdS%0 zQ+QY`&P8!=jN6FL0B_XFY>7;RHmR**U`NYXfrEINE&K)ifaYpX5}o85J{}{%H_@ny zqApJ;$W9}25c-VY(p%*26Y*SxRI|G2Uv$Hk(B=IC>a)os@z!(~5YI<)TXPs^cvkF_ zQwli3<+Mti$DT~tBd}fRqJ6KNdS*DT)b7ogHGfC90-3#LY{x(%f(D0MVYIberQk`!B2V0*Uov4vj6a2qi0F7v<^R_54?84?KPD?t62vzRxzLBU z@8w=X@1E9Gs*U?vXX768leJ}-bV%*om7aezIdEkY6eOU$vjGbB4lPK(ob;h0(Jl6| zzwQ~Fi)3#eC0lc4UaYLWa2@(j4rWCWG^Uv}+QGTQXAG{o2NGkfCVY7P$7D#~D=F5M zwtpYT51ZKDRD9c5jnT@nMPP2ANBG#V;P8#3+{5(tS)p{{&R~85jZ}eO@BuW;`iN4r_ZnL`1MET5;*hx6f z{&F5Q)EG~koH92IhJEv~ZvBqIa)?V{sJ$La;z89Ch-Gk+^&sC?4(-WWiD9aQ7-96o zZONFhIn5*O=GUpPIiqzQvOJ8)Q0V~5u?_}LZ7DpSR7d@Ec_lb+U_ohSZ|_8en4;WR zAscN@HG;Paxf!1qox;9x2Yz*B;#XIBb9WQscrK1vaR#l$~nO5>rqmq|C(>HB-=|ebi$MU|#$FdyQW$TjRV%?pv`tTVc zoz3>9)Y_J&zNb2JVdsuKWPex_G?E7=zhW)TbcnOsth*1RZGbmmuF?6G9Bdltb_`xZtc&jQaEJ>l_-}I|V zRQ#(t&+AxrpyIfKv>`G&!-miUG>-}=vnIa`8oI1^-&4b5&fKACQd9iIaMc(PNFn16 zb}1$C+4?g~x2)}(IzIAXCc>`lQQAlQbbo{gh`?N7x9qSMrfM&imt@y|siSMK1?a(( zwaRijO+jaJZ*U;`n7P6Js9|OWePFQ+w)G;)G8>~6b|YY8g@TkN2@SzbCG(KeP+4AJ zy)??la#CkkbufNU)a&f-FmWhtA_*GV(HkqrorxI>_$kDapfzZmkdCj{BLuA+ZWYU! zCc^JwLE_RTmA{li5XZj^Q}`=s?n?l3>|s^J@jUx2yv(XZUM9P@at~z=WE+b&-52WZ z%;;2NK;@h3Om?!K{E4CJW>+A{fRb7S|UgCcXIV|4_*%~k#qU!fYw#CSeY}71EPY&T-6nFHV!W(zrhJm|EMuIPS<%B&!~>t)76!z43DKtdD?JHRgTK=@7z&2OhQXUZ`cB8y(+pvQ4($f zqB8Ewskt;J@|b7~rSX537pYjjQ2`s|zV#UQ%&iUnI@!lF^JZi2Cbm)Ouvkfq3g)x1 zPaBSYKz2;s>hYa;Z%PaxrjvYMu-n{4+_ifPfH)`n4R^IfZ2g|gPIUnit%oo(a)YB6N!`nk0ISjLxY-xK0lG z)$SxyH&$54qO!gCBfPRhwEYv)x&tgj6`qQR{cmAULoc7Y}UlKaS~k+cI{1J*U=xNy;0_u6gd2qdFO_XcLvHkN-;0Cb`x{#Zj|SYk4_p4NpC=t zCB|oLu*Mz5>3Zy!Mp%q!F$9u`b4W>Yey4kJ@G6Bi(u;bO9=Ts8JJBRxeYfNB??gKy znxsn=lfM+5la+w5umtZ7j%JkgX-;b#v34pKZ?1G3O6f zC!N-0o{4xUYcYQRP}Ms%b7<1&5(>`U`X(Glux&GZTy@B6!i+ogXwm8&%;cJB@jp7n zThhf`h5yU>VfbVk1h4#NWeVvTC>qXm>>RL4>YX&`s;^+@v?{b{AbDl;cmV-XX2HKo zr3cdHkyU*it1)BQojg^>hBrwu8S1>){B~9VRwrW*hmWGPI~<)p7>E3^JI%J-W;qvG zHdx9cV`6sdI}d@%y=%gk+uWb#AJP0MG~${ef!^Z_KMj6ixuyP-CymHarY%4&nRuAo`(&R>q>DAgo)vJ%#CxT3Cbdk`aer`;@{s;ut zr~_C;7bKpw@&CS(d6Z2oLu{H9uA<)#nM)C)oqhA3DIwqyMiFqO1xvlNYi{0E_xZW7sq82q)aDxk5jIrxc;<&M; zT!Z-p;wkbto1qTnb?$m|CgMR;%rjgx*n2Cl?N-9ESucbSn~UP714Og+;+cMr>R)C8 zt70Chu(H$Q`|~?>`UYJ_cY3^S& zcHnA^QD`rxY^)$#32U!&rGNG4x3w^7F8P@A#H~z=(vyJ5)_@%>sqXc}M)?1*B}mZ~ z^F6ID{=Mp&B87{n^q;AVAEp@JVyd<9Je$1*s{viH`4)5XX?*HnvZ%2pN6L4ENDnqg z`>cs@8++3n|F1k}5EUout3RCNWGCT1r{QGWby-(zcXl!}VD|AFbWPx^(j9D2Akof^ zh#X>>!B#>)s#8D3M#^x)M4zP#VO}-6!F9>djib^~@f`@SODE>5h(Dz}2!Jp4ODgkt zd!m4RvSOTpLDt^b!;d>^9$6qaGEU9{shz+V$^I;sfJS5=jpYlHC3?iL;Oj^H&$@#z zi|Vo5XO?H#rohhzrepUv1*J=6X?MEaPm^I6{m+UJ-mz&~KSV7$g%H8X)&_^At4gc> zL=N`EXnWK-^@-=`;^b;)sVhqQY)SkfeUp^)8m}UYsl{g9oUWF$v&kEV7EN{>&pI8f z8N^{Wt6Fs|9fg>%2QiG2-C#X#C))qE^7=E=O-QdU)|f8mU6-p~CGu0WQZLB{kchlm z7W%#_k=y__=@*h1v=-s8qX+7IcoaQwOq>Oiq&Lr4A2d7Ygs3eDm8L638NNf5;T3kp zh%}&v5xI+sO$0x+w}jI?AVSR*2sLc{I6f8o^(?(COloGUhRBG_*v!8!Ys#n2$B6&( zJ!c819c-U29XP?-F|n*~AzW+ni2Gvuh}#@vD^o7v8-;!-U2~w6l=SJrF;Lslh4sN< zv@rZ2`b3VZQ5D|W7kiU6^@()F1s?x~Z~?Y5%ItSD{i^6qvCyKvX~P0%rI)UBuM-c}{1YXlo5g*}&{BP?!qA7hP;>Q*vOD$1zG3_cz> zKZ%aFsm^4QS+W#u=+jA!7#-Vwnd+w_0guxqbw95Wd5B(eZdv@eIVCe%=3``wSEd)& z+2R?SyZ-tOt@Se(|5IVMJZrp?0W17kk`)mUQME$^v{XwJ^?r?AUWy3VER^bk{% z*nU&VvCnrrittDeu#D)GY|dPfx(b^Sqf$I!E`vuqLyEyvx1*Xo9;Oy&NYQ-t(cff9 zv48Q`IYTO&iqLmE4e4P8+Ng6twnb`41#zZu7PZ5TpT?SWr8I<-%_x}`e_g-f45=en zPr_3Qu?rE&81t#}3?nTAcrELC`ARlOsiXOyx(*Sj=gT+6p3@hdkTWV;CC*k`jWNW- z0UbACKs>fSw?2J>y;YfpY_m2#m)EIROHQ?yOAUNTq|U+CXf%Fv1wB5?rjAsb|>3tAs6N9lx~bHsh*IfNj?;nCK}60 zS>~i{bCL{(c)6ggnL1bYM zfq3P$8($YJw0zQfY~=LG6ETmG{HGxx1}=5_tJFsyD$o`&TVx#RhuA@&l@TqGqgjXS z)J==Oq)VqmOgL%vV|IMBJ#f7;{T;~w2Zj=qMa;yXf`W|~iZ?&cMgb*j{aU{+DDWeh zrxTVTs__9r$)DYnDra@scIK&FXT?1nPs@4yM!QmVBtN#J(t%WZ8PbBijpf^F-$~oo z#s^bOM z=@!F?@BWUAf2Q?EZi;HUj$dV-jpqYAuyl<{k_R?=eq0*@{gkRETDoR9dC?>0o3_fq zTEdmNu7i~u%ePQXcP&aiM7mEmhC`%X-&T!D{MZo!%G8bI2BbkhPYMAq$ycBbXj=)_ zlqu=3^a)bokk>_xX8rsl#iG^qO&Ia(dexcKiA!w6(`Qn1?W(mH5V(W71YbHIOQ}ks zPF5lHD!)AIZ8^zBtx2q6Z*0W~EYh%OoVk}NE{WG(q`Fg6x1b+_A~yYGD3HwxA$fDS z@fz|~yK_$k;Nw|Id>IYnf=SVii$tFe_BPwX8*Ww3+wo6xTx4z(e{y;gr60cB?yfCyJvo5YKA5|VD`%2!kVar`xt@e{8@Z-U#W9OvOP zMZxR@}S$(&5-Iw#X&$xdXfSSpj;hv_BY_0i}ONwg*jx+II75%~iTRk7vI za@AcS zzR3+GApnUg38H^;v94H7OUGD$rV^*d6_RkB&k+n)<;)a9IWsPA#jjT{p^J+v*6@n1 zgJ3cbP~ORub`zG?2V+OLqq`2h2aUFbQP_=EPnJ`(h6B! zZF1~?uidEQs<(k}s$7ARDX{opt#4TSC>0J>Pvsgx-A?%|o%y^K-lLF`lrld=Ba?K# zC8{c8$gUmF+Q3jaOQ_)c!Ryr;5MWVeJB}g^oG=nEYx`uJPQxeCjPMX)tTXGZKkElO zUty?pirL7U#3ZX}1+*HNk^DLdqW&eIxm6Xyt%VnjWv_7y?|9pdUn^Vq*DPhT*My5r zp2E1$zFul^Z~wcoI+EUu^n6i+dR~<0Rt3y=jMa~;2NYey2VL7+FKWp+D$2XnMfq5b z)E@$GA0H;~cGPy!`x#C>={9Od((EECtM2v>Fg3kseZ~oMd$hFCc(l&DE;e381=)fa zv%HjXE^MqAXl^Fx*PHGm>xnLp!IYr9mCHZ86|A!sa`h@r60JOv%d*wd=WY3WlD(zB z9K%*if6sIJs}35reTfjHqjRwe1qkv@Pfz8lDSn2lS6wM%EUucrSnu6#zGF5T`-G;Gh@{cGGxU+$ z`x*N|c4Gfam{3^`kv-;mqo&7s4$ecjjhdqKX*n5lys@yjeK3B6KrM;i|4mtWbFIX= zG`>_CpC-|%(rLW;K5aQ$#?^Rg9Wpv$&3a2;P5x;lH(8OWVK%Gw&y@L0cbX}$s7BKK zbkdwl;~%-kxl5;L_ot!#ZZC+oL7KiU_)26?U@`}proW}Zzn7tPu|iMaf65g{P{mCh z2oxIO#*+R34@U9gVY75?tQs?s@bL^|*@aAjwUbA(aVa3HsJWSRh0x*ZMzr-2!A_yW z=6lBSYOcGDN$cz;iW`L#KgRM`M6-^}i7#I$g9bH5c_V=#H`v}R6A;*NncJ5Cre#sS zwvmR%M!0j=OQeci)XyV_u{Snq489#c0Y>?Z$TMiPQHY}z{S8-U^(xGMHu@XgFSxDG z>4@o1cCUOa47IysJ^Qp9LR}XBp9@qIWe@xwtzukJP{~H?1V@>LyJT0fi)>oPxUGdP z>ge0>Z{a|F3Ubz&#g{E)GehNj($%;izdfD&V$D0;wC<6?;OKHK`V+%;mD++qdFZ2Frf zNWmW*r!TAPXPdXO_whHKtS@X(qq~p&e~9$;k!&q^%`XW^7@yuH{WAQ)3y~;hD zMH3Nr{1e<~LiN1c7CI*HPI-dUTHc-VdiWUcUdp>fZ>!(uiE2*cd*j!Qv$0X|0Us1v-yAxTQI&@)W_#f8d`A}BZan|o z+hU$yP|&@Oo7W1X;QN)0)?dXdP%s=sTW`D+@VC@|Im zWOQPS(^RQX^+>@r98m`b0j5UMR>DzWULw{vBmaaOosymc#jVWXTKK83PE~SaSdN`Y zJGE8{|ECm|dVbnlFurb|r?wc%+@d^1Vx_GTW@RfbYC<0=Ros~N(=;haDf1nI1h9cw zE@I9ZgwKbAVI(2^;(b1<`32IuDOTOg15tgA8j%dGNlb&y($FjD{c3S5x%Y^5(Hfg1 z`{-&qb!MLgA9d81I-6)Im;b|9{aI}B6XEur<@>`Mg|t_`V{PXZC7Vl8wX}O1VG-GRKbS!8C+L3}Xdr2q z?9jt@d;8JeF@?=R-Cp*$cnp$#^2ssAxJIDTXE`+G000If12I*OHLEueTx1>1e6hF4 zkN&mR?WjY^RXde{Y`qze{JP=6H5ED7nRogaUqt@ldlL)WD!*7G<1;E6T+_+*+g1}A zHM^KA@ngSG(*0qug5zI3VXDbfaf3)fm1Kq5L`K<7CYeCfGPa8N>CuoE$ktI8u15}x zygRRv#TV(?8SdH~s*T;|jrNtyA6rA5J(*=F@ev(0hAmJr@7 zk+&%`i4rinrr6Nl$sz|-5f!P3!}8~)rkDKtb)oRalTJ5ww7+l;KD$Fx#lz>7knwGwQHBv`e(HxuKT*&0hZ0CxbI8Df~ zZ4uERkL~X8)0X*_JQY$Sh?=Bs#`JhYe?4aFteO}vkKViKuJ@+?S|4&BSP;p0RsT2EhQhZp%< zTtPNz)f>V`dj&I9=W^@utr}uIPJvj7TgtrS3Vhq#3OQbVxbS4<0Ju3-2x3HJV+E;8 z`~hXv%(}$y!pD0BUWt{Y$y<9}!A%1HF;iIwya zc)u(77_bqk6h=_eQ|=vb1(&OPKj5C+_{bITVz_Jl2v~^pB!02W+~l>sFK>Cl>roc3 z61gBrax+A#`xKg>P)UxTn~YimC#z_0V(^PGDWQmV+Y!+FSX1dIox-wN>_4ucbm4nO zL`Wb+c{x80;kgJYN2~Q3MXmP>1!{|O@~B4qJ^5^!PIbic!G!;EQXQFX_3=y*?9n$8 z@}Q1Gt|s9VvFhzJ;;#$yq}^yPZ`8F3pZH3S5^W|Cow-)=308d{#{wCrs>Vuxcc%b0 zvt!-Kx*VYTV6V$2HB<<1mTVNEN!IuHeL0(1783;jT6;Zd9QYh*T#kvMY|piA|0I9g zk@{@IztI@CGh>}mbAvS0zhQf8A7bnIH(2}GTBrqfhJ;DZ@@U`mWcxVY9IV@C&6L(r z=X_}$`(~FMm&wUHhjNYh)HaI6S(;9W=h2WC$R>F*gCjetEsMXcMmp1)q^ezI3F~s^ z^?LP8)U|3}U(rQPGHbHUFd{!<3WXAab7dU=FHY(GT2H~pA+-|zLCND*6}M$d!|Ji#MEy`bO;Xyuc45wAG^GXSSs#%@ z_@C-TY2_Ymwc<%!ulqM6F5wuIpuI|I$d$h}EH|YNbX!tEy{=*m`?@A`i=3nm8x|hp zAilgR(o?<6O+QHTq& zU0M7*xU!-zC>i5o?nn0^79AwUsC_=pDOh_?BXTuVI+|A4A_S`q1(fQ4P)6b+Z0a$#4o`V}+0CuBna+Q>aGZJl#$x#_-AQ8G~+n9aIpEOCDYtH4|9o9S4{& zWZEOym zL{^on*F$Iz>*eZ+kmwKPL@l%qS=B6EnK&yp2FYY)d+}QMxspx%t1x;?3MZ`H(v`?1 z!;njc&0J-K&y{t8V8VX#`A@&xZwn?`C|QfYEQ~KHlza>diGxl=4r7us$yz0oY~dL* zU*GE0TnJ;lLjM|0crY1L^2yWgO|W+*qKKQrDN+g#y9z3$Pb(?qaWl9|q?8}>iH-i1 zNGYq_0j!7`WuJa6zsBlO_V(Zj;V0Fr*dB;V!B+jH?h%xj@iH0;wi&QVUY5~8g!8Xt zGi|?M3v$>VGExObi=wIuIaBC^AMoTz+m(hAs z>gqIFPpi@T&SAO#xZB^D>tBOXkv@*_ULNQ(y0Can@N*^2>2VTwDXDxMzEW#YP)4Ru zqZZ-TunmNKaEDWaFneDLsACQ~!53?N0YD^yNt` zUB#*t^yz}7o03@iY6q77nK+?>rC4+}j$+K)i&rt1UMs{rX%~-v=pExC>72or*BFs7 zZ9Jnd4|TrW&S^mLn$&f%vg?F{O7?`aG){2HI-lwfM`j3#gySH&ctvMDj#dC&R2%*s3Hs6P(>>BVq3*!p$DBo3#4sVHASsOAADLLr3XlN8DFOFfH%RZscI_{R9Vx!?~D)C{7k;|3UJQ zq39Xo<)FV(6g|fDR>aRj8pVi z>P4mVu2a&kVm8(=VN36R#gmV5^YS>KMEgxVmC)p zKN0U<-3#>;zl{YNA>Sj{L=UB!gj=71z0DR>8DeKb{=-t=tmsv!r_ckn#exIP;6btk zGWlgQrr+nnj&G%EU-qo%SyE_taa+(!Z?!ej-Q1D?+W!J!aYSSd&Qmacy{Gu#Ehil>!TkXn#tYHfN2%^A$W-;5vctP_Q(0PNTpjz}cLt zHq*t2`D1!re?qpC-@n+uzu}iHu4^s7oV&Zc{6VSbNf}pb`@Bq!8QlEJ{d9h1_POO6 z$UmUJt6A>zcaZPMOruA0p?Gi!uCq^YW%9?i+%=BPCjz>wiSK-IvVGpI0Gyw>a(FL` zU#Y*1@0ReKX3rbJb9$@W!87@9FlC+pmQQfIe#zhe@VA=3jr{H8?<4+>@Yi#q+jTB~ z-{$XX{>JlH#@}rID*0Q^-!J+5AO2SJw~@b{{C&jV5&n8!&-?t1zW?s>dH3F(eQExc zg$0EL1qFk%FPneQJpTQ`ytx5><^}}#(OkLrgF7o`-JLz}{_OIruD-IMAn&f+?7QaP zdH+4xm9xq#?&ba!`IqNio|k>;oIqfH#jqhm?$otke$Tvl_spGDF)vtt*R0F$n)jn2 zfqC=h-ZkgWd+#4IcW&j6zBj*o-hH#~3S?h3tMKZpuP&UOcXi%1*W?uz-g)QH{3{Cc z?z;O2L+`q3*44A`%$t2x;gv%Rb6u{Yd+-0@tny*mMMdM1pB?g}`vXJnzPI9s6+?ay zym#*1-;?Vh73Fsg(G8eCch-XM*=^Dvwmb5@@>z3d(YYb>f`LvgQoz5{ENA|l-;Nn| zxje4J?Wmm;u3o}#n(Hiu8-l-rLjqsU?@(Tn1?1*`qxogJ?El=Z$y|*}flGm#QsCQw zi&EhGfPb0--^(^g){Nk}JI!#_0N2@TCyfY~{{`F%oXvBAR|AuD#g%8nn}G9xg(}JO zAM@+{C;h7d$iB|y5}ym{&m+Khj7IUxViNfGz-?n)u1^Xy{37uDC47R#DbLpd@BOC! zzMB=b5BRGT_=LbLtZaVex!CMHS?zMY!LPh8-V`HJ%HIN&!=Gk@c9eP*}kKY{nA z)F&o!D^bsXpZcY~_kh=?JZ}eXT?BoxpZBAlTT|-40yry+hxA|CHx_tp%JW&ki&9`Y zg~}SFI-|-z2K;!+^E%+n-|`LndvRdrKN;^Yy1`tzi{{Z%WtK<1g!10vw?*eCzb0^o!QQ&7% zo}U9VTshXATrb0cYg3-z3f%fFcXGYl4}59L_Z|YC2<)tvCxO?dw0|A&q7?WeDSwIT zjOx#qz>lXqzX1A_34e6fi(laH3hkBt`&>5w3olpyrS*5+0z*&o-L!r#2}0}qhh*vc zYZrKT7dQcY2lSAGPFH{EMLLW=1PlpL@Hd6=+y9BIaCsMaTna4TD@}o={C!>EMO|RC z3;eqjSnB&j7kFhCSn_>1|H=0@cY*hJfe&|qUC1-efAT$V7uWzE^^(i=5zl0Nz6(5m zwac}^h9>|&{J$>OJ2ref@RO@L%9jH>|4ID|yTCsIp8s1dqe=b$0USz!p8|e31%3|r zNnpe;)t8pI-}n$Ny;lF7@98JU<0~05}BvL;L+&;I`j$N@v4Q0@wY)<$5noe}6Ublg|=f z#jbw~@Ey;&T;H~z{~h>YcHwf!Bi|Db<+hbtZWY)-Xw7`VrDR!wF9FU2zRa$#5cm$@ z*KN2MIQvCXR@(4Az)u37W5Wx8>wtYW{1f2j6!>xAR$zurwdXIuZNP8a@CGRlGkwd3 z-vQ1;`v1y?KN0w4m+S8~+=~xozXHv(;Y;Mhuew~H+wf?C*V13R|2Inczaq2S@Lb?L z2Jetv-jwHb_DcKt)4+Gsxm;J+@EYJJ>p2dy;jO@}>%bQqmf(tQ>shxp+=qQY$s5#R z*M9-8@HbEn8xEgrW7LH16_%Yy;X2#Qo*8<`Vz;M{Y=-Rr`ty4>a0$;RaV_u5dEk@4b8L7ba3(fWvu*fZ z;1KYYHoOG54mi(-9|LX!UTwqw3%qid%XQp_-xj!q@wMU4rF;rJ5CJ)FH+EC@^AW%y z;L$cb3%D8hZF{^cfLHEuxfa-POx}OjU-71Fo~5 z{|vYdm{(MLp8;A4ugeb`BHW5cUxR48qa(M^>0)%k9Gv1rY z%_|=7?Om#L)KoMSY3V4Spi4(fMMY1O0{#PjKR@PXXXcV1S}c9H_V@N@&*!nn_Ymzk z9&e)k80~ih{T$jj8R*7)j`jz=_WP7a`)uI9jrJq7uZ6alRkhW#xDm`#UD<%!uU0d^ zP0Ld;OOLDexD+#D!*+6`A&qZls?9vN1qS;zLs3_oH3f8=I#pJQnaf7cA@w4O1AYZ5mMHbOpBzbTfNbcg|b>ONHPRT`XD)!>x!#Y=!$34RVu3VK*lJs z?&2t`Rk_ecEb@w8!sQqB5_oeS>0OUNUBY8gr#UQC9z>QDzVzg zRtIvMWEvr!pd?!|sVi%07}wbLS61pOsZ)I-JivEKyyg2VZH`ZsZ5y5Bs*q3T8d$&( zar8o;ZFahLtBh^sItR}h(X7|4Oig~MWuYws;8mYi&Hw-X0@@Jp|+V9!HnGJ z#5q+Y(?=mrX^^PRB2V$yxIvkU^s?hf>k>yQQ#@3gYKA|k?TssD4f>G`#N?NIm)fd9 z2kr89^6C7&MzyW17d)qtZT>*d@7=zhJP??TxvDDNwwP~+s>m^AamFJs_?V#fysgi# z?DEnGGv6MeE?xkt(AB=p&M!?}M!^BfNe*yMv}Y0zRbI_U7M{mwCps{3s#!m)U~9Vf zoxYxXlMxwpzmptz!e9d3oc<08h z+`V~4N+CbmyLEYIPu{wE^^@H@^3KlXy8j9@ zOSL@Q^2=?<9EiZ*Yh?nBSn-#uDzP{?Ckkt-lT0N}!{Ljio0u!f0W$M}T&lbv8|@^j zC>A7e^@&J4eJd>&I9MkpheE&F1sPBFILZ7YN@%GQ0ThynSQ@P<7(DAU1`YPO(W!eu z>g*yi^;&9UY7^a{16oxA9dznTT_(-3pvB;kWT>lD7CDAP6;q_%tH4<9FxTq|ApuKe zeaJySj0+bdM^-GUag}mSLuOzYXd2-Ass<$JauM#i}W?NecgR6ef)-+ z0U_!Ma|rL%cw6j^BL@&uXn;*M`0LG?Vl-Z{FrDe8rQ;$VnAr6~C^r*3sfS@p-wgX@hX0 zXo!w_;8Nemix;Ln+{8z==q?%R6&z8c3eFi?_sE_wj2)vgP3w5%5%|AgO@4*mWB`y@|BV+)IUk31A4B$@h|WY3Y_o8!kDle1IS1JzIw~UPq7og#eRI#;5{J1 zAFst;LN4%s*W+vOjgY`QVX;KM?*kuQ;$4Ze*Zh5n$QSMY00fSUT^xAN=N$Nk@uSSo z0QyFK{MPsm_#UIq@nwne<2N0;Lq2|^d;&g;dMwfIuRzca`R?MN`!4>==Fv-$%j;n4 zcL4Qmv4KK9{`XZZtP*hi?ZzVFf4qK1ypB18;d9?nX_vA26F{4>JpTNQ`wkY{QT5+I Q^!a{4UlN=P#}fJe0UepobpQYW diff --git a/node_modules/bare-url/prebuilds/android-x64/bare-url.bare b/node_modules/bare-url/prebuilds/android-x64/bare-url.bare deleted file mode 100644 index c878a7da58b82fcc69a7e5b6036d35c04e62dcec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101576 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 HY25!mZAjWP diff --git a/node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare b/node_modules/bare-url/prebuilds/darwin-x64/bare-url.bare deleted file mode 100644 index 23d6c1432fd434f2d63e8804e07737e7908224fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98992 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 diff --git a/node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare b/node_modules/bare-url/prebuilds/ios-arm64-simulator/bare-url.bare deleted file mode 100644 index 30da553a6b297396cce0b0b8fbf800691b2d8663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124688 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 KKlmDr`~L@sW7>BB diff --git a/node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare b/node_modules/bare-url/prebuilds/ios-arm64/bare-url.bare deleted file mode 100644 index 1d3f1821b8effb4e9cc9050f7d38f2ff74a16e93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139952 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 Xm|W~@6Ejs5)p{%K>@yQVu+VH_Oa7hm)o-T1 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 VbmIS6E#ndD2)iHV(So=5_g}k=J%j)N diff --git a/node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare b/node_modules/bare-url/prebuilds/ios-x64-simulator/bare-url.bare deleted file mode 100644 index 251259d8750122a833c07bbb75be80ff61a62001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98992 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 #R_gZtR~Xje0mM!#7=X|;tVZ_DzAM-2(p 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 diff --git a/node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare b/node_modules/bare-url/prebuilds/linux-arm64/bare-url.bare deleted file mode 100644 index 8092a96835836e2742cfeff4ee1324b3849ce4d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94856 zcmeFa33yf2)quUvy#a0pAV4M(FbQxp34@t)BU)}I8U`o4R;#p07&Kv?R1lOf*am}@ zC=SJefVL%9Y_$dj^{YW_KM*JCSZixQZ3A%t1xyfn|971sxtYLz!~Z}3^L&@*u+Ld% zpS9Osdrf=oeNI*uO&;&iG-dys>N(YZrIg3IQ8l|A>QQbL!kr;1R`uq75Qkl_bD8Sk zCO^A$nU_Wz@?1~9?PJY5cBw3?go<7qPg(b$8f(&Jm*J<(=j<}@Iia;7%dFp!0d$@s8ZoQz(@4}9}j$3H+b#p0Xa``+I=D-2?n5 z2xWKp*BJG~RJe~5en%}vZ8GYIsS&T6@EI1o0%04d!c^(|Cj0{n9vp1KGe0unBP{sU zlv01=#U?z=f`5&i3;g(_Cj1IZ?l&XI0w3`!6TZ``ABCU`Jm@zj{I~^w6XPZD?RzZz z7M^l01+Jbj;cl}~yDa=4S@>;wlCA!Ry=qo0w(x{o{T=bH3AgRaK&!vkTKyej(Q}>! zUt+=S`mb8;Hd*c3@c9<~$DcRx+jhOe!sGgz2^T$-UxJ0_^DQPk$t={D7F_+>1lavL zY4L6C4ijz-gW6=ZJNYFOo@w>>_ZGZzw+SC*!5^^ru<DteE)SY;yI(Gg zop^2YM<5z9f zpKR5)^<|VbF7EAS{TPeR&#nHxW9i*17M?MTgV4F&;u_K7XJPgo)`OW_- z`=HhCQj4CE7N1vGe2%c{ud(1$E%~?k|7)vXN1rwk*zzxr3xAG3V8U(s<1IQ9tbW<_ z_$+vX#W%ZtvxVn$Cp;fo_1%w{_+K;&^^rBcM=ia!ZGN7`hlE{bMX^Wn3$fr0&zgXX zE%?V4f13Vm0v@*DH(Pwj?8FC;#fK}NG%F@p^@m&dPd{e@Mp*C{EV-((`zT*fQ)JriKt z`5LRgYpwp;cGXWcsUK#Iqir{etZ{kemnNQ#7CnEp+Rdyt;a8Z2YP8z@)Y8*NtNv80 z-A_L$k5_=~M}_gVBOSmXPORbS>2^3P$F_LU<5BIo8m^X~tj z|KARuZCms}&HZrKp`Hb1|DrjOBY`891GX6l1#{6Dr97%q4XdnF;R#v-Fs_4w_)qw_ zT4}>v;N!PJ{!1`QM-r!%l_2tjCj_f9&}k|mNXb9uHi@G&whg{U*CvlqbOW2?}Dmjz+ z96~*!x1L(LdsStSx}s98?w4Qy(G!FIaM$Q5szGTEkHL#L9-)FdpCg&$LXI4cTn?EY z|9~T(V*gye|op?f4%C?*m>{td*1JQ z=K2pE-%h>V^G)AhmX3L8%AS6?1(UywE_?sYAyfMm#Xo*i?Bkjt0q z^xRKfu_ta?{iFBZcVc};ANtQ>3(w4Y_@R=B`|lX#oAY7(m(kDN{`jGR<0d+WFPQ$smnowoXz#rlFQ0n( z>sKdCc_eAeO{G6yA9BOO@a*Zgzc+ABY}}{2Z#{PHZ$6$laO`!H-gVub_UFjy7jByx zIp|;a-sL*JcK3sC|6zR!V!Z%=OiP?eP2 zICuWMlEq8P7A+|$Q6&?+mzKEIIWtSxwJZ}LVUvh)gDWRc?vU&4nE?#V0 z!WITnZg4iuJX?HA*@BXrcp@#^xYKr>k*>-XPp_ybfwdJg7#=mJY)Qquw36xb=iSVB zlq{KVafQ%fn(+N6bCb#Ez6p=+U7tdV8SQ^AyPcJTK zSZ52~eWUwU?7Q7HgQ_p?*a#v! zy{u#3EM9kkn^n7#6HveFP3xiVNez6m`x@5c-Ss8#;qLBFpFej2EbAn-o2Hps(zUJbZ?!=&X59(=S?*WNn=x}~$^08iy62lg>pAMo zDOvSUkQDA+m>%syaXs2({9LqFw(q@u5mw=;u(M;T_ zb+LGQ`OLYfvUPbA7D~dDHo$_i#fxv5zX;oCKRtgjYHnRDm@oFsz9?H#-gdF@rkRT{ z(blaS7M0yNcji2^F4~0gm{T!r`k2M@$7HJ?PM(loP?A0-Ek}*Ge9D9$PPptsiMdAe zuqS;?=9r9&I)jba%epUB3A>G-y&mPXCK{fLnLO~@YpoyI@C_E+UWaOfTkBH`a+uKa z)4*e5FfP^70Jt$DGQp}c0B$~M-lz(ITO=7bp0e6;bi%(g03KMsApp))zU{X+0M4YZ z?e|syoYX?w?}GriJ%y5+jREk0X`^ZifXfui{v8c~huT2OmH;@}iT0n{?2YudZ#z`E z0^t1u;Nb!A{sHiq0Jt%swC*JYzy}1>PYQqsu7{)szy}4?cL%@|0^ptixXh#NUvU6j z=7IL_iU7FG4ej5x0dPC_DfdbP;E{G^%JKksQ~=yQ_4AW+DdnfsB(+l2sNbk()GO*W z^|AUV>vqG`cWSVfqj|N(+H&o2ZHJc0ApB0-uf3;j5BdZFuh+W!*Av{XtJFmfX|->q zIt`Mg96RN@^N+^f5-PdBt@Ay(mV4H(vb+0tDUt%_uiN|JKkI!o#<)-WU7pudQ}xs| zJvCiV&CpXb_0%jqHCs>3(No=eYObD|r>ExYsRep!p`Kc#r;gXtQuVYnJuO{N%h1y@ z^|UNKEn82^(bL>|TCSd!r>EuXX$5*(p`KQxr;XRsQ}y&TJw07d&(PB|_4F(~JzG!D z(bL^}daj


E!Z=>>Xvp`Ko(r;pb&QuT~9JtJMu$j~z~^^7b%BU{hN(KFn7My{Tb zr)T8r83lSqp`KBsXN=b~Q}xU=Ju_X;%+ND4^~@|iGh5Hh(KFq8X0D!@r)TEtnFV@g zp`KZ!XO7piQuVAfJu6+$%Fwei^{gyCD_hUX(X-roR<53vr)TBsSp|Alp`KNwXN}jh zQ}ygLJv&{`&d{?n_3SJ?J6q4r(X-upcCMbCr)THu*#&xbp`Kl&XOGu&QuUlPJttky z$=c z*9%hhf;7D#T`$Pc3o`YBEWIFGFUZjg+H7E#eSD@qK1&~;t&h*q z$Gi3Mx%&7#eSE$?zCa&esE;qw$B(xa?|YY;!x_}8cORGSCPG5P`t}R7(VZ}z>wc%| z|L3_hm|Ur3@l!JN;T@l|uF89UUL(gDeD>%6&u?_~ zJpbo6{?BjxpWpaDztOF^ZSxm_enX3Mj+H%v3wfkrfTo_}{3zvK%G80HYNV{BbTJQF zODW;~2FfcaQwM2k0cAs^rXHmHC|Xku0>4aCM=6g|x-dzNEN-V#J~&HLrIcapEnQ0a z>0C{1qx_t*f$})z2b8BNk5ank@jR2naLNSA6_jqu`uVg^S-e0~<&>XNR#I+T2pyD9 zQ9ebvlX5R*(qj5S`RNi(wNPf>qN#9P+DDX0ltIfh<)MtYRa4heCQvS*96?z{c`;?J z++Pkp%GW55Qhq=w%X^KK36w`E-IS*(ub@1>f__pq-Ny5B|8}0IRFyn0*OW0tB}uDk zpVG62{!o^#)zk*c8Fy%EC*}5^K|f{V&!L-1t!o|iDM#E1os>(e!B6?rdQH7W`T1SA zT_(BVcf)ter5oTo<)@UDlo9vBcgl|8I(II=TN>ySxMPMxs6gn znRh5-C|f8~DMzq(q?mFtWhvzn%B7SWC^t}kMEMkD>JjLpJWAO@+4wpAW%B=EZ-=^q zGOUk7m0QUGd#7;Iik$)sMCfi20wuGdU7~+k4aG&Ipdl9L2zk z1(4S-;gO(6o%#1VF8ll6-iAx&Po7`Gv4DE0Zre}b@)J6=6x zfnE_dH1%G`#-RILkA^(LzDYn{j-A}!APK3dVMDJl?)Sdm^+3pjVGoBtI`EMQquvT` zCk)Wk5UF=<*icVky+`{!0t?kBj>kD725HKh%}Ht4(9*zqzwEau{GovlM?4z!2)hQ9 z^yeK8_XK2-(*6lupK~+6UI;Q zOa;Ck_y^Lz?|}#PR+;7KiiyJbU;2Z3sS(}4Uj!b}4P2t~AmCx0@F0$=<;Je~*`}bH zfY0evU&iHP@VI%-{s}#@S95BGrZ(C@N`X%X{sHiZJHcm2{aG6MpZ1^BUjf`TyDL2# zfwxeH-)RT7Jq24>x>oWep_X6+CS2otDoxnxk?4RHn0{p2?c!Z8j;Ew}uk;>jc zy$!Rp*0f7gska25e7s9N?0{8M@U5ku=O*Y9{&v9EvEFv-CERR{Ll62Z_}-zO3*UeA z9POT_-dof&ceSUsH8tyxAf{>{wi)t0@q4MieI(^8NgH>m%-|i2DKc7#|v%jYG6+1YB`>FRc zE^^=c3H)N<9^f*@_D{~ez$XKLMSvZ~(YAV~T&$p86ZH(c(gUBQoyV#70WrK=@L4~B zzX-eqxX8Hu6Zkv8WuJ1P4WtzK=fK^-J)Ph|%qdENFBN&Weo}u3@CN1#AJ{-jfoB4* z+=QR+RDUw?Ab_=<>dyea9yr6$_7glSfUf{<*g@-#z&8RfXKu2yt+v_jcHl1F*IC*L z{)*HG-kHvifG07xnc9iYS`^ymS3gz~AWxetN5GE)KPuzjgMLYSLCjHi{`LFE`?6N)Ing!VpA7tA;NK_Sr&;sI zG)e6&X!S4@i9b*g4bGDH>|0XCCph0t_!jAtDko;|bt4|Qjp zs^*(e)rx7}Q2KINu18Z@O6Yv0ptX``D&>4{L2K(JYU2lf{{soCa!TpTiMii|dRosc ze|eithtTqo-ybcdXY9AB0zb3-Kk80^TiQ5&xufnTzyBy<>4qIY3$OWxeoR+cHNTp! zY7ROhc}1r3o==_ezT-~iJ49QL_4l+kIwO1sor8RbxPK5>+w-^fubJ){XFO}xX@CCh zZl3)!utxBlfac?u=hvNCzQ>^3zb5FwndN=!&J;LnPA^uiEhYWyPF@pUcl`1Jbyf6p zE3`efMja5kKI8ZX+P3vqtuKRb%bJpwt@o+}g4ewMY0K8f+ONy~{{Hk1th}Ug&AN-5oGNq6nxD3Ox<=IqzC*P22}eEc zoERj0i1h8?TzDh(%sLU&iS!9=KJFc&UP+L8dKK~_Jb6-J)Nh1_gIo)~uTZxWPL(3} z>$sm4(vq{qDeY<<+P$B9Co;@-AK=_*mwKJsUC+Hb`qBj5ho~P@CiFL4;$Ne3$7yPz z{{pq^g!6$-LYIGKP+enm z{7Pi(in^AP%aOxN>rOBBv?7N!qAz}@$YU5f>8xof=}WzS$YTGxVv)t+>cC^uJIUgj z_?CF^3O}|kHf3)(*T~*e-!i6#?5#oeZnR`?C9+rWQ};=KZ&UUzsJz6GJ)Zy6;;$`x zk>ELD=wPHTigQy2O1j8EDEAIgFHrXS2~1=U8f@9SB4AuYxWA(hvL`Y>y`$`Xdok@^ zXv$s-=RL{%7u>6(FHO*Wi27}^H{FuG_yF1SJL?+Pti8BpWxMQs#`6Y^Ja5b11pzc3 zljyKd;{_A zqwXQA@5o2WyYejkIDUEe&-x3T$VQ*KGkdg})AL<*r)~@ee+cb_A|qjS$HX=vAKyA1 zz8211dC(QFS~Gs(X-UpkHBHf~b)_S?d7J+Sb=Y@rl15*&=;o)L=e2wir&{aQ3~g}& zAC64Bw8|-+?`?G|Z&Pn|KybKv75iMl90NEKIr2DG75gH4vH1ra!V9tKkJG1<(DF34 z<42m>adltx1^8;<4)`RtUG6{1wbXgGPOHZ@wq!e0Yow-HkE1UG;qO@F-_LmZ2dUQI zJBPNAR*h(K4oRuN#=3?Uyq)|=cufj*k}AsG>q6DQ35ok+$7!xv6M!`_He(~##cp)C z_HXQsEp|jSKlUrldy4WfHlZor(>kPLiMzayx-$MswQwJ>llZaI{>@WtSnoXG;j}+|*0S=Y$-yDj30nMnhcEE#+T5%bHuc#Y>(YW#_GYN;&3?6z{DxO(OcuHl z_ihT--uiQ}I{J0I7JLM|RH zhrS3Mvn^iD9y+i_cyxq*m%}fYzAu*CK#uTqD%Z!IE?-rA!P`>DzF(}V>?(LCGVuw# z5Z-jIofN#rZaPcp4pP8l-lm_hIbgJgvnKYW0UH zk>lKLsVXO_muFY}V6|{Ja+(2;o(2C(M^tm|3gz9)_0=481Emka&5r?lwzrDd{1Ws! zl$STwYCd*EHy@I5fiJF#o89sMp%#{LEx76pToKI)uPJYpjVr{&H5}MoE)^mC|0{If z2)|{F4BY1{??s#oEhWyVW?tqpXsNKCb#ncj6MY-*+0{&6geR`iDpTY^o?rEl@(Qlv zCsd~3DRB;N_RK?fot{=3M*-KD_EHhSJac%I${dUC%Cogiey_+=DJ5xXqpw<`^75^P zni6Mp^VS5rueTa~P2@VTub%(x+SdYLH_%tRjmpo=HawKl|LbY{0{UNdH@b8aI*_Bh z$lX)32al~;N7^J%Z?+-d$lxyI`q*LQdV&@lQnyaaX>um{mV*a48ID_uj? zz<6CPEFYr0&%A$oT?lnf;mfzJDPf#ro9pOTu~xN7#y5W!GSmBNpTN7bQ&HHd+8b>< z73I5itlB8Co#>P3)i*b)9VuZfLtvx6v-l}GrT%XAx8ZMo?-9mpR)~%4 zIxJ&Y`Ju&MN@*`7tG&G~nP+crh}GU8ZOHzHLuPxT19qDgj!2`;J=|MPo5q-Z#+bz` zuWhrE)oN_k)~|y-jfUMyI8S+Ne|~$NjP*E|I+jSET?#$LHop4N$pyh@3f^XC*1!oB z749T`Z*0|QmF)`R{xRebI~RXgEj&1iXRue-(?=IPeeYlXXp#5wSd}R->374Q&3;!> z&a-5rI$KT5~+@r z->qNAdh z7onHJQx(9|>kVCuHT1#>{8soXvMO>~7Oi%W6N)GYM+Gta@z>~4@ zB1>fo{ict9KjV-7+_Lx8$wkRk;1e4Wg3gv`q0N)hsy9ugtWCi;fvfo&RY#oES{JTm zNxKH!*y1)>u>A?Jo6+UX->HRjVl4UVW6E)3sOEi0;wDQ@8xH!D^DT8M8wmyKRM_uRM}vEybe8RZ*b;kIpb#%#4?H+nay*;6O}wYZNOApYJpR_$tp z=i>7x^f7((usO=hl14;)usT+jWX2(eef}Hq#baC(cZ_?TxP)`5Q<|w6G0B##Rvf~; zJkBL2V8eVO>jg$xDSfJ4J=T!VY` zcM14@o0osEaBaii)j5CCvN%!gm+O2iQYFX20yXW*Bi~xe=={re~RNct%RUVvYGm z75zFD;Kw(OR6E@COYD@wui4|3_?_P?be}#A%@!{Mb$_+!GQL9S?Wye{5<}q2Or8$$ zRdnL%H>1>!!LG*)ojNt)50`waj2>>6k+?WvJ&MDL8irzX`H)$Gd?-?D^FcAwsWO3xVa)@-6pYJDcHbK z*qwwU$~(y!QhgVF{?Zw;|MEWSz)^g7{2$ap5Aiq89e7I%t`5gP#5?*nCu5UY2Q%Bd z51)R$)!sg0RyikjpSUb`U`eF5ujXa^BaI z%lk5I&m6qgsw?;9JOIBY*VHco&z5UAA7J9ilk>;`I==OLcRsGLO3vy3IOa-;oXc|! zDcCRKoGr|Ais47R*e^K`uwRY%B*D#`de_Ck`L<9*qch6)5cC{$4mNVGLf3O#+jioa zQCfW#d4oaB&1Ie*McLG+a>^{ff5XJ!AJmA=D4&((mbr-75{VVZ5u@R!HzcpSq{c!?73^4+Lg!Hi2V>7Z_MYM9c}w#T(@G| z9}+uc>9cM3r(H~+`&`F702|UnzM?kQ9*aodQfn-1AM;JF+L6Rqh>fsuzC8BaIQfW2 zn|@C3g!3wJ4zh6Cwr(ppOKdAdIi{58Q3dS=(K5XV|{&TJ8;hS_BCq9f6#y8Y~PWbjxyYvy0#488`UnuBLD2`X)R?g zbkG?`zhZsg@$8_-Jayj@pNajC)MBe6k=Jr$I`W!c$&uG!1NsnS5X(vYwH?`&xu?wE zJ^`jYEY!Ce8nNI%bA1X`j zR%e)xt(lBroNrk`Kjqo`tbWS#x4N|YSmbLPeawQkIL@W7yB$NSJcNW+G2O(o z%Z&Ju1mY$;rkemxk(qpaoalKn*MWAth-+I17XM4N*>RDR>`ppx5p_ieBq!BD2gr3q z4wv|lTnOVU{1w|F@-O`s9grOI`IZiJzIQG?F#6P{2T{HVt53Fl5SdwtpUb*X~ZmYJu(*z%=5%Chl|zXnrrb(_FS#DuZd%h#g{-_!%}6O#rE~APr?_^ z==QOGgT4pazI#Wj9k;`ma$=h6=-cPcP@f&!Xz#Yu(Xhj$<4NW&!oymFhwZ-LMXqfg zUiF3Q;tRyb`V2o3>8mlG6<-i*_>m_Ao?YCm>V*#Bzv!s=f^zhueAY$o5cnp(WL2l< z9|?T^aQDx@K>LCtaQs3~`J)BjTmzrPEv9c;7l7~7KUBBAN&J%F!XMXM1+Cu^2Mxkk zo@_Pe1rjI9SQ$AwYwV9;JM+EYZ_G-sY#*~S=#ep7kA4zsZeVTsfRPiby13@DKJ9j+ z_7^SLp^T*wzZ36j=tE$w>RCoU zA*>lW_l{#;t5F7%-;#XYq;V$~q>!&mCSNzJVwQUX>j1&z`GaLHY~}059X4|o6R?TF zy;QEqv+zS?wZZa#w(r}+wY_#^!&qNCtKaLa?=cpSY#9`N-)qDkQN9yd9rb-c!1#Xi zen)*5U2p0ovXW)UiqI`SR_MNtaTeb#K5Z+p&O{Y!_%-p}Vzka63~vlUj%5;$%) zOvbIe_feb6O7+8#HyyY9Ho>hI5u{v^w zDEcmT+L$je7YMiXGSGg$Tx9EFM33=^jD2Iit&6d~+o3_mCk93Tvg`^xkO1-4b(4%wew!Nz9!jYZvE;xfS*7nEQ|L zBrxX2?(MjVaS(a8@k-1sadWG4U|Zb%PyjFG`RBN{Xww-ZRy_NSc>-u5?Qt0<2@=UX}xb#UC$!=nEV;+@9eo5j7 zo}tgI4?3$hC2>8Db>cn9q>)Qv9eEYF#*y#f1DamBmq?6c_%HGzyJek8#)P~`8RvEI z{Sfl9{XcK31MiiGC9jVjh;Hl~sWQjmL$^F+$4X(%rAg#_vBeX}$4Oi}o$E-R7rHys zw3>XP_}4_}FlZyMyqo%l4=48`IcK?_@SsWO!3!+fxVMV)bd5=5PSz!Rn#+lAQ{a_3ne6Gfkn#Nvxkx6C6TBk3Hg0=O@euqL+=5r)rJit$9c_ST zChjO-jD`F10Niz!U3L`PcD`p?jd^FGZRg{BLEsZxl!Tp6f)|n#X(GO}bMxJ<9g{OU z=h|^wekaP;oME={h7s3B`Sx=im|yuP*S5cV=AN!GbsYBOUF+Ewjc42a#s>kbqfsgc)x zm3E#$u50gVG1dlUt=R>iCV*q&7V@OTlf;w*0_QoA#Fm3(-i*DI{TPkRIr6ZpQQ-YO z_{3%;RJY`q^JbS3mp^5-Q+j6$bLLQ==Bk|X8>6ndm!){$Xsc&?s{Z zS(ixE;;J`WIK)OLRAHZ~BRq&DFI$!6*|iRu?;P#fCA137_WHX`Z>eD;O^;^$y_Dh5~NjryZF~R;6J#@CjZke>%m;o5uPsrM~PVv;A}h*Y>!7v%2HhiEop! z8;kxNCte8j`HvI;D?8$|V+a#pYzKT_Ap5}*)8nTSv7N!##Bunk-Nbk< z%TJYYE;do(hG6WW*hO>h8rFR9eb%<1bAn|DSCgxwF0pjjS#3spt}fCy4BABx{{Su0 zPQ2BI?70~x@)NM?(@MF#FY$z06o$&GCeN|rHRj=sd=e_fhNcR5vVHTPxy z_eHuL0}S$seF~;cJFfojW>qg^CwZa_YB#$@x;!nay3{#{d{LzD49~||Igdy! z(#ZKm(w^kWW^EatJo{IkI?;nb9gy`}v2la6ko^so&$eyg%a+eJY~b${&$36Zn;bMa zYk1GuvVksNE4ifiphfzyO!NTW+c?+Y6P`sTmjjnL^QpEzM;d*8jcdEl*UvX|Jkn>0 zr;Z@MA}4v;5c+K9$Qr0Gu~bQ@I%dnN6R)3G;L;+hWe(YS z?wIVb=8nu6cQdAfvoRjoLEc<PtbV8ipfQw&uh;3BrSaHziO%s%Bzv0JY{oW+zeA4I8Kb=_6U4MfI_sMoi{6~Mc z#P}J%0lua1(~ccgj6Zv@q027zI1V<(wa^$ZGnSX}Ew#o=#`Ldcs{Y9DJasZ&?_$ek z%m#B_MxX5Q@={;sZeKI@hmCdo;Mp=>d$IYo@K)x7jh9>N{+F5KCca29X7M3vW9<*v zkCTJ_3T1C4K1X<1t^d&Q74WIsylCSk?RinLml9uI1Rb8KrmyIn7tP_G&4YyNTXO!2 z{BAuVIvV8*;$EO{OyJs6IZEv)ZHzT{(KJ;{ZT2RraO^OMcQj;r9`92rl>eBQGs7TiT{WIef&*DL0_x9hLP zu2(91HnO~u@fNvqfsg%0)p6js9{x)X(SU=$Dc#H?Zb?^OnLAvM%_=i^5a-)t^rhX$ zf6TSbgJ-U6x9eiBWPDDepJTCC;x9V;`TMtc>h8qXUyn?PEKkJOyO3wuOA>4N=h$YM zn_bNP&Dg0%&LuXlz~)K)Pq=c!PWA#P z(Qm=olUD7 zm==w}mZ3WiEqMP( zp0({oZLVok?7bu6f9^eQ=3?#mv&Ulq$Sy&t3nE z>$llkDSI_!?Q;ifpQWrvn(rRP`a*dA>EXB6)vf*66roje5W&5PmB>kmorxtE@jQCY z-*Kw{4xhxUb`i{B-;%w4iLQ%l-sAHLb{{L#TXL2YKb1IHBVcdVwl(bGu2}AlZz5;M z+^>nfz)An=lQW3;MC3~3B@)>dT@rb+bE|=QI~(@z=38H+-@+H${)l|>X$5!`<@=?< zqjo#BgX^|>quTA1=%<}i5#Mg-Qw|eDiv5-Oh~3{UE#|yl`dG|9O^NR$&V1JBXM1jP zg0*i;`j}wZ9vimWh*i(Nrf=FE^BsgWRv&G9_!N8X z;V|za7&#%Ue@DJCW6+bx{iII#Zw$mgtSf%gu3yxa_Y;3<=pVd!2fXF9ZRd{`f9H=b z!RD5-?^a~tc|)FKe0+YzkT20286)vGf8<&CKS1!+T0E4wx-Bci2HW#o^r)M-ROaTT zQML|6`O@fz$V$D@W~6U`(NB>NGmkx*Yq3)z=ZoXaev19E{g}kuc3)+#8p~W&a`ARt zFEM=__VZ5Szv^ycZF~RpAofq!w#C}!Ud^omu{JLr^q6lDpHzwMw{sb%FErz9Ugfmn zY!lyO#MvjviSdmL!(O~cJ=4~*KL8$l&9!Zlo3X9m4N~=XoP81gKy2*^XRxo#m|w&i zKI=1ihJJsI?+c9Gwn^*;{l*?ODJ6H${QMbsDdQ*W%Cg2Q`TLK+A^a^3Z^=0(Fxq~B zv6g)@6But9`-iw5&-wR>?G(CXuX)?C-5%N~?c059*I>0T?bI&)S9Y1fpBUdf-kTDb z$e++B@~7MKhy2Ptp+5mw1=lhMwC9y^oW8 zUwNPFS(oTuW(SGP(kC+qI>@&cdL@U+d&q`Oo58g?j%F^MJ-cl(`*ttWrrADIY}#RR z&yqK)U>)gk)*j^C*2N9Ry5k_<ACpMAy#U|99o?p!SXg{puT{7c+G}q(flS5pc_e8Ys3zRsi ze~_ou-WS-+T;wZa7<+GEBW*En=(0CZ-er_{`*pv+zF*L}s{!dfKtqMJo;4l}Nj3vhD& zL+XVfr!voc8QtAS&QkCt_nP2K4(1rZk;sw9v1)=Z2RThJp~xPnY)s_ZW3z zeD4OS`ulr(TJOXDJP^WK%XyxACdhvJ;BoBJ%cxEwKCE*@RZHGERP!toKa@heGm_Xx z>}8`f#<#)19c|z~0q*TwM>5B<@jeJ%(V1svWxJD|5*Nm&2;L-o!STxr8Lt9lGoLY( zcgg>_O~#b3O$_Ymp1;7sJCIJ^fmFN$8H7yt;`!d->BG45PNdVxTwC)AEnCn%pMyO4 zT=L|^-i+OWI`%E4$om~Pkw=eXuO#mtHS_+6ulIeMLbcH5QesB`O0BL~*2pD~F+zD) z@-9LxzOvYw>*sMUeYz6=^|{lPGLH8l6RGzZbNw%f{hH|Gmz3ltQu4`(yvlyr3jB2m zd5hK9_ruPI5b?kmoJD|Wz$1F`%yw1H_HE-gG|y*3~vkyx}!bEQb`rE~!MgK6hgNAUhS zM{xCQaF60W4dVJ^_B?s6Jx|sIM_7tRzU4NH#@C@u=oI?)3axE44)`z8m>fXkI^MYy z8XL%=nKZigZ)2QiKQf>u>?|}UTQrtK<78-)T#}646X@=G`Zt&P$yd&hl&{DGOe7ER zTX^{ta`AiQ-~h0@E9ScuynG|rb5EYZThBc;6${-{LOk~z(O-?d8{SSdcoC8^=KMEe zYbwgzuX6pR{ub{kg`}`v0H6A$q@4ffSi4?IqU5TgnyVONA9|O}dhOql1)&ex44E?N z8vuQ-{}K9&sm06MUNZx8s)=*X8pb)X8gpi0+O@hl}t_h4`fc{F0;Q9@Z%P8Tk4&SAlPw;A5WD z#CyPscbf6%=y|-a5k2MaG}mvN#ruow{jR0W>xdIR=AA#u^_`;4kI!chH99A{-&3AK zY^d0>pNv);8}3&1A_I;16r5_S;0op)sKVhBPQCBgv?-qVCa2>UWGuczZp046VE4PL zcL@DCOuIe#05|Pc4N;lW_77;ga){dTQ~2dA@zh;QUpG5qnwzk{3VRcb?KFH1=SL)O z2aQefl~ay6LwsU?5K(XY2gL(i8y`&DpgO)9o8{s?>P;S29nrpUOIeS=ODQ>Nj^ zY}=LaBjrt`Zfb+NGW+s&%mGSrUzE!C5K9%^^ruZoJHQyuU zzUQ8F@RZQLy#Ic*Vu8DXamoW%0=W1P%)t006W1`#6QC_WNV~FRBeek+#z4`#8oy@{L!*uW>S7|MYwB8S1%bJ!4TR z@3khVg>NlOUt0FH-PH^Ddryi9F`sTb1{U z{Dl4S;4S4GUy>qu@MiMEA`6!zpYrTWm+&Vd8P@^OBzUxC>=n8M+WM)5+mn&a ziX4GU;=_Sa9`_W%g#)$gqnntA^(Ay0Y#$vcR_^iOnSH9lBkL(!X_bbT;7r-sS=K)x$8 z*tcSo`F#oRFty_ya2-S!Zvj@x+DQ}Nw6N^}U!r1vxWrJ=zQx>^d$KnwT8pm!mhZvj z<9lSja)kM7BzTDcXp=W^lc8j;jBb=lMo&tJH7B&YZ?JM$FD}3*Jpe zZV24aD!8YiYxUT;sjRX)b4vgyeL$5-T_LzQ!l8 z?qWuR2kci6yCXap3r!LiF8$8G;|Ihr#jFh(ap2GaHG}YV<@h%Ft^)5W43uvL6rb*s zy=&GAw_PX6Z{APldjZD%@A_o-M4RMp&PH2=*kZ=qq%Fc1VbOLid8ue)EhU0ER*3KG zk-}Hmw`%gWpVVXhB#^Ji;j0h;PWTPS${${yA=`-O8tqu(UWAx7+lP&jv>!A5lUR779JT`waJg}98O=i=~dQBE(NcLIQI$cz)I*l zh)-!ow&x7>xYzT})@GscYUL&7Ip*Pg3(03n%t3x5!ltPb`C(3wI|q8#V}~|F^Kj^# z&H3zJ+LbHu$K{Omq{RK3Rz|9?^U(Wf`uG}igDU3xA@I`g2x$(62Z!PH6SFGZD=j|L z#sS%nCVUp(EBy(f3`(4MDg}NtIn4LzL$lWLO^wjzGRE!ZX`Z@eeBZRxxQ%wi?!@@Mr5!KV&rMYIBAZK@yWPUvZ5eZ{f)V|&6QkBZYmkx zi49r9wd{qJ=ULC#C~ezycQckQcxl%aolX+n08dYL*VupArq{8)^S~)K$BkYm8tWOc zzB4KIJaw>PD+g1DILPShGWxZYzTQe-m2+_Q7U&Y)52udwIR-ntls=yh<8$!z!|z~U z3hhas$TJ!Hw+@~3d-)Wqk>|5v`M_L#uJuX%o@`|UF_X-r#a14LM&U*DasQ5Q(1*$J zL3BrSHQvH7bux>|U+vX6S&!(O9! z^tSdQ=9zxyvAw(pcEl09-&d&WWuDax-Y>`_ZmXE>j<@tfaL9Z|VqE#gN;%Jej@}FG zOZ0v{G5cop{;~nQ!-M=!X8pWhuBzWl`<1lwJ81Ny_la_j&VPl@`_cJT1zlLNdHA^t$15_^ALQIzIk|0a}G4#C49uLIO*qI*c6F%*1)&B?%+HU{<5}u z*H5%7j~ek(e9B??FR?;0F~t$$o-39mFFj1$EAt1wx9@cUU#GbyB@b1Du+a;j0ES%| z_{BKSGUj8|tottv(UL=%Q@<_GPp+7~^z(6Q*`*aDmrinFPk8>zv7Tikk@YYwG!$Dm zXgzgT^4z5rbC!NFRxP`%V${-RayBD_d5<>7vn<4_H`&73RyW72TTOgBvM+TrJj=Sp znPJwOL`*w!0QD|B3(gCz_K6KfMpAcV4>(7f^`1b-$;E^ormyVry|VcN_yCMw0BR-M$ZfpGBtFQOed8z*r-}hloRa1(NtwYBop0n+1KK8)OS+O6x zn{@?=YeYBAd116K4mpv0jSC#2XWu2;cEHS6MH}~HeD~euum2G?^lI$uHQ3i#p_NnY zIdK?z=p)A@<2H#pUtsTUrkzRJ%HRJ8TN@1SFB$tckdHU$&&OKwY!`I8s6*e5$zGky z_@>h@{QfNFNyjAb(tp)mn-=zRRUg${#Mb?q6|$Fp>%67lsJX}Q&wLX+e()S7-s-RQ zs}AG(u(MxEle53?2r?yR1IMe*_Ejg9=m)sc5@%7M?{L8}=n#`^wX^jY?fMUkge zz7M%xHc0KbkoQ^f|8FHYqpA}h?$5VFB7JXjub4hYkyA+muk?>^ht_N^z+Vp{KTb}m zeD;c^RlQWE-!Y^)k#YX9_(CV&FGAj`7_WWos}?&y4BC_6&2;L^++6Ja7I5ab^shNU zJK`%6kmo3T#gC_Z>b}7j3Z7D6f+rZd1kW_Clf-XxuO}Z62j5C*U;LW9YxxNHrLVhs zsU0U+*OI=x0pDDVWgC607Ybgx-JWoZe-S!O+_Ao&S-6+=Ry+Op5Pzh3Hy|6Pthl5t#y{Y!AhSbmB30jO8Z z7;PS_jz!_~WsHPAdmKE-n=uYD=YoF)T+7~jS+^M5)}|>7*Kob-CV&0Sv?u;g+Lrci zwRvUXkldo^oiPU8=$-JW_H*%N!v9#`CEykQ|7B4}+;)G8*%y&CJKHV&khMVRgXBhL z((cvBljy(Lf$nU;uz%AA#6pYM0CSBt+IK3+<~#5G0FUDSeRDhN|2Fi08#*uaxuDO- zcP7LR93j6tMCOI8n~B~vA!`z6`S^ZM@R`!L>y+B@9eLZy@H<4`w<&}*d+|*&M;71Y z!8RSDee4tKC&lEJyU$Zeu3F~SVuQYN_D_-AU^w&Kc;?Ji=#^hfojrllbzA?3uo=fB z=jqZ?4c{+5zw|UQ0A&KcCH{=_SQ9bzL@jK8Tw+{`kGvN7$^SY3-|9E~zv#d1|99h4 z0{y?nJBo(?$Nx&7#Q$Fdk1B@miyccISYpnr;qg&?w(E-(Z_}S+(jT#hmFUfz^#3S6 zTk=QZvybAl<6}*qeH5Qf-e}=oV)dhz&+ZTJzGOemQ^?a1#wVEg_W{m(;%O7P5#eba zWlub9IA-!xa!SI}Vy-7yJmo#X`cd$dw#cJ~`I30&&5o&vKWbJo=a86+nBX2ccTpB5 z7N44}-MK0BD}Q}C{jG&(qv_{M#7}v0PW<#F@zYBZKQWFK55`PM9ZSm(}zM&=YC#CDQu!o4Pjxo1F2F>_WWY9A> z@A*V>tOozVlLJ19$z*(~%lMixSuMWr`^02>`3{^NlZh@iGroTTr+h1{K>V%st*}|k zk9YZ2STSoQF8Nm2VdkXxEP193U6kCK=$gybzK^sCc;Nm~zBRUqoYX+6Cpk+g{d+Xl ziZs6MD{Dm#^2|>1%|YmMFV>2BxiOh@i4Xlf*UyHi`djcx68p;>w4rUj8{zYDUt)h53)wF$ z@&7~vSFCT1flJm52OE1SHgo;0GtQUeQuQ*=lR2&UxrgAj=-}Gn#iuqo9wvt&yo)vF z_BQWiZXXlS->vvS;oaH#E54!$U)EsoPx|cg-D=Rlybil-)6j%pDTj_m$6#wt6YE=I z^-IRy#djg3U-^u2J>MOuB%fmLDI4UwuEqaAgJ$gWI>w%ennYwqcp-79>>N>ZQ)mm z>?_Wt6uXcdqz;6zZc?IY%}LN2N-k6KTkOrNBTww(J)*CbMV~wqPrYf>3!xtKgZ&dC z8{F&Ie;~Rnysh^8cZ?&ZZG3KXtkk#ZXhN6D@TKNDn!|{pLSrhYgoR_LhW5^w9H}z! zwKbud$_?XPVxfV#RLx=5Dp%6xYHao>=nPfC)tkAlU~Fe$&t%Rnw9basmC#xVeBzmL zIU$kCEpxwdMe6A!IEQ=2GTTUgF6e zDQ#XN{S5Q{Cv-M5kN+cO6Y+_BlT~Ss{pJ`seB?mt$9Y(*qHivx5mP&w4>JbEL2|B| z*Kuz1H3a@7tKj{USlbjE9jdFPTNpnV_|%!adj)6m=PT|BNnrltk#(M6UvW@ywdanN zb0R@H~-t8EbXmWL>DFu3hp=+eI-Wpn@ zcDB=$Z_;%1wtFT*PiVMBlPkEo^p2IIXD31vb1<7G^>{e6g*EvHK3nuwD(udghFwVVB*(u{Lu{zh7~zeLUg9UvaD*GW@b% zaj3PQUY5W1v&(kFE6>`-%Y-(y^Vm;a>V`-0LF}itdC}lr*-J}vy<4@3_~O_qL&sbO zjg9ymq17%AqdR=duHKAI97Y^0^Pytac$v$)k09Iew6m3*#bn0Nr9#?tMDnnrBcX}B zpQ45O;?WV=PZs*GaoKa2gH{E{4UE^E3loV?$oG%DFRRGm4?1+1WQm)}Tw;^bC0dPds||gr#RL_SH;6&(Oo%a&#;S z9VM3QP#qTMT&B3 zRrQizYg$=5<%oYRb9aYN`1l2Q=(A7w;1uDi%NU7CDp z=r44Y0nIg|*-tc=at!^FxE#B|*!A;mrj)U>Z5n>g7{eos)0P3|*afSHnD4dgOF8;7 z8QUYiDjwQo56v8S)>nnL>B}}tU$$j=>YmhGJ{iYK`XKq5rZeNRZGFju@8yP^Gj^=+ ziH!F}S6)I_66Kn{RWXLx>V=OncarsV(U*^*dnLM3g}(Iz=NI@n6Hi$4Z=r29>v@7} z4*W)sc2&Wv;$TX~vbZlLV_7_alCdm~q+~3M2U9YZ#X~94m*PZ9^rcv*L|=-NDbbhW z(Uj;*aT+E1Qk+GJz7*$DqA!y*t)}=AwW}PS9D&!OFIC7xJo1pon3f|C!na}cUF7Yz zjOFWApT#Ehh3;)!OP@8vUPN3aHblnv7Xu=(Bf+y3zF5Y2vzD;%G32Too@}C>CiF_m zDr6`g8PY^IEE(EL+ag1IX|F%{{emBu$kChD^(w|lv0$EI;DO?aSVv zY2r(ue+{MVi`j|~na+_PlzZWH4i&z2Ok((BV`MEXp_AWe#J05i4Ue&}$~AOSwfIn* zUW3jcb&Rsj@1+`an!Y6D=;kS*NAVf-dk%-}1xapMY52jie`psTdPVhjj?nrCUC^ih z_`X5?Zsh2NKWxI@93iIP!1>c0li2I$VjjDQeoX4+S%$BySwugs`q^Xsyg&POzbV;U z$1FZCvEN3HDZftWe{be9V~%Imk6Fz5Mvg(}&74<1WZ}F;=PjA1)_#52D*UAQ$8pG& z_{cKoxBC=ATw=sB&?@^VMp3eNta>7HD6vfgyqXL>n~?`uUlf^|#`BY@C*SB_AM6>h z{*utEHs8kgZuRO-Vtc!eXS~nkQ^)wg$#^#QarQq5UtGjW)8LWB2)%&MfDgSNSvl8* zo=B|lR%Y#(KWADMOA`xVEYwV%xUZ0%?B%J2cTYd`4_Q^PUH9?r;xq9JXA|!m=fvZ#US^!(!e+_(lFefmF_&wFsuTYwM-yYM*z;=Vx-J-D z{v9IuTRkVQVZQ7%|5lIGll}e?)ZNS)tjrO450W)ityyyXGOrMLPy3s)phMyi`|tB4 zjxgt_Cy8}s&LZ>1o0wn8-{U!XO&)U`^KbG5lQ)nyoXCyT>wI6<4Za?(Hcn%%D7jgg zkM;xi&1dZSQ%8KA`z7nO_pz5(a+e9v7Zv1bm41FajCVi-=r#7s(vGzEccY9?Spv;n z>FJ(EnG1f(a|z@WgqKF2=`ZWPU2vH5zK(R03#qfmkUYGx-x(P1`SD&Y`>kXw$MN2( zeST*7i*?_!E+XT1@)`#@4k!DdHO5dg{-%O%sbi0M1#of+M!v)z`@sIly5E^$9oPK^8*Rk+BG1Z)?)U#kO%+}^SUWKJA-s@r zJ?wCF;f2V)%?puz;l3#J~J?=SeEPvqfU(F6J^HbCT|p7j}1=iB$C^fdmr8GUYlPvMsaPS$RMoJ{pb8V`Y*Psgm%S8bgsVzpK9~xzal4P z;60a|Or_4hBPXfUH*=1roJ=;__;1OHVLy_vAHjzG2yPBx{ZeFQB=$qrMQr;Kiv5sl zu^-H1upd4DT_{=eFC}I${YA9zJm@s!rIY;-dr`~YefxctQPf)%BJV8YyEy-M?8)K8 zj`pON(I)cLmS_F`^7OxLPfXsJ_T+u&HhfAKdlCU(Oq=iz>IhG4Kl29H|Bl>jHF(o* zU;bdUNuIxrH~-(;7Zo5c_duV>%T4ek(7x1S$81^IB0MnSjrf!Za?HXHiG>5>jX>KW zKBv^+L%YpcVYCzDJJH66?=K_&9h;L+yZ=)*Cs39O!Fw)Qx{5l1vNV?Ke@B-3Q{R?L z*-tRiX!HBX(hIC_m~mU+yL-{t9>0U!8#dXDi`!-K)Qu85neT}mrmbS?3g5-IiLcKl z&WmNg*~i!-u~{ib%oA(atb{iI7TYZO2KHd$=X)Fypxx-?0SCezRxsL*|*{ zr{4k=*!RzkI)i;bVy)ST2a!RE1;lQ-*smksN@>8p9dbnOKS5oQSFvx3dw=6veC4gZ zB|h%H&u5lDU-z9ANpn=Lw5P@@`z5 z(^(x2pZp!-;W&dw@jPS3!*R{4;ZX%Vl6pPG!z7-q{o3aK$ZhmN)()?MN0JAVwZoqS zlUP~y4)X4f?=hoJtnXWR6u5`Ain#G0M3@ZQ~SvXd^J;(Q<=FMfAN8 z9uy!)`S3;N5`Qx05)v2ucVx?)`#N}U)Re1J*qN?#2ve>kZZLTk+dK`P9cJ&n5kGbl zHyN>GfJ{xLKSoRdzdo{LYAmoonYzZPgFeBp2au!tiLD+)rbL!RjuQCZ(KL%MRq$(2 zMV6bt@%CSmAzSxs8Oo<`Cy*ao$3%WsTJcm9`;cB>%{K;Figz-nL|@H0C9=f%1w1Qr z|4?WX+ugao#8aJRP4Jvs*39=7`hr*X5X-v(?^?3T&EUUBd?ezesE@ zdx&MNdK+@4v3E^5MHi#?^Kz0UYv%XcMAmr8`g_V+&pIjmY{Hh={JaF7Ok{meY*&dE z-7LBpw`%pKa_WigI^u}iZ`-o#m@oZr*s+)Bmo0ODwPfy5gKzEe!1G3(!M>Y&uwxax zBO-QeH+z&1IfD1UO#MJx=Ht5EmYq#cpJ#pB^a0)3v)}-GCcG296#kWHG4L+PcQL#R zb_N;tOypE}Co(#gzgzIXVc!WrRrvv$NrkML)Oxq^DU@Uh0e}i8m3|^T2 zK-Lh&A2@*p@+;n`6YF~)em#heK7fw?($LZ9YS{ev zv+BQT|6T{TZU5e~c)J}~p#9rx)QR=QbYuTS7RCN)PE&^uP}h{jb{n`8*!PpgKM;eM zdhEiM1(UzsYQ-VPFBh3L|4zKBx59)V92XY|ok}KJ7 z#_#Poy327~&0N*a_la%0ntZq9JCiur7g5dM4L!Dpc`EaP9^V6&IjYPFuBZK4z6C;l z0~Zk4EP0HVp{Id$E!MhH>hQ7S*q`wU{gd~$l30rnKPGcqfjg)t`O}{KnB>yfhm$F7 zd1xzv{IIkoeYV?@Jx!t`BqcT`u;1pE>pXRmTPr4)C-1715oegb)73nkbD_hGmAlSY zZ2E+@0`{27dY!z_xSM`R`+KF`^F4Lh_?w&2r@(d^S&uOL%lnlU|BQEKdU$Wjh?%J; zeG@qx0e-QUIWm|1f7(0u_$rI5-#ALsKq`$Kr1Su@NbKBHL0TdRc1d#n)>jFN9|)G*fEmh5aqi%Y8?o7gJa2h#$Zm zbD$T|iuzIYgMI?El4EG)C*wD(5*f#Rfoot}|N28NFiSv2rq>A`KI=O-Hk?AC{E%{1l z#n*o|kMe2dO3PnLJX6IiHEQh+cf&G9-qd zQ#an?@^UnDhQ32Hjo3xCZ#55p=6Jp$nvI`>2hVCLw7f5#x9p)F%D;`eHNsma!&|O` zx43-7SNyt$&3cpgvhq*1M|G%pv*9bg?$5po-+$2B$edp9r8=L>L9sOAXslQ{V%HwJ z=GDP^NH6*8aM6pe152(RCS20VR}!a7W`BMc9m37K{{_tm-(ApACGt=7au@V-H2z}h zOu3$*91+7`atwdb{KfGXzYV#Q9a+?!zldJA&m8`Ok9bo4qWQbeUxvnhNIpUSqI`T> z85;YE%J7BJ3TJ3^<1hYvP5C#%U*uE&MbgSD@T&bwjzBBd6X)~L$_2y^(n>Aiqti;y zb;^L=f==G0x0L2H9*Vrjwm|cxy{0ETH`?hdUncJ^p3Y`pRIduN3OLl|#F*nMhaAz9Ofq$OoXflcyY6R|(RHbd_vy?_xX$brqL~$6f)y zo?)|&D?g}YKE2|_$j?q4<)dM~?0LejT}e+7uYB(_uU!p^Jr9nctl3ZaiB8_pv!01` z68R$_XP^VCkH9YqEgeWVSwopsuS7nTPQE-uzCN$$(nX++9=gb=1iHx6pFwGjD#I5-13B%hy73ABoUz-%AJjv>2pYH=oYFu3PiWv=a0F?fitv$X;Qzk9 zQAin@@oA90nCErr8?E%U<}$kjyg~l{g`IO5U*8yU6y6|xV+($DvW53iUijAOtVQYm zClbzw=PGaUR;Pc+xAL><6eH0S+ zTiBds;P2ny>z+AHPwlh$>mix@mf<~Uuth;Q?52dC3rgZAv!PG9&zv40Rp zZSYxjk)ILYmoNUg4=)q$(p|q8U8K-U{oK099h74Z^dwqRze-2g(T$dTUF5_bv^2Oq zg?LBPMSNNs8oQc&L`%aAEe(y`Mws=$&bg2B{p@r!xc$r^9YLGgSFr+|>XWcNpWyS* z(Kkt}wSg~^j=lxXqtVf9TjtM7M}@=>($NgUN2jA-w!CZCmr!VqH|P6aE?UV z-5YbW3N~JP9(Y(QT0AGEDfeBo?&8~bKDnkVt^9$eda3Or#;)2RAFF+&oj}^DM@Z{z zNN&%X_HL{&>m^yS!$ZA0_R{7}=!iN~DNnYRaVtB^R20A)v^i=2-}|;c?|nT5zdwIp zkor$+84f?^;N0;#u%}W|+hx1kJYMC_in%%uu=sU8km{{{fNsxXI&BojS55Pv8Tq9j z7KT=G7E`D_ZQP0tkx<%N?$|NDK57reo2NM5D&nLNXXOSD-x(K2x)*y4N%JJF4HeNAs*l##PNh92hK4?;H8ic^ z`fE!6{r!4PM%VNA>orjy>DeCy_UmoJzfbM3mp;GN*4N*!mzdAWwsisV=E6HPwlue> zHF$@_y7r(ZPOE;@-qxA)jn*>c{}X17I-Rp3qoEPis;|d-9{zR47n%0G&EMyVKN#P_ zm2*q-LL*JQ>5Av2n0P6~YlW^AH>^CM>n7rh1}k}{!$(81eR`5Xp;#LEP3_9>#XJxH z7WP-W{50;AUig(hjr1e1X=+TT;R7($mch*1={KbneY*Xs1sT>qgEFS$qal9-m1P&W zGV#T@Wn84?=1`y5Mtm=HE<#}_V{I5etS$H%RzsIlJ^y?govSOq4Cj*(^jRszzhV^U z;z*CF#wTDod&GC*w;&%T`S1L;w|9zsZ=HWb0do)MZ%|2|V@SJ;bd15pd(e?h8Q8xc zwy{s$=em2Y20sVk-xx}--UQA9@{qqtuJW?J4YH$DvTt5>4)Z>m zyquqv{1`@2-&*o|p1fXD{?LQ&7IF0`Bm7|YpbOWg^_@_IPlNDp#IHenua<*z6?aSI zqpSJ*xjC;A-xIxWg081JpFQI{n9_bD`IXA<08JI~E?;lwOPFEz-`AWNX)HR%JIMJ1 z#hLhYt)M?=9yerQmC^0|ee=#=u?Rmt`4-AAqEvi~=Pc{fH~kjtV~9WBjKYGx)A8f0 z;91V|N4+v@z2TeBD;R#?dGmJWeOz7Ot=Aez{_tkA-#rxZ_`a!c`stZ{GrTVyk8f&m z2>oB{MsGlO(=xrSIwv;_J*9a!T(E!nJp(hER$riR@*Q{ty7@k3f0Of9I%uP(xwqs| z`k-&GK5O$>gQYIBpU0O#{#!f`zqTpuoqXEk_h)d93w!F*D9i8Z+m2AUx|u$^75e%8 zb-gd_kN@i1$K;NG0soTk9&3Z14&qNEct@yz`_&)L9N{cK5$Ek1ii7b0WF#O}*NbMhci8}ge*;^0Y^&{Q$p|p(WDcb<@ zAIRTZMSU}V&v`=6hte|+TsQE-{(Xm!KX_K=gm*^wp3sl)zgPLdxsLL!C$C$<{Rri~ zjr^o5sh+~se|XacFPxD%;b1TwemI@!h_AA|fe+ThlFukNz+{l$EL zQ&&FcW4SYd-)JJg5a&0#_n2e*h4CAepNRZI?8w1x8-$_O_N)OpOySDaiOzJJYzjsKo%d_>M>Oi!bI9bZn= z2L8U+?!GY^({u2LF}|~mb>}(1p13-DKwU(9r#@{L)IPt5)N#rw&wSiPrq^Xk2| zWsIxH>OI|jS|YCO@@c`xNaq|ckMm&(mK)w}d^P3om)>-bIcv3@@wO2fnQrK*y0HeD z*#b>*o=$ZEb(UPvclokEoSlQ;URrgC_i$rPW0-Ir{G0ZeUBei86S^*hrW_xY&LbM% z6Xd7H@A=65bd-F5snf~$=^)1r-UJVG{51MW>SD=K$44D~8h(mCmxP}hALyG6KP~GU zfmc=(mi1i?PraYNvf-P~6JPzj{8Vy$8ve#k4#@9S{`ANIbPw7LU)52xOFDH~PFTG2 zZ0=6g|?jqzm&f}a%}uL@S}8a1pWOT{*jE;@!*<; z|I&l0-YK)L%eZj)Le3O`_szO4)8ObMJZZzmp97ydSGeF&4p$#|l+F)u`0nF86|)bE z@}|T8lyA{7k?m>lLHPwMuIg3JIW>dGclk8V=z(r#!ADhI<<(dD^%*|?9C+%v>LmL)|x0cgdnr z`1{JQZ6oDVd)DA9+Xs4Ih_5W?zpX!~=$wqv_{pA(&#dazF1m#u$NR`0iRX=^EROd6 zU+|R=@+`?1(QILoI;_CAapg(9`-N%eZhU)Zv{Ae&6ZvoW_MT{?<=e}`=pl}8-#@&d z?{E0K|K`nOe#0NWd1HRVpLnJ~9=gZ=4&aW|pzB>oq>Sp-O#!yDJeDt8% zgJl7pJPle&gC4}MilK=peP0PJ6rZ0xQ2Y)bo$6L_wte!{K=s#t`d#|52P~s;!IR6; zSGI_c5q}orcO&ulXiP%yZId_VI-chA#lnt`b!l_ZO+D|_yk6dRZ__hpFJ z;$=3S;p>$62x`t*rg;9DSjXk~euCcWi18&1=SQ}CKk{t@1=t3ZE`xA-{){5o3(n>) zI(PS~?)#b(m3ibF3Bgn`{kFXZyAd`7^$b%|W&W z?I)3~K{kdE^v<0voM&__cVC1!&xpG&u1I6=YdU*iGuV5R*>aHi(UJICNi;Y~eqmUYc*~{-1BMPxGQazK_jH;3?Ei_7#2qH^PeZ z)0WUy-6u8)+hTSIn*(EgAm=wtf$lrFbBlY^5C0_fxI;Q0w=H#eaZyLdqq^gz=!gBy zIm$Yx`bN&7o>{Ovm%d#vlXPwPN>0hXG53y?@N+tgrvtyw`|c0T{*dQB+P{r^cZOFj zDXG-GwC8(^cLNg-{+RR59juh`l*hf0&lSJZf9A&>{TFanWKmlB+Wb)7%ll4>Y~R@K zEpFo;5$=O5-ZjCSq`RD0S49V*jFdt5ou-9e_|G)&z&q$C`=y7pnfp7LYmi@<`;SUj z`gcZ#R{G&h+$&eg{42C6wDrE!>sy$=E#6CAF2p|b%RXKA$$8C(Cx^MqoVvZJJISVS zE?5?K5QgpjtvYK)Kc9=HCo2@p^z#g!gJMG(2?%0sW{hA|Zu+GTY3sbqb zy`ajQt$V@p;K{9j$4n zcMlG3-<Iwb1P$MDPw@M zghhANhqKn-=y~17jqXi^2Dd}k2lqkOGec?VEjNZHb5}*|8t^b)*NUFAgzp*7q&tpt zXir2o4(D#PSFUf7FP`pmPk4v>0@*$Z+?Au{MEm!c)?(AD>Q59F2wyjGt;<#wBW3wDfE^4GALi%{dL)) zoadTe_xn)vTYL<3nd0Bax(fJZwC^y+u==a%&$fMe>aJ7HnCi@L)5Ig^H@x$1>fz7r z*z4yfx^;QFJEfoD+co5A`t0xYS)R_;^LbYAj6LzK{NugZ&ELDeMSZRF`3k5rHbrx1 z?z0~s>~W^wn$h-5zk|>re9oNhcQR?)8Fm3uWXLX9+D|5Yxf~np+{?o5_6Hm?s zF|=!RAj>nG7?(;To+!R68Wat|f78*0CX4?nKi#Fb=?-Y&f$Pm(n#I^aquJiU%Db@1 zL6;Bj&RV|~x_oHag2w8!O!lGXy^K%jsZq|_o^~hcDT_BEWb&$n7b~Bpf{+;}x|eg# zMIkd5F?R#`gIDhNxWYJ4Ge;ZPvAZ4_q~eD_@9G&Nkk6W)-E@6+w@L-l>Z6(KWj#Mjh@r3LDDVqNOsA z@l757#yP6GpHXF6TXa?tX8@s#rMK%od7a}vYuwrmm-B2cMmB+~{avpGJ?U^u|IjJQ z*OVJx+(`>go&dX&vAppk&O_n;0=0q8LRH?a86oag?4r{h-0N~QKFZAUsC;zJt}Z@W znC0`)8OYY7;a<7$=(tA1tujm)|5k~Kr`aARz-W6xg#E{WRHf^?g z2;Zjhz9yiD^oPdWcx~Rz`iFR!PuKRkN<^AB~^|HXlR+j4fB(a(cCVDCtW zEAhRUl6U#Ye%F@2w7A?IrVRz&wp!X!d_lCXy4*)QJDqbxfL}G8Ey2=qwSY0y=Y?+ev@BQi?$ z$~E(iHPlOfUyepLjPkaXP%rT*54q<0tAKR{mHT7PS67~D%i!2wsj-Z#PPu1()P+1oahymhBEI_37lexXT^!{em4e1P6Evmf@#RZ;kQPJ3y{zq@B{ zW@vUPXSo|XPO|?*b#6@y*?hBOvuwWKVB9;|RTjkt0ZmJeg?JA?@YSN+w<9gs9?oB$ zn$})5;YQY5yYBhS-;XUUHGS19dGlKq2x*m6Y&VUY0e%$r4=Q5k$ zZgf_?qr02?Zn8s*TYt^{HSkdvH}Wm)hLW$B+B8ZJOlhJ@uXoNu8wjs*Y4%)V#hDwcbWKc89!E%)H^m8AV}i6zDb81;}h)Msr_x zO~3Wi8Rwr2=#rVO6MdQw-`A^1^Qu<@V=&0;_j0er(db5F(VO7tCMWhP`N$W>jl~Nm zc-z*d!K;`Xy^h{z_|zuuu;ktFDb0_rGrHfYQ+Z#Zcj`Ztxl#e|O1GmJ{)L{iiFr;b z?U5(`rS|~;YDFdqH*@Okrvv|sxnC(Kb`RyzT_@TDpmIGy*p=<^lS5li!ETVn+}z#! z-Nrfb#mM2a_vNe?&(Qtfnu~~+NLQSSj%MU^RnGb_b)O!(aYLB>7~<1+_wTw>d`HpY z$+@JF%o1-AKM!-S@ih8I{G)R|m)f1T-$(c`y!{^WAv>NO-=BLrbw2jUcZD~f>iQx( z)@b{}@sD>;^|lq#7vd2P=hIV;j?)X^ERVx^Avm)vPRHvugVX1A$@z`O{f?3@UUx2d zgS;*myq`$+*M$~0ukmJUZnW_#=!SRcdS{xu7;|DHN$204<@fJY!mhrL9~auX4Sx0b zs^bs+bXDG=Yw1hrh@+9`vPTUvX|-1(%lLAS4W#|^u+Y{E>8I1M-H0}1ztMf)(sxR$ zCv@I#zB@2>+HdNy#k9#e2M8XzQJJe5!7$!)es7lrgGtnM=JyN2*UYGP@eNaOH!(T!>=J zm^n^zA*20t^iSCuCg4Zgnj-x*a(Dr4G!-3H>$jE6&CMO$No3S8^3Z(Em&?Oqn<=Ac zRps1HIiZnl7f_!x+R5S7`t4!X^!m|$x}SYnpq@&5r>&>bUmXr@&9yw}6w0Q%*Hzb@ zoWmVS#V;QEypj0opKvJ4+&5f(($|U>z+WT-gLOTHx=sjjUljFnccEX&+21OA6F9tM z{P~jn?FAEV@viG^dAweSCu@DRjQb{*0F!Pin#_Oq(4?W%5uP_d@l|&hZ$Thl>%l{l z`Y9f5(M_j2`^Yq7bUO4Vr_;>@r)Y-tP}(miRzx^B2F@bv#z4cTUMC+HolJ@w1E&#J zV?Z{kZesvjNA^hRhuA{sU$w95D*9Kwk)`djA!{$O>J$I%Xyd@tsdF6U#0J?qxiPMB z@GJO->UXeT_xklAZfCrI`FFWbfETHLs)y?6#z853ihfzoUW3D7#xWb_wDdF;@L7 z-j|&Bt6d_ayZZWh>K^2Mw~zL=T~E7IqSIVT-QHl0$muqrKX#R4$2Pwl4>NaB8#bFZ z6ixfG;1`5l8(#RP*FzRa#&S0aX|rSNO}2^aEs z{e_hEBlMswWaS5k{ds}(MD>-i(b>M=5AU2l`?K}gob$W-tc>!g&u(UXhPcmpGix=* zCRCZd{=8$m_(t>h4^7ITFOB|=9vfmj1ohn&$QYyVqC-bEaV8n`8y$+R1A5DRkhLv% z+}YCe;nfR_Jt4ClI-fn2d2NVi8ul%%Wz32mTvW_G)SLK$BRk<&vpC!8`(>9~)obBZrxhB~yz9pFygtPAv zy*a%0NaIs7HNTT@Wyk(OS)KfDfiJ2atT7n6f2Ok@{JE$E-T>*&l0lkF ztKW8!w#w=(!G3cv^;>1{3u9*Po!~C1uKN1(?il5gjCTEYHTAvJ*7tj+zFj)weS}@S z)1K`)E-T>^jLQ9gEeOn`o49#8;iNI>nVf!X9#0a za_aNq6Ww;<25?Q-(S=KW{AXxj*U7hBup3-!9)74Ed{0V_ry;MUTW7O}#OQv=aM8hT=pg+# z?fFS>7ag2n>EFR5uelrWsCs!9?dQf$qI^NwB-($)$eY|)ueiG82kP?D_O809U8LVt zqI2zI9LtuJ#-5*<|Ga^-7QAJ~PQ`wpZFWxc7VDuwT_-(&H|vS+c-7w012!4{J0RwG zgwqEyNZYByZ96nMcY?Rw*t(!cV;>hyqB}1<#F^q+ue?8G)(K0sUinza@at0M<9T;7 z_tIFSFWlN?D($Pew&vVgbJUt%2mK=Y`xR@Y@AkgK=-tw}r7yU3A?e(OTDw3ePiBvj z&g~J;>D<4jO@cZ%d~e%Q`a$&W@Ji>F-h4Q9V5i=FPoOQ8{t3cPZ~xgtUP8TFI`WWy@7Z|*b|LWI4_@`TTlaH) zKY}ueruM($wJbjZU5VFw;MJT=dpf>M|9%8r6rslnuV~ldc58}zX>Z{cUg=B8XjXi5 z2W{r#&WR1NxW692-D35wlv2m%k30riXE;7TEY=Hr;zfn<`9j)4Hjy^;J7=3uxOR-q z=%{PQo%WraSUYQL%Hw&X*XG2YBOJ7^{FAVgcaPuJQ>PvVKl!6g`wNq{OK$urkoKi@ zJ^7gAhSrfJH>Br;(PK5IS<5`&CgvrY=T>9mJezsF)|F;5*PRY5{}^bSb){C;BJn#~ z`z-l92wgYda>%R=YOOg;JIw^g*_*JFqEDhz4hYV3ve7NGG;c=l(SD3p<{Z=Dt2yBP z3HZb_^4A`k?9ZFSMlXNV<}>G}L(G{oVxe%;1rM0G{+zk_M)D6uwx?*GME?8WxhkXP z7+RMo2n}1i(c%z~&R+w6CXU)57rQKXUTnXSGT$`1=RPo3-Z_Rx`eoJH+V^Z(cihmu ztTzBx9v*OmpL{fzi}8iUb!^#bb9qiS9)93cd`>rfTy2=OxpiSq-7ds+004J!d{de`-Jqvtj!~v zv%QR-M1Hc9E!gzcqU!r2X1`)^3~0SpJT5Dg{@e~LvmFn7+RALh10V57Tbj^!pRu*R zwXfrWVb1#w$6lr^;<3v#4rqIaa}_e-r_kgzz@=wC+F57aLGHzVOW4)aSh!{ASu#^TF1y+jal*{C<-x^60a?bnlMludp9y zGW;upy_Luuwc*+mzh-1bGP`K&8C`Z!@k{BKr%{f`<-V+lw~J2Zn`?vo%MML`75d%$ zzQ$-ytQX&cvN4~qqq~>B)l)Y5w&0xD2b4XSZeSo?)+IgDT}GbTTcWYGh57MH@*m9@ zg%@t^i@oGEbUoQZu!Ft$JLV@F(H&RNel_Y(`n>k#1B-6KHgYqzk>6DFB(`heoA@vr{ zWPD9BKyys3$4GD7L_I%-=KVXKvtuhd+hJHt@E;O(yzAPT-qtDb>EY17#)0gIJF$T@ zr4BQ;{o9BuzGd_j$FGnT;u}ZPSCofz7U`_A$4h6K1YO@?^KUwd(_uPNaNa3G#ExUXzV)vUy43u z+BAVawcF@X1N`;_&qLB5r*KcGY1hnHC26@QbGzhbyzZzy{_ecTQKWVJqWM&xr?|Z% zl0Ub<=i6eP{;~Hsr+*xo_F8k@JRm!kLLSmT{$%7PX9uRK?YeB&pAvqFy_MRlp|#I# ztbNX5JyQGArF*86{;`qQx3sMO?gc8VY!GR^(Uq`Ch|lC=i})Gi{50-A<*xBq2Kiv) zeL;Ku3fcy(e>v1u$ENY-URd_Eutvb%tSzg)bI7Z@rX;Ton;mn%HueG+etPWWEc6r6 zmFOiK+SXVSJvrNI&~E2opV!{{3+kv`ekVQir>34=w#k`x-}wpm|suvA1BA8bGy1~uA0kSRknDi*Gs1#2LHSX{cmjoUEA%S&SL*` zbEmHD@73HK(6wz@QTmLmqSbB-ZVA*!-1GbK|Fz%1rwViPd^OZxH>de4@V-9sNPSim&qL1FIseIiQX*NqVOPzchXjW`B<&_On zXHrT3oJZL2M}LmqMA*^nOPsN&@!@2qc-lT}&$1g;v5xd3)*kfk#^O4&?wA$(dMD0d zW=~9Y04KK3tN*DY+G#;w`_Bj}CLJ6#SW{R}Mz*-nYl|m{G+cHrHAA9M0D*7l%CWNKR~xHu${Tc+vqTEZ(u8VF>mOxH&DKS(zk!t z(Xq8}ucPbRZ(V(4eY=VA==5#I#EbalA66d8&Y5XT^@`KN-az>~!Ly2We(PcW3OTz( z{!W#wbGG4YH|f^MA>E0$8(IGp=gmkz#(rz;X3~wP(7yk&@!sdoK-MCOH@IEnW*_~k z`DrTeI;SKZI*r0Ro@VUs#%3veM>+#K-_WUlf7YMrGsb#p*%J$-Z@*nSu{wDn5`NK9Iej>0_Yn-q855 z_(0+l$r*||KT&1b#Mq0aU?*RQogCepzI(BSeM`mi?^uc*eHeQs@jYtCeLXR77*|6%=L9XiTrrq z;)!jdcse$bXH)vLS0S&X*ezDV-*qqbXxi_!f!@Kr%qg*rad*9+PI1$ax$nadba%1C z^K44r_T3H#^wq}M9A|-J*5T#1^`p;Puzx&^&FT&EWKO&OEo`fA|8U^?M>(J3dGdYi z#7N1&PtSa*f4Vm?pC@yNf$vn+m$Y&Y&^NyHLhgVQUd-*E;td?fUpUmi_~y`n;sSKh zHKA~^Y%g;L;A>1i&vMs83wIY(gIniKpw}OC^W=qYo*WX6%wqK4+1J@J{*JP#oGRZg zm9?{s1O8iOEDDtIMtm++#vRzu{4$20+d@BA|8T(i%p;Vs$d<8^GGERd zrhW^V+rOQfUi>z8fU~g!{Ft_U6uS5cbnqguTdV3yJlc{wif@}{+BS0A`l`hx7o#u{Z`gRgJ<8t_dOKITbn_yK$PG$YR$=XtSK#%T^bY|8@t7uoyWOrDpbC%lHw zpKN^}lILrjgZ4UOPGdirox+`+`t9DFgLbPq$ELUy9TK5>Sh&*gftoRL=7+DOY}k;8 z-()#*L4ENNbR#}61iqgr-d@JfKJrZ_14jz(H8p{^TK zhP1cAe?9n38oblU8s7KIZU>#V8xNi+`R~EU>_F9`k{$HZG;rmE%OibWp^s|>@A;H% zdauy=(L2CJyv+qqZ-@>87w_Z2)e1iv&)9SL`uFdj(Zo1NhA$Gp*9L!g_?md{#D`oD z;)_7H$?(ky;H!jY96pctPJH+e2k|wLrZ;qu&r@f7M0jfLO1M_c@+K>>bWUVZ0weXL$$x&!vq(OBzp8e}-Sf zHOz^x@h09vx~H&X?z-BW{f+7Q&*g!44)4g4V%fplu@8$Dz7BmV?NeuX^&b5?fHDbB zXc>EjICE)gU(On7^k(;`Y{C)Q+hO92f0})=UjjdVV)}LveEDCYtX@X7@OXPVCXTzl z->`8h<1@wskA9lExC&Zhj1N9vbObKxhXZpWB^L-6bd^dy!1bcq=m4~+kOrGG8Rijwvc}u`FVY_Z zx8fg$&wLDT98^8IM0htCTM4)+t8mX{tZjwIUC#R3M#kaF)Ng($o_2`2AN*x~TNd+y z)b#dB_DE>%x*1)$jXTH$OQbWJHekPk^f$G^6v`yMu<@ggZC^o$DP?U4J#byoaRb(8 zA?qrUZ8}#0Uxk6vol8GHcGC6**Os_Ag&qF)BF+mi-#+iAt1Z}=gyXuUecj37$3pnd=yS3{>Te7QHAzQ-8giOlX!5V1$q%|A%rDU|{ zr(sV?$yhrTov4NJVfKOSWW4H~b~JuSWvshWKlWT6oC7?J4p|JZkUpsRXYXX36w$}v zVqSF+dR{+`{9fs6X z9;F6`+1qU+ZVe4cR)xN(0oID;XdB~Ox|ghPwb`c;uEi7S53wzv|lhXM0BWg zLvv&G&>Q}@G3=3MY{TrKKmQzIog-UI_>Lz#wqDG5W?#VJZ!xx;Qruk>IkEYCFXdYp zd(ivvXY3#BZSw}vw#7M&wWXAOcxuxHf56`G^4xywbry$sNQucucis5sK+h)p#M$0f z(Pr?h>Gu|tl-xVgJHJxr8B=!ld>*bm=`Xp>BfS?>>5~=EnC`Q`ob;UeGcH2A556{X zd*l2_OI~VrdlO;Vriy4g@sL%7wHH?Dhml6-61%uN>B}%}>Edck7iw&P=Sc0@HLi1G z$AeQmrv!U*fmzSUjd5?iou>{pymBaU(1T1}mr*a>@xi*wVJ~&)+D(*8W4}LfROcb^ z;YRBGai%x%D(a!L|98;usuOl5vwv$ZXLaeEGnL)JrUMHfdr8u}0>mqKpfmaR84Zmg zmrYv?ey?NOyNri(z@@RHG4e)gX7NJC#KVk!uq+qpOQ})-KPy=WNEE&Nh8D zGIrzEvJ=NQ~i~O6&=Ml=-!MHEbJ7fNB z#(W23e#M!bt;m>fp6u(lW8h60wr}n-eIr}%5OZG7PY7Q*sf!M;w0*Oq^UU+Xu@>SO zdbH3gIWYh4#DUuip7JZ(sY8+U6eGMRkkdr&&W8Z&5qKS5m3xE$|fS zI;&{6TW;VzoAzaG^_Fjk&Oc!EC7o%SSu9)ya+R*lb3n;YT|;vMk-kJICVej62zn zyB7U+R3G9_h%8HpbAlgl7CJ5GzrFa@mydw+%Qk;>gHhSU9hC&xeyDQ0OR%rQ8z6q~Q1NU3>{qxYr^VH|H zP*HW5a)yaR-41H6&Uu{a^!<*GQS;iBxDHcY0S zKccL@u9&NRQSd(9yO)EV(u=W=`;KK<-nK8}&l*BLMs~M^N@c z+NPZN=B*S`k{X7QPPd9$cLVDkQLu5k8pN+ZcKRQ027`x$|XE=2^UIk^DUVS z7)HCzA%Dp=`C9%E{Hp8rW4vwev#zDOJWsoY>C4XYv0f;=F5hIhC9hRZA9rr-yB7Dd z-rlyqfm`*e0wx(AtcT_k%For~b;2LAuHxG_hs7=-jo&XrOusB4{Ho5U-Rz+Bn5KsQc2?M=GD|hY0j$`ayFp+V4!l+Iz2ciz%IX`m}H{ z;q6PgPn!HB|CG1#yV|vt#Ub0G#+~Vd1mjL^)cl5Inc6=$b_RIW{{L0q9k;7bDf=P{ zt0$GH9$E`j9b_M?Am59iCyjscfkZrD#OLGzxs*jVTYrsqaO^|YGu?O)JcsXhF6=)3 zw=n*XhFy)JJ&V=~De(bBmH7{h{OyjN%T9cj?<7|$!Pv*ST;(6OX!ftyG?VWz& z?hWaz*-JKQj_l4lY^T!tgXY%aL2sw_E0%4rKl9u?=FDptR~@0T z)iZg9uj_XYJma8jp5f3~Bl{)u=WwR)a-R9fmb_0=54NFGbN=>o!wQBK$FOT*pZwzF zKlgv`q6`}UPX6yirUd1G2p>fw|B=6{ljQ%!v{BW_-MLe+154+;h&Dce%nrYK?Mu|> zpz0%j*u=Q`J@r3;%$EH~GW!5BJ1^Il*$0r>*o_wNLRUXvWp+Q>?k)DyJPJMOO!74J z-@AEF)~0RPM%1P)Jd?HQj)Q)i%BG|?EhRk5wkdvsTTiA<$qPGbW~>mOH>Xpff2?25 zoI*MkI>Bvv5A&Q+Q2JqY=%x)BZ+C31q`u9x*=Xwd6#CONy`w)pjQ;eL^e6hUO8V2A ze*3MZ{U*?UiQ23A!_U@UrR_c2YrAVN)>vopE*(_;CH+%n>(oE@afX)kPoClHGVejR zI>_7#8uax~(O_igw4W7VV>Rs$p2^^oPNx1PF8%B4WX;IF&!Us<;v6`qlW8pK-1`3l zr_KsHQ}WiH6}I4>w|krwR?1pQxR<}~vIm)^G-c=svaM;Xg~MI@NZWu1_m38yxN8G8 zsey_oo28x|&xBYj;!axl^T%~5*qKwYH}_&ZAH!NvZ)BO)ic&hyH@g- zT3pKaNV3z%rTdI>V^4rf^Svj)bvd{sFYW^7=DW)0Cxm~>`O&&lUAn)y2dHztJ17RP zHM+n0Li>d^A3fXP%8jiuxU^7m*~INh{?><2^5-Lu~zeDTK}+dO2@dtd)5GwGvEHqx2OGY zCj2+TdjsLUgj4cNTJ!xMghvFz`w34Egx?}OHxPb@@XA2=1HzjF;SUKv9SDC)cyAz_ zGK2i{yYlZ%ctjwaPI!7C+?Vj&KzJbGm4R>$;mv_?F5#yG;o}MK4TMJ!PATZh|4W2N z1j5CHrw77g2+s|K#}i%|2u~us*$;bhKkg|rznu_@ej)$iJ!HduZFrvzqc54?x?%n^ zY{T#?^Rv-B#)$bH?&yF$c(5P;H`qQ)*dU`H^EmTEKQ%uW?+25a3Gy3c{`U~C{*Sc} z^IK!%v+vRTTz=SF%#Zso%rD)4mdFNEsR#()YmT%*qbIuGKD|xf~{gdfEI;DG0iAqzvF1VvtpZxlGjxHQ# z|9fB0(T9VtW8kEu^o)O(f%lBBam4Zd9WK3lj^HKaWqWS?IQW;%OQ!ciT=~ZXSNY@N z>@PBK@AU5Vz0}|tkT=*{gkf1fhi$nD_4nMkGC}@ZY2x&R zw*Xf;*TvySfbkp9Ietx$|DNP8lmPyUiICy_Vzi6tKmTkVUFCFN|3>?VQhL_+uS7`H z{{J)yaRiGi=NrIP{>T}A3#{|mgU6b_-~Lm5_;3qne=R>&BaYXz>z4&wc-}w})Nl4A z|J(5dL&QIcNxgpg=6}yqc8Y)CYCk^rtC`=qHvaeG;$LCm)ARgz`ToPZ$>Q;r`FIZa z4-cEF$#-R3{NGsk+&K6fz*U~%clrqaWb1n@PnCZ}T>KM&EB=-{{P^fY=6AM@pAr|p z+QyGG`tf(z_}AI^o8#jD8*sJry0~_}&&Ge+#&-g2tA#%h*KRLc_!V*R4;`Knwjh47 zybQ#R>if00_~VQiO7lV%Zc}-aEc~Q6_!I+Y;mAd_PxNbk8QzvSIzJ0|BD%$=lwYRz z-rcr<3i7)+3I5BI;4e#pzsBOv|3P>Bi<98LG70``lHk9^;=ef#|7}U|-<<^iy-Dyt zV)6g#e{?VZ)+G41C&B;AB=}#n_%GSe9skQo@V}Y_e`^x_>`CQE|Hk2GO^jbp`a##{ z*OPuYpCcjturG>VruXDM-OJBf9>1RW^9{Tw{u7hnKh@&j5r_XPN$_*_AitjYOOxPd zoswUsw<`{RSrYv7li;sTg8zDpzvPGA+h!ERTBKQN$|6;j$fwN7Ki_aB=~Pig8$Ye_%~bptN+lw{0}6- z|43Ab{*&YIznKL8J4x{WD+&G#GjY!J#=hLW z{OpZO*uU8Z-jhG%0#BqroM`d4#o;ebg8$1&@J~#FztrNN^Gf&fpPK}~Hc2MpZx<)Q zUuE%^{HZ(s+9dcJlHg}gNW%76Yw_RlU)}MqOM?H-B>1^YB_aMtEdC*X?v8(J68zhf z;QwV3{4ZMk`EmGPPJ;i{B=}pC;D68J|6g(V4=2I@X%hUY7>W|nXJ2DL%JhEqYWMcZ zGVq@KbBKZWr2pfR;2&w?_nfa48aSJT{?a|)(ZJ0-?yo-F&EradCz{7yY~vqbVNyRg zkGsOg|K14(?B)9pZ-s?lePVa`k1QS!ry2d+JdQK|O};;ii{EPD8{*)-F_4*g91a}% zxp`axaFzekxcFbO@wbfisvyu<;{<{P;UeE}nO{jsNGk_)h}YJZ_h5 z2OHhvd}f3HLmS`CqC+p#=Kgy@IFov=?1t@bvL|S^J@@#q|c> z*BcTCKR=5YDFeM1tew=wUqSqQ7YIDJB!T}b3A`Qnh(LPx`XTUv=oQZ1;_R^lG5iYN zZ0#`3HbF6Pd~AFC&PW2kFbSM>nuK`RFOd-by(I8v-~)S<#`7LX0{?Lm_~S|N;}@8) zJgrIKZzq9&3OrFcdt-o41n*clHX`KKm`)*%|Jz@q3Yx=-Jr^?zQmY7VhTtzq0U&7VhTbuKZuO za5s;3@Jb7J^WR0botImYvmxT|v@QD`g)`P}c_&FB-CmVl;g`aT0Ul7@g_4|&6 z|HZ;xzI7JfX5p^gR#^A}3wONbb_@6Zr;p#^(MB(oKhwew`Pq6uxA0z;&fl}}7cIQx zAs^2W+irii@NYcq1M)5WQwv}8V;|7V!iTfoq*A z!1Y(Tg%5e$hYz>$n=E|dRv+*U3%|$0S8wwHmK}SKSon^gc8Bk>@Qy!^Dd&^F_TikJV}6fY_%Hs$hr98@x#~VWJnO^RlVW~vS@`VV z`tZ|zu$KaXCE~Z~2G06OT>Oz1{#y&b#NwH1;U{nym45Rqe2#^$vG76*ztX}VwQ#4t zthew#Sh(Xq4_WvRaO%|0(d};?p5OcM5{tjx!rLtTWDD=dLYnAy&{&ZQ;%?aj%VkuZ25%LbHv(&BC1>!100SE!@rD-MIU^ zg}Zt8lNJwm{g`^W`EsL$_oZ`HUpLQn<@}O`yZPzmww$M1xSLn5wsTDZf{eR2lR<#F&y z7QWiTUA?|$;msC)jxE18rnYWL#h5Ek36T1VnldG|Z;NV{@K!gkY)P3nrlK-BzrJi?MYM7rFYqYGszHFKQ(Y=GcY++S7xz~}vN4;cWw7jOSwj#QuY;H}3`Q#&++tA>R zDX&|&u%ed8REP*XD;t*7`)~f!JE74lFRQ7EUR6<69i3mRut4=o8kQ`bKYvWQ7mdz7 z_sr-yGcTMSjq209iu#Hxsv4G5)JI+B4PFA!3G+xguP%B;P2JqGn&`YGb@dI=vZdgz zTezsEVoAlkF=M@Ck)mB~5Tye3%RIjU=Pg~haG9Sf0Ensy{Z_KE!OOq7Rkib~YOkOY zCp41T+_L(L=+gR{=%TXvhKjCWd0DLmoiLA$2Z~|C=C!P$yo&y)SyWjTEw3!AFDqBw z8!DCrVn!?L8f>_syt0C>P7t$vY_z9G#m3|WX@d^=Xq9pXkct2KUMWb!3c{W*H{oJZ~^FXDhPt@G= zJ7dhNTUb_An<$RZ&Z|%#ShRu8u3fs2%9O_?qev5=tuYhz-zoZUl2-wlmDSc(G&DF; z13XUO#(P(m)l@N5D|&u`7GN(+MlY!wy>!X^lA}c!H|c0GCXDYHqo$(viY1k!=hxRQ zOp;4nj6~VQMM;!TpfWXOOR8$e^(;yt3iVBtPxly!vI&+XSw6uyNivFyk|-zmWPo*i z&i+hRwC)u=YL_P}SFq^GvI)jXOj>a<5@qz62sc>?K4(P}5ks(u$+8K?`Aii}lu`1E z!v00ZMo=~Wf635YHgyWXhW{@ai~xsDdPs(V9%WRWuU;_i+_R!*oj1eRrBJ7$(JL0# z)kaMt0yL_OXVf37dHIo}GiRTRq;h%|Dw(vt*+%Iz-x7a`&TFWPR+iPyLpO{@%Nxst z8HseYRe!FiSQ1@WH*aZ8MHJn#B6_9Ok{mYo5%_|JXnB1Fk}NuZX>IuuHf;(76_}Ls zqKoS5&@GlM6I5uWRn9Fduck)x>l~1=wzMKTx2~>6kSfyq`iD*9fA(Qf4QOv6SnA3> zK#X;iz={ebv;_%9v>28wTU0U6=+2$_E~%`qyDC~yUtd@6ilG8jl+~iP`sf!{EG%EN z%u|lGMA5QEixBJ4nksagvYJGn0?Jv>bXQhYT$Lb^M@|dtuB`AHY8N42mdsZi6dR{M zm>|tUcj*IfbN#o5tI8Hdmy%-KB=e;+JYl@&>nx6qc|Nn0swwp%x}?r;$%No>lgKII z7w}rR&t#dw)Gh3WDGnY)7552TrfCC3@^SY76V2d>k51Sj3E~c73BtRfiTmL2SmH6W zFO!`GsOS7q7=+HN;B#Gf5~;61+odmq@fs@W)@n8Sd}ejQFFh!t91=ur4$w};!bOaq zAjA}=C%C*Wj#^E;9?(Vg6(Ztp7%eQ?qd4wEVzPE$6OD(eTH2v|WqnZ3Oe{Qc9`<9R zET~9LS$X%Swy>U=xDSbQabFWzP;LPn}Sh zSt5cz!gpqs4G_w28a{IpF+c{zKp!z=r#e4kwY&OgdM-{8A`?tA>Rh;QKNI)Vx_I!%@=Uki zd_t;|D_{R&|Fe7EVfK%AC5dnUC2{GUpMrb#V!bc;bLDri>v>WBW*Zn!=a=>96hFp{ zL;lnKA7B2}dHM@O#R&vr8Xe{+r^`JAbZByMXG}F_NWU7ni=vKhMv<*?+j? zJ@#{%GrL`uOmRqsZUpgLp$kcT_%%KWHnuB@d2{LO;@~d5d$#f2 zjoo0>R-1pR^@kE$dY(U5em5=-0CQyzrZ2qM&mqNSWIx6Qy$_S5FTTW&c`55^!C!p( F{|yn{f0_UQ diff --git a/node_modules/bare-url/prebuilds/linux-x64/bare-url.bare b/node_modules/bare-url/prebuilds/linux-x64/bare-url.bare deleted file mode 100644 index 14bd6fe891c68489ac3394eaa9e5590de7329871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101296 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�}b8k-##V$MaM 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 TyGkEu(lO8H+{F3IO#lA@fi4JT diff --git a/node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare b/node_modules/bare-url/prebuilds/win32-arm64/bare-url.bare deleted file mode 100644 index 5b8661188e42700248ac434dccfaddd309814487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165376 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'; -export function generatePage() { - // If run not in browser (e.g. unit test), do nothing. - if (!globalThis.document.documentElement) { - return; - } - globalThis.document.documentElement.innerHTML = mapperPageSource; - // Show a confirmation dialog when the user tries to leave the Mapper tab. - globalThis.window.onbeforeunload = () => 'Closing or reloading this tab will stop the BiDi process. Are you sure you want to leave?'; -} -function stringify(message) { - if (typeof message === 'object') { - return JSON.stringify(message, null, 2); - } - return message; -} -export function log(logPrefix, ...messages) { - // If run not in browser (e.g. unit test), do nothing. - if (!globalThis.document.documentElement) { - return; - } - // Skip sending BiDi logs as they are logged once by `bidi:server:*` - if (!logPrefix.startsWith(LogType.bidi)) { - // If `sendDebugMessage` is defined, send the log message there. - globalThis.window?.sendDebugMessage?.(JSON.stringify({ logType: logPrefix, messages }, null, 2)); - } - const debugContainer = document.getElementById('logs'); - if (!debugContainer) { - return; - } - // This piece of HTML should be added: - //
...log message...
- const lineElement = document.createElement('div'); - lineElement.className = 'pre'; - lineElement.textContent = [logPrefix, ...messages].map(stringify).join(' '); - debugContainer.appendChild(lineElement); - if (debugContainer.childNodes.length > 400) { - debugContainer.removeChild(debugContainer.childNodes[0]); - } -} -//# sourceMappingURL=mapperTabPage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js.map b/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js.map deleted file mode 100644 index a8ba9f3..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mapperTabPage.js","sourceRoot":"","sources":["../../src/bidiTab/mapperTabPage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAiB,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAExD,uDAAuD;AACvD,MAAM,gBAAgB,GACpB,u3BAAu3B,CAAC;AAE13B,MAAM,UAAU,YAAY;IAC1B,sDAAsD;IACtD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,gBAAgB,CAAC;IAEjE,0EAA0E;IAC1E,UAAU,CAAC,MAAM,CAAC,cAAc,GAAG,GAAG,EAAE,CACtC,2FAA2F,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,SAAoB,EAAE,GAAG,QAAmB;IAC9D,sDAAsD;IACtD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,gEAAgE;QAChE,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,CACnC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,sCAAsC;IACtC,2CAA2C;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAClD,WAAW,CAAC,SAAS,GAAG,KAAK,CAAC;IAE9B,WAAW,CAAC,WAAW,GAAG,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC3C,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/CdpClient.d.ts b/node_modules/chromium-bidi/lib/cdp/CdpClient.d.ts deleted file mode 100644 index 356370a..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpClient.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js'; -import { EventEmitter } from '../utils/EventEmitter.js'; -import type { MapperCdpConnection } from './CdpConnection.js'; -export type CdpEvents = { - [Property in keyof ProtocolMapping.Events]: ProtocolMapping.Events[Property][0]; -}; -/** An error that will be thrown if/when the connection is closed. */ -export declare class CloseError extends Error { -} -export interface CdpClient extends EventEmitter { - /** Unique session identifier. */ - sessionId: Protocol.Target.SessionID | undefined; - /** - * Provides an unique way to detect if an error was caused by the closure of a - * Target or Session. - * - * @example During the creation of a subframe we navigate the main frame. - * The subframe Target is closed while initialized commands are in-flight. - * In this case we want to swallow the thrown error. - */ - isCloseError(error: unknown): boolean; - /** - * Returns a command promise, which will be resolved with the command result - * after receiving the result from CDP. - * @param method Name of the CDP command to call. - * @param params Parameters to pass to the CDP command. - */ - sendCommand(method: CdpMethod, params?: ProtocolMapping.Commands[CdpMethod]['paramsType'][0]): Promise; -} -/** Represents a high-level CDP connection to the browser. */ -export declare class MapperCdpClient extends EventEmitter implements CdpClient { - #private; - constructor(cdpConnection: MapperCdpConnection, sessionId?: Protocol.Target.SessionID); - get sessionId(): Protocol.Target.SessionID | undefined; - sendCommand(method: CdpMethod, ...params: ProtocolMapping.Commands[CdpMethod]['paramsType']): Promise; - isCloseError(error: unknown): boolean; -} diff --git a/node_modules/chromium-bidi/lib/cdp/CdpClient.js b/node_modules/chromium-bidi/lib/cdp/CdpClient.js deleted file mode 100644 index 79403e9..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpClient.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { EventEmitter } from '../utils/EventEmitter.js'; -/** An error that will be thrown if/when the connection is closed. */ -export class CloseError extends Error { -} -/** Represents a high-level CDP connection to the browser. */ -export class MapperCdpClient extends EventEmitter { - #cdpConnection; - #sessionId; - constructor(cdpConnection, sessionId) { - super(); - this.#cdpConnection = cdpConnection; - this.#sessionId = sessionId; - } - get sessionId() { - return this.#sessionId; - } - sendCommand(method, ...params) { - return this.#cdpConnection.sendCommand(method, params[0], this.#sessionId); - } - isCloseError(error) { - return error instanceof CloseError; - } -} -//# sourceMappingURL=CdpClient.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/CdpClient.js.map b/node_modules/chromium-bidi/lib/cdp/CdpClient.js.map deleted file mode 100644 index d2c1d8c..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpClient.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CdpClient.js","sourceRoot":"","sources":["../../src/cdp/CdpClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAQtD,qEAAqE;AACrE,MAAM,OAAO,UAAW,SAAQ,KAAK;CAAG;AA4BxC,6DAA6D;AAC7D,MAAM,OAAO,eACX,SAAQ,YAAuB;IAG/B,cAAc,CAAsB;IACpC,UAAU,CAA6B;IAEvC,YACE,aAAkC,EAClC,SAAqC;QAErC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW,CACT,MAAiB,EACjB,GAAG,MAAyD;QAE5D,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CAAC,KAAc;QACzB,OAAO,KAAK,YAAY,UAAU,CAAC;IACrC,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/CdpConnection.d.ts b/node_modules/chromium-bidi/lib/cdp/CdpConnection.d.ts deleted file mode 100644 index cb10de8..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpConnection.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js'; -import type { LoggerFn } from '../utils/log.js'; -import type { Transport } from '../utils/transport.js'; -import { MapperCdpClient, type CdpClient } from './CdpClient.js'; -export interface CdpConnection { - getCdpClient(sessionId: Protocol.Target.SessionID): CdpClient; -} -/** - * Represents a high-level CDP connection to the browser backend. - * - * Manages all CdpClients (each backed by a Session ID) instance for each active - * CDP session. - */ -export declare class MapperCdpConnection implements CdpConnection { - #private; - static readonly LOGGER_PREFIX_RECV: "cdp:RECV ◂"; - static readonly LOGGER_PREFIX_SEND: "cdp:SEND ▸"; - constructor(transport: Transport, logger?: LoggerFn); - /** Closes the connection to the browser. */ - close(): void; - createBrowserSession(): Promise; - /** - * Gets a CdpClient instance attached to the given session ID, - * or null if the session is not attached. - */ - getCdpClient(sessionId: Protocol.Target.SessionID): MapperCdpClient; - sendCommand(method: CdpMethod, params?: ProtocolMapping.Commands[CdpMethod]['paramsType'][0], sessionId?: Protocol.Target.SessionID): Promise; -} diff --git a/node_modules/chromium-bidi/lib/cdp/CdpConnection.js b/node_modules/chromium-bidi/lib/cdp/CdpConnection.js deleted file mode 100644 index ff0ad82..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpConnection.js +++ /dev/null @@ -1,130 +0,0 @@ -var _a; -import { LogType } from '../utils/log.js'; -import { CloseError, MapperCdpClient } from './CdpClient.js'; -/** - * Represents a high-level CDP connection to the browser backend. - * - * Manages all CdpClients (each backed by a Session ID) instance for each active - * CDP session. - */ -export class MapperCdpConnection { - static LOGGER_PREFIX_RECV = `${LogType.cdp}:RECV ◂`; - static LOGGER_PREFIX_SEND = `${LogType.cdp}:SEND ▸`; - #mainBrowserCdpClient; - #transport; - /** Map from session ID to CdpClient. - * `undefined` points to the main browser session. */ - #sessionCdpClients = new Map(); - #commandCallbacks = new Map(); - #logger; - #nextId = 0; - constructor(transport, logger) { - this.#transport = transport; - this.#logger = logger; - this.#transport.setOnMessage(this.#onMessage); - // Create default Browser CDP Session. - this.#mainBrowserCdpClient = this.#createCdpClient(undefined); - } - /** Closes the connection to the browser. */ - close() { - this.#transport.close(); - for (const [, { reject, error }] of this.#commandCallbacks) { - reject(error); - } - this.#commandCallbacks.clear(); - this.#sessionCdpClients.clear(); - } - async createBrowserSession() { - const { sessionId } = await this.#mainBrowserCdpClient.sendCommand('Target.attachToBrowserTarget'); - return this.#createCdpClient(sessionId); - } - /** - * Gets a CdpClient instance attached to the given session ID, - * or null if the session is not attached. - */ - getCdpClient(sessionId) { - const cdpClient = this.#sessionCdpClients.get(sessionId); - if (!cdpClient) { - throw new Error(`Unknown CDP session ID: ${sessionId}`); - } - return cdpClient; - } - sendCommand(method, params, sessionId) { - return new Promise((resolve, reject) => { - const id = this.#nextId++; - this.#commandCallbacks.set(id, { - sessionId, - resolve, - reject, - error: new CloseError(`${method} ${JSON.stringify(params)} ${sessionId ?? ''} call rejected because the connection has been closed.`), - }); - const cdpMessage = { id, method, params }; - if (sessionId) { - cdpMessage.sessionId = sessionId; - } - void this.#transport - .sendMessage(JSON.stringify(cdpMessage)) - ?.catch((error) => { - this.#logger?.(LogType.debugError, error); - this.#transport.close(); - }); - this.#logger?.(_a.LOGGER_PREFIX_SEND, cdpMessage); - }); - } - #onMessage = (json) => { - const message = JSON.parse(json); - this.#logger?.(_a.LOGGER_PREFIX_RECV, message); - // Update client map if a session is attached - // Listen for these events on every session. - if (message.method === 'Target.attachedToTarget') { - const { sessionId } = message.params; - this.#createCdpClient(sessionId); - } - if (message.id !== undefined) { - // Handle command response. - const callbacks = this.#commandCallbacks.get(message.id); - this.#commandCallbacks.delete(message.id); - if (callbacks) { - if (message.result) { - callbacks.resolve(message.result); - } - else if (message.error) { - callbacks.reject(message.error); - } - } - } - else if (message.method) { - const client = this.#sessionCdpClients.get(message.sessionId ?? undefined); - client?.emit(message.method, message.params || {}); - // Update client map if a session is detached - // But emit on that session - if (message.method === 'Target.detachedFromTarget') { - const { sessionId } = message.params; - const client = this.#sessionCdpClients.get(sessionId); - if (client) { - this.#sessionCdpClients.delete(sessionId); - client.removeAllListeners(); - } - // Reject all the pending commands for the detached session. - for (const callback of this.#commandCallbacks.values()) { - if (callback.sessionId === sessionId) { - callback.reject(callback.error); - } - } - } - } - }; - /** - * Creates a new CdpClient instance for the given session ID. - * @param sessionId either a string, or undefined for the main browser session. - * The main browser session is used only to create new browser sessions. - * @private - */ - #createCdpClient(sessionId) { - const cdpClient = new MapperCdpClient(this, sessionId); - this.#sessionCdpClients.set(sessionId, cdpClient); - return cdpClient; - } -} -_a = MapperCdpConnection; -//# sourceMappingURL=CdpConnection.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/CdpConnection.js.map b/node_modules/chromium-bidi/lib/cdp/CdpConnection.js.map deleted file mode 100644 index 6654e6b..0000000 --- a/node_modules/chromium-bidi/lib/cdp/CdpConnection.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CdpConnection.js","sourceRoot":"","sources":["../../src/cdp/CdpConnection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/cdp.d.ts b/node_modules/chromium-bidi/lib/cdp/cdp.d.ts deleted file mode 100644 index 895c0bc..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdp.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './CdpClient.js'; -export * from './CdpConnection.js'; -export * from './cdpMessage.js'; diff --git a/node_modules/chromium-bidi/lib/cdp/cdp.js b/node_modules/chromium-bidi/lib/cdp/cdp.js deleted file mode 100644 index ed3659a..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdp.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * from './CdpClient.js'; -export * from './CdpConnection.js'; -export * from './cdpMessage.js'; -//# sourceMappingURL=cdp.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/cdp.js.map b/node_modules/chromium-bidi/lib/cdp/cdp.js.map deleted file mode 100644 index 6b9fb70..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../src/cdp/cdp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/cdpMessage.d.ts b/node_modules/chromium-bidi/lib/cdp/cdpMessage.d.ts deleted file mode 100644 index de28b1b..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdpMessage.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js'; -export interface CdpError { - code: number; - message: string; -} -export interface CdpMessage { - sessionId?: Protocol.Target.SessionID; - id?: number; - error?: CdpError; - method?: CdpMethod; - params?: ProtocolMapping.Commands[CdpMethod]['paramsType'][0]; - result?: ProtocolMapping.Commands[CdpMethod]['returnType']; -} diff --git a/node_modules/chromium-bidi/lib/cdp/cdpMessage.js b/node_modules/chromium-bidi/lib/cdp/cdpMessage.js deleted file mode 100644 index 1498a80..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdpMessage.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=cdpMessage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/cdp/cdpMessage.js.map b/node_modules/chromium-bidi/lib/cdp/cdpMessage.js.map deleted file mode 100644 index 3f02dc9..0000000 --- a/node_modules/chromium-bidi/lib/cdp/cdpMessage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cdpMessage.js","sourceRoot":"","sources":["../../src/cdp/cdpMessage.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/iife/mapperTab.js b/node_modules/chromium-bidi/lib/iife/mapperTab.js deleted file mode 100644 index 5752659..0000000 --- a/node_modules/chromium-bidi/lib/iife/mapperTab.js +++ /dev/null @@ -1,19967 +0,0 @@ -(function () { - 'use strict'; - - function mitt(n){return {all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e]);},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]));},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e);}),(i=n.get("*"))&&i.slice().map(function(n){n(t,e);});}}} - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class EventEmitter { - #emitter = mitt(); - on(type, handler) { - this.#emitter.on(type, handler); - return this; - } - once(event, handler) { - const onceHandler = (eventData) => { - handler(eventData); - this.off(event, onceHandler); - }; - return this.on(event, onceHandler); - } - off(type, handler) { - this.#emitter.off(type, handler); - return this; - } - emit(event, eventData) { - this.#emitter.emit(event, eventData); - } - removeAllListeners(event) { - if (event) { - this.#emitter.all.delete(event); - } - else { - this.#emitter.all.clear(); - } - return this; - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var LogType; - (function (LogType) { - LogType["bidi"] = "bidi"; - LogType["cdp"] = "cdp"; - LogType["debug"] = "debug"; - LogType["debugError"] = "debug:error"; - LogType["debugInfo"] = "debug:info"; - LogType["debugWarn"] = "debug:warn"; - })(LogType || (LogType = {})); - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var _a$6; - class ProcessingQueue { - static LOGGER_PREFIX = `${LogType.debug}:queue`; - #logger; - #processor; - #queue = []; - #isProcessing = false; - constructor(processor, logger) { - this.#processor = processor; - this.#logger = logger; - } - add(entry, name) { - this.#queue.push([entry, name]); - void this.#processIfNeeded(); - } - async #processIfNeeded() { - if (this.#isProcessing) { - return; - } - this.#isProcessing = true; - while (this.#queue.length > 0) { - const arrayEntry = this.#queue.shift(); - if (!arrayEntry) { - continue; - } - const [entryPromise, name] = arrayEntry; - this.#logger?.(_a$6.LOGGER_PREFIX, 'Processing event:', name); - await entryPromise - .then((entry) => { - if (entry.kind === 'error') { - this.#logger?.(LogType.debugError, 'Event threw before sending:', entry.error.message, entry.error.stack); - return; - } - return this.#processor(entry.value); - }) - .catch((error) => { - this.#logger?.(LogType.debugError, 'Event was not processed:', error?.message); - }); - } - this.#isProcessing = false; - } - } - _a$6 = ProcessingQueue; - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var BiDiModule; - (function (BiDiModule) { - BiDiModule["Bluetooth"] = "bluetooth"; - BiDiModule["Browser"] = "browser"; - BiDiModule["BrowsingContext"] = "browsingContext"; - BiDiModule["Cdp"] = "goog:cdp"; - BiDiModule["Input"] = "input"; - BiDiModule["Log"] = "log"; - BiDiModule["Network"] = "network"; - BiDiModule["Script"] = "script"; - BiDiModule["Session"] = "session"; - BiDiModule["Speculation"] = "speculation"; - })(BiDiModule || (BiDiModule = {})); - var Script$2; - (function (Script) { - (function (EventNames) { - EventNames["Message"] = "script.message"; - EventNames["RealmCreated"] = "script.realmCreated"; - EventNames["RealmDestroyed"] = "script.realmDestroyed"; - })(Script.EventNames || (Script.EventNames = {})); - })(Script$2 || (Script$2 = {})); - var Log$1; - (function (Log) { - (function (EventNames) { - EventNames["LogEntryAdded"] = "log.entryAdded"; - })(Log.EventNames || (Log.EventNames = {})); - })(Log$1 || (Log$1 = {})); - var BrowsingContext$2; - (function (BrowsingContext) { - (function (EventNames) { - EventNames["ContextCreated"] = "browsingContext.contextCreated"; - EventNames["ContextDestroyed"] = "browsingContext.contextDestroyed"; - EventNames["DomContentLoaded"] = "browsingContext.domContentLoaded"; - EventNames["DownloadEnd"] = "browsingContext.downloadEnd"; - EventNames["DownloadWillBegin"] = "browsingContext.downloadWillBegin"; - EventNames["FragmentNavigated"] = "browsingContext.fragmentNavigated"; - EventNames["HistoryUpdated"] = "browsingContext.historyUpdated"; - EventNames["Load"] = "browsingContext.load"; - EventNames["NavigationAborted"] = "browsingContext.navigationAborted"; - EventNames["NavigationCommitted"] = "browsingContext.navigationCommitted"; - EventNames["NavigationFailed"] = "browsingContext.navigationFailed"; - EventNames["NavigationStarted"] = "browsingContext.navigationStarted"; - EventNames["UserPromptClosed"] = "browsingContext.userPromptClosed"; - EventNames["UserPromptOpened"] = "browsingContext.userPromptOpened"; - })(BrowsingContext.EventNames || (BrowsingContext.EventNames = {})); - })(BrowsingContext$2 || (BrowsingContext$2 = {})); - var Input$2; - (function (Input) { - (function (EventNames) { - EventNames["FileDialogOpened"] = "input.fileDialogOpened"; - })(Input.EventNames || (Input.EventNames = {})); - })(Input$2 || (Input$2 = {})); - var Network$2; - (function (Network) { - (function (EventNames) { - EventNames["AuthRequired"] = "network.authRequired"; - EventNames["BeforeRequestSent"] = "network.beforeRequestSent"; - EventNames["FetchError"] = "network.fetchError"; - EventNames["ResponseCompleted"] = "network.responseCompleted"; - EventNames["ResponseStarted"] = "network.responseStarted"; - })(Network.EventNames || (Network.EventNames = {})); - })(Network$2 || (Network$2 = {})); - var Bluetooth$2; - (function (Bluetooth) { - (function (EventNames) { - EventNames["RequestDevicePromptUpdated"] = "bluetooth.requestDevicePromptUpdated"; - EventNames["GattConnectionAttempted"] = "bluetooth.gattConnectionAttempted"; - EventNames["CharacteristicEventGenerated"] = "bluetooth.characteristicEventGenerated"; - EventNames["DescriptorEventGenerated"] = "bluetooth.descriptorEventGenerated"; - })(Bluetooth.EventNames || (Bluetooth.EventNames = {})); - })(Bluetooth$2 || (Bluetooth$2 = {})); - var Speculation; - (function (Speculation) { - (function (EventNames) { - EventNames["PrefetchStatusUpdated"] = "speculation.prefetchStatusUpdated"; - })(Speculation.EventNames || (Speculation.EventNames = {})); - })(Speculation || (Speculation = {})); - const EVENT_NAMES = new Set([ - ...Object.values(BiDiModule), - ...Object.values(Bluetooth$2.EventNames), - ...Object.values(BrowsingContext$2.EventNames), - ...Object.values(Input$2.EventNames), - ...Object.values(Log$1.EventNames), - ...Object.values(Network$2.EventNames), - ...Object.values(Script$2.EventNames), - ...Object.values(Speculation.EventNames), - ]); - - class Exception extends Error { - error; - message; - stacktrace; - constructor(error, message, stacktrace) { - super(); - this.error = error; - this.message = message; - this.stacktrace = stacktrace; - } - toErrorResponse(commandId) { - return { - type: 'error', - id: commandId, - error: this.error, - message: this.message, - stacktrace: this.stacktrace, - }; - } - } - class InvalidArgumentException extends Exception { - constructor(message, stacktrace) { - super("invalid argument" , message, stacktrace); - } - } - class InvalidSelectorException extends Exception { - constructor(message, stacktrace) { - super("invalid selector" , message, stacktrace); - } - } - class MoveTargetOutOfBoundsException extends Exception { - constructor(message, stacktrace) { - super("move target out of bounds" , message, stacktrace); - } - } - class NoSuchAlertException extends Exception { - constructor(message, stacktrace) { - super("no such alert" , message, stacktrace); - } - } - class NoSuchElementException extends Exception { - constructor(message, stacktrace) { - super("no such element" , message, stacktrace); - } - } - class NoSuchFrameException extends Exception { - constructor(message, stacktrace) { - super("no such frame" , message, stacktrace); - } - } - class NoSuchHandleException extends Exception { - constructor(message, stacktrace) { - super("no such handle" , message, stacktrace); - } - } - class NoSuchHistoryEntryException extends Exception { - constructor(message, stacktrace) { - super("no such history entry" , message, stacktrace); - } - } - class NoSuchInterceptException extends Exception { - constructor(message, stacktrace) { - super("no such intercept" , message, stacktrace); - } - } - class NoSuchNodeException extends Exception { - constructor(message, stacktrace) { - super("no such node" , message, stacktrace); - } - } - class NoSuchRequestException extends Exception { - constructor(message, stacktrace) { - super("no such request" , message, stacktrace); - } - } - class NoSuchScriptException extends Exception { - constructor(message, stacktrace) { - super("no such script" , message, stacktrace); - } - } - class NoSuchUserContextException extends Exception { - constructor(message, stacktrace) { - super("no such user context" , message, stacktrace); - } - } - class UnknownCommandException extends Exception { - constructor(message, stacktrace) { - super("unknown command" , message, stacktrace); - } - } - class UnknownErrorException extends Exception { - constructor(message, stacktrace = new Error().stack) { - super("unknown error" , message, stacktrace); - } - } - class UnableToCaptureScreenException extends Exception { - constructor(message, stacktrace) { - super("unable to capture screen" , message, stacktrace); - } - } - class UnsupportedOperationException extends Exception { - constructor(message, stacktrace) { - super("unsupported operation" , message, stacktrace); - } - } - class UnableToSetCookieException extends Exception { - constructor(message, stacktrace) { - super("unable to set cookie" , message, stacktrace); - } - } - class UnableToSetFileInputException extends Exception { - constructor(message, stacktrace) { - super("unable to set file input" , message, stacktrace); - } - } - class InvalidWebExtensionException extends Exception { - constructor(message, stacktrace) { - super("invalid web extension" , message, stacktrace); - } - } - class NoSuchWebExtensionException extends Exception { - constructor(message, stacktrace) { - super("no such web extension" , message, stacktrace); - } - } - class NoSuchNetworkCollectorException extends Exception { - constructor(message, stacktrace) { - super("no such network collector" , message, stacktrace); - } - } - class NoSuchNetworkDataException extends Exception { - constructor(message, stacktrace) { - super("no such network data" , message, stacktrace); - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class BidiNoOpParser { - parseDisableSimulationParameters(params) { - return params; - } - parseHandleRequestDevicePromptParams(params) { - return params; - } - parseSimulateAdapterParameters(params) { - return params; - } - parseSimulateAdvertisementParameters(params) { - return params; - } - parseSimulateCharacteristicParameters(params) { - return params; - } - parseSimulateCharacteristicResponseParameters(params) { - return params; - } - parseSimulateDescriptorParameters(params) { - return params; - } - parseSimulateDescriptorResponseParameters(params) { - return params; - } - parseSimulateGattConnectionResponseParameters(params) { - return params; - } - parseSimulateGattDisconnectionParameters(params) { - return params; - } - parseSimulatePreconnectedPeripheralParameters(params) { - return params; - } - parseSimulateServiceParameters(params) { - return params; - } - parseCreateUserContextParameters(params) { - return params; - } - parseRemoveUserContextParameters(params) { - return params; - } - parseSetClientWindowStateParameters(params) { - return params; - } - parseSetDownloadBehaviorParameters(params) { - return params; - } - parseActivateParams(params) { - return params; - } - parseCaptureScreenshotParams(params) { - return params; - } - parseCloseParams(params) { - return params; - } - parseCreateParams(params) { - return params; - } - parseGetTreeParams(params) { - return params; - } - parseHandleUserPromptParams(params) { - return params; - } - parseLocateNodesParams(params) { - return params; - } - parseNavigateParams(params) { - return params; - } - parsePrintParams(params) { - return params; - } - parseReloadParams(params) { - return params; - } - parseSetBypassCspParams(params) { - return params; - } - parseSetViewportParams(params) { - return params; - } - parseTraverseHistoryParams(params) { - return params; - } - parseGetSessionParams(params) { - return params; - } - parseResolveRealmParams(params) { - return params; - } - parseSendCommandParams(params) { - return params; - } - parseSetClientHintsOverrideParams(params) { - return params; - } - parseSetForcedColorsModeThemeOverrideParams(params) { - return params; - } - parseSetGeolocationOverrideParams(params) { - return params; - } - parseSetLocaleOverrideParams(params) { - return params; - } - parseSetNetworkConditionsParams(params) { - return params; - } - parseSetScreenOrientationOverrideParams(params) { - return params; - } - parseSetScreenSettingsOverrideParams(params) { - return params; - } - parseSetScriptingEnabledParams(params) { - return params; - } - parseSetScrollbarTypeOverrideParams(params) { - return params; - } - parseSetTimezoneOverrideParams(params) { - return params; - } - parseSetTouchOverrideParams(params) { - return params; - } - parseSetUserAgentOverrideParams(params) { - return params; - } - parseAddPreloadScriptParams(params) { - return params; - } - parseCallFunctionParams(params) { - return params; - } - parseDisownParams(params) { - return params; - } - parseEvaluateParams(params) { - return params; - } - parseGetRealmsParams(params) { - return params; - } - parseRemovePreloadScriptParams(params) { - return params; - } - parsePerformActionsParams(params) { - return params; - } - parseReleaseActionsParams(params) { - return params; - } - parseSetFilesParams(params) { - return params; - } - parseAddDataCollectorParams(params) { - return params; - } - parseAddInterceptParams(params) { - return params; - } - parseContinueRequestParams(params) { - return params; - } - parseContinueResponseParams(params) { - return params; - } - parseContinueWithAuthParams(params) { - return params; - } - parseDisownDataParams(params) { - return params; - } - parseFailRequestParams(params) { - return params; - } - parseGetDataParams(params) { - return params; - } - parseProvideResponseParams(params) { - return params; - } - parseRemoveDataCollectorParams(params) { - return params; - } - parseRemoveInterceptParams(params) { - return params; - } - parseSetCacheBehaviorParams(params) { - return params; - } - parseSetExtraHeadersParams(params) { - return params; - } - parseSetPermissionsParams(params) { - return params; - } - parseSubscribeParams(params) { - return params; - } - parseUnsubscribeParams(params) { - return params; - } - parseDeleteCookiesParams(params) { - return params; - } - parseGetCookiesParams(params) { - return params; - } - parseSetCookieParams(params) { - return params; - } - parseInstallParams(params) { - return params; - } - parseUninstallParams(params) { - return params; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class BrowserProcessor { - #browserCdpClient; - #browsingContextStorage; - #configStorage; - #userContextStorage; - constructor(browserCdpClient, browsingContextStorage, configStorage, userContextStorage) { - this.#browserCdpClient = browserCdpClient; - this.#browsingContextStorage = browsingContextStorage; - this.#configStorage = configStorage; - this.#userContextStorage = userContextStorage; - } - close() { - setTimeout(() => this.#browserCdpClient.sendCommand('Browser.close').catch(() => { }), 0); - return {}; - } - async createUserContext(params) { - const w3cParams = params; - const globalConfig = this.#configStorage.getGlobalConfig(); - if (w3cParams.acceptInsecureCerts !== undefined) { - if (w3cParams.acceptInsecureCerts === false && - globalConfig.acceptInsecureCerts === true) - throw new UnknownErrorException(`Cannot set user context's "acceptInsecureCerts" to false, when a capability "acceptInsecureCerts" is set to true`); - } - const request = {}; - if (w3cParams.proxy) { - const proxyStr = getProxyStr(w3cParams.proxy); - if (proxyStr) { - request.proxyServer = proxyStr; - } - if (w3cParams.proxy.noProxy) { - request.proxyBypassList = w3cParams.proxy.noProxy.join(','); - } - } - else { - if (params['goog:proxyServer'] !== undefined) { - request.proxyServer = params['goog:proxyServer']; - } - const proxyBypassList = params['goog:proxyBypassList'] ?? undefined; - if (proxyBypassList) { - request.proxyBypassList = proxyBypassList.join(','); - } - } - const context = await this.#browserCdpClient.sendCommand('Target.createBrowserContext', request); - await this.#applyDownloadBehavior(globalConfig.downloadBehavior ?? null, context.browserContextId); - this.#configStorage.updateUserContextConfig(context.browserContextId, { - acceptInsecureCerts: params['acceptInsecureCerts'], - userPromptHandler: params['unhandledPromptBehavior'], - }); - return { - userContext: context.browserContextId, - }; - } - async removeUserContext(params) { - const userContext = params.userContext; - if (userContext === 'default') { - throw new InvalidArgumentException('`default` user context cannot be removed'); - } - try { - await this.#browserCdpClient.sendCommand('Target.disposeBrowserContext', { - browserContextId: userContext, - }); - } - catch (err) { - if (err.message.startsWith('Failed to find context with id')) { - throw new NoSuchUserContextException(err.message); - } - throw err; - } - return {}; - } - async getUserContexts() { - return { - userContexts: await this.#userContextStorage.getUserContexts(), - }; - } - async #getWindowInfo(targetId) { - const windowInfo = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId }); - return { - active: false, - clientWindow: `${windowInfo.windowId}`, - state: windowInfo.bounds.windowState ?? 'normal', - height: windowInfo.bounds.height ?? 0, - width: windowInfo.bounds.width ?? 0, - x: windowInfo.bounds.left ?? 0, - y: windowInfo.bounds.top ?? 0, - }; - } - async setClientWindowState(params) { - const { clientWindow } = params; - const bounds = { - windowState: params.state, - }; - if (params.state === 'normal') { - if (params.width !== undefined) { - bounds.width = params.width; - } - if (params.height !== undefined) { - bounds.height = params.height; - } - if (params.x !== undefined) { - bounds.left = params.x; - } - if (params.y !== undefined) { - bounds.top = params.y; - } - } - const windowId = Number.parseInt(clientWindow); - if (isNaN(windowId)) { - throw new InvalidArgumentException('no such client window'); - } - await this.#browserCdpClient.sendCommand('Browser.setWindowBounds', { - windowId, - bounds, - }); - const result = await this.#browserCdpClient.sendCommand('Browser.getWindowBounds', { - windowId, - }); - return { - active: false, - clientWindow: `${windowId}`, - state: result.bounds.windowState ?? 'normal', - height: result.bounds.height ?? 0, - width: result.bounds.width ?? 0, - x: result.bounds.left ?? 0, - y: result.bounds.top ?? 0, - }; - } - async getClientWindows() { - const topLevelTargetIds = this.#browsingContextStorage - .getTopLevelContexts() - .map((b) => b.cdpTarget.id); - const clientWindows = await Promise.all(topLevelTargetIds.map(async (targetId) => await this.#getWindowInfo(targetId))); - const uniqueClientWindowIds = new Set(); - const uniqueClientWindows = new Array(); - for (const window of clientWindows) { - if (!uniqueClientWindowIds.has(window.clientWindow)) { - uniqueClientWindowIds.add(window.clientWindow); - uniqueClientWindows.push(window); - } - } - return { clientWindows: uniqueClientWindows }; - } - #toCdpDownloadBehavior(downloadBehavior) { - if (downloadBehavior === null) - return { - behavior: 'default', - }; - if (downloadBehavior?.type === 'denied') - return { - behavior: 'deny', - }; - if (downloadBehavior?.type === 'allowed') { - return { - behavior: 'allow', - downloadPath: downloadBehavior.destinationFolder, - }; - } - throw new UnknownErrorException('Unexpected download behavior'); - } - async #applyDownloadBehavior(downloadBehavior, userContext) { - await this.#browserCdpClient.sendCommand('Browser.setDownloadBehavior', { - ...this.#toCdpDownloadBehavior(downloadBehavior), - browserContextId: userContext === 'default' ? undefined : userContext, - eventsEnabled: true, - }); - } - async setDownloadBehavior(params) { - let userContexts; - if (params.userContexts === undefined) { - userContexts = (await this.#userContextStorage.getUserContexts()).map((c) => c.userContext); - } - else { - userContexts = Array.from(await this.#userContextStorage.verifyUserContextIdList(params.userContexts)); - } - if (params.userContexts === undefined) { - this.#configStorage.updateGlobalConfig({ - downloadBehavior: params.downloadBehavior, - }); - } - else { - params.userContexts.map((userContext) => this.#configStorage.updateUserContextConfig(userContext, { - downloadBehavior: params.downloadBehavior, - })); - } - await Promise.all(userContexts.map(async (userContext) => { - const downloadBehavior = this.#configStorage.getActiveConfig(undefined, userContext) - .downloadBehavior ?? null; - await this.#applyDownloadBehavior(downloadBehavior, userContext); - })); - return {}; - } - } - function getProxyStr(proxyConfig) { - if (proxyConfig.proxyType === 'direct' || - proxyConfig.proxyType === 'system') { - return undefined; - } - if (proxyConfig.proxyType === 'pac') { - throw new UnsupportedOperationException(`PAC proxy configuration is not supported per user context`); - } - if (proxyConfig.proxyType === 'autodetect') { - throw new UnsupportedOperationException(`Autodetect proxy is not supported per user context`); - } - if (proxyConfig.proxyType === 'manual') { - const servers = []; - if (proxyConfig.httpProxy !== undefined) { - servers.push(`http=${proxyConfig.httpProxy}`); - } - if (proxyConfig.sslProxy !== undefined) { - servers.push(`https=${proxyConfig.sslProxy}`); - } - if (proxyConfig.socksProxy !== undefined || - proxyConfig.socksVersion !== undefined) { - if (proxyConfig.socksProxy === undefined) { - throw new InvalidArgumentException(`'socksVersion' cannot be set without 'socksProxy'`); - } - if (proxyConfig.socksVersion === undefined || - typeof proxyConfig.socksVersion !== 'number' || - !Number.isInteger(proxyConfig.socksVersion) || - proxyConfig.socksVersion < 0 || - proxyConfig.socksVersion > 255) { - throw new InvalidArgumentException(`'socksVersion' must be between 0 and 255`); - } - servers.push(`socks=socks${proxyConfig.socksVersion}://${proxyConfig.socksProxy}`); - } - if (servers.length === 0) { - return undefined; - } - return servers.join(';'); - } - throw new UnknownErrorException(`Unknown proxy type`); - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class CdpProcessor { - #browsingContextStorage; - #realmStorage; - #cdpConnection; - #browserCdpClient; - constructor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient) { - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#cdpConnection = cdpConnection; - this.#browserCdpClient = browserCdpClient; - } - getSession(params) { - const context = params.context; - const sessionId = this.#browsingContextStorage.getContext(context).cdpTarget.cdpSessionId; - if (sessionId === undefined) { - return {}; - } - return { session: sessionId }; - } - resolveRealm(params) { - const context = params.realm; - const realm = this.#realmStorage.getRealm({ realmId: context }); - if (realm === undefined) { - throw new UnknownErrorException(`Could not find realm ${params.realm}`); - } - return { executionContextId: realm.executionContextId }; - } - async sendCommand(params) { - const client = params.session - ? this.#cdpConnection.getCdpClient(params.session) - : this.#browserCdpClient; - const result = await client.sendCommand(params.method, params.params); - return { - result, - session: params.session, - }; - } - } - - class BrowsingContextProcessor { - #browserCdpClient; - #browsingContextStorage; - #contextConfigStorage; - #eventManager; - #userContextStorage; - constructor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager) { - this.#contextConfigStorage = contextConfigStorage; - this.#userContextStorage = userContextStorage; - this.#browserCdpClient = browserCdpClient; - this.#browsingContextStorage = browsingContextStorage; - this.#eventManager = eventManager; - this.#eventManager.addSubscribeHook(BrowsingContext$2.EventNames.ContextCreated, this.#onContextCreatedSubscribeHook.bind(this)); - } - getTree(params) { - const resultContexts = params.root === undefined - ? this.#browsingContextStorage.getTopLevelContexts() - : [this.#browsingContextStorage.getContext(params.root)]; - return { - contexts: resultContexts.map((c) => c.serializeToBidiValue(params.maxDepth ?? Number.MAX_VALUE)), - }; - } - async create(params) { - let referenceContext; - let userContext = 'default'; - if (params.referenceContext !== undefined) { - referenceContext = this.#browsingContextStorage.getContext(params.referenceContext); - if (!referenceContext.isTopLevelContext()) { - throw new InvalidArgumentException(`referenceContext should be a top-level context`); - } - userContext = referenceContext.userContext; - } - if (params.userContext !== undefined) { - userContext = params.userContext; - } - const existingContexts = this.#browsingContextStorage - .getAllContexts() - .filter((context) => context.userContext === userContext); - let newWindow = false; - switch (params.type) { - case "tab" : - newWindow = false; - break; - case "window" : - newWindow = true; - break; - } - if (!existingContexts.length) { - newWindow = true; - } - let result; - try { - result = await this.#browserCdpClient.sendCommand('Target.createTarget', { - url: 'about:blank', - newWindow, - browserContextId: userContext === 'default' ? undefined : userContext, - background: params.background === true, - }); - } - catch (err) { - if ( - err.message.startsWith('Failed to find browser context with id') || - err.message === 'browserContextId') { - throw new NoSuchUserContextException(`The context ${userContext} was not found`); - } - throw err; - } - const context = await this.#browsingContextStorage.waitForContext(result.targetId); - await context.lifecycleLoaded(); - return { context: context.id }; - } - navigate(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return context.navigate(params.url, params.wait ?? "none" ); - } - reload(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return context.reload(params.ignoreCache ?? false, params.wait ?? "none" ); - } - async activate(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Activation is only supported on the top-level context'); - } - await context.activate(); - return {}; - } - async captureScreenshot(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.captureScreenshot(params); - } - async print(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.print(params); - } - async setViewport(params) { - const maxDimensionSize = 10_000_000; - if ((params.viewport?.height ?? 0) > maxDimensionSize || - (params.viewport?.width ?? 0) > maxDimensionSize) { - throw new UnsupportedOperationException(`Viewport dimension over ${maxDimensionSize} are not supported`); - } - const config = {}; - if (params.devicePixelRatio !== undefined) { - config.devicePixelRatio = params.devicePixelRatio; - } - if (params.viewport !== undefined) { - config.viewport = params.viewport; - } - const impactedTopLevelContexts = await this.#getRelatedTopLevelBrowsingContexts(params.context, params.userContexts); - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, config); - } - if (params.context !== undefined) { - this.#contextConfigStorage.updateBrowsingContextConfig(params.context, config); - } - await Promise.all(impactedTopLevelContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - async #getRelatedTopLevelBrowsingContexts(browsingContextId, userContextIds) { - if (browsingContextId === undefined && userContextIds === undefined) { - throw new InvalidArgumentException('Either userContexts or context must be provided'); - } - if (browsingContextId !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('userContexts and context are mutually exclusive'); - } - if (browsingContextId !== undefined) { - const context = this.#browsingContextStorage.getContext(browsingContextId); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Emulating viewport is only supported on the top-level context'); - } - return [context]; - } - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - const result = []; - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - return [...new Set(result).values()]; - } - async traverseHistory(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context) { - throw new InvalidArgumentException(`No browsing context with id ${params.context}`); - } - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Traversing history is only supported on the top-level context'); - } - await context.traverseHistory(params.delta); - return {}; - } - async handleUserPrompt(params) { - const context = this.#browsingContextStorage.getContext(params.context); - try { - await context.handleUserPrompt(params.accept, params.userText); - } - catch (error) { - if (error.message?.includes('No dialog is showing')) { - throw new NoSuchAlertException('No dialog is showing'); - } - throw error; - } - return {}; - } - async close(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException(`Non top-level browsing context ${context.id} cannot be closed.`); - } - const parentCdpClient = context.cdpTarget.parentCdpClient; - try { - const detachedFromTargetPromise = new Promise((resolve) => { - const onContextDestroyed = (event) => { - if (event.targetId === params.context) { - parentCdpClient.off('Target.detachedFromTarget', onContextDestroyed); - resolve(); - } - }; - parentCdpClient.on('Target.detachedFromTarget', onContextDestroyed); - }); - try { - if (params.promptUnload) { - await context.close(); - } - else { - await parentCdpClient.sendCommand('Target.closeTarget', { - targetId: params.context, - }); - } - } - catch (error) { - if (!parentCdpClient.isCloseError(error)) { - throw error; - } - } - await detachedFromTargetPromise; - } - catch (error) { - if (!(error.code === -32e3 && - error.message === 'Not attached to an active page')) { - throw error; - } - } - return {}; - } - async locateNodes(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.locateNodes(params); - } - #onContextCreatedSubscribeHook(contextId) { - const context = this.#browsingContextStorage.getContext(contextId); - const contextsToReport = [ - context, - ...this.#browsingContextStorage.getContext(contextId).allChildren, - ]; - contextsToReport.forEach((context) => { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.ContextCreated, - params: context.serializeToBidiValue(), - }, context.id); - }); - return Promise.resolve(); - } - } - - /** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class EmulationProcessor { - #userContextStorage; - #browsingContextStorage; - #contextConfigStorage; - constructor(browsingContextStorage, userContextStorage, contextConfigStorage) { - this.#userContextStorage = userContextStorage; - this.#browsingContextStorage = browsingContextStorage; - this.#contextConfigStorage = contextConfigStorage; - } - async setGeolocationOverride(params) { - if ('coordinates' in params && 'error' in params) { - throw new InvalidArgumentException('Coordinates and error cannot be set at the same time'); - } - let geolocation = null; - if ('coordinates' in params) { - if ((params.coordinates?.altitude ?? null) === null && - (params.coordinates?.altitudeAccuracy ?? null) !== null) { - throw new InvalidArgumentException('Geolocation altitudeAccuracy can be set only with altitude'); - } - geolocation = params.coordinates; - } - else if ('error' in params) { - if (params.error.type !== 'positionUnavailable') { - throw new InvalidArgumentException(`Unknown geolocation error ${params.error.type}`); - } - geolocation = params.error; - } - else { - throw new InvalidArgumentException(`Coordinates or error should be set`); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - geolocation, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - geolocation, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setGeolocationOverride(config.geolocation ?? null); - })); - return {}; - } - async setLocaleOverride(params) { - const locale = params.locale ?? null; - if (locale !== null && !isValidLocale(locale)) { - throw new InvalidArgumentException(`Invalid locale "${locale}"`); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - locale, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - locale, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await Promise.all([ - context.setLocaleOverride(config.locale ?? null), - context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints), - ]); - })); - return {}; - } - async setScriptingEnabled(params) { - const scriptingEnabled = params.enabled; - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - scriptingEnabled, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - scriptingEnabled, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setScriptingEnabled(config.scriptingEnabled ?? null); - })); - return {}; - } - async setScrollbarTypeOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - scrollbarType: params.scrollbarType, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - scrollbarType: params.scrollbarType, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setScrollbarTypeOverride(config.scrollbarType ?? null); - })); - return {}; - } - async setScreenOrientationOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - screenOrientation: params.screenOrientation, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - screenOrientation: params.screenOrientation, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - async setScreenSettingsOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - screenArea: params.screenArea, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - screenArea: params.screenArea, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds, allowGlobal = false) { - if (browsingContextIds === undefined && userContextIds === undefined) { - if (allowGlobal) { - return this.#browsingContextStorage.getTopLevelContexts(); - } - throw new InvalidArgumentException('Either user contexts or browsing contexts must be provided'); - } - if (browsingContextIds !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive'); - } - const result = []; - if (browsingContextIds === undefined) { - if (userContextIds.length === 0) { - throw new InvalidArgumentException('user context should be provided'); - } - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - } - else { - if (browsingContextIds.length === 0) { - throw new InvalidArgumentException('browsing context should be provided'); - } - for (const browsingContextId of browsingContextIds) { - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException('The command is only supported on the top-level context'); - } - result.push(browsingContext); - } - } - return [...new Set(result).values()]; - } - async setTimezoneOverride(params) { - let timezone = params.timezone ?? null; - if (timezone !== null && !isValidTimezone(timezone)) { - throw new InvalidArgumentException(`Invalid timezone "${timezone}"`); - } - if (timezone !== null && isTimeZoneOffsetString(timezone)) { - timezone = `GMT${timezone}`; - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - timezone, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - timezone, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setTimezoneOverride(config.timezone ?? null); - })); - return {}; - } - async setTouchOverride(params) { - const maxTouchPoints = params.maxTouchPoints; - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - maxTouchPoints, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - maxTouchPoints, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - maxTouchPoints, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setTouchOverride(config.maxTouchPoints ?? null); - })); - return {}; - } - async setUserAgentOverrideParams(params) { - if (params.userAgent === '') { - throw new UnsupportedOperationException('empty user agent string is not supported'); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - userAgent: params.userAgent, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - userAgent: params.userAgent, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - userAgent: params.userAgent, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints); - })); - return {}; - } - async setClientHintsOverride(params) { - const clientHints = params.clientHints ?? null; - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - clientHints, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - clientHints, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - clientHints, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints); - })); - return {}; - } - async setNetworkConditions(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - emulatedNetworkConditions: params.networkConditions, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - emulatedNetworkConditions: params.networkConditions, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - emulatedNetworkConditions: params.networkConditions, - }); - } - if (params.networkConditions !== null && - params.networkConditions.type !== 'offline') { - throw new UnsupportedOperationException(`Unsupported network conditions ${params.networkConditions.type}`); - } - await Promise.all(browsingContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setEmulatedNetworkConditions(config.emulatedNetworkConditions ?? null); - })); - return {}; - } - } - function isValidLocale(locale) { - try { - new Intl.Locale(locale); - return true; - } - catch (e) { - if (e instanceof RangeError) { - return false; - } - throw e; - } - } - function isValidTimezone(timezone) { - try { - Intl.DateTimeFormat(undefined, { timeZone: timezone }); - return true; - } - catch (e) { - if (e instanceof RangeError) { - return false; - } - throw e; - } - } - function isTimeZoneOffsetString(timezone) { - return /^[+-](?:2[0-3]|[01]\d)(?::[0-5]\d)?$/.test(timezone); - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function assert(predicate, message) { - if (!predicate) { - throw new Error(message ?? 'Internal assertion failed.'); - } - } - - /* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function isSingleComplexGrapheme(value) { - return isSingleGrapheme(value) && value.length > 1; - } - function isSingleGrapheme(value) { - const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' }); - return [...segmenter.segment(value)].length === 1; - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class NoneSource { - type = "none" ; - } - class KeySource { - type = "key" ; - pressed = new Set(); - #modifiers = 0; - get modifiers() { - return this.#modifiers; - } - get alt() { - return (this.#modifiers & 1) === 1; - } - set alt(value) { - this.#setModifier(value, 1); - } - get ctrl() { - return (this.#modifiers & 2) === 2; - } - set ctrl(value) { - this.#setModifier(value, 2); - } - get meta() { - return (this.#modifiers & 4) === 4; - } - set meta(value) { - this.#setModifier(value, 4); - } - get shift() { - return (this.#modifiers & 8) === 8; - } - set shift(value) { - this.#setModifier(value, 8); - } - #setModifier(value, bit) { - if (value) { - this.#modifiers |= bit; - } - else { - this.#modifiers &= ~bit; - } - } - } - class PointerSource { - type = "pointer" ; - subtype; - pointerId; - pressed = new Set(); - x = 0; - y = 0; - radiusX; - radiusY; - force; - constructor(id, subtype) { - this.pointerId = id; - this.subtype = subtype; - } - get buttons() { - let buttons = 0; - for (const button of this.pressed) { - switch (button) { - case 0: - buttons |= 1; - break; - case 1: - buttons |= 4; - break; - case 2: - buttons |= 2; - break; - case 3: - buttons |= 8; - break; - case 4: - buttons |= 16; - break; - } - } - return buttons; - } - static ClickContext = class ClickContext { - static #DOUBLE_CLICK_TIME_MS = 500; - static #MAX_DOUBLE_CLICK_RADIUS = 2; - count = 0; - #x; - #y; - #time; - constructor(x, y, time) { - this.#x = x; - this.#y = y; - this.#time = time; - } - compare(context) { - return ( - context.#time - this.#time > ClickContext.#DOUBLE_CLICK_TIME_MS || - Math.abs(context.#x - this.#x) > - ClickContext.#MAX_DOUBLE_CLICK_RADIUS || - Math.abs(context.#y - this.#y) > ClickContext.#MAX_DOUBLE_CLICK_RADIUS); - } - }; - #clickContexts = new Map(); - setClickCount(button, context) { - let storedContext = this.#clickContexts.get(button); - if (!storedContext || storedContext.compare(context)) { - storedContext = context; - } - ++storedContext.count; - this.#clickContexts.set(button, storedContext); - return storedContext.count; - } - getClickCount(button) { - return this.#clickContexts.get(button)?.count ?? 0; - } - resetClickCount() { - this.#clickContexts = new Map(); - } - } - class WheelSource { - type = "wheel" ; - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function getNormalizedKey(value) { - switch (value) { - case '\uE000': - return 'Unidentified'; - case '\uE001': - return 'Cancel'; - case '\uE002': - return 'Help'; - case '\uE003': - return 'Backspace'; - case '\uE004': - return 'Tab'; - case '\uE005': - return 'Clear'; - case '\uE006': - case '\uE007': - return 'Enter'; - case '\uE008': - return 'Shift'; - case '\uE009': - return 'Control'; - case '\uE00A': - return 'Alt'; - case '\uE00B': - return 'Pause'; - case '\uE00C': - return 'Escape'; - case '\uE00D': - return ' '; - case '\uE00E': - return 'PageUp'; - case '\uE00F': - return 'PageDown'; - case '\uE010': - return 'End'; - case '\uE011': - return 'Home'; - case '\uE012': - return 'ArrowLeft'; - case '\uE013': - return 'ArrowUp'; - case '\uE014': - return 'ArrowRight'; - case '\uE015': - return 'ArrowDown'; - case '\uE016': - return 'Insert'; - case '\uE017': - return 'Delete'; - case '\uE018': - return ';'; - case '\uE019': - return '='; - case '\uE01A': - return '0'; - case '\uE01B': - return '1'; - case '\uE01C': - return '2'; - case '\uE01D': - return '3'; - case '\uE01E': - return '4'; - case '\uE01F': - return '5'; - case '\uE020': - return '6'; - case '\uE021': - return '7'; - case '\uE022': - return '8'; - case '\uE023': - return '9'; - case '\uE024': - return '*'; - case '\uE025': - return '+'; - case '\uE026': - return ','; - case '\uE027': - return '-'; - case '\uE028': - return '.'; - case '\uE029': - return '/'; - case '\uE031': - return 'F1'; - case '\uE032': - return 'F2'; - case '\uE033': - return 'F3'; - case '\uE034': - return 'F4'; - case '\uE035': - return 'F5'; - case '\uE036': - return 'F6'; - case '\uE037': - return 'F7'; - case '\uE038': - return 'F8'; - case '\uE039': - return 'F9'; - case '\uE03A': - return 'F10'; - case '\uE03B': - return 'F11'; - case '\uE03C': - return 'F12'; - case '\uE03D': - return 'Meta'; - case '\uE040': - return 'ZenkakuHankaku'; - case '\uE050': - return 'Shift'; - case '\uE051': - return 'Control'; - case '\uE052': - return 'Alt'; - case '\uE053': - return 'Meta'; - case '\uE054': - return 'PageUp'; - case '\uE055': - return 'PageDown'; - case '\uE056': - return 'End'; - case '\uE057': - return 'Home'; - case '\uE058': - return 'ArrowLeft'; - case '\uE059': - return 'ArrowUp'; - case '\uE05A': - return 'ArrowRight'; - case '\uE05B': - return 'ArrowDown'; - case '\uE05C': - return 'Insert'; - case '\uE05D': - return 'Delete'; - default: - return value; - } - } - function getKeyCode(key) { - switch (key) { - case '`': - case '~': - return 'Backquote'; - case '\\': - case '|': - return 'Backslash'; - case '\uE003': - return 'Backspace'; - case '[': - case '{': - return 'BracketLeft'; - case ']': - case '}': - return 'BracketRight'; - case ',': - case '<': - return 'Comma'; - case '0': - case ')': - return 'Digit0'; - case '1': - case '!': - return 'Digit1'; - case '2': - case '@': - return 'Digit2'; - case '3': - case '#': - return 'Digit3'; - case '4': - case '$': - return 'Digit4'; - case '5': - case '%': - return 'Digit5'; - case '6': - case '^': - return 'Digit6'; - case '7': - case '&': - return 'Digit7'; - case '8': - case '*': - return 'Digit8'; - case '9': - case '(': - return 'Digit9'; - case '=': - case '+': - return 'Equal'; - case '>': - return 'IntlBackslash'; - case 'a': - case 'A': - return 'KeyA'; - case 'b': - case 'B': - return 'KeyB'; - case 'c': - case 'C': - return 'KeyC'; - case 'd': - case 'D': - return 'KeyD'; - case 'e': - case 'E': - return 'KeyE'; - case 'f': - case 'F': - return 'KeyF'; - case 'g': - case 'G': - return 'KeyG'; - case 'h': - case 'H': - return 'KeyH'; - case 'i': - case 'I': - return 'KeyI'; - case 'j': - case 'J': - return 'KeyJ'; - case 'k': - case 'K': - return 'KeyK'; - case 'l': - case 'L': - return 'KeyL'; - case 'm': - case 'M': - return 'KeyM'; - case 'n': - case 'N': - return 'KeyN'; - case 'o': - case 'O': - return 'KeyO'; - case 'p': - case 'P': - return 'KeyP'; - case 'q': - case 'Q': - return 'KeyQ'; - case 'r': - case 'R': - return 'KeyR'; - case 's': - case 'S': - return 'KeyS'; - case 't': - case 'T': - return 'KeyT'; - case 'u': - case 'U': - return 'KeyU'; - case 'v': - case 'V': - return 'KeyV'; - case 'w': - case 'W': - return 'KeyW'; - case 'x': - case 'X': - return 'KeyX'; - case 'y': - case 'Y': - return 'KeyY'; - case 'z': - case 'Z': - return 'KeyZ'; - case '-': - case '_': - return 'Minus'; - case '.': - return 'Period'; - case "'": - case '"': - return 'Quote'; - case ';': - case ':': - return 'Semicolon'; - case '/': - case '?': - return 'Slash'; - case '\uE00A': - return 'AltLeft'; - case '\uE052': - return 'AltRight'; - case '\uE009': - return 'ControlLeft'; - case '\uE051': - return 'ControlRight'; - case '\uE006': - return 'Enter'; - case '\uE00B': - return 'Pause'; - case '\uE03D': - return 'MetaLeft'; - case '\uE053': - return 'MetaRight'; - case '\uE008': - return 'ShiftLeft'; - case '\uE050': - return 'ShiftRight'; - case ' ': - case '\uE00D': - return 'Space'; - case '\uE004': - return 'Tab'; - case '\uE017': - return 'Delete'; - case '\uE010': - return 'End'; - case '\uE002': - return 'Help'; - case '\uE011': - return 'Home'; - case '\uE016': - return 'Insert'; - case '\uE00F': - return 'PageDown'; - case '\uE00E': - return 'PageUp'; - case '\uE015': - return 'ArrowDown'; - case '\uE012': - return 'ArrowLeft'; - case '\uE014': - return 'ArrowRight'; - case '\uE013': - return 'ArrowUp'; - case '\uE00C': - return 'Escape'; - case '\uE031': - return 'F1'; - case '\uE032': - return 'F2'; - case '\uE033': - return 'F3'; - case '\uE034': - return 'F4'; - case '\uE035': - return 'F5'; - case '\uE036': - return 'F6'; - case '\uE037': - return 'F7'; - case '\uE038': - return 'F8'; - case '\uE039': - return 'F9'; - case '\uE03A': - return 'F10'; - case '\uE03B': - return 'F11'; - case '\uE03C': - return 'F12'; - case '\uE019': - return 'NumpadEqual'; - case '\uE01A': - case '\uE05C': - return 'Numpad0'; - case '\uE01B': - case '\uE056': - return 'Numpad1'; - case '\uE01C': - case '\uE05B': - return 'Numpad2'; - case '\uE01D': - case '\uE055': - return 'Numpad3'; - case '\uE01E': - case '\uE058': - return 'Numpad4'; - case '\uE01F': - return 'Numpad5'; - case '\uE020': - case '\uE05A': - return 'Numpad6'; - case '\uE021': - case '\uE057': - return 'Numpad7'; - case '\uE022': - case '\uE059': - return 'Numpad8'; - case '\uE023': - case '\uE054': - return 'Numpad9'; - case '\uE025': - return 'NumpadAdd'; - case '\uE026': - return 'NumpadComma'; - case '\uE028': - case '\uE05D': - return 'NumpadDecimal'; - case '\uE029': - return 'NumpadDivide'; - case '\uE007': - return 'NumpadEnter'; - case '\uE024': - return 'NumpadMultiply'; - case '\uE027': - return 'NumpadSubtract'; - default: - return; - } - } - function getKeyLocation(key) { - switch (key) { - case '\uE007': - case '\uE008': - case '\uE009': - case '\uE00A': - case '\uE03D': - return 1; - case '\uE019': - case '\uE01A': - case '\uE01B': - case '\uE01C': - case '\uE01D': - case '\uE01E': - case '\uE01F': - case '\uE020': - case '\uE021': - case '\uE022': - case '\uE023': - case '\uE024': - case '\uE025': - case '\uE026': - case '\uE027': - case '\uE028': - case '\uE029': - case '\uE054': - case '\uE055': - case '\uE056': - case '\uE057': - case '\uE058': - case '\uE059': - case '\uE05A': - case '\uE05B': - case '\uE05C': - case '\uE05D': - return 3; - case '\uE050': - case '\uE051': - case '\uE052': - case '\uE053': - return 2; - default: - return 0; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const KeyToKeyCode = { - '0': 48, - '1': 49, - '2': 50, - '3': 51, - '4': 52, - '5': 53, - '6': 54, - '7': 55, - '8': 56, - '9': 57, - Abort: 3, - Help: 6, - Backspace: 8, - Tab: 9, - Numpad5: 12, - NumpadEnter: 13, - Enter: 13, - '\\r': 13, - '\\n': 13, - ShiftLeft: 16, - ShiftRight: 16, - ControlLeft: 17, - ControlRight: 17, - AltLeft: 18, - AltRight: 18, - Pause: 19, - CapsLock: 20, - Escape: 27, - Convert: 28, - NonConvert: 29, - Space: 32, - Numpad9: 33, - PageUp: 33, - Numpad3: 34, - PageDown: 34, - End: 35, - Numpad1: 35, - Home: 36, - Numpad7: 36, - ArrowLeft: 37, - Numpad4: 37, - Numpad8: 38, - ArrowUp: 38, - ArrowRight: 39, - Numpad6: 39, - Numpad2: 40, - ArrowDown: 40, - Select: 41, - Open: 43, - PrintScreen: 44, - Insert: 45, - Numpad0: 45, - Delete: 46, - NumpadDecimal: 46, - Digit0: 48, - Digit1: 49, - Digit2: 50, - Digit3: 51, - Digit4: 52, - Digit5: 53, - Digit6: 54, - Digit7: 55, - Digit8: 56, - Digit9: 57, - KeyA: 65, - KeyB: 66, - KeyC: 67, - KeyD: 68, - KeyE: 69, - KeyF: 70, - KeyG: 71, - KeyH: 72, - KeyI: 73, - KeyJ: 74, - KeyK: 75, - KeyL: 76, - KeyM: 77, - KeyN: 78, - KeyO: 79, - KeyP: 80, - KeyQ: 81, - KeyR: 82, - KeyS: 83, - KeyT: 84, - KeyU: 85, - KeyV: 86, - KeyW: 87, - KeyX: 88, - KeyY: 89, - KeyZ: 90, - MetaLeft: 91, - MetaRight: 92, - ContextMenu: 93, - NumpadMultiply: 106, - NumpadAdd: 107, - NumpadSubtract: 109, - NumpadDivide: 111, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123, - F13: 124, - F14: 125, - F15: 126, - F16: 127, - F17: 128, - F18: 129, - F19: 130, - F20: 131, - F21: 132, - F22: 133, - F23: 134, - F24: 135, - NumLock: 144, - ScrollLock: 145, - AudioVolumeMute: 173, - AudioVolumeDown: 174, - AudioVolumeUp: 175, - MediaTrackNext: 176, - MediaTrackPrevious: 177, - MediaStop: 178, - MediaPlayPause: 179, - Semicolon: 186, - Equal: 187, - NumpadEqual: 187, - Comma: 188, - Minus: 189, - Period: 190, - Slash: 191, - Backquote: 192, - BracketLeft: 219, - Backslash: 220, - BracketRight: 221, - Quote: 222, - AltGraph: 225, - Props: 247, - Cancel: 3, - Clear: 12, - Shift: 16, - Control: 17, - Alt: 18, - Accept: 30, - ModeChange: 31, - ' ': 32, - Print: 42, - Execute: 43, - '\\u0000': 46, - a: 65, - b: 66, - c: 67, - d: 68, - e: 69, - f: 70, - g: 71, - h: 72, - i: 73, - j: 74, - k: 75, - l: 76, - m: 77, - n: 78, - o: 79, - p: 80, - q: 81, - r: 82, - s: 83, - t: 84, - u: 85, - v: 86, - w: 87, - x: 88, - y: 89, - z: 90, - Meta: 91, - '*': 106, - '+': 107, - '-': 109, - '/': 111, - ';': 186, - '=': 187, - ',': 188, - '.': 190, - '`': 192, - '[': 219, - '\\\\': 220, - ']': 221, - "'": 222, - Attn: 246, - CrSel: 247, - ExSel: 248, - EraseEof: 249, - Play: 250, - ZoomOut: 251, - ')': 48, - '!': 49, - '@': 50, - '#': 51, - $: 52, - '%': 53, - '^': 54, - '&': 55, - '(': 57, - A: 65, - B: 66, - C: 67, - D: 68, - E: 69, - F: 70, - G: 71, - H: 72, - I: 73, - J: 74, - K: 75, - L: 76, - M: 77, - N: 78, - O: 79, - P: 80, - Q: 81, - R: 82, - S: 83, - T: 84, - U: 85, - V: 86, - W: 87, - X: 88, - Y: 89, - Z: 90, - ':': 186, - '<': 188, - _: 189, - '>': 190, - '?': 191, - '~': 192, - '{': 219, - '|': 220, - '}': 221, - '"': 222, - Camera: 44, - EndCall: 95, - VolumeDown: 182, - VolumeUp: 183, - }; - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const CALCULATE_IN_VIEW_CENTER_PT_DECL = ((i) => { - const t = i.getClientRects()[0], e = Math.max(0, Math.min(t.x, t.x + t.width)), n = Math.min(window.innerWidth, Math.max(t.x, t.x + t.width)), h = Math.max(0, Math.min(t.y, t.y + t.height)), m = Math.min(window.innerHeight, Math.max(t.y, t.y + t.height)); - return [e + ((n - e) >> 1), h + ((m - h) >> 1)]; - }).toString(); - const IS_MAC_DECL = (() => { - return navigator.platform.toLowerCase().includes('mac'); - }).toString(); - async function getElementCenter(context, element) { - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, false, { type: 'undefined' }, [element]); - if (result.type === 'exception') { - throw new NoSuchElementException(`Origin element ${element.sharedId} was not found`); - } - assert(result.result.type === 'array'); - assert(result.result.value?.[0]?.type === 'number'); - assert(result.result.value?.[1]?.type === 'number'); - const { result: { value: [{ value: x }, { value: y }], }, } = result; - return { x: x, y: y }; - } - class ActionDispatcher { - static isMacOS = async (context) => { - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(IS_MAC_DECL, false); - assert(result.type !== 'exception'); - assert(result.result.type === 'boolean'); - return result.result.value; - }; - #browsingContextStorage; - #tickStart = 0; - #tickDuration = 0; - #inputState; - #contextId; - #isMacOS; - constructor(inputState, browsingContextStorage, contextId, isMacOS) { - this.#browsingContextStorage = browsingContextStorage; - this.#inputState = inputState; - this.#contextId = contextId; - this.#isMacOS = isMacOS; - } - get #context() { - return this.#browsingContextStorage.getContext(this.#contextId); - } - async dispatchActions(optionsByTick) { - await this.#inputState.queue.run(async () => { - for (const options of optionsByTick) { - await this.dispatchTickActions(options); - } - }); - } - async dispatchTickActions(options) { - this.#tickStart = performance.now(); - this.#tickDuration = 0; - for (const { action } of options) { - if ('duration' in action && action.duration !== undefined) { - this.#tickDuration = Math.max(this.#tickDuration, action.duration); - } - } - const promises = [ - new Promise((resolve) => setTimeout(resolve, this.#tickDuration)), - ]; - for (const option of options) { - promises.push(this.#dispatchAction(option)); - } - await Promise.all(promises); - } - async #dispatchAction({ id, action }) { - const source = this.#inputState.get(id); - const keyState = this.#inputState.getGlobalKeyState(); - switch (action.type) { - case 'keyDown': { - await this.#dispatchKeyDownAction(source, action); - this.#inputState.cancelList.push({ - id, - action: { - ...action, - type: 'keyUp', - }, - }); - break; - } - case 'keyUp': { - await this.#dispatchKeyUpAction(source, action); - break; - } - case 'pause': { - break; - } - case 'pointerDown': { - await this.#dispatchPointerDownAction(source, keyState, action); - this.#inputState.cancelList.push({ - id, - action: { - ...action, - type: 'pointerUp', - }, - }); - break; - } - case 'pointerMove': { - await this.#dispatchPointerMoveAction(source, keyState, action); - break; - } - case 'pointerUp': { - await this.#dispatchPointerUpAction(source, keyState, action); - break; - } - case 'scroll': { - await this.#dispatchScrollAction(source, keyState, action); - break; - } - } - } - async #dispatchPointerDownAction(source, keyState, action) { - const { button } = action; - if (source.pressed.has(button)) { - return; - } - source.pressed.add(button); - const { x, y, subtype: pointerType } = source; - const { width, height, pressure, twist, tangentialPressure } = action; - const { tiltX, tiltY } = getTilt(action); - const { modifiers } = keyState; - const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1); - switch (pointerType) { - case "mouse" : - case "pen" : - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mousePressed', - x, - y, - modifiers, - button: getCdpButton(button), - buttons: source.buttons, - clickCount: source.setClickCount(button, new PointerSource.ClickContext(x, y, performance.now())), - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - }); - break; - case "touch" : - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchStart', - touchPoints: [ - { - x, - y, - radiusX, - radiusY, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - id: source.pointerId, - }, - ], - modifiers, - }); - break; - } - source.radiusX = radiusX; - source.radiusY = radiusY; - source.force = pressure; - } - #dispatchPointerUpAction(source, keyState, action) { - const { button } = action; - if (!source.pressed.has(button)) { - return; - } - source.pressed.delete(button); - const { x, y, force, radiusX, radiusY, subtype: pointerType } = source; - const { modifiers } = keyState; - switch (pointerType) { - case "mouse" : - case "pen" : - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseReleased', - x, - y, - modifiers, - button: getCdpButton(button), - buttons: source.buttons, - clickCount: source.getClickCount(button), - pointerType, - }); - case "touch" : - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchEnd', - touchPoints: [ - { - x, - y, - id: source.pointerId, - force, - radiusX, - radiusY, - }, - ], - modifiers, - }); - } - } - async #dispatchPointerMoveAction(source, keyState, action) { - const { x: startX, y: startY, subtype: pointerType } = source; - const { width, height, pressure, twist, tangentialPressure, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action; - const { tiltX, tiltY } = getTilt(action); - const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1); - const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY); - if (targetX < 0 || targetY < 0) { - throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`); - } - let last; - do { - const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1; - last = ratio >= 1; - let x; - let y; - if (last) { - x = targetX; - y = targetY; - } - else { - x = Math.round(ratio * (targetX - startX) + startX); - y = Math.round(ratio * (targetY - startY) + startY); - } - if (source.x !== x || source.y !== y) { - const { modifiers } = keyState; - switch (pointerType) { - case "mouse" : - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseMoved', - x, - y, - modifiers, - clickCount: 0, - button: getCdpButton(source.pressed.values().next().value ?? 5), - buttons: source.buttons, - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - }); - break; - case "pen" : - if (source.pressed.size !== 0) { - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseMoved', - x, - y, - modifiers, - clickCount: 0, - button: getCdpButton(source.pressed.values().next().value ?? 5), - buttons: source.buttons, - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure ?? 0.5, - }); - } - break; - case "touch" : - if (source.pressed.size !== 0) { - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchMove', - touchPoints: [ - { - x, - y, - radiusX, - radiusY, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - id: source.pointerId, - }, - ], - modifiers, - }); - } - break; - } - source.x = x; - source.y = y; - source.radiusX = radiusX; - source.radiusY = radiusY; - source.force = pressure; - } - } while (!last); - } - async #getFrameOffset() { - if (this.#context.id === this.#context.cdpTarget.id) { - return { x: 0, y: 0 }; - } - const { backendNodeId } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { frameId: this.#context.id }); - const { model: frameBoxModel } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getBoxModel', { - backendNodeId, - }); - return { x: frameBoxModel.content[0], y: frameBoxModel.content[1] }; - } - async #getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY) { - let targetX; - let targetY; - const frameOffset = await this.#getFrameOffset(); - switch (origin) { - case 'viewport': - targetX = offsetX + frameOffset.x; - targetY = offsetY + frameOffset.y; - break; - case 'pointer': - targetX = startX + offsetX + frameOffset.x; - targetY = startY + offsetY + frameOffset.y; - break; - default: { - const { x: posX, y: posY } = await getElementCenter(this.#context, origin.element); - targetX = posX + offsetX + frameOffset.x; - targetY = posY + offsetY + frameOffset.y; - break; - } - } - return { targetX, targetY }; - } - async #dispatchScrollAction(_source, keyState, action) { - const { deltaX: targetDeltaX, deltaY: targetDeltaY, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action; - if (origin === 'pointer') { - throw new InvalidArgumentException('"pointer" origin is invalid for scrolling.'); - } - const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, 0, 0); - if (targetX < 0 || targetY < 0) { - throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`); - } - let currentDeltaX = 0; - let currentDeltaY = 0; - let last; - do { - const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1; - last = ratio >= 1; - let deltaX; - let deltaY; - if (last) { - deltaX = targetDeltaX - currentDeltaX; - deltaY = targetDeltaY - currentDeltaY; - } - else { - deltaX = Math.round(ratio * targetDeltaX - currentDeltaX); - deltaY = Math.round(ratio * targetDeltaY - currentDeltaY); - } - if (deltaX !== 0 || deltaY !== 0) { - const { modifiers } = keyState; - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseWheel', - deltaX, - deltaY, - x: targetX, - y: targetY, - modifiers, - }); - currentDeltaX += deltaX; - currentDeltaY += deltaY; - } - } while (!last); - } - async #dispatchKeyDownAction(source, action) { - const rawKey = action.value; - if (!isSingleGrapheme(rawKey)) { - throw new InvalidArgumentException(`Invalid key value: ${rawKey}`); - } - const isGrapheme = isSingleComplexGrapheme(rawKey); - const key = getNormalizedKey(rawKey); - const repeat = source.pressed.has(key); - const code = getKeyCode(rawKey); - const location = getKeyLocation(rawKey); - switch (key) { - case 'Alt': - source.alt = true; - break; - case 'Shift': - source.shift = true; - break; - case 'Control': - source.ctrl = true; - break; - case 'Meta': - source.meta = true; - break; - } - source.pressed.add(key); - const { modifiers } = source; - const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme); - const text = getKeyEventText(code ?? '', source) ?? unmodifiedText; - let command; - if (this.#isMacOS && source.meta) { - switch (code) { - case 'KeyA': - command = 'SelectAll'; - break; - case 'KeyC': - command = 'Copy'; - break; - case 'KeyV': - command = source.shift ? 'PasteAndMatchStyle' : 'Paste'; - break; - case 'KeyX': - command = 'Cut'; - break; - case 'KeyZ': - command = source.shift ? 'Redo' : 'Undo'; - break; - } - } - const promises = [ - this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', { - type: text ? 'keyDown' : 'rawKeyDown', - windowsVirtualKeyCode: KeyToKeyCode[key], - key, - code, - text, - unmodifiedText, - autoRepeat: repeat, - isSystemKey: source.alt || undefined, - location: location < 3 ? location : undefined, - isKeypad: location === 3, - modifiers, - commands: command ? [command] : undefined, - }), - ]; - if (key === 'Escape') { - if (!source.alt && - ((this.#isMacOS && !source.ctrl && !source.meta) || !this.#isMacOS)) { - promises.push(this.#context.cdpTarget.cdpClient.sendCommand('Input.cancelDragging')); - } - } - await Promise.all(promises); - } - #dispatchKeyUpAction(source, action) { - const rawKey = action.value; - if (!isSingleGrapheme(rawKey)) { - throw new InvalidArgumentException(`Invalid key value: ${rawKey}`); - } - const isGrapheme = isSingleComplexGrapheme(rawKey); - const key = getNormalizedKey(rawKey); - if (!source.pressed.has(key)) { - return; - } - const code = getKeyCode(rawKey); - const location = getKeyLocation(rawKey); - switch (key) { - case 'Alt': - source.alt = false; - break; - case 'Shift': - source.shift = false; - break; - case 'Control': - source.ctrl = false; - break; - case 'Meta': - source.meta = false; - break; - } - source.pressed.delete(key); - const { modifiers } = source; - const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme); - const text = getKeyEventText(code ?? '', source) ?? unmodifiedText; - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', { - type: 'keyUp', - windowsVirtualKeyCode: KeyToKeyCode[key], - key, - code, - text, - unmodifiedText, - location: location < 3 ? location : undefined, - isSystemKey: source.alt || undefined, - isKeypad: location === 3, - modifiers, - }); - } - } - const getKeyEventUnmodifiedText = (key, source, isGrapheme) => { - if (isGrapheme) { - return key; - } - if (key === 'Enter') { - return '\r'; - } - return [...key].length === 1 - ? source.shift - ? key.toLocaleUpperCase('en-US') - : key - : undefined; - }; - const getKeyEventText = (code, source) => { - if (source.ctrl) { - switch (code) { - case 'Digit2': - if (source.shift) { - return '\x00'; - } - break; - case 'KeyA': - return '\x01'; - case 'KeyB': - return '\x02'; - case 'KeyC': - return '\x03'; - case 'KeyD': - return '\x04'; - case 'KeyE': - return '\x05'; - case 'KeyF': - return '\x06'; - case 'KeyG': - return '\x07'; - case 'KeyH': - return '\x08'; - case 'KeyI': - return '\x09'; - case 'KeyJ': - return '\x0A'; - case 'KeyK': - return '\x0B'; - case 'KeyL': - return '\x0C'; - case 'KeyM': - return '\x0D'; - case 'KeyN': - return '\x0E'; - case 'KeyO': - return '\x0F'; - case 'KeyP': - return '\x10'; - case 'KeyQ': - return '\x11'; - case 'KeyR': - return '\x12'; - case 'KeyS': - return '\x13'; - case 'KeyT': - return '\x14'; - case 'KeyU': - return '\x15'; - case 'KeyV': - return '\x16'; - case 'KeyW': - return '\x17'; - case 'KeyX': - return '\x18'; - case 'KeyY': - return '\x19'; - case 'KeyZ': - return '\x1A'; - case 'BracketLeft': - return '\x1B'; - case 'Backslash': - return '\x1C'; - case 'BracketRight': - return '\x1D'; - case 'Digit6': - if (source.shift) { - return '\x1E'; - } - break; - case 'Minus': - return '\x1F'; - } - return ''; - } - if (source.alt) { - return ''; - } - return; - }; - function getCdpButton(button) { - switch (button) { - case 0: - return 'left'; - case 1: - return 'middle'; - case 2: - return 'right'; - case 3: - return 'back'; - case 4: - return 'forward'; - default: - return 'none'; - } - } - function getTilt(action) { - const altitudeAngle = action.altitudeAngle ?? Math.PI / 2; - const azimuthAngle = action.azimuthAngle ?? 0; - let tiltXRadians = 0; - let tiltYRadians = 0; - if (altitudeAngle === 0) { - if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) { - tiltXRadians = Math.PI / 2; - } - if (azimuthAngle === Math.PI / 2) { - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle === Math.PI) { - tiltXRadians = -Math.PI / 2; - } - if (azimuthAngle === (3 * Math.PI) / 2) { - tiltYRadians = -Math.PI / 2; - } - if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) { - tiltXRadians = Math.PI / 2; - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) { - tiltXRadians = -Math.PI / 2; - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle > Math.PI && azimuthAngle < (3 * Math.PI) / 2) { - tiltXRadians = -Math.PI / 2; - tiltYRadians = -Math.PI / 2; - } - if (azimuthAngle > (3 * Math.PI) / 2 && azimuthAngle < 2 * Math.PI) { - tiltXRadians = Math.PI / 2; - tiltYRadians = -Math.PI / 2; - } - } - if (altitudeAngle !== 0) { - const tanAlt = Math.tan(altitudeAngle); - tiltXRadians = Math.atan(Math.cos(azimuthAngle) / tanAlt); - tiltYRadians = Math.atan(Math.sin(azimuthAngle) / tanAlt); - } - const factor = 180 / Math.PI; - return { - tiltX: Math.round(tiltXRadians * factor), - tiltY: Math.round(tiltYRadians * factor), - }; - } - function getRadii(width, height) { - return { - radiusX: width ? width / 2 : 0.5, - radiusY: height ? height / 2 : 0.5, - }; - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * Copyright 2022 The Chromium Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class Mutex { - #locked = false; - #acquirers = []; - acquire() { - const state = { resolved: false }; - if (this.#locked) { - return new Promise((resolve) => { - this.#acquirers.push(() => resolve(this.#release.bind(this, state))); - }); - } - this.#locked = true; - return Promise.resolve(this.#release.bind(this, state)); - } - #release(state) { - if (state.resolved) { - throw new Error('Cannot release more than once.'); - } - state.resolved = true; - const resolve = this.#acquirers.shift(); - if (!resolve) { - this.#locked = false; - return; - } - resolve(); - } - async run(action) { - const release = await this.acquire(); - try { - const result = await action(); - return result; - } - finally { - release(); - } - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class InputState { - cancelList = []; - #sources = new Map(); - #mutex = new Mutex(); - getOrCreate(id, type, subtype) { - let source = this.#sources.get(id); - if (!source) { - switch (type) { - case "none" : - source = new NoneSource(); - break; - case "key" : - source = new KeySource(); - break; - case "pointer" : { - let pointerId = subtype === "mouse" ? 0 : 2; - const pointerIds = new Set(); - for (const [, source] of this.#sources) { - if (source.type === "pointer" ) { - pointerIds.add(source.pointerId); - } - } - while (pointerIds.has(pointerId)) { - ++pointerId; - } - source = new PointerSource(pointerId, subtype); - break; - } - case "wheel" : - source = new WheelSource(); - break; - default: - throw new InvalidArgumentException(`Expected "${"none" }", "${"key" }", "${"pointer" }", or "${"wheel" }". Found unknown source type ${type}.`); - } - this.#sources.set(id, source); - return source; - } - if (source.type !== type) { - throw new InvalidArgumentException(`Input source type of ${id} is ${source.type}, but received ${type}.`); - } - return source; - } - get(id) { - const source = this.#sources.get(id); - if (!source) { - throw new UnknownErrorException(`Internal error.`); - } - return source; - } - getGlobalKeyState() { - const state = new KeySource(); - for (const [, source] of this.#sources) { - if (source.type !== "key" ) { - continue; - } - for (const pressed of source.pressed) { - state.pressed.add(pressed); - } - state.alt ||= source.alt; - state.ctrl ||= source.ctrl; - state.meta ||= source.meta; - state.shift ||= source.shift; - } - return state; - } - get queue() { - return this.#mutex; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class InputStateManager extends WeakMap { - get(context) { - assert(context.isTopLevelContext()); - if (!this.has(context)) { - this.set(context, new InputState()); - } - return super.get(context); - } - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class InputProcessor { - #browsingContextStorage; - #inputStateManager = new InputStateManager(); - constructor(browsingContextStorage) { - this.#browsingContextStorage = browsingContextStorage; - } - async performActions(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const inputState = this.#inputStateManager.get(context.top); - const actionsByTick = this.#getActionsByTick(params, inputState); - const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false)); - await dispatcher.dispatchActions(actionsByTick); - return {}; - } - async releaseActions(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const topContext = context.top; - const inputState = this.#inputStateManager.get(topContext); - const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false)); - await dispatcher.dispatchTickActions(inputState.cancelList.reverse()); - this.#inputStateManager.delete(topContext); - return {}; - } - async setFiles(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - let result; - try { - result = await hiddenSandboxRealm.callFunction(String(function getFiles(fileListLength) { - if (!(this instanceof HTMLInputElement)) { - if (this instanceof Element) { - return 1 ; - } - return 0 ; - } - if (this.type !== 'file') { - return 2 ; - } - if (this.disabled) { - return 3 ; - } - if (fileListLength > 1 && !this.multiple) { - return 4 ; - } - return; - }), false, params.element, [{ type: 'number', value: params.files.length }]); - } - catch { - throw new NoSuchNodeException(`Could not find element ${params.element.sharedId}`); - } - assert(result.type === 'success'); - if (result.result.type === 'number') { - switch (result.result.value) { - case 0 : { - throw new NoSuchElementException(`Could not find element ${params.element.sharedId}`); - } - case 1 : { - throw new UnableToSetFileInputException(`Element ${params.element.sharedId} is not a input`); - } - case 2 : { - throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is not a file type`); - } - case 3 : { - throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is disabled`); - } - case 4 : { - throw new UnableToSetFileInputException(`Cannot set multiple files on a non-multiple input element`); - } - } - } - if (params.files.length === 0) { - await hiddenSandboxRealm.callFunction(String(function dispatchEvent() { - if (this.files?.length === 0) { - this.dispatchEvent(new Event('cancel', { - bubbles: true, - })); - return; - } - this.files = new DataTransfer().files; - this.dispatchEvent(new Event('input', { bubbles: true, composed: true })); - this.dispatchEvent(new Event('change', { bubbles: true })); - }), false, params.element); - return {}; - } - const paths = []; - for (let i = 0; i < params.files.length; ++i) { - const result = await hiddenSandboxRealm.callFunction(String(function getFiles(index) { - return this.files?.item(index); - }), false, params.element, [{ type: 'number', value: 0 }], "root" ); - assert(result.type === 'success'); - if (result.result.type !== 'object') { - break; - } - const { handle } = result.result; - assert(handle !== undefined); - const { path } = await hiddenSandboxRealm.cdpClient.sendCommand('DOM.getFileInfo', { - objectId: handle, - }); - paths.push(path); - void hiddenSandboxRealm.disown(handle).catch(undefined); - } - paths.sort(); - const sortedFiles = [...params.files].sort(); - if (paths.length !== params.files.length || - sortedFiles.some((path, index) => { - return paths[index] !== path; - })) { - const { objectId } = await hiddenSandboxRealm.deserializeForCdp(params.element); - assert(objectId !== undefined); - await hiddenSandboxRealm.cdpClient.sendCommand('DOM.setFileInputFiles', { - files: params.files, - objectId, - }); - } - else { - await hiddenSandboxRealm.callFunction(String(function dispatchEvent() { - this.dispatchEvent(new Event('cancel', { - bubbles: true, - })); - }), false, params.element); - } - return {}; - } - #getActionsByTick(params, inputState) { - const actionsByTick = []; - for (const action of params.actions) { - switch (action.type) { - case "pointer" : { - action.parameters ??= { pointerType: "mouse" }; - action.parameters.pointerType ??= "mouse" ; - const source = inputState.getOrCreate(action.id, "pointer" , action.parameters.pointerType); - if (source.subtype !== action.parameters.pointerType) { - throw new InvalidArgumentException(`Expected input source ${action.id} to be ${source.subtype}; got ${action.parameters.pointerType}.`); - } - source.resetClickCount(); - break; - } - default: - inputState.getOrCreate(action.id, action.type); - } - const actions = action.actions.map((item) => ({ - id: action.id, - action: item, - })); - for (let i = 0; i < actions.length; i++) { - if (actionsByTick.length === i) { - actionsByTick.push([]); - } - actionsByTick[i].push(actions[i]); - } - } - return actionsByTick; - } - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function base64ToString(base64Str) { - if ('atob' in globalThis) { - return globalThis.atob(base64Str); - } - return Buffer.from(base64Str, 'base64').toString('ascii'); - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - function computeHeadersSize(headers) { - const requestHeaders = headers.reduce((acc, header) => { - return `${acc}${header.name}: ${header.value.value}\r\n`; - }, ''); - return new TextEncoder().encode(requestHeaders).length; - } - function stringToBase64(str) { - return typedArrayToBase64(new TextEncoder().encode(str)); - } - function typedArrayToBase64(typedArray) { - const chunkSize = 65534; - const chunks = []; - for (let i = 0; i < typedArray.length; i += chunkSize) { - const chunk = typedArray.subarray(i, i + chunkSize); - chunks.push(String.fromCodePoint.apply(null, chunk)); - } - const binaryString = chunks.join(''); - return btoa(binaryString); - } - function bidiNetworkHeadersFromCdpNetworkHeaders(headers) { - if (!headers) { - return []; - } - return Object.entries(headers).map(([name, value]) => ({ - name, - value: { - type: 'string', - value, - }, - })); - } - function cdpFetchHeadersFromBidiNetworkHeaders(headers) { - if (headers === undefined) { - return undefined; - } - return headers.map(({ name, value }) => ({ - name, - value: value.value, - })); - } - function networkHeaderFromCookieHeaders(headers) { - if (headers === undefined) { - return undefined; - } - const value = headers.reduce((acc, value, index) => { - if (index > 0) { - acc += ';'; - } - const cookieValue = value.value.type === 'base64' - ? btoa(value.value.value) - : value.value.value; - acc += `${value.name}=${cookieValue}`; - return acc; - }, ''); - return { - name: 'Cookie', - value: { - type: 'string', - value, - }, - }; - } - function cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(action) { - switch (action) { - case 'default': - return 'Default'; - case 'cancel': - return 'CancelAuth'; - case 'provideCredentials': - return 'ProvideCredentials'; - } - } - function cdpToBiDiCookie(cookie) { - const result = { - name: cookie.name, - value: { type: 'string', value: cookie.value }, - domain: cookie.domain, - path: cookie.path, - size: cookie.size, - httpOnly: cookie.httpOnly, - secure: cookie.secure, - sameSite: cookie.sameSite === undefined - ? "none" - : sameSiteCdpToBiDi(cookie.sameSite), - ...(cookie.expires >= 0 ? { expiry: Math.round(cookie.expires) } : undefined), - }; - result[`goog:session`] = cookie.session; - result[`goog:priority`] = cookie.priority; - result[`goog:sourceScheme`] = cookie.sourceScheme; - result[`goog:sourcePort`] = cookie.sourcePort; - if (cookie.partitionKey !== undefined) { - result[`goog:partitionKey`] = cookie.partitionKey; - } - if (cookie.partitionKeyOpaque !== undefined) { - result[`goog:partitionKeyOpaque`] = cookie.partitionKeyOpaque; - } - return result; - } - function deserializeByteValue(value) { - if (value.type === 'base64') { - return base64ToString(value.value); - } - return value.value; - } - function bidiToCdpCookie(params, partitionKey) { - const deserializedValue = deserializeByteValue(params.cookie.value); - const result = { - name: params.cookie.name, - value: deserializedValue, - domain: params.cookie.domain, - path: params.cookie.path ?? '/', - secure: params.cookie.secure ?? false, - httpOnly: params.cookie.httpOnly ?? false, - ...(partitionKey.sourceOrigin !== undefined && { - partitionKey: { - hasCrossSiteAncestor: false, - topLevelSite: partitionKey.sourceOrigin, - }, - }), - ...(params.cookie.expiry !== undefined && { - expires: params.cookie.expiry, - }), - ...(params.cookie.sameSite !== undefined && { - sameSite: sameSiteBiDiToCdp(params.cookie.sameSite), - }), - }; - if (params.cookie[`goog:url`] !== undefined) { - result.url = params.cookie[`goog:url`]; - } - if (params.cookie[`goog:priority`] !== undefined) { - result.priority = params.cookie[`goog:priority`]; - } - if (params.cookie[`goog:sourceScheme`] !== undefined) { - result.sourceScheme = params.cookie[`goog:sourceScheme`]; - } - if (params.cookie[`goog:sourcePort`] !== undefined) { - result.sourcePort = params.cookie[`goog:sourcePort`]; - } - return result; - } - function sameSiteCdpToBiDi(sameSite) { - switch (sameSite) { - case 'Strict': - return "strict" ; - case 'None': - return "none" ; - case 'Lax': - return "lax" ; - default: - return "lax" ; - } - } - function sameSiteBiDiToCdp(sameSite) { - switch (sameSite) { - case "none" : - return 'None'; - case "strict" : - return 'Strict'; - case "default" : - case "lax" : - return 'Lax'; - } - throw new InvalidArgumentException(`Unknown 'sameSite' value ${sameSite}`); - } - function isSpecialScheme(protocol) { - return ['ftp', 'file', 'http', 'https', 'ws', 'wss'].includes(protocol.replace(/:$/, '')); - } - function getScheme(url) { - return url.protocol.replace(/:$/, ''); - } - function matchUrlPattern(pattern, url) { - const parsedUrl = new URL(url); - if (pattern.protocol !== undefined && - pattern.protocol !== getScheme(parsedUrl)) { - return false; - } - if (pattern.hostname !== undefined && - pattern.hostname !== parsedUrl.hostname) { - return false; - } - if (pattern.port !== undefined && pattern.port !== parsedUrl.port) { - return false; - } - if (pattern.pathname !== undefined && - pattern.pathname !== parsedUrl.pathname) { - return false; - } - if (pattern.search !== undefined && pattern.search !== parsedUrl.search) { - return false; - } - return true; - } - function bidiBodySizeFromCdpPostDataEntries(entries) { - let size = 0; - for (const entry of entries) { - size += atob(entry.bytes ?? '').length; - } - return size; - } - function getTiming(timing, offset = 0) { - if (!timing) { - return 0; - } - if (timing <= 0 || timing + offset <= 0) { - return 0; - } - return timing + offset; - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class NetworkProcessor { - #browsingContextStorage; - #networkStorage; - #userContextStorage; - #contextConfigStorage; - constructor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage) { - this.#userContextStorage = userContextStorage; - this.#browsingContextStorage = browsingContextStorage; - this.#networkStorage = networkStorage; - this.#contextConfigStorage = contextConfigStorage; - } - async addIntercept(params) { - this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - const urlPatterns = params.urlPatterns ?? []; - const parsedUrlPatterns = NetworkProcessor.parseUrlPatterns(urlPatterns); - const intercept = this.#networkStorage.addIntercept({ - urlPatterns: parsedUrlPatterns, - phases: params.phases, - contexts: params.contexts, - }); - await this.#toggleNetwork(); - return { - intercept, - }; - } - async continueRequest(params) { - if (params.url !== undefined) { - NetworkProcessor.parseUrlString(params.url); - } - if (params.method !== undefined) { - if (!NetworkProcessor.isMethodValid(params.method)) { - throw new InvalidArgumentException(`Method '${params.method}' is invalid.`); - } - } - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "beforeRequestSent" , - ]); - try { - await request.continueRequest(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - async continueResponse(params) { - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "authRequired" , - "responseStarted" , - ]); - try { - await request.continueResponse(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - async continueWithAuth(params) { - const networkId = params.request; - const request = this.#getBlockedRequestOrFail(networkId, [ - "authRequired" , - ]); - await request.continueWithAuth(params); - return {}; - } - async failRequest({ request: networkId, }) { - const request = this.#getRequestOrFail(networkId); - if (request.interceptPhase === "authRequired" ) { - throw new InvalidArgumentException(`Request '${networkId}' in 'authRequired' phase cannot be failed`); - } - if (!request.interceptPhase) { - throw new NoSuchRequestException(`No blocked request found for network id '${networkId}'`); - } - await request.failRequest('Failed'); - return {}; - } - async provideResponse(params) { - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "beforeRequestSent" , - "responseStarted" , - "authRequired" , - ]); - try { - await request.provideResponse(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - async #toggleNetwork() { - await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => { - return context.cdpTarget.toggleNetwork(); - })); - } - async removeIntercept(params) { - this.#networkStorage.removeIntercept(params.intercept); - await this.#toggleNetwork(); - return {}; - } - async setCacheBehavior(params) { - const contexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - if (contexts.size === 0) { - this.#networkStorage.defaultCacheBehavior = params.cacheBehavior; - await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => { - return context.cdpTarget.toggleSetCacheDisabled(); - })); - return {}; - } - const cacheDisabled = params.cacheBehavior === 'bypass'; - await Promise.all([...contexts.values()].map((context) => { - return context.cdpTarget.toggleSetCacheDisabled(cacheDisabled); - })); - return {}; - } - #getRequestOrFail(id) { - const request = this.#networkStorage.getRequestById(id); - if (!request) { - throw new NoSuchRequestException(`Network request with ID '${id}' doesn't exist`); - } - return request; - } - #getBlockedRequestOrFail(id, phases) { - const request = this.#getRequestOrFail(id); - if (!request.interceptPhase) { - throw new NoSuchRequestException(`No blocked request found for network id '${id}'`); - } - if (request.interceptPhase && !phases.includes(request.interceptPhase)) { - throw new InvalidArgumentException(`Blocked request for network id '${id}' is in '${request.interceptPhase}' phase`); - } - return request; - } - static validateHeaders(headers) { - for (const header of headers) { - let headerValue; - if (header.value.type === 'string') { - headerValue = header.value.value; - } - else { - headerValue = atob(header.value.value); - } - if (headerValue !== headerValue.trim() || - headerValue.includes('\n') || - headerValue.includes('\0')) { - throw new InvalidArgumentException(`Header value '${headerValue}' is not acceptable value`); - } - } - } - static isMethodValid(method) { - return /^[!#$%&'*+\-.^_`|~a-zA-Z\d]+$/.test(method); - } - static parseUrlString(url) { - try { - return new URL(url); - } - catch (error) { - throw new InvalidArgumentException(`Invalid URL '${url}': ${error}`); - } - } - static parseUrlPatterns(urlPatterns) { - return urlPatterns.map((urlPattern) => { - let patternUrl = ''; - let hasProtocol = true; - let hasHostname = true; - let hasPort = true; - let hasPathname = true; - let hasSearch = true; - switch (urlPattern.type) { - case 'string': { - patternUrl = unescapeURLPattern(urlPattern.pattern); - break; - } - case 'pattern': { - if (urlPattern.protocol === undefined) { - hasProtocol = false; - patternUrl += 'http'; - } - else { - if (urlPattern.protocol === '') { - throw new InvalidArgumentException('URL pattern must specify a protocol'); - } - urlPattern.protocol = unescapeURLPattern(urlPattern.protocol); - if (!urlPattern.protocol.match(/^[a-zA-Z+-.]+$/)) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.protocol; - } - const scheme = patternUrl.toLocaleLowerCase(); - patternUrl += ':'; - if (isSpecialScheme(scheme)) { - patternUrl += '//'; - } - if (urlPattern.hostname === undefined) { - if (scheme !== 'file') { - patternUrl += 'placeholder'; - } - hasHostname = false; - } - else { - if (urlPattern.hostname === '') { - throw new InvalidArgumentException('URL pattern must specify a hostname'); - } - if (urlPattern.protocol === 'file') { - throw new InvalidArgumentException(`URL pattern protocol cannot be 'file'`); - } - urlPattern.hostname = unescapeURLPattern(urlPattern.hostname); - let insideBrackets = false; - for (const c of urlPattern.hostname) { - if (c === '/' || c === '?' || c === '#') { - throw new InvalidArgumentException(`'/', '?', '#' are forbidden in hostname`); - } - if (!insideBrackets && c === ':') { - throw new InvalidArgumentException(`':' is only allowed inside brackets in hostname`); - } - if (c === '[') { - insideBrackets = true; - } - if (c === ']') { - insideBrackets = false; - } - } - patternUrl += urlPattern.hostname; - } - if (urlPattern.port === undefined) { - hasPort = false; - } - else { - if (urlPattern.port === '') { - throw new InvalidArgumentException(`URL pattern must specify a port`); - } - urlPattern.port = unescapeURLPattern(urlPattern.port); - patternUrl += ':'; - if (!urlPattern.port.match(/^\d+$/)) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.port; - } - if (urlPattern.pathname === undefined) { - hasPathname = false; - } - else { - urlPattern.pathname = unescapeURLPattern(urlPattern.pathname); - if (urlPattern.pathname[0] !== '/') { - patternUrl += '/'; - } - if (urlPattern.pathname.includes('#') || - urlPattern.pathname.includes('?')) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.pathname; - } - if (urlPattern.search === undefined) { - hasSearch = false; - } - else { - urlPattern.search = unescapeURLPattern(urlPattern.search); - if (urlPattern.search[0] !== '?') { - patternUrl += '?'; - } - if (urlPattern.search.includes('#')) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.search; - } - break; - } - } - const serializePort = (url) => { - const defaultPorts = { - 'ftp:': 21, - 'file:': null, - 'http:': 80, - 'https:': 443, - 'ws:': 80, - 'wss:': 443, - }; - if (isSpecialScheme(url.protocol) && - defaultPorts[url.protocol] !== null && - (!url.port || String(defaultPorts[url.protocol]) === url.port)) { - return ''; - } - else if (url.port) { - return url.port; - } - return undefined; - }; - try { - const url = new URL(patternUrl); - return { - protocol: hasProtocol ? url.protocol.replace(/:$/, '') : undefined, - hostname: hasHostname ? url.hostname : undefined, - port: hasPort ? serializePort(url) : undefined, - pathname: hasPathname && url.pathname ? url.pathname : undefined, - search: hasSearch ? url.search : undefined, - }; - } - catch (err) { - throw new InvalidArgumentException(`${err.message} '${patternUrl}'`); - } - }); - } - static wrapInterceptionError(error) { - if (error?.message.includes('Invalid header') || - error?.message.includes('Unsafe header')) { - return new InvalidArgumentException(error.message); - } - return error; - } - async addDataCollector(params) { - if (params.userContexts !== undefined && params.contexts !== undefined) { - throw new InvalidArgumentException("'contexts' and 'userContexts' are mutually exclusive"); - } - if (params.userContexts !== undefined) { - await this.#userContextStorage.verifyUserContextIdList(params.userContexts); - } - if (params.contexts !== undefined) { - for (const browsingContextId of params.contexts) { - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException(`Data collectors are available only on top-level browsing contexts`); - } - } - } - const collectorId = this.#networkStorage.addDataCollector(params); - await this.#toggleNetwork(); - return { collector: collectorId }; - } - async getData(params) { - return await this.#networkStorage.getCollectedData(params); - } - async removeDataCollector(params) { - this.#networkStorage.removeDataCollector(params); - await this.#toggleNetwork(); - return {}; - } - disownData(params) { - this.#networkStorage.disownData(params); - return {}; - } - async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds) { - if (browsingContextIds === undefined && userContextIds === undefined) { - return this.#browsingContextStorage.getTopLevelContexts(); - } - if (browsingContextIds !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive'); - } - const result = []; - if (userContextIds !== undefined) { - if (userContextIds.length === 0) { - throw new InvalidArgumentException('user context should be provided'); - } - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - } - if (browsingContextIds !== undefined) { - if (browsingContextIds.length === 0) { - throw new InvalidArgumentException('browsing context should be provided'); - } - for (const browsingContextId of browsingContextIds) { - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException('The command is only supported on the top-level context'); - } - result.push(browsingContext); - } - } - return [...new Set(result).values()]; - } - async setExtraHeaders(params) { - const affectedBrowsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - const cdpExtraHeaders = parseBiDiHeaders(params.headers); - if (params.userContexts === undefined && params.contexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - extraHeaders: cdpExtraHeaders, - }); - } - if (params.userContexts !== undefined) { - params.userContexts.forEach((userContext) => { - this.#contextConfigStorage.updateUserContextConfig(userContext, { - extraHeaders: cdpExtraHeaders, - }); - }); - } - if (params.contexts !== undefined) { - params.contexts.forEach((browsingContextId) => { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { extraHeaders: cdpExtraHeaders }); - }); - } - await Promise.all(affectedBrowsingContexts.map(async (context) => { - const extraHeaders = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext).extraHeaders ?? {}; - await context.setExtraHeaders(extraHeaders); - })); - return {}; - } - } - function unescapeURLPattern(pattern) { - const forbidden = new Set(['(', ')', '*', '{', '}']); - let result = ''; - let isEscaped = false; - for (const c of pattern) { - if (!isEscaped) { - if (forbidden.has(c)) { - throw new InvalidArgumentException('Forbidden characters'); - } - if (c === '\\') { - isEscaped = true; - continue; - } - } - result += c; - isEscaped = false; - } - return result; - } - const FORBIDDEN_HEADER_NAME_SYMBOLS = new Set([ - ' ', - '\t', - '\n', - '"', - '(', - ')', - ',', - '/', - ':', - ';', - '<', - '=', - '>', - '?', - '@', - '[', - '\\', - ']', - '{', - '}', - ]); - const FORBIDDEN_HEADER_VALUE_SYMBOLS = new Set(['\0', '\n', '\r']); - function includesChar(str, chars) { - for (const char of str) { - if (chars.has(char)) { - return true; - } - } - return false; - } - function parseBiDiHeaders(headers) { - const parsedHeaders = {}; - for (const bidiHeader of headers) { - if (bidiHeader.value.type === 'string') { - const name = bidiHeader.name; - const value = bidiHeader.value.value; - if (name.length === 0) { - throw new InvalidArgumentException(`Empty header name is not allowed`); - } - if (includesChar(name, FORBIDDEN_HEADER_NAME_SYMBOLS)) { - throw new InvalidArgumentException(`Header name '${name}' contains forbidden symbols`); - } - if (includesChar(value, FORBIDDEN_HEADER_VALUE_SYMBOLS)) { - throw new InvalidArgumentException(`Header value '${value}' contains forbidden symbols`); - } - if (value.trim() !== value) { - throw new InvalidArgumentException(`Header value should not contain trailing or ending whitespaces`); - } - parsedHeaders[bidiHeader.name] = bidiHeader.value.value; - } - else { - throw new UnsupportedOperationException('Only string headers values are supported'); - } - } - return parsedHeaders; - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class PermissionsProcessor { - #browserCdpClient; - constructor(browserCdpClient) { - this.#browserCdpClient = browserCdpClient; - } - async setPermissions(params) { - try { - const userContextId = params['goog:userContext'] || - params.userContext; - await this.#browserCdpClient.sendCommand('Browser.setPermission', { - origin: params.origin, - embeddedOrigin: params.embeddedOrigin, - browserContextId: userContextId && userContextId !== 'default' - ? userContextId - : undefined, - permission: { - name: params.descriptor.name, - }, - setting: params.state, - }); - } - catch (err) { - if (err.message === - `Permission can't be granted to opaque origins.`) { - return {}; - } - throw new InvalidArgumentException(err.message); - } - return {}; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function bytesToHex(bytes) { - return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), ''); - } - function uuidv4() { - if ('crypto' in globalThis && 'randomUUID' in globalThis.crypto) { - return globalThis.crypto.randomUUID(); - } - const randomValues = new Uint8Array(16); - if ('crypto' in globalThis && 'getRandomValues' in globalThis.crypto) { - globalThis.crypto.getRandomValues(randomValues); - } - else { - require('crypto').webcrypto.getRandomValues(randomValues); - } - randomValues[6] = (randomValues[6] & 0x0f) | 0x40; - randomValues[8] = (randomValues[8] & 0x3f) | 0x80; - return [ - bytesToHex(randomValues.subarray(0, 4)), - bytesToHex(randomValues.subarray(4, 6)), - bytesToHex(randomValues.subarray(6, 8)), - bytesToHex(randomValues.subarray(8, 10)), - bytesToHex(randomValues.subarray(10, 16)), - ].join('-'); - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - class ChannelProxy { - #properties; - #id = uuidv4(); - #logger; - constructor(channel, logger) { - this.#properties = channel; - this.#logger = logger; - } - async init(realm, eventManager) { - const channelHandle = await ChannelProxy.#createAndGetHandleInRealm(realm); - const sendMessageHandle = await ChannelProxy.#createSendMessageHandle(realm, channelHandle); - void this.#startListener(realm, channelHandle, eventManager); - return sendMessageHandle; - } - async startListenerFromWindow(realm, eventManager) { - try { - const channelHandle = await this.#getHandleFromWindow(realm); - void this.#startListener(realm, channelHandle, eventManager); - } - catch (error) { - this.#logger?.(LogType.debugError, error); - } - } - static #createChannelProxyEvalStr() { - const functionStr = String(() => { - const queue = []; - let queueNonEmptyResolver = null; - return { - async getMessage() { - const onMessage = queue.length > 0 - ? Promise.resolve() - : new Promise((resolve) => { - queueNonEmptyResolver = resolve; - }); - await onMessage; - return queue.shift(); - }, - sendMessage(message) { - queue.push(message); - if (queueNonEmptyResolver !== null) { - queueNonEmptyResolver(); - queueNonEmptyResolver = null; - } - }, - }; - }); - return `(${functionStr})()`; - } - static async #createAndGetHandleInRealm(realm) { - const createChannelHandleResult = await realm.cdpClient.sendCommand('Runtime.evaluate', { - expression: this.#createChannelProxyEvalStr(), - contextId: realm.executionContextId, - serializationOptions: { - serialization: "idOnly" , - }, - }); - if (createChannelHandleResult.exceptionDetails || - createChannelHandleResult.result.objectId === undefined) { - throw new Error(`Cannot create channel`); - } - return createChannelHandleResult.result.objectId; - } - static async #createSendMessageHandle(realm, channelHandle) { - const sendMessageArgResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((channelHandle) => { - return channelHandle.sendMessage; - }), - arguments: [{ objectId: channelHandle }], - executionContextId: realm.executionContextId, - serializationOptions: { - serialization: "idOnly" , - }, - }); - return sendMessageArgResult.result.objectId; - } - async #startListener(realm, channelHandle, eventManager) { - for (;;) { - try { - const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String(async (channelHandle) => await channelHandle.getMessage()), - arguments: [ - { - objectId: channelHandle, - }, - ], - awaitPromise: true, - executionContextId: realm.executionContextId, - serializationOptions: { - serialization: "deep" , - maxDepth: this.#properties.serializationOptions?.maxObjectDepth ?? - undefined, - }, - }); - if (message.exceptionDetails) { - throw new Error('Runtime.callFunctionOn in ChannelProxy', { - cause: message.exceptionDetails, - }); - } - for (const browsingContext of realm.associatedBrowsingContexts) { - eventManager.registerEvent({ - type: 'event', - method: Script$2.EventNames.Message, - params: { - channel: this.#properties.channel, - data: realm.cdpToBidiValue(message, this.#properties.ownership ?? "none" ), - source: realm.source, - }, - }, browsingContext.id); - } - } - catch (error) { - this.#logger?.(LogType.debugError, error); - break; - } - } - } - async #getHandleFromWindow(realm) { - const channelHandleResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((id) => { - const w = window; - if (w[id] === undefined) { - return new Promise((resolve) => (w[id] = resolve)); - } - const channelProxy = w[id]; - delete w[id]; - return channelProxy; - }), - arguments: [{ value: this.#id }], - executionContextId: realm.executionContextId, - awaitPromise: true, - serializationOptions: { - serialization: "idOnly" , - }, - }); - if (channelHandleResult.exceptionDetails !== undefined || - channelHandleResult.result.objectId === undefined) { - throw new Error(`ChannelHandle not found in window["${this.#id}"]`); - } - return channelHandleResult.result.objectId; - } - getEvalInWindowStr() { - const delegate = String((id, channelProxy) => { - const w = window; - if (w[id] === undefined) { - w[id] = channelProxy; - } - else { - w[id](channelProxy); - delete w[id]; - } - return channelProxy.sendMessage; - }); - const channelProxyEval = ChannelProxy.#createChannelProxyEvalStr(); - return `(${delegate})('${this.#id}',${channelProxyEval})`; - } - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - class PreloadScript { - #id = uuidv4(); - #cdpPreloadScripts = []; - #functionDeclaration; - #targetIds = new Set(); - #channels; - #sandbox; - #contexts; - #userContexts; - get id() { - return this.#id; - } - get targetIds() { - return this.#targetIds; - } - constructor(params, logger) { - this.#channels = - params.arguments?.map((a) => new ChannelProxy(a.value, logger)) ?? []; - this.#functionDeclaration = params.functionDeclaration; - this.#sandbox = params.sandbox; - this.#contexts = params.contexts; - this.#userContexts = params.userContexts; - } - get channels() { - return this.#channels; - } - get contexts() { - return this.#contexts; - } - get userContexts() { - return this.#userContexts; - } - #getEvaluateString() { - const channelsArgStr = `[${this.channels - .map((c) => c.getEvalInWindowStr()) - .join(', ')}]`; - return `(()=>{(${this.#functionDeclaration})(...${channelsArgStr})})()`; - } - async initInTargets(cdpTargets, runImmediately) { - await Promise.all(Array.from(cdpTargets).map((cdpTarget) => this.initInTarget(cdpTarget, runImmediately))); - } - async initInTarget(cdpTarget, runImmediately) { - const addCdpPreloadScriptResult = await cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', { - source: this.#getEvaluateString(), - worldName: this.#sandbox, - runImmediately, - }); - this.#cdpPreloadScripts.push({ - target: cdpTarget, - preloadScriptId: addCdpPreloadScriptResult.identifier, - }); - this.#targetIds.add(cdpTarget.id); - } - async remove() { - await Promise.all([ - this.#cdpPreloadScripts.map(async (cdpPreloadScript) => { - const cdpTarget = cdpPreloadScript.target; - const cdpPreloadScriptId = cdpPreloadScript.preloadScriptId; - return await cdpTarget.cdpClient.sendCommand('Page.removeScriptToEvaluateOnNewDocument', { - identifier: cdpPreloadScriptId, - }); - }), - ]); - } - dispose(cdpTargetId) { - this.#cdpPreloadScripts = this.#cdpPreloadScripts.filter((cdpPreloadScript) => cdpPreloadScript.target?.id !== cdpTargetId); - this.#targetIds.delete(cdpTargetId); - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class ScriptProcessor { - #eventManager; - #browsingContextStorage; - #realmStorage; - #preloadScriptStorage; - #userContextStorage; - #logger; - constructor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#userContextStorage = userContextStorage; - this.#logger = logger; - this.#eventManager = eventManager; - this.#eventManager.addSubscribeHook(Script$2.EventNames.RealmCreated, this.#onRealmCreatedSubscribeHook.bind(this)); - } - #onRealmCreatedSubscribeHook(contextId) { - const context = this.#browsingContextStorage.getContext(contextId); - const contextsToReport = [ - context, - ...this.#browsingContextStorage.getContext(contextId).allChildren, - ]; - const realms = new Set(); - for (const reportContext of contextsToReport) { - const realmsForContext = this.#realmStorage.findRealms({ - browsingContextId: reportContext.id, - }); - for (const realm of realmsForContext) { - realms.add(realm); - } - } - for (const realm of realms) { - this.#eventManager.registerEvent({ - type: 'event', - method: Script$2.EventNames.RealmCreated, - params: realm.realmInfo, - }, context.id); - } - return Promise.resolve(); - } - async addPreloadScript(params) { - if (params.userContexts?.length && params.contexts?.length) { - throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.'); - } - const userContexts = await this.#userContextStorage.verifyUserContextIdList(params.userContexts ?? []); - const browsingContexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - const preloadScript = new PreloadScript(params, this.#logger); - this.#preloadScriptStorage.add(preloadScript); - let contextsToRunIn = []; - if (userContexts.size) { - contextsToRunIn = this.#browsingContextStorage - .getTopLevelContexts() - .filter((context) => { - return userContexts.has(context.userContext); - }); - } - else if (browsingContexts.size) { - contextsToRunIn = [...browsingContexts.values()]; - } - else { - contextsToRunIn = this.#browsingContextStorage.getTopLevelContexts(); - } - const cdpTargets = new Set(contextsToRunIn.map((context) => context.cdpTarget)); - await preloadScript.initInTargets(cdpTargets, false); - return { - script: preloadScript.id, - }; - } - async removePreloadScript(params) { - const { script: id } = params; - const script = this.#preloadScriptStorage.getPreloadScript(id); - await script.remove(); - this.#preloadScriptStorage.remove(id); - return {}; - } - async callFunction(params) { - const realm = await this.#getRealm(params.target); - return await realm.callFunction(params.functionDeclaration, params.awaitPromise, params.this, params.arguments, params.resultOwnership, params.serializationOptions, params.userActivation); - } - async evaluate(params) { - const realm = await this.#getRealm(params.target); - return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership, params.serializationOptions, params.userActivation); - } - async disown(params) { - const realm = await this.#getRealm(params.target); - await Promise.all(params.handles.map(async (handle) => await realm.disown(handle))); - return {}; - } - getRealms(params) { - if (params.context !== undefined) { - this.#browsingContextStorage.getContext(params.context); - } - const realms = this.#realmStorage - .findRealms({ - browsingContextId: params.context, - type: params.type, - isHidden: false, - }) - .map((realm) => realm.realmInfo); - return { realms }; - } - async #getRealm(target) { - if ('context' in target) { - const context = this.#browsingContextStorage.getContext(target.context); - return await context.getOrCreateUserSandbox(target.sandbox); - } - return this.#realmStorage.getRealm({ - realmId: target.realm, - isHidden: false, - }); - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class SessionProcessor { - #eventManager; - #browserCdpClient; - #initConnection; - #created = false; - constructor(eventManager, browserCdpClient, initConnection) { - this.#eventManager = eventManager; - this.#browserCdpClient = browserCdpClient; - this.#initConnection = initConnection; - } - status() { - return { ready: false, message: 'already connected' }; - } - #mergeCapabilities(capabilitiesRequest) { - const mergedCapabilities = []; - for (const first of capabilitiesRequest.firstMatch ?? [{}]) { - const result = { - ...capabilitiesRequest.alwaysMatch, - }; - for (const key of Object.keys(first)) { - if (result[key] !== undefined) { - throw new InvalidArgumentException(`Capability ${key} in firstMatch is already defined in alwaysMatch`); - } - result[key] = first[key]; - } - mergedCapabilities.push(result); - } - const match = mergedCapabilities.find((c) => c.browserName === 'chrome') ?? - mergedCapabilities[0] ?? - {}; - match.unhandledPromptBehavior = this.#getUnhandledPromptBehavior(match.unhandledPromptBehavior); - return match; - } - #getUnhandledPromptBehavior(capabilityValue) { - if (capabilityValue === undefined) { - return undefined; - } - if (typeof capabilityValue === 'object') { - return capabilityValue; - } - if (typeof capabilityValue !== 'string') { - throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' type: ${typeof capabilityValue}`); - } - switch (capabilityValue) { - case 'accept': - case 'accept and notify': - return { - default: "accept" , - beforeUnload: "accept" , - }; - case 'dismiss': - case 'dismiss and notify': - return { - default: "dismiss" , - beforeUnload: "accept" , - }; - case 'ignore': - return { - default: "ignore" , - beforeUnload: "accept" , - }; - default: - throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' value: ${capabilityValue}`); - } - } - async new(params) { - if (this.#created) { - throw new Error('Session has been already created.'); - } - this.#created = true; - const matchedCapabitlites = this.#mergeCapabilities(params.capabilities); - await this.#initConnection(matchedCapabitlites); - const version = await this.#browserCdpClient.sendCommand('Browser.getVersion'); - return { - sessionId: 'unknown', - capabilities: { - ...matchedCapabitlites, - acceptInsecureCerts: matchedCapabitlites.acceptInsecureCerts ?? false, - browserName: version.product, - browserVersion: version.revision, - platformName: '', - setWindowRect: false, - webSocketUrl: '', - userAgent: version.userAgent, - }, - }; - } - async subscribe(params, googChannel = null) { - const subscription = await this.#eventManager.subscribe(params.events, params.contexts ?? [], params.userContexts ?? [], googChannel); - return { - subscription, - }; - } - async unsubscribe(params, googChannel = null) { - if ('subscriptions' in params) { - await this.#eventManager.unsubscribeByIds(params.subscriptions); - return {}; - } - await this.#eventManager.unsubscribe(params.events, googChannel); - return {}; - } - } - - class StorageProcessor { - #browserCdpClient; - #browsingContextStorage; - #logger; - constructor(browserCdpClient, browsingContextStorage, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#browserCdpClient = browserCdpClient; - this.#logger = logger; - } - async deleteCookies(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - let cdpResponse; - try { - cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', { - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - throw new NoSuchUserContextException(err.message); - } - throw err; - } - const cdpCookiesToDelete = cdpResponse.cookies - .filter( - (c) => partitionKey.sourceOrigin === undefined || - c.partitionKey?.topLevelSite === partitionKey.sourceOrigin) - .filter((cdpCookie) => { - const bidiCookie = cdpToBiDiCookie(cdpCookie); - return this.#matchCookie(bidiCookie, params.filter); - }) - .map((cookie) => ({ - ...cookie, - expires: 1, - })); - await this.#browserCdpClient.sendCommand('Storage.setCookies', { - cookies: cdpCookiesToDelete, - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - return { - partitionKey, - }; - } - async getCookies(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - let cdpResponse; - try { - cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', { - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - throw new NoSuchUserContextException(err.message); - } - throw err; - } - const filteredBiDiCookies = cdpResponse.cookies - .filter( - (c) => partitionKey.sourceOrigin === undefined || - c.partitionKey?.topLevelSite === partitionKey.sourceOrigin) - .map((c) => cdpToBiDiCookie(c)) - .filter((c) => this.#matchCookie(c, params.filter)); - return { - cookies: filteredBiDiCookies, - partitionKey, - }; - } - async setCookie(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - const cdpCookie = bidiToCdpCookie(params, partitionKey); - try { - await this.#browserCdpClient.sendCommand('Storage.setCookies', { - cookies: [cdpCookie], - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - throw new NoSuchUserContextException(err.message); - } - this.#logger?.(LogType.debugError, err); - throw new UnableToSetCookieException(err.toString()); - } - return { - partitionKey, - }; - } - #isNoSuchUserContextError(err) { - return err.message?.startsWith('Failed to find browser context for id'); - } - #getCdpBrowserContextId(partitionKey) { - return partitionKey.userContext === 'default' - ? undefined - : partitionKey.userContext; - } - #expandStoragePartitionSpecByBrowsingContext(descriptor) { - const browsingContextId = descriptor.context; - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - return { - userContext: browsingContext.userContext, - }; - } - #expandStoragePartitionSpecByStorageKey(descriptor) { - const unsupportedPartitionKeys = new Map(); - let sourceOrigin = descriptor.sourceOrigin; - if (sourceOrigin !== undefined) { - const url = NetworkProcessor.parseUrlString(sourceOrigin); - if (url.origin === 'null') { - sourceOrigin = url.origin; - } - else { - sourceOrigin = `${url.protocol}//${url.hostname}`; - } - } - for (const [key, value] of Object.entries(descriptor)) { - if (key !== undefined && - value !== undefined && - !['type', 'sourceOrigin', 'userContext'].includes(key)) { - unsupportedPartitionKeys.set(key, value); - } - } - if (unsupportedPartitionKeys.size > 0) { - this.#logger?.(LogType.debugInfo, `Unsupported partition keys: ${JSON.stringify(Object.fromEntries(unsupportedPartitionKeys))}`); - } - const userContext = descriptor.userContext ?? 'default'; - return { - userContext, - ...(sourceOrigin === undefined ? {} : { sourceOrigin }), - }; - } - #expandStoragePartitionSpec(partitionSpec) { - if (partitionSpec === undefined) { - return { userContext: 'default' }; - } - if (partitionSpec.type === 'context') { - return this.#expandStoragePartitionSpecByBrowsingContext(partitionSpec); - } - assert(partitionSpec.type === 'storageKey', 'Unknown partition type'); - return this.#expandStoragePartitionSpecByStorageKey(partitionSpec); - } - #matchCookie(cookie, filter) { - if (filter === undefined) { - return true; - } - return ((filter.domain === undefined || filter.domain === cookie.domain) && - (filter.name === undefined || filter.name === cookie.name) && - (filter.value === undefined || - deserializeByteValue(filter.value) === - deserializeByteValue(cookie.value)) && - (filter.path === undefined || filter.path === cookie.path) && - (filter.size === undefined || filter.size === cookie.size) && - (filter.httpOnly === undefined || filter.httpOnly === cookie.httpOnly) && - (filter.secure === undefined || filter.secure === cookie.secure) && - (filter.sameSite === undefined || filter.sameSite === cookie.sameSite) && - (filter.expiry === undefined || filter.expiry === cookie.expiry)); - } - } - - /** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class WebExtensionProcessor { - #browserCdpClient; - constructor(browserCdpClient) { - this.#browserCdpClient = browserCdpClient; - } - async install(params) { - switch (params.extensionData.type) { - case 'archivePath': - case 'base64': - throw new UnsupportedOperationException('Archived and Base64 extensions are not supported'); - } - try { - const response = await this.#browserCdpClient.sendCommand('Extensions.loadUnpacked', { - path: params.extensionData.path, - }); - return { - extension: response.id, - }; - } - catch (err) { - if (err.message.startsWith('invalid web extension')) { - throw new InvalidWebExtensionException(err.message); - } - throw err; - } - } - async uninstall(params) { - try { - await this.#browserCdpClient.sendCommand('Extensions.uninstall', { - id: params.extension, - }); - return {}; - } - catch (err) { - if (err.message === - 'Uninstall failed. Reason: could not find extension.') { - throw new NoSuchWebExtensionException('no such web extension'); - } - throw err; - } - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class OutgoingMessage { - #message; - #googChannel; - constructor(message, googChannel = null) { - this.#message = message; - this.#googChannel = googChannel; - } - static createFromPromise(messagePromise, googChannel) { - return messagePromise.then((message) => { - if (message.kind === 'success') { - return { - kind: 'success', - value: new OutgoingMessage(message.value, googChannel), - }; - } - return message; - }); - } - static createResolved(message, googChannel = null) { - return Promise.resolve({ - kind: 'success', - value: new OutgoingMessage(message, googChannel), - }); - } - get message() { - return this.#message; - } - get googChannel() { - return this.#googChannel; - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class CommandProcessor extends EventEmitter { - #bluetoothProcessor; - #browserCdpClient; - #browserProcessor; - #browsingContextProcessor; - #cdpProcessor; - #emulationProcessor; - #inputProcessor; - #networkProcessor; - #permissionsProcessor; - #scriptProcessor; - #sessionProcessor; - #storageProcessor; - #webExtensionProcessor; - #parser; - #logger; - constructor(cdpConnection, browserCdpClient, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, networkStorage, contextConfigStorage, bluetoothProcessor, userContextStorage, parser = new BidiNoOpParser(), initConnection, logger) { - super(); - this.#browserCdpClient = browserCdpClient; - this.#parser = parser; - this.#logger = logger; - this.#bluetoothProcessor = bluetoothProcessor; - this.#browserProcessor = new BrowserProcessor(browserCdpClient, browsingContextStorage, contextConfigStorage, userContextStorage); - this.#browsingContextProcessor = new BrowsingContextProcessor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager); - this.#cdpProcessor = new CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient); - this.#emulationProcessor = new EmulationProcessor(browsingContextStorage, userContextStorage, contextConfigStorage); - this.#inputProcessor = new InputProcessor(browsingContextStorage); - this.#networkProcessor = new NetworkProcessor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage); - this.#permissionsProcessor = new PermissionsProcessor(browserCdpClient); - this.#scriptProcessor = new ScriptProcessor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger); - this.#sessionProcessor = new SessionProcessor(eventManager, browserCdpClient, initConnection); - this.#storageProcessor = new StorageProcessor(browserCdpClient, browsingContextStorage, logger); - this.#webExtensionProcessor = new WebExtensionProcessor(browserCdpClient); - } - async #processCommand(command) { - switch (command.method) { - case 'bluetooth.disableSimulation': - return await this.#bluetoothProcessor.disableSimulation(this.#parser.parseDisableSimulationParameters(command.params)); - case 'bluetooth.handleRequestDevicePrompt': - return await this.#bluetoothProcessor.handleRequestDevicePrompt(this.#parser.parseHandleRequestDevicePromptParams(command.params)); - case 'bluetooth.simulateAdapter': - return await this.#bluetoothProcessor.simulateAdapter(this.#parser.parseSimulateAdapterParameters(command.params)); - case 'bluetooth.simulateAdvertisement': - return await this.#bluetoothProcessor.simulateAdvertisement(this.#parser.parseSimulateAdvertisementParameters(command.params)); - case 'bluetooth.simulateCharacteristic': - return await this.#bluetoothProcessor.simulateCharacteristic(this.#parser.parseSimulateCharacteristicParameters(command.params)); - case 'bluetooth.simulateCharacteristicResponse': - return await this.#bluetoothProcessor.simulateCharacteristicResponse(this.#parser.parseSimulateCharacteristicResponseParameters(command.params)); - case 'bluetooth.simulateDescriptor': - return await this.#bluetoothProcessor.simulateDescriptor(this.#parser.parseSimulateDescriptorParameters(command.params)); - case 'bluetooth.simulateDescriptorResponse': - return await this.#bluetoothProcessor.simulateDescriptorResponse(this.#parser.parseSimulateDescriptorResponseParameters(command.params)); - case 'bluetooth.simulateGattConnectionResponse': - return await this.#bluetoothProcessor.simulateGattConnectionResponse(this.#parser.parseSimulateGattConnectionResponseParameters(command.params)); - case 'bluetooth.simulateGattDisconnection': - return await this.#bluetoothProcessor.simulateGattDisconnection(this.#parser.parseSimulateGattDisconnectionParameters(command.params)); - case 'bluetooth.simulatePreconnectedPeripheral': - return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(this.#parser.parseSimulatePreconnectedPeripheralParameters(command.params)); - case 'bluetooth.simulateService': - return await this.#bluetoothProcessor.simulateService(this.#parser.parseSimulateServiceParameters(command.params)); - case 'browser.close': - return this.#browserProcessor.close(); - case 'browser.createUserContext': - return await this.#browserProcessor.createUserContext(this.#parser.parseCreateUserContextParameters(command.params)); - case 'browser.getClientWindows': - return await this.#browserProcessor.getClientWindows(); - case 'browser.getUserContexts': - return await this.#browserProcessor.getUserContexts(); - case 'browser.removeUserContext': - return await this.#browserProcessor.removeUserContext(this.#parser.parseRemoveUserContextParameters(command.params)); - case 'browser.setClientWindowState': - return await this.#browserProcessor.setClientWindowState(this.#parser.parseSetClientWindowStateParameters(command.params)); - case 'browser.setDownloadBehavior': - return await this.#browserProcessor.setDownloadBehavior(this.#parser.parseSetDownloadBehaviorParameters(command.params)); - case 'browsingContext.activate': - return await this.#browsingContextProcessor.activate(this.#parser.parseActivateParams(command.params)); - case 'browsingContext.captureScreenshot': - return await this.#browsingContextProcessor.captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params)); - case 'browsingContext.close': - return await this.#browsingContextProcessor.close(this.#parser.parseCloseParams(command.params)); - case 'browsingContext.create': - return await this.#browsingContextProcessor.create(this.#parser.parseCreateParams(command.params)); - case 'browsingContext.getTree': - return this.#browsingContextProcessor.getTree(this.#parser.parseGetTreeParams(command.params)); - case 'browsingContext.handleUserPrompt': - return await this.#browsingContextProcessor.handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params)); - case 'browsingContext.locateNodes': - return await this.#browsingContextProcessor.locateNodes(this.#parser.parseLocateNodesParams(command.params)); - case 'browsingContext.navigate': - return await this.#browsingContextProcessor.navigate(this.#parser.parseNavigateParams(command.params)); - case 'browsingContext.print': - return await this.#browsingContextProcessor.print(this.#parser.parsePrintParams(command.params)); - case 'browsingContext.reload': - return await this.#browsingContextProcessor.reload(this.#parser.parseReloadParams(command.params)); - case 'browsingContext.setBypassCSP': - this.#parser.parseSetBypassCspParams(command.params); - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'browsingContext.setViewport': - return await this.#browsingContextProcessor.setViewport(this.#parser.parseSetViewportParams(command.params)); - case 'browsingContext.traverseHistory': - return await this.#browsingContextProcessor.traverseHistory(this.#parser.parseTraverseHistoryParams(command.params)); - case 'goog:cdp.getSession': - return this.#cdpProcessor.getSession(this.#parser.parseGetSessionParams(command.params)); - case 'goog:cdp.resolveRealm': - return this.#cdpProcessor.resolveRealm(this.#parser.parseResolveRealmParams(command.params)); - case 'goog:cdp.sendCommand': - return await this.#cdpProcessor.sendCommand(this.#parser.parseSendCommandParams(command.params)); - case 'emulation.setForcedColorsModeThemeOverride': - this.#parser.parseSetForcedColorsModeThemeOverrideParams(command.params); - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'emulation.setGeolocationOverride': - return await this.#emulationProcessor.setGeolocationOverride(this.#parser.parseSetGeolocationOverrideParams(command.params)); - case 'emulation.setLocaleOverride': - return await this.#emulationProcessor.setLocaleOverride(this.#parser.parseSetLocaleOverrideParams(command.params)); - case 'emulation.setNetworkConditions': - return await this.#emulationProcessor.setNetworkConditions(this.#parser.parseSetNetworkConditionsParams(command.params)); - case 'emulation.setScreenOrientationOverride': - return await this.#emulationProcessor.setScreenOrientationOverride(this.#parser.parseSetScreenOrientationOverrideParams(command.params)); - case 'emulation.setScreenSettingsOverride': - return await this.#emulationProcessor.setScreenSettingsOverride(this.#parser.parseSetScreenSettingsOverrideParams(command.params)); - case 'emulation.setScriptingEnabled': - return await this.#emulationProcessor.setScriptingEnabled(this.#parser.parseSetScriptingEnabledParams(command.params)); - case 'emulation.setScrollbarTypeOverride': - return await this.#emulationProcessor.setScrollbarTypeOverride(this.#parser.parseSetScrollbarTypeOverrideParams(command.params)); - case 'emulation.setTimezoneOverride': - return await this.#emulationProcessor.setTimezoneOverride(this.#parser.parseSetTimezoneOverrideParams(command.params)); - case 'emulation.setTouchOverride': - return await this.#emulationProcessor.setTouchOverride(this.#parser.parseSetTouchOverrideParams(command.params)); - case 'emulation.setUserAgentOverride': - return await this.#emulationProcessor.setUserAgentOverrideParams(this.#parser.parseSetUserAgentOverrideParams(command.params)); - case 'userAgentClientHints.setClientHintsOverride': - return await this.#emulationProcessor.setClientHintsOverride(this.#parser.parseSetClientHintsOverrideParams(command.params)); - case 'input.performActions': - return await this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params)); - case 'input.releaseActions': - return await this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params)); - case 'input.setFiles': - return await this.#inputProcessor.setFiles(this.#parser.parseSetFilesParams(command.params)); - case 'network.addDataCollector': - return await this.#networkProcessor.addDataCollector(this.#parser.parseAddDataCollectorParams(command.params)); - case 'network.addIntercept': - return await this.#networkProcessor.addIntercept(this.#parser.parseAddInterceptParams(command.params)); - case 'network.continueRequest': - return await this.#networkProcessor.continueRequest(this.#parser.parseContinueRequestParams(command.params)); - case 'network.continueResponse': - return await this.#networkProcessor.continueResponse(this.#parser.parseContinueResponseParams(command.params)); - case 'network.continueWithAuth': - return await this.#networkProcessor.continueWithAuth(this.#parser.parseContinueWithAuthParams(command.params)); - case 'network.disownData': - return this.#networkProcessor.disownData(this.#parser.parseDisownDataParams(command.params)); - case 'network.failRequest': - return await this.#networkProcessor.failRequest(this.#parser.parseFailRequestParams(command.params)); - case 'network.getData': - return await this.#networkProcessor.getData(this.#parser.parseGetDataParams(command.params)); - case 'network.provideResponse': - return await this.#networkProcessor.provideResponse(this.#parser.parseProvideResponseParams(command.params)); - case 'network.removeDataCollector': - return await this.#networkProcessor.removeDataCollector(this.#parser.parseRemoveDataCollectorParams(command.params)); - case 'network.removeIntercept': - return await this.#networkProcessor.removeIntercept(this.#parser.parseRemoveInterceptParams(command.params)); - case 'network.setCacheBehavior': - return await this.#networkProcessor.setCacheBehavior(this.#parser.parseSetCacheBehaviorParams(command.params)); - case 'network.setExtraHeaders': - return await this.#networkProcessor.setExtraHeaders(this.#parser.parseSetExtraHeadersParams(command.params)); - case 'permissions.setPermission': - return await this.#permissionsProcessor.setPermissions(this.#parser.parseSetPermissionsParams(command.params)); - case 'script.addPreloadScript': - return await this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params)); - case 'script.callFunction': - return await this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(this.#processTargetParams(command.params))); - case 'script.disown': - return await this.#scriptProcessor.disown(this.#parser.parseDisownParams(this.#processTargetParams(command.params))); - case 'script.evaluate': - return await this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(this.#processTargetParams(command.params))); - case 'script.getRealms': - return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params)); - case 'script.removePreloadScript': - return await this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params)); - case 'session.end': - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'session.new': - return await this.#sessionProcessor.new(command.params); - case 'session.status': - return this.#sessionProcessor.status(); - case 'session.subscribe': - return await this.#sessionProcessor.subscribe(this.#parser.parseSubscribeParams(command.params), command['goog:channel']); - case 'session.unsubscribe': - return await this.#sessionProcessor.unsubscribe(this.#parser.parseUnsubscribeParams(command.params), command['goog:channel']); - case 'storage.deleteCookies': - return await this.#storageProcessor.deleteCookies(this.#parser.parseDeleteCookiesParams(command.params)); - case 'storage.getCookies': - return await this.#storageProcessor.getCookies(this.#parser.parseGetCookiesParams(command.params)); - case 'storage.setCookie': - return await this.#storageProcessor.setCookie(this.#parser.parseSetCookieParams(command.params)); - case 'webExtension.install': - return await this.#webExtensionProcessor.install(this.#parser.parseInstallParams(command.params)); - case 'webExtension.uninstall': - return await this.#webExtensionProcessor.uninstall(this.#parser.parseUninstallParams(command.params)); - } - throw new UnknownCommandException(`Unknown command '${command?.method}'.`); - } - #processTargetParams(params) { - if (typeof params === 'object' && - params && - 'target' in params && - typeof params.target === 'object' && - params.target && - 'context' in params.target) { - delete params.target['realm']; - } - return params; - } - async processCommand(command) { - try { - const result = await this.#processCommand(command); - const response = { - type: 'success', - id: command.id, - result, - }; - this.emit("response" , { - message: OutgoingMessage.createResolved(response, command['goog:channel']), - event: command.method, - }); - } - catch (e) { - if (e instanceof Exception) { - this.emit("response" , { - message: OutgoingMessage.createResolved(e.toErrorResponse(command.id), command['goog:channel']), - event: command.method, - }); - } - else { - const error = e; - this.#logger?.(LogType.bidi, error); - const errorException = this.#browserCdpClient.isCloseError(e) - ? new NoSuchFrameException(`Browsing context is gone`) - : new UnknownErrorException(error.message, error.stack); - this.emit("response" , { - message: OutgoingMessage.createResolved(errorException.toErrorResponse(command.id), command['goog:channel']), - event: command.method, - }); - } - } - } - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class BluetoothGattItem { - id; - uuid; - constructor(id, uuid) { - this.id = id; - this.uuid = uuid; - } - } - class BluetoothDescriptor extends BluetoothGattItem { - characteristic; - constructor(id, uuid, characteristic) { - super(id, uuid); - this.characteristic = characteristic; - } - } - class BluetoothCharacteristic extends BluetoothGattItem { - descriptors = new Map(); - service; - constructor(id, uuid, service) { - super(id, uuid); - this.service = service; - } - } - class BluetoothService extends BluetoothGattItem { - characteristics = new Map(); - device; - constructor(id, uuid, device) { - super(id, uuid); - this.device = device; - } - } - class BluetoothDevice { - address; - services = new Map(); - constructor(address) { - this.address = address; - } - } - class BluetoothProcessor { - #eventManager; - #browsingContextStorage; - #bluetoothDevices = new Map(); - #bluetoothCharacteristics = new Map(); - #bluetoothDescriptors = new Map(); - constructor(eventManager, browsingContextStorage) { - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - } - #getDevice(address) { - const device = this.#bluetoothDevices.get(address); - if (!device) { - throw new InvalidArgumentException(`Bluetooth device with address ${address} does not exist`); - } - return device; - } - #getService(device, serviceUuid) { - const service = device.services.get(serviceUuid); - if (!service) { - throw new InvalidArgumentException(`Service with UUID ${serviceUuid} on device ${device.address} does not exist`); - } - return service; - } - #getCharacteristic(service, characteristicUuid) { - const characteristic = service.characteristics.get(characteristicUuid); - if (!characteristic) { - throw new InvalidArgumentException(`Characteristic with UUID ${characteristicUuid} does not exist for service ${service.uuid} on device ${service.device.address}`); - } - return characteristic; - } - #getDescriptor(characteristic, descriptorUuid) { - const descriptor = characteristic.descriptors.get(descriptorUuid); - if (!descriptor) { - throw new InvalidArgumentException(`Descriptor with UUID ${descriptorUuid} does not exist for characteristic ${characteristic.uuid} on service ${characteristic.service.uuid} on device ${characteristic.service.device.address}`); - } - return descriptor; - } - async simulateAdapter(params) { - if (params.state === undefined) { - throw new InvalidArgumentException(`Parameter "state" is required for creating a Bluetooth adapter`); - } - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable'); - this.#bluetoothDevices.clear(); - this.#bluetoothCharacteristics.clear(); - this.#bluetoothDescriptors.clear(); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.enable', { - state: params.state, - leSupported: params.leSupported ?? true, - }); - return {}; - } - async disableSimulation(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable'); - this.#bluetoothDevices.clear(); - this.#bluetoothCharacteristics.clear(); - this.#bluetoothDescriptors.clear(); - return {}; - } - async simulatePreconnectedPeripheral(params) { - if (this.#bluetoothDevices.has(params.address)) { - throw new InvalidArgumentException(`Bluetooth device with address ${params.address} already exists`); - } - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulatePreconnectedPeripheral', { - address: params.address, - name: params.name, - knownServiceUuids: params.knownServiceUuids, - manufacturerData: params.manufacturerData, - }); - this.#bluetoothDevices.set(params.address, new BluetoothDevice(params.address)); - return {}; - } - async simulateAdvertisement(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateAdvertisement', { - entry: params.scanEntry, - }); - return {}; - } - async simulateCharacteristic(params) { - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (params.characteristicProperties === undefined) { - throw new InvalidArgumentException(`Parameter "characteristicProperties" is required for adding a Bluetooth characteristic`); - } - if (service.characteristics.has(params.characteristicUuid)) { - throw new InvalidArgumentException(`Characteristic with UUID ${params.characteristicUuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addCharacteristic', { - serviceId: service.id, - characteristicUuid: params.characteristicUuid, - properties: params.characteristicProperties, - }); - const characteristic = new BluetoothCharacteristic(response.characteristicId, params.characteristicUuid, service); - service.characteristics.set(params.characteristicUuid, characteristic); - this.#bluetoothCharacteristics.set(characteristic.id, characteristic); - return {}; - } - case 'remove': { - if (params.characteristicProperties !== undefined) { - throw new InvalidArgumentException(`Parameter "characteristicProperties" should not be provided for removing a Bluetooth characteristic`); - } - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeCharacteristic', { - characteristicId: characteristic.id, - }); - service.characteristics.delete(params.characteristicUuid); - this.#bluetoothCharacteristics.delete(characteristic.id); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - async simulateCharacteristicResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateCharacteristicOperationResponse', { - characteristicId: characteristic.id, - type: params.type, - code: params.code, - ...(params.data && { - data: btoa(String.fromCharCode(...params.data)), - }), - }); - return {}; - } - async simulateDescriptor(params) { - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (characteristic.descriptors.has(params.descriptorUuid)) { - throw new InvalidArgumentException(`Descriptor with UUID ${params.descriptorUuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addDescriptor', { - characteristicId: characteristic.id, - descriptorUuid: params.descriptorUuid, - }); - const descriptor = new BluetoothDescriptor(response.descriptorId, params.descriptorUuid, characteristic); - characteristic.descriptors.set(params.descriptorUuid, descriptor); - this.#bluetoothDescriptors.set(descriptor.id, descriptor); - return {}; - } - case 'remove': { - const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeDescriptor', { - descriptorId: descriptor.id, - }); - characteristic.descriptors.delete(params.descriptorUuid); - this.#bluetoothDescriptors.delete(descriptor.id); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - async simulateDescriptorResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateDescriptorOperationResponse', { - descriptorId: descriptor.id, - type: params.type, - code: params.code, - ...(params.data && { - data: btoa(String.fromCharCode(...params.data)), - }), - }); - return {}; - } - async simulateGattConnectionResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', { - address: params.address, - type: 'connection', - code: params.code, - }); - return {}; - } - async simulateGattDisconnection(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTDisconnection', { - address: params.address, - }); - return {}; - } - async simulateService(params) { - const device = this.#getDevice(params.address); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (device.services.has(params.uuid)) { - throw new InvalidArgumentException(`Service with UUID ${params.uuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addService', { - address: params.address, - serviceUuid: params.uuid, - }); - device.services.set(params.uuid, new BluetoothService(response.serviceId, params.uuid, device)); - return {}; - } - case 'remove': { - const service = this.#getService(device, params.uuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeService', { - serviceId: service.id, - }); - device.services.delete(params.uuid); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - onCdpTargetCreated(cdpTarget) { - cdpTarget.cdpClient.on('DeviceAccess.deviceRequestPrompted', (event) => { - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.requestDevicePromptUpdated', - params: { - context: cdpTarget.id, - prompt: event.id, - devices: event.devices, - }, - }, cdpTarget.id); - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.gattOperationReceived', async (event) => { - switch (event.type) { - case 'connection': - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.gattConnectionAttempted', - params: { - context: cdpTarget.id, - address: event.address, - }, - }, cdpTarget.id); - return; - case 'discovery': - await cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', { - address: event.address, - type: 'discovery', - code: 0x0, - }); - } - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.characteristicOperationReceived', (event) => { - if (!this.#bluetoothCharacteristics.has(event.characteristicId)) { - return; - } - let type; - if (event.type === 'write') { - if (event.writeType === 'write-default-deprecated') { - return; - } - type = event.writeType; - } - else { - type = event.type; - } - const characteristic = this.#bluetoothCharacteristics.get(event.characteristicId); - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.characteristicEventGenerated', - params: { - context: cdpTarget.id, - address: characteristic.service.device.address, - serviceUuid: characteristic.service.uuid, - characteristicUuid: characteristic.uuid, - type, - ...(event.data && { - data: Array.from(atob(event.data), (c) => c.charCodeAt(0)), - }), - }, - }, cdpTarget.id); - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.descriptorOperationReceived', (event) => { - if (!this.#bluetoothDescriptors.has(event.descriptorId)) { - return; - } - const descriptor = this.#bluetoothDescriptors.get(event.descriptorId); - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.descriptorEventGenerated', - params: { - context: cdpTarget.id, - address: descriptor.characteristic.service.device.address, - serviceUuid: descriptor.characteristic.service.uuid, - characteristicUuid: descriptor.characteristic.uuid, - descriptorUuid: descriptor.uuid, - type: event.type, - ...(event.data && { - data: Array.from(atob(event.data), (c) => c.charCodeAt(0)), - }), - }, - }, cdpTarget.id); - }); - } - async handleRequestDevicePrompt(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (params.accept) { - await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.selectPrompt', { - id: params.prompt, - deviceId: params.device, - }); - } - else { - await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.cancelPrompt', { - id: params.prompt, - }); - } - return {}; - } - } - - /** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class ContextConfig { - acceptInsecureCerts; - clientHints; - devicePixelRatio; - disableNetworkDurableMessages; - downloadBehavior; - emulatedNetworkConditions; - extraHeaders; - geolocation; - locale; - maxTouchPoints; - prerenderingDisabled; - screenArea; - screenOrientation; - scriptingEnabled; - scrollbarType; - timezone; - userAgent; - userPromptHandler; - viewport; - static merge(...configs) { - const result = new ContextConfig(); - for (const config of configs) { - if (!config) { - continue; - } - for (const key in config) { - const value = config[key]; - if (value === null) { - delete result[key]; - } - else if (value !== undefined) { - result[key] = value; - } - } - } - return result; - } - } - - /* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class ContextConfigStorage { - #global = new ContextConfig(); - #userContextConfigs = new Map(); - #browsingContextConfigs = new Map(); - updateGlobalConfig(config) { - this.#global = ContextConfig.merge(this.#global, config); - } - updateBrowsingContextConfig(browsingContextId, config) { - this.#browsingContextConfigs.set(browsingContextId, ContextConfig.merge(this.#browsingContextConfigs.get(browsingContextId), config)); - } - updateUserContextConfig(userContext, config) { - this.#userContextConfigs.set(userContext, ContextConfig.merge(this.#userContextConfigs.get(userContext), config)); - } - getGlobalConfig() { - return this.#global; - } - #getExtraHeaders(topLevelBrowsingContextId, userContext) { - const globalHeaders = this.#global.extraHeaders ?? {}; - const userContextHeaders = this.#userContextConfigs.get(userContext)?.extraHeaders ?? {}; - const browsingContextHeaders = topLevelBrowsingContextId === undefined - ? {} - : (this.#browsingContextConfigs.get(topLevelBrowsingContextId) - ?.extraHeaders ?? {}); - return { ...globalHeaders, ...userContextHeaders, ...browsingContextHeaders }; - } - getActiveConfig(topLevelBrowsingContextId, userContext) { - let result = ContextConfig.merge(this.#global, this.#userContextConfigs.get(userContext)); - if (topLevelBrowsingContextId !== undefined) { - result = ContextConfig.merge(result, this.#browsingContextConfigs.get(topLevelBrowsingContextId)); - } - const extraHeaders = this.#getExtraHeaders(topLevelBrowsingContextId, userContext); - result.extraHeaders = - Object.keys(extraHeaders).length > 0 ? extraHeaders : undefined; - return result; - } - } - - /** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class UserContextStorage { - #browserClient; - constructor(browserClient) { - this.#browserClient = browserClient; - } - async getUserContexts() { - const result = await this.#browserClient.sendCommand('Target.getBrowserContexts'); - return [ - { - userContext: 'default', - }, - ...result.browserContextIds.map((id) => { - return { - userContext: id, - }; - }), - ]; - } - async verifyUserContextIdList(userContextIds) { - const foundContexts = new Set(); - if (!userContextIds.length) { - return foundContexts; - } - const userContexts = await this.getUserContexts(); - const knownUserContextIds = new Set(userContexts.map((userContext) => userContext.userContext)); - for (const userContextId of userContextIds) { - if (!knownUserContextIds.has(userContextId)) { - throw new NoSuchUserContextException(`User context ${userContextId} not found`); - } - foundContexts.add(userContextId); - } - return foundContexts; - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class Deferred { - #isFinished = false; - #promise; - #result; - #resolve; - #reject; - get isFinished() { - return this.#isFinished; - } - get result() { - if (!this.#isFinished) { - throw new Error('Deferred is not finished yet'); - } - return this.#result; - } - constructor() { - this.#promise = new Promise((resolve, reject) => { - this.#resolve = resolve; - this.#reject = reject; - }); - this.#promise.catch((_error) => { - }); - } - then(onFulfilled, onRejected) { - return this.#promise.then(onFulfilled, onRejected); - } - catch(onRejected) { - return this.#promise.catch(onRejected); - } - resolve(value) { - this.#result = value; - if (!this.#isFinished) { - this.#isFinished = true; - this.#resolve(value); - } - } - reject(reason) { - if (!this.#isFinished) { - this.#isFinished = true; - this.#reject(reason); - } - } - finally(onFinally) { - return this.#promise.finally(onFinally); - } - [Symbol.toStringTag] = 'Promise'; - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function getTimestamp() { - return new Date().getTime(); - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function inchesFromCm(cm) { - return cm / 2.54; - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const SHARED_ID_DIVIDER = '_element_'; - function getSharedId(frameId, documentId, backendNodeId) { - return `f.${frameId}.d.${documentId}.e.${backendNodeId}`; - } - function parseLegacySharedId(sharedId) { - const match = sharedId.match(new RegExp(`(.*)${SHARED_ID_DIVIDER}(.*)`)); - if (!match) { - return null; - } - const documentId = match[1]; - const elementId = match[2]; - if (documentId === undefined || elementId === undefined) { - return null; - } - const backendNodeId = parseInt(elementId ?? ''); - if (isNaN(backendNodeId)) { - return null; - } - return { - documentId, - backendNodeId, - }; - } - function parseSharedId(sharedId) { - const legacyFormattedSharedId = parseLegacySharedId(sharedId); - if (legacyFormattedSharedId !== null) { - return { ...legacyFormattedSharedId, frameId: undefined }; - } - const match = sharedId.match(/f\.(.*)\.d\.(.*)\.e\.([0-9]*)/); - if (!match) { - return null; - } - const frameId = match[1]; - const documentId = match[2]; - const elementId = match[3]; - if (frameId === undefined || - documentId === undefined || - elementId === undefined) { - return null; - } - const backendNodeId = parseInt(elementId ?? ''); - if (isNaN(backendNodeId)) { - return null; - } - return { - frameId, - documentId, - backendNodeId, - }; - } - - class Realm { - #cdpClient; - #eventManager; - #executionContextId; - #logger; - #origin; - #realmId; - realmStorage; - constructor(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage) { - this.#cdpClient = cdpClient; - this.#eventManager = eventManager; - this.#executionContextId = executionContextId; - this.#logger = logger; - this.#origin = origin; - this.#realmId = realmId; - this.realmStorage = realmStorage; - this.realmStorage.addRealm(this); - } - cdpToBidiValue(cdpValue, resultOwnership) { - const bidiValue = this.serializeForBiDi(cdpValue.result.deepSerializedValue, new Map()); - if (cdpValue.result.objectId) { - const objectId = cdpValue.result.objectId; - if (resultOwnership === "root" ) { - bidiValue.handle = objectId; - this.realmStorage.knownHandlesToRealmMap.set(objectId, this.realmId); - } - else { - void this.#releaseObject(objectId).catch((error) => this.#logger?.(LogType.debugError, error)); - } - } - return bidiValue; - } - isHidden() { - return false; - } - serializeForBiDi(deepSerializedValue, internalIdMap) { - if (Object.hasOwn(deepSerializedValue, 'weakLocalObjectReference')) { - const weakLocalObjectReference = deepSerializedValue.weakLocalObjectReference; - if (!internalIdMap.has(weakLocalObjectReference)) { - internalIdMap.set(weakLocalObjectReference, uuidv4()); - } - deepSerializedValue.internalId = internalIdMap.get(weakLocalObjectReference); - delete deepSerializedValue['weakLocalObjectReference']; - } - if (deepSerializedValue.type === 'node' && - deepSerializedValue.value && - Object.hasOwn(deepSerializedValue.value, 'frameId')) { - delete deepSerializedValue.value['frameId']; - } - if (deepSerializedValue.type === 'platformobject') { - return { type: 'object' }; - } - const bidiValue = deepSerializedValue.value; - if (bidiValue === undefined) { - return deepSerializedValue; - } - if (['array', 'set', 'htmlcollection', 'nodelist'].includes(deepSerializedValue.type)) { - for (const i in bidiValue) { - bidiValue[i] = this.serializeForBiDi(bidiValue[i], internalIdMap); - } - } - if (['object', 'map'].includes(deepSerializedValue.type)) { - for (const i in bidiValue) { - bidiValue[i] = [ - this.serializeForBiDi(bidiValue[i][0], internalIdMap), - this.serializeForBiDi(bidiValue[i][1], internalIdMap), - ]; - } - } - return deepSerializedValue; - } - get realmId() { - return this.#realmId; - } - get executionContextId() { - return this.#executionContextId; - } - get origin() { - return this.#origin; - } - get source() { - return { - realm: this.realmId, - }; - } - get cdpClient() { - return this.#cdpClient; - } - get baseInfo() { - return { - realm: this.realmId, - origin: this.origin, - }; - } - async evaluate(expression, awaitPromise, resultOwnership = "none" , serializationOptions = {}, userActivation = false, includeCommandLineApi = false) { - const cdpEvaluateResult = await this.cdpClient.sendCommand('Runtime.evaluate', { - contextId: this.executionContextId, - expression, - awaitPromise, - serializationOptions: Realm.#getSerializationOptions("deep" , serializationOptions), - userGesture: userActivation, - includeCommandLineAPI: includeCommandLineApi, - }); - if (cdpEvaluateResult.exceptionDetails) { - return await this.#getExceptionResult(cdpEvaluateResult.exceptionDetails, 0, resultOwnership); - } - return { - realm: this.realmId, - result: this.cdpToBidiValue(cdpEvaluateResult, resultOwnership), - type: 'success', - }; - } - #registerEvent(event) { - if (this.associatedBrowsingContexts.length === 0) { - this.#eventManager.registerGlobalEvent(event); - } - else { - for (const browsingContext of this.associatedBrowsingContexts) { - this.#eventManager.registerEvent(event, browsingContext.id); - } - } - } - initialize() { - if (!this.isHidden()) { - this.#registerEvent({ - type: 'event', - method: Script$2.EventNames.RealmCreated, - params: this.realmInfo, - }); - } - } - async serializeCdpObject(cdpRemoteObject, resultOwnership) { - const argument = Realm.#cdpRemoteObjectToCallArgument(cdpRemoteObject); - const cdpValue = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((remoteObject) => remoteObject), - awaitPromise: false, - arguments: [argument], - serializationOptions: { - serialization: "deep" , - }, - executionContextId: this.executionContextId, - }); - return this.cdpToBidiValue(cdpValue, resultOwnership); - } - static #cdpRemoteObjectToCallArgument(cdpRemoteObject) { - if (cdpRemoteObject.objectId !== undefined) { - return { objectId: cdpRemoteObject.objectId }; - } - if (cdpRemoteObject.unserializableValue !== undefined) { - return { unserializableValue: cdpRemoteObject.unserializableValue }; - } - return { value: cdpRemoteObject.value }; - } - async stringifyObject(cdpRemoteObject) { - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((remoteObject) => String(remoteObject)), - awaitPromise: false, - arguments: [cdpRemoteObject], - returnByValue: true, - executionContextId: this.executionContextId, - }); - return result.value; - } - async #flattenKeyValuePairs(mappingLocalValue) { - const keyValueArray = await Promise.all(mappingLocalValue.map(async ([key, value]) => { - let keyArg; - if (typeof key === 'string') { - keyArg = { value: key }; - } - else { - keyArg = await this.deserializeForCdp(key); - } - const valueArg = await this.deserializeForCdp(value); - return [keyArg, valueArg]; - })); - return keyValueArray.flat(); - } - async #flattenValueList(listLocalValue) { - return await Promise.all(listLocalValue.map((localValue) => this.deserializeForCdp(localValue))); - } - async #serializeCdpExceptionDetails(cdpExceptionDetails, lineOffset, resultOwnership) { - const callFrames = cdpExceptionDetails.stackTrace?.callFrames.map((frame) => ({ - url: frame.url, - functionName: frame.functionName, - lineNumber: frame.lineNumber - lineOffset, - columnNumber: frame.columnNumber, - })) ?? []; - const exception = cdpExceptionDetails.exception; - return { - exception: await this.serializeCdpObject(exception, resultOwnership), - columnNumber: cdpExceptionDetails.columnNumber, - lineNumber: cdpExceptionDetails.lineNumber - lineOffset, - stackTrace: { - callFrames, - }, - text: (await this.stringifyObject(exception)) || cdpExceptionDetails.text, - }; - } - async callFunction(functionDeclaration, awaitPromise, thisLocalValue = { - type: 'undefined', - }, argumentsLocalValues = [], resultOwnership = "none" , serializationOptions = {}, userActivation = false) { - const callFunctionAndSerializeScript = `(...args) => { - function callFunction(f, args) { - const deserializedThis = args.shift(); - const deserializedArgs = args; - return f.apply(deserializedThis, deserializedArgs); - } - return callFunction(( - ${functionDeclaration} - ), args); - }`; - const thisAndArgumentsList = [ - await this.deserializeForCdp(thisLocalValue), - ...(await Promise.all(argumentsLocalValues.map(async (argumentLocalValue) => await this.deserializeForCdp(argumentLocalValue)))), - ]; - let cdpCallFunctionResult; - try { - cdpCallFunctionResult = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: callFunctionAndSerializeScript, - awaitPromise, - arguments: thisAndArgumentsList, - serializationOptions: Realm.#getSerializationOptions("deep" , serializationOptions), - executionContextId: this.executionContextId, - userGesture: userActivation, - }); - } - catch (error) { - if (error.code === -32e3 && - [ - 'Could not find object with given id', - 'Argument should belong to the same JavaScript world as target object', - 'Invalid remote object id', - ].includes(error.message)) { - throw new NoSuchHandleException('Handle was not found.'); - } - throw error; - } - if (cdpCallFunctionResult.exceptionDetails) { - return await this.#getExceptionResult(cdpCallFunctionResult.exceptionDetails, 1, resultOwnership); - } - return { - type: 'success', - result: this.cdpToBidiValue(cdpCallFunctionResult, resultOwnership), - realm: this.realmId, - }; - } - async deserializeForCdp(localValue) { - if ('handle' in localValue && localValue.handle) { - return { objectId: localValue.handle }; - } - else if ('handle' in localValue || 'sharedId' in localValue) { - throw new NoSuchHandleException('Handle was not found.'); - } - switch (localValue.type) { - case 'undefined': - return { unserializableValue: 'undefined' }; - case 'null': - return { unserializableValue: 'null' }; - case 'string': - return { value: localValue.value }; - case 'number': - if (localValue.value === 'NaN') { - return { unserializableValue: 'NaN' }; - } - else if (localValue.value === '-0') { - return { unserializableValue: '-0' }; - } - else if (localValue.value === 'Infinity') { - return { unserializableValue: 'Infinity' }; - } - else if (localValue.value === '-Infinity') { - return { unserializableValue: '-Infinity' }; - } - return { - value: localValue.value, - }; - case 'boolean': - return { value: Boolean(localValue.value) }; - case 'bigint': - return { - unserializableValue: `BigInt(${JSON.stringify(localValue.value)})`, - }; - case 'date': - return { - unserializableValue: `new Date(Date.parse(${JSON.stringify(localValue.value)}))`, - }; - case 'regexp': - return { - unserializableValue: `new RegExp(${JSON.stringify(localValue.value.pattern)}, ${JSON.stringify(localValue.value.flags)})`, - }; - case 'map': { - const keyValueArray = await this.#flattenKeyValuePairs(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => { - const result = new Map(); - for (let i = 0; i < args.length; i += 2) { - result.set(args[i], args[i + 1]); - } - return result; - }), - awaitPromise: false, - arguments: keyValueArray, - returnByValue: false, - executionContextId: this.executionContextId, - }); - return { objectId: result.objectId }; - } - case 'object': { - const keyValueArray = await this.#flattenKeyValuePairs(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => { - const result = {}; - for (let i = 0; i < args.length; i += 2) { - const key = args[i]; - result[key] = args[i + 1]; - } - return result; - }), - awaitPromise: false, - arguments: keyValueArray, - returnByValue: false, - executionContextId: this.executionContextId, - }); - return { objectId: result.objectId }; - } - case 'array': { - const args = await this.#flattenValueList(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => args), - awaitPromise: false, - arguments: args, - returnByValue: false, - executionContextId: this.executionContextId, - }); - return { objectId: result.objectId }; - } - case 'set': { - const args = await this.#flattenValueList(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => new Set(args)), - awaitPromise: false, - arguments: args, - returnByValue: false, - executionContextId: this.executionContextId, - }); - return { objectId: result.objectId }; - } - case 'channel': { - const channelProxy = new ChannelProxy(localValue.value, this.#logger); - const channelProxySendMessageHandle = await channelProxy.init(this, this.#eventManager); - return { objectId: channelProxySendMessageHandle }; - } - } - throw new Error(`Value ${JSON.stringify(localValue)} is not deserializable.`); - } - async #getExceptionResult(exceptionDetails, lineOffset, resultOwnership) { - return { - exceptionDetails: await this.#serializeCdpExceptionDetails(exceptionDetails, lineOffset, resultOwnership), - realm: this.realmId, - type: 'exception', - }; - } - static #getSerializationOptions(serialization, serializationOptions) { - return { - serialization, - additionalParameters: Realm.#getAdditionalSerializationParameters(serializationOptions), - ...Realm.#getMaxObjectDepth(serializationOptions), - }; - } - static #getAdditionalSerializationParameters(serializationOptions) { - const additionalParameters = {}; - if (serializationOptions.maxDomDepth !== undefined) { - additionalParameters['maxNodeDepth'] = - serializationOptions.maxDomDepth === null - ? 1000 - : serializationOptions.maxDomDepth; - } - if (serializationOptions.includeShadowTree !== undefined) { - additionalParameters['includeShadowTree'] = - serializationOptions.includeShadowTree; - } - return additionalParameters; - } - static #getMaxObjectDepth(serializationOptions) { - return serializationOptions.maxObjectDepth === undefined || - serializationOptions.maxObjectDepth === null - ? {} - : { maxDepth: serializationOptions.maxObjectDepth }; - } - async #releaseObject(handle) { - try { - await this.cdpClient.sendCommand('Runtime.releaseObject', { - objectId: handle, - }); - } - catch (error) { - if (!(error.code === -32e3 && - error.message === 'Invalid remote object id')) { - throw error; - } - } - } - async disown(handle) { - if (this.realmStorage.knownHandlesToRealmMap.get(handle) !== this.realmId) { - return; - } - await this.#releaseObject(handle); - this.realmStorage.knownHandlesToRealmMap.delete(handle); - } - dispose() { - if (!this.isHidden()) { - this.#registerEvent({ - type: 'event', - method: Script$2.EventNames.RealmDestroyed, - params: { - realm: this.realmId, - }, - }); - } - } - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class WindowRealm extends Realm { - #browsingContextId; - #browsingContextStorage; - sandbox; - constructor(browsingContextId, browsingContextStorage, cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage, sandbox) { - super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage); - this.#browsingContextId = browsingContextId; - this.#browsingContextStorage = browsingContextStorage; - this.sandbox = sandbox; - this.initialize(); - } - #getBrowsingContextId(navigableId) { - const maybeBrowsingContext = this.#browsingContextStorage - .getAllContexts() - .find((context) => context.navigableId === navigableId); - return maybeBrowsingContext?.id ?? 'UNKNOWN'; - } - get browsingContext() { - return this.#browsingContextStorage.getContext(this.#browsingContextId); - } - isHidden() { - return this.realmStorage.hiddenSandboxes.has(this.sandbox); - } - get associatedBrowsingContexts() { - return [this.browsingContext]; - } - get realmType() { - return 'window'; - } - get realmInfo() { - return { - ...this.baseInfo, - type: this.realmType, - context: this.#browsingContextId, - sandbox: this.sandbox, - }; - } - get source() { - return { - realm: this.realmId, - context: this.browsingContext.id, - }; - } - serializeForBiDi(deepSerializedValue, internalIdMap) { - const bidiValue = deepSerializedValue.value; - if (deepSerializedValue.type === 'node' && bidiValue !== undefined) { - if (Object.hasOwn(bidiValue, 'backendNodeId')) { - let navigableId = this.browsingContext.navigableId ?? 'UNKNOWN'; - if (Object.hasOwn(bidiValue, 'loaderId')) { - navigableId = bidiValue.loaderId; - delete bidiValue['loaderId']; - } - deepSerializedValue.sharedId = - getSharedId(this.#getBrowsingContextId(navigableId), navigableId, bidiValue.backendNodeId); - delete bidiValue['backendNodeId']; - } - if (Object.hasOwn(bidiValue, 'children')) { - for (const i in bidiValue.children) { - bidiValue.children[i] = this.serializeForBiDi(bidiValue.children[i], internalIdMap); - } - } - if (Object.hasOwn(bidiValue, 'shadowRoot') && - bidiValue.shadowRoot !== null) { - bidiValue.shadowRoot = this.serializeForBiDi(bidiValue.shadowRoot, internalIdMap); - } - if (bidiValue.namespaceURI === '') { - bidiValue.namespaceURI = null; - } - } - return super.serializeForBiDi(deepSerializedValue, internalIdMap); - } - async deserializeForCdp(localValue) { - if ('sharedId' in localValue && localValue.sharedId) { - const parsedSharedId = parseSharedId(localValue.sharedId); - if (parsedSharedId === null) { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" was not found.`); - } - const { documentId, backendNodeId } = parsedSharedId; - if (this.browsingContext.navigableId !== documentId) { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" belongs to different document. Current document is ${this.browsingContext.navigableId}.`); - } - try { - const { object } = await this.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - executionContextId: this.executionContextId, - }); - return { objectId: object.objectId }; - } - catch (error) { - if (error.code === -32e3 && - error.message === 'No node with given id found') { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" was not found.`); - } - throw new UnknownErrorException(error.message, error.stack); - } - } - return await super.deserializeForCdp(localValue); - } - async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi) { - await this.#browsingContextStorage - .getContext(this.#browsingContextId) - .targetUnblockedOrThrow(); - return await super.evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi); - } - async callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation) { - await this.#browsingContextStorage - .getContext(this.#browsingContextId) - .targetUnblockedOrThrow(); - return await super.callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation); - } - } - - /* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - function urlMatchesAboutBlank(url) { - if (url === '') { - return true; - } - try { - const parsedUrl = new URL(url); - const schema = parsedUrl.protocol.replace(/:$/, ''); - return (schema.toLowerCase() === 'about' && - parsedUrl.pathname.toLowerCase() === 'blank' && - parsedUrl.username === '' && - parsedUrl.password === '' && - parsedUrl.host === ''); - } - catch (err) { - if (err instanceof TypeError) { - return false; - } - throw err; - } - } - - /* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - class NavigationResult { - eventName; - message; - constructor(eventName, message) { - this.eventName = eventName; - this.message = message; - } - } - class NavigationState { - navigationId = uuidv4(); - #browsingContextId; - #started = false; - #finished = new Deferred(); - url; - loaderId; - #isInitial; - #eventManager; - committed = new Deferred(); - isFragmentNavigation; - get finished() { - return this.#finished; - } - constructor(url, browsingContextId, isInitial, eventManager) { - this.#browsingContextId = browsingContextId; - this.url = url; - this.#isInitial = isInitial; - this.#eventManager = eventManager; - } - navigationInfo() { - return { - context: this.#browsingContextId, - navigation: this.navigationId, - timestamp: getTimestamp(), - url: this.url, - }; - } - start() { - if ( - !this.#isInitial && - !this.#started && - !this.isFragmentNavigation) { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.NavigationStarted, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - this.#started = true; - } - #finish(navigationResult) { - this.#started = true; - if (!this.#isInitial && - !this.#finished.isFinished && - navigationResult.eventName !== "browsingContext.load" ) { - this.#eventManager.registerEvent({ - type: 'event', - method: navigationResult.eventName, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - this.#finished.resolve(navigationResult); - } - frameNavigated() { - this.committed.resolve(); - if (!this.#isInitial) { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.NavigationCommitted, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - } - fragmentNavigated() { - this.committed.resolve(); - this.#finish(new NavigationResult("browsingContext.fragmentNavigated" )); - } - load() { - this.#finish(new NavigationResult("browsingContext.load" )); - } - fail(message) { - this.#finish(new NavigationResult(this.committed.isFinished - ? "browsingContext.navigationAborted" - : "browsingContext.navigationFailed" , message)); - } - } - class NavigationTracker { - #eventManager; - #logger; - #loaderIdToNavigationsMap = new Map(); - #browsingContextId; - #lastCommittedNavigation; - #pendingNavigation; - #isInitialNavigation = true; - constructor(url, browsingContextId, eventManager, logger) { - this.#browsingContextId = browsingContextId; - this.#eventManager = eventManager; - this.#logger = logger; - this.#isInitialNavigation = true; - this.#lastCommittedNavigation = new NavigationState(url, browsingContextId, urlMatchesAboutBlank(url), this.#eventManager); - } - get currentNavigationId() { - if (this.#pendingNavigation?.isFragmentNavigation === false) { - return this.#pendingNavigation.navigationId; - } - return this.#lastCommittedNavigation.navigationId; - } - get isInitialNavigation() { - return this.#isInitialNavigation; - } - get url() { - return this.#lastCommittedNavigation.url; - } - createPendingNavigation(url, canBeInitialNavigation = false) { - this.#logger?.(LogType.debug, 'createCommandNavigation'); - this.#isInitialNavigation = - canBeInitialNavigation && - this.#isInitialNavigation && - urlMatchesAboutBlank(url); - this.#pendingNavigation?.fail('navigation canceled by concurrent navigation'); - const navigation = new NavigationState(url, this.#browsingContextId, this.#isInitialNavigation, this.#eventManager); - this.#pendingNavigation = navigation; - return navigation; - } - dispose() { - this.#pendingNavigation?.fail('navigation canceled by context disposal'); - this.#lastCommittedNavigation.fail('navigation canceled by context disposal'); - } - onTargetInfoChanged(url) { - this.#logger?.(LogType.debug, `onTargetInfoChanged ${url}`); - this.#lastCommittedNavigation.url = url; - } - #getNavigationForFrameNavigated(url, loaderId) { - if (this.#loaderIdToNavigationsMap.has(loaderId)) { - return this.#loaderIdToNavigationsMap.get(loaderId); - } - if (this.#pendingNavigation !== undefined && - this.#pendingNavigation.loaderId === undefined) { - return this.#pendingNavigation; - } - return this.createPendingNavigation(url, true); - } - frameNavigated(url, loaderId, unreachableUrl) { - this.#logger?.(LogType.debug, `frameNavigated ${url}`); - if (unreachableUrl !== undefined) { - const navigation = this.#loaderIdToNavigationsMap.get(loaderId) ?? - this.#pendingNavigation ?? - this.createPendingNavigation(unreachableUrl, true); - navigation.url = unreachableUrl; - navigation.start(); - navigation.fail('the requested url is unreachable'); - return; - } - const navigation = this.#getNavigationForFrameNavigated(url, loaderId); - if (navigation !== this.#lastCommittedNavigation) { - this.#lastCommittedNavigation.fail('navigation canceled by concurrent navigation'); - } - navigation.url = url; - navigation.loaderId = loaderId; - this.#loaderIdToNavigationsMap.set(loaderId, navigation); - navigation.start(); - navigation.frameNavigated(); - this.#lastCommittedNavigation = navigation; - if (this.#pendingNavigation === navigation) { - this.#pendingNavigation = undefined; - } - } - navigatedWithinDocument(url, navigationType) { - this.#logger?.(LogType.debug, `navigatedWithinDocument ${url}, ${navigationType}`); - this.#lastCommittedNavigation.url = url; - if (navigationType !== 'fragment') { - return; - } - const fragmentNavigation = this.#pendingNavigation?.isFragmentNavigation === true - ? this.#pendingNavigation - : new NavigationState(url, this.#browsingContextId, false, this.#eventManager); - fragmentNavigation.fragmentNavigated(); - if (fragmentNavigation === this.#pendingNavigation) { - this.#pendingNavigation = undefined; - } - } - loadPageEvent(loaderId) { - this.#logger?.(LogType.debug, 'loadPageEvent'); - this.#isInitialNavigation = false; - this.#loaderIdToNavigationsMap.get(loaderId)?.load(); - } - failNavigation(navigation, errorText) { - this.#logger?.(LogType.debug, 'failCommandNavigation'); - navigation.fail(errorText); - } - navigationCommandFinished(navigation, loaderId) { - this.#logger?.(LogType.debug, `finishCommandNavigation ${navigation.navigationId}, ${loaderId}`); - if (loaderId !== undefined) { - navigation.loaderId = loaderId; - this.#loaderIdToNavigationsMap.set(loaderId, navigation); - } - navigation.isFragmentNavigation = loaderId === undefined; - } - frameStartedNavigating(url, loaderId, navigationType) { - this.#logger?.(LogType.debug, `frameStartedNavigating ${url}, ${loaderId}`); - if (this.#pendingNavigation && - this.#pendingNavigation?.loaderId !== undefined && - this.#pendingNavigation?.loaderId !== loaderId) { - this.#pendingNavigation?.fail('navigation canceled by concurrent navigation'); - this.#pendingNavigation = undefined; - } - if (this.#loaderIdToNavigationsMap.has(loaderId)) { - const existingNavigation = this.#loaderIdToNavigationsMap.get(loaderId); - existingNavigation.isFragmentNavigation = - NavigationTracker.#isFragmentNavigation(navigationType); - this.#pendingNavigation = existingNavigation; - return; - } - const pendingNavigation = this.#pendingNavigation ?? this.createPendingNavigation(url, true); - this.#loaderIdToNavigationsMap.set(loaderId, pendingNavigation); - pendingNavigation.isFragmentNavigation = - NavigationTracker.#isFragmentNavigation(navigationType); - pendingNavigation.url = url; - pendingNavigation.loaderId = loaderId; - pendingNavigation.start(); - } - static #isFragmentNavigation(navigationType) { - return ['historySameDocument', 'sameDocument'].includes(navigationType); - } - networkLoadingFailed(loaderId, errorText) { - this.#loaderIdToNavigationsMap.get(loaderId)?.fail(errorText); - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var _a$5; - class BrowsingContextImpl { - static LOGGER_PREFIX = `${LogType.debug}:browsingContext`; - #children = new Set(); - #id; - userContext; - #hiddenSandbox = uuidv4(); - #downloadIdToUrlMap = new Map(); - #loaderId; - #parentId = null; - #originalOpener; - #lifecycle = { - DOMContentLoaded: new Deferred(), - load: new Deferred(), - }; - #cdpTarget; - #defaultRealmDeferred = new Deferred(); - #browsingContextStorage; - #eventManager; - #logger; - #navigationTracker; - #realmStorage; - #configStorage; - #lastUserPromptType; - constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) { - this.#cdpTarget = cdpTarget; - this.#id = id; - this.#parentId = parentId; - this.userContext = userContext; - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#configStorage = configStorage; - this.#logger = logger; - this.#originalOpener = originalOpener; - this.#realmStorage.hiddenSandboxes.add(this.#hiddenSandbox); - this.#navigationTracker = new NavigationTracker(url, id, eventManager, logger); - } - static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) { - const context = new _a$5(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger); - context.#initListeners(); - browsingContextStorage.addContext(context); - if (!context.isTopLevelContext()) { - context.parent.addChild(context.id); - } - eventManager.registerPromiseEvent(context.targetUnblockedOrThrow().then(() => { - return { - kind: 'success', - value: { - type: 'event', - method: BrowsingContext$2.EventNames.ContextCreated, - params: { - ...context.serializeToBidiValue(), - url, - }, - }, - }; - }, (error) => { - return { - kind: 'error', - error, - }; - }), context.id, BrowsingContext$2.EventNames.ContextCreated); - return context; - } - get navigableId() { - return this.#loaderId; - } - get navigationId() { - return this.#navigationTracker.currentNavigationId; - } - dispose(emitContextDestroyed) { - this.#navigationTracker.dispose(); - this.#realmStorage.deleteRealms({ - browsingContextId: this.id, - }); - if (!this.isTopLevelContext()) { - this.parent.#children.delete(this.id); - } - this.#failLifecycleIfNotFinished(); - if (emitContextDestroyed) { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.ContextDestroyed, - params: this.serializeToBidiValue(null), - }, this.id); - } - this.#deleteAllChildren(); - this.#eventManager.clearBufferedEvents(this.id); - this.#browsingContextStorage.deleteContextById(this.id); - } - get id() { - return this.#id; - } - get parentId() { - return this.#parentId; - } - set parentId(parentId) { - if (this.#parentId !== null) { - this.#logger?.(LogType.debugError, 'Parent context already set'); - return; - } - this.#parentId = parentId; - if (!this.isTopLevelContext()) { - this.parent.addChild(this.id); - } - } - get parent() { - if (this.parentId === null) { - return null; - } - return this.#browsingContextStorage.getContext(this.parentId); - } - get directChildren() { - return [...this.#children].map((id) => this.#browsingContextStorage.getContext(id)); - } - get allChildren() { - const children = this.directChildren; - return children.concat(...children.map((child) => child.allChildren)); - } - isTopLevelContext() { - return this.#parentId === null; - } - get top() { - let topContext = this; - let parent = topContext.parent; - while (parent) { - topContext = parent; - parent = topContext.parent; - } - return topContext; - } - addChild(childId) { - this.#children.add(childId); - } - #deleteAllChildren(emitContextDestroyed = false) { - this.directChildren.map((child) => child.dispose(emitContextDestroyed)); - } - get cdpTarget() { - return this.#cdpTarget; - } - updateCdpTarget(cdpTarget) { - this.#cdpTarget = cdpTarget; - this.#initListeners(); - } - get url() { - return this.#navigationTracker.url; - } - async lifecycleLoaded() { - await this.#lifecycle.load; - } - async targetUnblockedOrThrow() { - const result = await this.#cdpTarget.unblocked; - if (result.kind === 'error') { - throw result.error; - } - } - async getOrCreateHiddenSandbox() { - return await this.#getOrCreateSandboxInternal(this.#hiddenSandbox); - } - async getOrCreateUserSandbox(sandbox) { - const realm = await this.#getOrCreateSandboxInternal(sandbox); - if (realm.isHidden()) { - throw new NoSuchFrameException(`Realm "${sandbox}" not found`); - } - return realm; - } - async #getOrCreateSandboxInternal(sandbox) { - if (sandbox === undefined || sandbox === '') { - return await this.#defaultRealmDeferred; - } - let maybeSandboxes = this.#realmStorage.findRealms({ - browsingContextId: this.id, - sandbox, - }); - if (maybeSandboxes.length === 0) { - await this.#cdpTarget.cdpClient.sendCommand('Page.createIsolatedWorld', { - frameId: this.id, - worldName: sandbox, - }); - maybeSandboxes = this.#realmStorage.findRealms({ - browsingContextId: this.id, - sandbox, - }); - assert(maybeSandboxes.length !== 0); - } - return maybeSandboxes[0]; - } - serializeToBidiValue(maxDepth = 0, addParentField = true) { - return { - context: this.#id, - url: this.url, - userContext: this.userContext, - originalOpener: this.#originalOpener ?? null, - clientWindow: `${this.cdpTarget.windowId}`, - children: maxDepth === null || maxDepth > 0 - ? this.directChildren.map((c) => c.serializeToBidiValue(maxDepth === null ? maxDepth : maxDepth - 1, false)) - : null, - ...(addParentField ? { parent: this.#parentId } : {}), - }; - } - onTargetInfoChanged(params) { - this.#navigationTracker.onTargetInfoChanged(params.targetInfo.url); - } - #initListeners() { - this.#cdpTarget.cdpClient.on('Network.loadingFailed', (params) => { - this.#navigationTracker.networkLoadingFailed(params.requestId, params.errorText); - }); - this.#cdpTarget.cdpClient.on('Page.fileChooserOpened', (params) => { - if (this.id !== params.frameId) { - return; - } - if (this.#loaderId === undefined) { - this.#logger?.(LogType.debugError, 'LoaderId should be defined when file upload is shown', params); - return; - } - const element = params.backendNodeId === undefined - ? undefined - : { - sharedId: getSharedId(this.id, this.#loaderId, params.backendNodeId), - }; - this.#eventManager.registerEvent({ - type: 'event', - method: Input$2.EventNames.FileDialogOpened, - params: { - context: this.id, - multiple: params.mode === 'selectMultiple', - element, - }, - }, this.id); - }); - this.#cdpTarget.cdpClient.on('Page.frameNavigated', (params) => { - if (this.id !== params.frame.id) { - return; - } - this.#navigationTracker.frameNavigated(params.frame.url + (params.frame.urlFragment ?? ''), params.frame.loaderId, - params.frame.unreachableUrl); - this.#deleteAllChildren(); - this.#documentChanged(params.frame.loaderId); - }); - this.#cdpTarget.cdpClient.on('Page.frameStartedNavigating', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#navigationTracker.frameStartedNavigating(params.url, params.loaderId, params.navigationType); - }); - this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#navigationTracker.navigatedWithinDocument(params.url, params.navigationType); - if (params.navigationType === 'historyApi') { - this.#eventManager.registerEvent({ - type: 'event', - method: 'browsingContext.historyUpdated', - params: { - context: this.id, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - return; - } - }); - this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => { - if (this.id !== params.frameId) { - return; - } - if (params.name === 'init') { - this.#documentChanged(params.loaderId); - return; - } - if (params.name === 'commit') { - this.#loaderId = params.loaderId; - return; - } - if (!this.#loaderId) { - this.#loaderId = params.loaderId; - } - if (params.loaderId !== this.#loaderId) { - return; - } - switch (params.name) { - case 'DOMContentLoaded': - if (!this.#navigationTracker.isInitialNavigation) { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.DomContentLoaded, - params: { - context: this.id, - navigation: this.#navigationTracker.currentNavigationId, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - } - this.#lifecycle.DOMContentLoaded.resolve(); - break; - case 'load': - if (!this.#navigationTracker.isInitialNavigation) { - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.Load, - params: { - context: this.id, - navigation: this.#navigationTracker.currentNavigationId, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - } - this.#navigationTracker.loadPageEvent(params.loaderId); - this.#lifecycle.load.resolve(); - break; - } - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => { - const { auxData, name, uniqueId, id } = params.context; - if (!auxData || auxData.frameId !== this.id) { - return; - } - if (auxData.type === 'isolated' && name === '') { - return; - } - let origin; - let sandbox; - switch (auxData.type) { - case 'isolated': - sandbox = name; - if (!this.#defaultRealmDeferred.isFinished) { - this.#logger?.(LogType.debugError, 'Unexpectedly, isolated realm created before the default one'); - } - origin = this.#defaultRealmDeferred.isFinished - ? this.#defaultRealmDeferred.result.origin - : - ''; - break; - case 'default': - origin = serializeOrigin(params.context.origin); - break; - default: - return; - } - const realm = new WindowRealm(this.id, this.#browsingContextStorage, this.#cdpTarget.cdpClient, this.#eventManager, id, this.#logger, origin, uniqueId, this.#realmStorage, sandbox); - if (auxData.isDefault) { - this.#defaultRealmDeferred.resolve(realm); - void Promise.all(this.#cdpTarget - .getChannels() - .map((channel) => channel.startListenerFromWindow(realm, this.#eventManager))); - } - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextDestroyed', (params) => { - if (this.#defaultRealmDeferred.isFinished && - this.#defaultRealmDeferred.result.executionContextId === - params.executionContextId) { - this.#defaultRealmDeferred = new Deferred(); - } - this.#realmStorage.deleteRealms({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.executionContextId, - }); - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextsCleared', () => { - if (!this.#defaultRealmDeferred.isFinished) { - this.#defaultRealmDeferred.reject(new UnknownErrorException('execution contexts cleared')); - } - this.#defaultRealmDeferred = new Deferred(); - this.#realmStorage.deleteRealms({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - }); - }); - this.#cdpTarget.cdpClient.on('Page.javascriptDialogClosed', (params) => { - if (params.frameId && this.id !== params.frameId) { - return; - } - if (!params.frameId && - this.#parentId && - this.#cdpTarget.cdpClient !== - this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget - .cdpClient) { - return; - } - const accepted = params.result; - if (this.#lastUserPromptType === undefined) { - this.#logger?.(LogType.debugError, 'Unexpectedly no opening prompt event before closing one'); - } - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.UserPromptClosed, - params: { - context: this.id, - accepted, - type: this.#lastUserPromptType ?? - 'UNKNOWN', - userText: accepted && params.userInput ? params.userInput : undefined, - }, - }, this.id); - this.#lastUserPromptType = undefined; - }); - this.#cdpTarget.cdpClient.on('Page.javascriptDialogOpening', (params) => { - if (params.frameId && this.id !== params.frameId) { - return; - } - if (!params.frameId && - this.#parentId && - this.#cdpTarget.cdpClient !== - this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget - .cdpClient) { - return; - } - const promptType = _a$5.#getPromptType(params.type); - this.#lastUserPromptType = promptType; - const promptHandler = this.#getPromptHandler(promptType); - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.UserPromptOpened, - params: { - context: this.id, - handler: promptHandler, - type: promptType, - message: params.message, - ...(params.type === 'prompt' - ? { defaultValue: params.defaultPrompt } - : {}), - }, - }, this.id); - switch (promptHandler) { - case "accept" : - void this.handleUserPrompt(true); - break; - case "dismiss" : - void this.handleUserPrompt(false); - break; - } - }); - this.#cdpTarget.browserCdpClient.on('Browser.downloadWillBegin', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#downloadIdToUrlMap.set(params.guid, params.url); - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.DownloadWillBegin, - params: { - context: this.id, - suggestedFilename: params.suggestedFilename, - navigation: params.guid, - timestamp: getTimestamp(), - url: params.url, - }, - }, this.id); - }); - this.#cdpTarget.browserCdpClient.on('Browser.downloadProgress', (params) => { - if (!this.#downloadIdToUrlMap.has(params.guid)) { - return; - } - if (params.state === 'inProgress') { - return; - } - const url = this.#downloadIdToUrlMap.get(params.guid); - switch (params.state) { - case 'canceled': - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.DownloadEnd, - params: { - status: 'canceled', - context: this.id, - navigation: params.guid, - timestamp: getTimestamp(), - url, - }, - }, this.id); - break; - case 'completed': - this.#eventManager.registerEvent({ - type: 'event', - method: BrowsingContext$2.EventNames.DownloadEnd, - params: { - filepath: params.filePath ?? null, - status: 'complete', - context: this.id, - navigation: params.guid, - timestamp: getTimestamp(), - url, - }, - }, this.id); - break; - default: - throw new UnknownErrorException(`Unknown download state: ${params.state}`); - } - }); - } - static #getPromptType(cdpType) { - switch (cdpType) { - case 'alert': - return "alert" ; - case 'beforeunload': - return "beforeunload" ; - case 'confirm': - return "confirm" ; - case 'prompt': - return "prompt" ; - } - } - #getPromptHandler(promptType) { - const defaultPromptHandler = "dismiss" ; - const contextConfig = this.#configStorage.getActiveConfig(this.top.id, this.userContext); - switch (promptType) { - case "alert" : - return (contextConfig.userPromptHandler?.alert ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - case "beforeunload" : - return (contextConfig.userPromptHandler?.beforeUnload ?? - contextConfig.userPromptHandler?.default ?? - "accept" ); - case "confirm" : - return (contextConfig.userPromptHandler?.confirm ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - case "prompt" : - return (contextConfig.userPromptHandler?.prompt ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - } - } - #documentChanged(loaderId) { - if (loaderId === undefined || this.#loaderId === loaderId) { - return; - } - this.#resetLifecycleIfFinished(); - this.#loaderId = loaderId; - this.#deleteAllChildren(true); - } - #resetLifecycleIfFinished() { - if (this.#lifecycle.DOMContentLoaded.isFinished) { - this.#lifecycle.DOMContentLoaded = new Deferred(); - } - else { - this.#logger?.(_a$5.LOGGER_PREFIX, 'Document changed (DOMContentLoaded)'); - } - if (this.#lifecycle.load.isFinished) { - this.#lifecycle.load = new Deferred(); - } - else { - this.#logger?.(_a$5.LOGGER_PREFIX, 'Document changed (load)'); - } - } - #failLifecycleIfNotFinished() { - if (!this.#lifecycle.DOMContentLoaded.isFinished) { - this.#lifecycle.DOMContentLoaded.reject(new UnknownErrorException('navigation canceled')); - } - if (!this.#lifecycle.load.isFinished) { - this.#lifecycle.load.reject(new UnknownErrorException('navigation canceled')); - } - } - async navigate(url, wait) { - try { - new URL(url); - } - catch { - throw new InvalidArgumentException(`Invalid URL: ${url}`); - } - const navigationState = this.#navigationTracker.createPendingNavigation(url); - const cdpNavigatePromise = (async () => { - const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', { - url, - frameId: this.id, - }); - if (cdpNavigateResult.errorText) { - this.#navigationTracker.failNavigation(navigationState, cdpNavigateResult.errorText); - throw new UnknownErrorException(cdpNavigateResult.errorText); - } - this.#navigationTracker.navigationCommandFinished(navigationState, cdpNavigateResult.loaderId); - this.#documentChanged(cdpNavigateResult.loaderId); - })(); - const result = await Promise.race([ - this.#waitNavigation(wait, cdpNavigatePromise, navigationState), - navigationState.finished, - ]); - if (result instanceof NavigationResult) { - if ( - result.eventName === "browsingContext.navigationAborted" || - result.eventName === "browsingContext.navigationFailed" ) { - throw new UnknownErrorException(result.message ?? 'unknown exception'); - } - } - return { - navigation: navigationState.navigationId, - url: navigationState.url, - }; - } - async #waitNavigation(wait, cdpCommandPromise, navigationState) { - await Promise.all([navigationState.committed, cdpCommandPromise]); - if (wait === "none" ) { - return; - } - if (navigationState.isFragmentNavigation === true) { - await navigationState.finished; - return; - } - if (wait === "interactive" ) { - await this.#lifecycle.DOMContentLoaded; - return; - } - if (wait === "complete" ) { - await this.#lifecycle.load; - return; - } - throw new InvalidArgumentException(`Wait condition ${wait} is not supported`); - } - async reload(ignoreCache, wait) { - await this.targetUnblockedOrThrow(); - this.#resetLifecycleIfFinished(); - const navigationState = this.#navigationTracker.createPendingNavigation(this.#navigationTracker.url); - const cdpReloadPromise = this.#cdpTarget.cdpClient.sendCommand('Page.reload', { - ignoreCache, - }); - const result = await Promise.race([ - this.#waitNavigation(wait, cdpReloadPromise, navigationState), - navigationState.finished, - ]); - if (result instanceof NavigationResult) { - if (result.eventName === "browsingContext.navigationAborted" || - result.eventName === "browsingContext.navigationFailed" ) { - throw new UnknownErrorException(result.message ?? 'unknown exception'); - } - } - return { - navigation: navigationState.navigationId, - url: navigationState.url, - }; - } - async setViewport(viewport, devicePixelRatio, screenOrientation) { - const config = this.#configStorage.getActiveConfig(this.id, this.userContext); - await this.cdpTarget.setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, config.screenArea ?? null, config.scrollbarType ?? null); - } - async handleUserPrompt(accept, userText) { - await this.top.#cdpTarget.cdpClient.sendCommand('Page.handleJavaScriptDialog', { - accept: accept ?? true, - promptText: userText, - }); - } - async activate() { - await this.#cdpTarget.cdpClient.sendCommand('Page.bringToFront'); - } - async captureScreenshot(params) { - if (!this.isTopLevelContext()) { - throw new UnsupportedOperationException(`Non-top-level 'context' (${params.context}) is currently not supported`); - } - const formatParameters = getImageFormatParameters(params); - let captureBeyondViewport = false; - let script; - params.origin ??= 'viewport'; - switch (params.origin) { - case 'document': { - script = String(() => { - const element = document.documentElement; - return { - x: 0, - y: 0, - width: element.scrollWidth, - height: element.scrollHeight, - }; - }); - captureBeyondViewport = true; - break; - } - case 'viewport': { - script = String(() => { - const viewport = window.visualViewport; - return { - x: viewport.pageLeft, - y: viewport.pageTop, - width: viewport.width, - height: viewport.height, - }; - }); - break; - } - } - const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox(); - const originResult = await hiddenSandboxRealm.callFunction(script, false); - assert(originResult.type === 'success'); - const origin = deserializeDOMRect(originResult.result); - assert(origin); - let rect = origin; - if (params.clip) { - const clip = params.clip; - if (params.origin === 'viewport' && clip.type === 'box') { - clip.x += origin.x; - clip.y += origin.y; - } - rect = getIntersectionRect(await this.#parseRect(clip), origin); - } - if (rect.width === 0 || rect.height === 0) { - throw new UnableToCaptureScreenException(`Unable to capture screenshot with zero dimensions: width=${rect.width}, height=${rect.height}`); - } - return await this.#cdpTarget.cdpClient.sendCommand('Page.captureScreenshot', { - clip: { ...rect, scale: 1.0 }, - ...formatParameters, - captureBeyondViewport, - }); - } - async print(params) { - if (!this.isTopLevelContext()) { - throw new UnsupportedOperationException('Printing of non-top level contexts is not supported'); - } - const cdpParams = {}; - if (params.background !== undefined) { - cdpParams.printBackground = params.background; - } - if (params.margin?.bottom !== undefined) { - cdpParams.marginBottom = inchesFromCm(params.margin.bottom); - } - if (params.margin?.left !== undefined) { - cdpParams.marginLeft = inchesFromCm(params.margin.left); - } - if (params.margin?.right !== undefined) { - cdpParams.marginRight = inchesFromCm(params.margin.right); - } - if (params.margin?.top !== undefined) { - cdpParams.marginTop = inchesFromCm(params.margin.top); - } - if (params.orientation !== undefined) { - cdpParams.landscape = params.orientation === 'landscape'; - } - if (params.page?.height !== undefined) { - cdpParams.paperHeight = inchesFromCm(params.page.height); - } - if (params.page?.width !== undefined) { - cdpParams.paperWidth = inchesFromCm(params.page.width); - } - if (params.pageRanges !== undefined) { - for (const range of params.pageRanges) { - if (typeof range === 'number') { - continue; - } - const rangeParts = range.split('-'); - if (rangeParts.length < 1 || rangeParts.length > 2) { - throw new InvalidArgumentException(`Invalid page range: ${range} is not a valid integer range.`); - } - if (rangeParts.length === 1) { - void parseInteger(rangeParts[0] ?? ''); - continue; - } - let lowerBound; - let upperBound; - const [rangeLowerPart = '', rangeUpperPart = ''] = rangeParts; - if (rangeLowerPart === '') { - lowerBound = 1; - } - else { - lowerBound = parseInteger(rangeLowerPart); - } - if (rangeUpperPart === '') { - upperBound = Number.MAX_SAFE_INTEGER; - } - else { - upperBound = parseInteger(rangeUpperPart); - } - if (lowerBound > upperBound) { - throw new InvalidArgumentException(`Invalid page range: ${rangeLowerPart} > ${rangeUpperPart}`); - } - } - cdpParams.pageRanges = params.pageRanges.join(','); - } - if (params.scale !== undefined) { - cdpParams.scale = params.scale; - } - if (params.shrinkToFit !== undefined) { - cdpParams.preferCSSPageSize = !params.shrinkToFit; - } - try { - const result = await this.#cdpTarget.cdpClient.sendCommand('Page.printToPDF', cdpParams); - return { - data: result.data, - }; - } - catch (error) { - if (error.message === - 'invalid print parameters: content area is empty') { - throw new UnsupportedOperationException(error.message); - } - throw error; - } - } - async #parseRect(clip) { - switch (clip.type) { - case 'box': - return { x: clip.x, y: clip.y, width: clip.width, height: clip.height }; - case 'element': { - const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(String((element) => { - return element instanceof Element; - }), false, { type: 'undefined' }, [clip.element]); - if (result.type === 'exception') { - throw new NoSuchElementException(`Element '${clip.element.sharedId}' was not found`); - } - assert(result.result.type === 'boolean'); - if (!result.result.value) { - throw new NoSuchElementException(`Node '${clip.element.sharedId}' is not an Element`); - } - { - const result = await hiddenSandboxRealm.callFunction(String((element) => { - const rect = element.getBoundingClientRect(); - return { - x: rect.x, - y: rect.y, - height: rect.height, - width: rect.width, - }; - }), false, { type: 'undefined' }, [clip.element]); - assert(result.type === 'success'); - const rect = deserializeDOMRect(result.result); - if (!rect) { - throw new UnableToCaptureScreenException(`Could not get bounding box for Element '${clip.element.sharedId}'`); - } - return rect; - } - } - } - } - async close() { - await this.#cdpTarget.cdpClient.sendCommand('Page.close'); - } - async traverseHistory(delta) { - if (delta === 0) { - return; - } - const history = await this.#cdpTarget.cdpClient.sendCommand('Page.getNavigationHistory'); - const entry = history.entries[history.currentIndex + delta]; - if (!entry) { - throw new NoSuchHistoryEntryException(`No history entry at delta ${delta}`); - } - await this.#cdpTarget.cdpClient.sendCommand('Page.navigateToHistoryEntry', { - entryId: entry.id, - }); - } - async toggleModulesIfNeeded() { - await Promise.all([ - this.#cdpTarget.toggleNetworkIfNeeded(), - this.#cdpTarget.toggleDeviceAccessIfNeeded(), - this.#cdpTarget.togglePreloadIfNeeded(), - ]); - } - async locateNodes(params) { - return await this.#locateNodesByLocator(await this.#defaultRealmDeferred, params.locator, params.startNodes ?? [], params.maxNodeCount, params.serializationOptions); - } - #getLocatorDelegate(locator, maxNodeCount, startNodes) { - switch (locator.type) { - case 'context': - case 'accessibility': - throw new Error('Unreachable'); - case 'css': - return { - functionDeclaration: String((cssSelector, maxNodeCount, ...startNodes) => { - const locateNodesUsingCss = (element) => { - if (!(element instanceof HTMLElement || - element instanceof Document || - element instanceof DocumentFragment || - element instanceof SVGElement)) { - throw new Error('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment'); - } - return [...element.querySelectorAll(cssSelector)]; - }; - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - locateNodesUsingCss(startNode)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - { type: 'string', value: locator.value }, - { type: 'number', value: maxNodeCount ?? 0 }, - ...startNodes, - ], - }; - case 'xpath': - return { - functionDeclaration: String((xPathSelector, maxNodeCount, ...startNodes) => { - const evaluator = new XPathEvaluator(); - const expression = evaluator.createExpression(xPathSelector); - const locateNodesUsingXpath = (element) => { - const xPathResult = expression.evaluate(element, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE); - const returnedNodes = []; - for (let i = 0; i < xPathResult.snapshotLength; i++) { - returnedNodes.push(xPathResult.snapshotItem(i)); - } - return returnedNodes; - }; - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - locateNodesUsingXpath(startNode)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - { type: 'string', value: locator.value }, - { type: 'number', value: maxNodeCount ?? 0 }, - ...startNodes, - ], - }; - case 'innerText': - if (locator.value === '') { - throw new InvalidSelectorException('innerText locator cannot be empty'); - } - return { - functionDeclaration: String((innerTextSelector, fullMatch, ignoreCase, maxNodeCount, maxDepth, ...startNodes) => { - const searchText = ignoreCase - ? innerTextSelector.toUpperCase() - : innerTextSelector; - const locateNodesUsingInnerText = (node, currentMaxDepth) => { - const returnedNodes = []; - if (node instanceof DocumentFragment || - node instanceof Document) { - const children = [...node.children]; - children.forEach((child) => - returnedNodes.push(...locateNodesUsingInnerText(child, currentMaxDepth))); - return returnedNodes; - } - if (!(node instanceof HTMLElement)) { - return []; - } - const element = node; - const nodeInnerText = ignoreCase - ? element.innerText?.toUpperCase() - : element.innerText; - if (!nodeInnerText.includes(searchText)) { - return []; - } - const childNodes = []; - for (const child of element.children) { - if (child instanceof HTMLElement) { - childNodes.push(child); - } - } - if (childNodes.length === 0) { - if (fullMatch && nodeInnerText === searchText) { - returnedNodes.push(element); - } - else { - if (!fullMatch) { - returnedNodes.push(element); - } - } - } - else { - const childNodeMatches = - currentMaxDepth <= 0 - ? [] - : childNodes - .map((child) => locateNodesUsingInnerText(child, currentMaxDepth - 1)) - .flat(1); - if (childNodeMatches.length === 0) { - if (!fullMatch || nodeInnerText === searchText) { - returnedNodes.push(element); - } - } - else { - returnedNodes.push(...childNodeMatches); - } - } - return returnedNodes; - }; - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - locateNodesUsingInnerText(startNode, maxDepth)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - { type: 'string', value: locator.value }, - { type: 'boolean', value: locator.matchType !== 'partial' }, - { type: 'boolean', value: locator.ignoreCase === true }, - { type: 'number', value: maxNodeCount ?? 0 }, - { type: 'number', value: locator.maxDepth ?? 1000 }, - ...startNodes, - ], - }; - } - } - async #locateNodesByLocator(realm, locator, startNodes, maxNodeCount, serializationOptions) { - if (locator.type === 'context') { - return await this.#locateNodesByContextLocator(locator, startNodes, realm, serializationOptions); - } - if (locator.type === 'accessibility') { - return await this.#locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm); - } - const locatorDelegate = this.#getLocatorDelegate(locator, maxNodeCount, startNodes); - serializationOptions = { - ...serializationOptions, - maxObjectDepth: 1, - }; - const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, false, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, "none" , serializationOptions); - if (locatorResult.type !== 'success') { - this.#logger?.(_a$5.LOGGER_PREFIX, 'Failed locateNodesByLocator', locatorResult); - if ( - locatorResult.exceptionDetails.text?.endsWith('is not a valid selector.') || - locatorResult.exceptionDetails.text?.endsWith('is not a valid XPath expression.')) { - throw new InvalidSelectorException(`Not valid selector ${typeof locator.value === 'string' ? locator.value : JSON.stringify(locator.value)}`); - } - if (locatorResult.exceptionDetails.text === - 'Error: startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment') { - throw new InvalidArgumentException('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment'); - } - throw new UnknownErrorException(`Unexpected error in selector script: ${locatorResult.exceptionDetails.text}`); - } - if (locatorResult.result.type !== 'array') { - throw new UnknownErrorException(`Unexpected selector script result type: ${locatorResult.result.type}`); - } - const nodes = locatorResult.result.value.map((value) => { - if (value.type !== 'node') { - throw new UnknownErrorException(`Unexpected selector script result element: ${value.type}`); - } - return value; - }); - return { nodes }; - } - async #locateNodesByContextLocator(locator, startNodes, realm, serializationOptions) { - if (startNodes.length !== 0) { - throw new InvalidArgumentException('Start nodes are not supported'); - } - const contextId = locator.value.context; - if (!contextId) { - throw new InvalidSelectorException('Invalid context'); - } - const context = this.#browsingContextStorage.getContext(contextId); - const parent = context.parent; - if (!parent) { - throw new InvalidArgumentException('This context has no container'); - } - try { - const { backendNodeId } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { - frameId: contextId, - }); - const { object } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - }); - const locatorResult = await realm.callFunction(`function () { return this; }`, false, { handle: object.objectId }, [], "none" , serializationOptions); - if (locatorResult.type === 'exception') { - throw new Error('Unknown exception'); - } - return { nodes: [locatorResult.result] }; - } - catch { - throw new InvalidArgumentException('Context does not exist'); - } - } - async #locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm) { - if (!locator.value.name && !locator.value.role) { - throw new InvalidSelectorException('Either name or role has to be specified'); - } - await this.#cdpTarget.cdpClient.sendCommand('Accessibility.enable'); - const startBackendNodeIds = []; - if (startNodes.length === 0) { - const { root: documentRoot } = await this.#cdpTarget.cdpClient.sendCommand('DOM.getDocument'); - startBackendNodeIds.push(documentRoot.backendNodeId); - } - else { - for (const node of startNodes) { - if (node.sharedId) { - const parsed = parseSharedId(node.sharedId); - if (!parsed) { - throw new NoSuchNodeException(`Invalid sharedId: ${node.sharedId}`); - } - startBackendNodeIds.push(parsed.backendNodeId); - } - else { - if (node.handle) { - const { nodeId } = await this.#cdpTarget.cdpClient.sendCommand('DOM.requestNode', { - objectId: node.handle, - }); - const { node: describedNode } = await this.#cdpTarget.cdpClient.sendCommand('DOM.describeNode', { - nodeId, - }); - startBackendNodeIds.push(describedNode.backendNodeId); - } - else { - throw new NoSuchNodeException('Start node must have sharedId or handle'); - } - } - } - } - const matchedBackendNodeIds = new Set(); - for (const backendNodeId of startBackendNodeIds) { - const { nodes } = await this.#cdpTarget.cdpClient.sendCommand('Accessibility.queryAXTree', { - backendNodeId, - accessibleName: locator.value.name, - role: locator.value.role, - }); - for (const node of nodes) { - if (node.backendDOMNodeId && node.role?.type === 'role') { - matchedBackendNodeIds.add(node.backendDOMNodeId); - if (maxNodeCount !== undefined && - maxNodeCount > 0 && - matchedBackendNodeIds.size >= maxNodeCount) { - break; - } - } - } - } - const resultNodes = await Promise.all(Array.from(matchedBackendNodeIds).map(async (backendNodeId) => { - const { object } = await this.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - }); - return await realm.serializeCdpObject(object, "none" ); - })); - return { - nodes: resultNodes.filter((result) => result.type === 'node'), - }; - } - #getAllRelatedCdpTargets() { - const targets = new Set(); - targets.add(this.cdpTarget); - this.allChildren.forEach((c) => targets.add(c.cdpTarget)); - return Array.from(targets); - } - async setTimezoneOverride(timezone) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTimezoneOverride(timezone))); - } - async setLocaleOverride(locale) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setLocaleOverride(locale))); - } - async setGeolocationOverride(geolocation) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setGeolocationOverride(geolocation))); - } - async setScriptingEnabled(scriptingEnabled) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setScriptingEnabled(scriptingEnabled))); - } - async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints))); - } - async setEmulatedNetworkConditions(networkConditions) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setEmulatedNetworkConditions(networkConditions))); - } - async setTouchOverride(maxTouchPoints) { - await Promise.allSettled(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTouchOverride(maxTouchPoints))); - } - async setExtraHeaders(cdpExtraHeaders) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setExtraHeaders(cdpExtraHeaders))); - } - async setScrollbarTypeOverride(scrollbarType) { - const config = this.#configStorage.getActiveConfig(this.id, this.userContext); - await this.cdpTarget.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, scrollbarType); - } - } - _a$5 = BrowsingContextImpl; - function serializeOrigin(origin) { - if (['://', ''].includes(origin)) { - origin = 'null'; - } - return origin; - } - function getImageFormatParameters(params) { - const { quality, type } = params.format ?? { - type: 'image/png', - }; - switch (type) { - case 'image/png': { - return { format: 'png' }; - } - case 'image/jpeg': { - return { - format: 'jpeg', - ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }), - }; - } - case 'image/webp': { - return { - format: 'webp', - ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }), - }; - } - } - throw new InvalidArgumentException(`Image format '${type}' is not a supported format`); - } - function deserializeDOMRect(result) { - if (result.type !== 'object' || result.value === undefined) { - return; - } - const x = result.value.find(([key]) => { - return key === 'x'; - })?.[1]; - const y = result.value.find(([key]) => { - return key === 'y'; - })?.[1]; - const height = result.value.find(([key]) => { - return key === 'height'; - })?.[1]; - const width = result.value.find(([key]) => { - return key === 'width'; - })?.[1]; - if (x?.type !== 'number' || - y?.type !== 'number' || - height?.type !== 'number' || - width?.type !== 'number') { - return; - } - return { - x: x.value, - y: y.value, - width: width.value, - height: height.value, - }; - } - function normalizeRect(box) { - return { - ...(box.width < 0 - ? { - x: box.x + box.width, - width: -box.width, - } - : { - x: box.x, - width: box.width, - }), - ...(box.height < 0 - ? { - y: box.y + box.height, - height: -box.height, - } - : { - y: box.y, - height: box.height, - }), - }; - } - function getIntersectionRect(first, second) { - first = normalizeRect(first); - second = normalizeRect(second); - const x = Math.max(first.x, second.x); - const y = Math.max(first.y, second.y); - return { - x, - y, - width: Math.max(Math.min(first.x + first.width, second.x + second.width) - x, 0), - height: Math.max(Math.min(first.y + first.height, second.y + second.height) - y, 0), - }; - } - function parseInteger(value) { - value = value.trim(); - if (!/^[0-9]+$/.test(value)) { - throw new InvalidArgumentException(`Invalid integer: ${value}`); - } - return parseInt(value); - } - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class WorkerRealm extends Realm { - #realmType; - #ownerRealms; - constructor(cdpClient, eventManager, executionContextId, logger, origin, ownerRealms, realmId, realmStorage, realmType) { - super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage); - this.#ownerRealms = ownerRealms; - this.#realmType = realmType; - this.initialize(); - } - get associatedBrowsingContexts() { - return this.#ownerRealms.flatMap((realm) => realm.associatedBrowsingContexts); - } - get realmType() { - return this.#realmType; - } - get source() { - return { - realm: this.realmId, - context: this.associatedBrowsingContexts[0]?.id, - }; - } - get realmInfo() { - const owners = this.#ownerRealms.map((realm) => realm.realmId); - const { realmType } = this; - switch (realmType) { - case 'dedicated-worker': { - const owner = owners[0]; - if (owner === undefined || owners.length !== 1) { - throw new Error('Dedicated worker must have exactly one owner'); - } - return { - ...this.baseInfo, - type: realmType, - owners: [owner], - }; - } - case 'service-worker': - case 'shared-worker': { - return { - ...this.baseInfo, - type: realmType, - }; - } - } - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const specifiers = ['%s', '%d', '%i', '%f', '%o', '%O', '%c']; - function isFormatSpecifier(str) { - return specifiers.some((spec) => str.includes(spec)); - } - function logMessageFormatter(args) { - let output = ''; - const argFormat = args[0].value.toString(); - const argValues = args.slice(1, undefined); - const tokens = argFormat.split(new RegExp(specifiers.map((spec) => `(${spec})`).join('|'), 'g')); - for (const token of tokens) { - if (token === undefined || token === '') { - continue; - } - if (isFormatSpecifier(token)) { - const arg = argValues.shift(); - assert(arg, `Less value is provided: "${getRemoteValuesText(args, false)}"`); - if (token === '%s') { - output += stringFromArg(arg); - } - else if (token === '%d' || token === '%i') { - if (arg.type === 'bigint' || - arg.type === 'number' || - arg.type === 'string') { - output += parseInt(arg.value.toString(), 10); - } - else { - output += 'NaN'; - } - } - else if (token === '%f') { - if (arg.type === 'bigint' || - arg.type === 'number' || - arg.type === 'string') { - output += parseFloat(arg.value.toString()); - } - else { - output += 'NaN'; - } - } - else { - output += toJson(arg); - } - } - else { - output += token; - } - } - if (argValues.length > 0) { - throw new Error(`More value is provided: "${getRemoteValuesText(args, false)}"`); - } - return output; - } - function toJson(arg) { - if (arg.type !== 'array' && - arg.type !== 'bigint' && - arg.type !== 'date' && - arg.type !== 'number' && - arg.type !== 'object' && - arg.type !== 'string') { - return stringFromArg(arg); - } - if (arg.type === 'bigint') { - return `${arg.value.toString()}n`; - } - if (arg.type === 'number') { - return arg.value.toString(); - } - if (['date', 'string'].includes(arg.type)) { - return JSON.stringify(arg.value); - } - if (arg.type === 'object') { - return `{${arg.value - .map((pair) => { - return `${JSON.stringify(pair[0])}:${toJson(pair[1])}`; - }) - .join(',')}}`; - } - if (arg.type === 'array') { - return `[${arg.value?.map((val) => toJson(val)).join(',') ?? ''}]`; - } - throw Error(`Invalid value type: ${arg}`); - } - function stringFromArg(arg) { - if (!Object.hasOwn(arg, 'value')) { - return arg.type; - } - switch (arg.type) { - case 'string': - case 'number': - case 'boolean': - case 'bigint': - return String(arg.value); - case 'regexp': - return `/${arg.value.pattern}/${arg.value.flags ?? ''}`; - case 'date': - return new Date(arg.value).toString(); - case 'object': - return `Object(${arg.value?.length ?? ''})`; - case 'array': - return `Array(${arg.value?.length ?? ''})`; - case 'map': - return `Map(${arg.value?.length})`; - case 'set': - return `Set(${arg.value?.length})`; - default: - return arg.type; - } - } - function getRemoteValuesText(args, formatText) { - const arg = args[0]; - if (!arg) { - return ''; - } - if (arg.type === 'string' && - isFormatSpecifier(arg.value.toString()) && - formatText) { - return logMessageFormatter(args); - } - return args - .map((arg) => { - return stringFromArg(arg); - }) - .join('\u0020'); - } - - var _a$4; - function getBidiStackTrace(cdpStackTrace) { - const stackFrames = cdpStackTrace?.callFrames.map((callFrame) => { - return { - columnNumber: callFrame.columnNumber, - functionName: callFrame.functionName, - lineNumber: callFrame.lineNumber, - url: callFrame.url, - }; - }); - return stackFrames ? { callFrames: stackFrames } : undefined; - } - function getLogLevel(consoleApiType) { - if (["error" , 'assert'].includes(consoleApiType)) { - return "error" ; - } - if (["debug" , 'trace'].includes(consoleApiType)) { - return "debug" ; - } - if (["warn" , 'warning'].includes(consoleApiType)) { - return "warn" ; - } - return "info" ; - } - function getLogMethod(consoleApiType) { - switch (consoleApiType) { - case 'warning': - return 'warn'; - case 'startGroup': - return 'group'; - case 'startGroupCollapsed': - return 'groupCollapsed'; - case 'endGroup': - return 'groupEnd'; - } - return consoleApiType; - } - class LogManager { - #eventManager; - #realmStorage; - #cdpTarget; - #logger; - constructor(cdpTarget, realmStorage, eventManager, logger) { - this.#cdpTarget = cdpTarget; - this.#realmStorage = realmStorage; - this.#eventManager = eventManager; - this.#logger = logger; - } - static create(cdpTarget, realmStorage, eventManager, logger) { - const logManager = new _a$4(cdpTarget, realmStorage, eventManager, logger); - logManager.#initializeEntryAddedEventListener(); - return logManager; - } - async #heuristicSerializeArg(arg, realm) { - switch (arg.type) { - case 'undefined': - return { type: 'undefined' }; - case 'boolean': - return { type: 'boolean', value: arg.value }; - case 'string': - return { type: 'string', value: arg.value }; - case 'number': - return { type: 'number', value: arg.unserializableValue ?? arg.value }; - case 'bigint': - if (arg.unserializableValue !== undefined && - arg.unserializableValue[arg.unserializableValue.length - 1] === 'n') { - return { - type: arg.type, - value: arg.unserializableValue.slice(0, -1), - }; - } - break; - case 'object': - if (arg.subtype === 'null') { - return { type: 'null' }; - } - break; - } - return await realm.serializeCdpObject(arg, "none" ); - } - #initializeEntryAddedEventListener() { - this.#cdpTarget.cdpClient.on('Runtime.consoleAPICalled', (params) => { - const realm = this.#realmStorage.findRealm({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.executionContextId, - }); - if (realm === undefined) { - this.#logger?.(LogType.cdp, params); - return; - } - const argsPromise = Promise.all(params.args.map((arg) => this.#heuristicSerializeArg(arg, realm))); - for (const browsingContext of realm.associatedBrowsingContexts) { - this.#eventManager.registerPromiseEvent(argsPromise.then((args) => ({ - kind: 'success', - value: { - type: 'event', - method: Log$1.EventNames.LogEntryAdded, - params: { - level: getLogLevel(params.type), - source: realm.source, - text: getRemoteValuesText(args, true), - timestamp: Math.round(params.timestamp), - stackTrace: getBidiStackTrace(params.stackTrace), - type: 'console', - method: getLogMethod(params.type), - args, - }, - }, - }), (error) => ({ - kind: 'error', - error, - })), browsingContext.id, Log$1.EventNames.LogEntryAdded); - } - }); - this.#cdpTarget.cdpClient.on('Runtime.exceptionThrown', (params) => { - const realm = this.#realmStorage.findRealm({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.exceptionDetails.executionContextId, - }); - if (realm === undefined) { - this.#logger?.(LogType.cdp, params); - return; - } - for (const browsingContext of realm.associatedBrowsingContexts) { - this.#eventManager.registerPromiseEvent(_a$4.#getExceptionText(params, realm).then((text) => ({ - kind: 'success', - value: { - type: 'event', - method: Log$1.EventNames.LogEntryAdded, - params: { - level: "error" , - source: realm.source, - text, - timestamp: Math.round(params.timestamp), - stackTrace: getBidiStackTrace(params.exceptionDetails.stackTrace), - type: 'javascript', - }, - }, - }), (error) => ({ - kind: 'error', - error, - })), browsingContext.id, Log$1.EventNames.LogEntryAdded); - } - }); - } - static async #getExceptionText(params, realm) { - if (!params.exceptionDetails.exception) { - return params.exceptionDetails.text; - } - if (realm === undefined) { - return JSON.stringify(params.exceptionDetails.exception); - } - return await realm.stringifyObject(params.exceptionDetails.exception); - } - } - _a$4 = LogManager; - - /* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class CollectorsStorage { - #collectors = new Map(); - #responseCollectors = new Map(); - #requestBodyCollectors = new Map(); - #maxEncodedDataSize; - #logger; - constructor(maxEncodedDataSize, logger) { - this.#maxEncodedDataSize = maxEncodedDataSize; - this.#logger = logger; - } - addDataCollector(params) { - if (params.maxEncodedDataSize < 1 || - params.maxEncodedDataSize > this.#maxEncodedDataSize) { - throw new InvalidArgumentException(`Max encoded data size should be between 1 and ${this.#maxEncodedDataSize}`); - } - const collectorId = uuidv4(); - this.#collectors.set(collectorId, params); - return collectorId; - } - isCollected(requestId, dataType, collectorId) { - if (collectorId !== undefined && !this.#collectors.has(collectorId)) { - throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`); - } - if (dataType === undefined) { - return (this.isCollected(requestId, "response" , collectorId) || - this.isCollected(requestId, "request" , collectorId)); - } - const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType).get(requestId); - if (requestToCollectorsMap === undefined || - requestToCollectorsMap.size === 0) { - return false; - } - if (collectorId === undefined) { - return true; - } - if (!requestToCollectorsMap.has(collectorId)) { - return false; - } - return true; - } - #getRequestToCollectorMap(dataType) { - switch (dataType) { - case "response" : - return this.#responseCollectors; - case "request" : - return this.#requestBodyCollectors; - default: - throw new UnsupportedOperationException(`Unsupported data type ${dataType}`); - } - } - disownData(requestId, dataType, collectorId) { - const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType); - if (collectorId !== undefined) { - requestToCollectorsMap.get(requestId)?.delete(collectorId); - } - if (collectorId === undefined || - requestToCollectorsMap.get(requestId)?.size === 0) { - requestToCollectorsMap.delete(requestId); - } - } - #shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext) { - const collector = this.#collectors.get(collectorId); - if (collector === undefined) { - throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`); - } - if (collector.userContexts && - !collector.userContexts.includes(userContext)) { - return false; - } - if (collector.contexts && - !collector.contexts.includes(topLevelBrowsingContext)) { - return false; - } - if (!collector.dataTypes.includes(dataType)) { - return false; - } - if (dataType === "request" && - request.bodySize > collector.maxEncodedDataSize) { - this.#logger?.(LogType.debug, `Request's ${request.id} body size is too big for the collector ${collectorId}`); - return false; - } - if (dataType === "response" && - request.encodedResponseBodySize > collector.maxEncodedDataSize) { - this.#logger?.(LogType.debug, `Request's ${request.id} response is too big for the collector ${collectorId}`); - return false; - } - this.#logger?.(LogType.debug, `Collector ${collectorId} collected ${dataType} of ${request.id}`); - return true; - } - collectIfNeeded(request, dataType, topLevelBrowsingContext, userContext) { - const collectorIds = [...this.#collectors.keys()].filter((collectorId) => this.#shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext)); - if (collectorIds.length > 0) { - this.#getRequestToCollectorMap(dataType).set(request.id, new Set(collectorIds)); - } - } - removeDataCollector(collectorId) { - if (!this.#collectors.has(collectorId)) { - throw new NoSuchNetworkCollectorException(`Collector ${collectorId} does not exist`); - } - this.#collectors.delete(collectorId); - const affectedRequests = []; - for (const [requestId, collectorIds] of this.#responseCollectors) { - if (collectorIds.has(collectorId)) { - collectorIds.delete(collectorId); - if (collectorIds.size === 0) { - this.#responseCollectors.delete(requestId); - affectedRequests.push(requestId); - } - } - } - for (const [requestId, collectorIds] of this.#requestBodyCollectors) { - if (collectorIds.has(collectorId)) { - collectorIds.delete(collectorId); - if (collectorIds.size === 0) { - this.#requestBodyCollectors.delete(requestId); - affectedRequests.push(requestId); - } - } - } - return affectedRequests; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class DefaultMap extends Map { - #getDefaultValue; - constructor(getDefaultValue, entries) { - super(entries); - this.#getDefaultValue = getDefaultValue; - } - get(key) { - if (!this.has(key)) { - this.set(key, this.#getDefaultValue(key)); - } - return super.get(key); - } - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - var _a$3; - const REALM_REGEX = /(?<=realm=").*(?=")/; - class NetworkRequest { - static unknownParameter = 'UNKNOWN'; - #id; - #fetchId; - #interceptPhase; - #servedFromCache = false; - #redirectCount; - #request = {}; - #requestOverrides; - #responseOverrides; - #response = { - decodedSize: 0, - encodedSize: 0, - }; - #eventManager; - #networkStorage; - #cdpTarget; - #logger; - #emittedEvents = { - [Network$2.EventNames.AuthRequired]: false, - [Network$2.EventNames.BeforeRequestSent]: false, - [Network$2.EventNames.FetchError]: false, - [Network$2.EventNames.ResponseCompleted]: false, - [Network$2.EventNames.ResponseStarted]: false, - }; - waitNextPhase = new Deferred(); - constructor(id, eventManager, networkStorage, cdpTarget, redirectCount = 0, logger) { - this.#id = id; - this.#eventManager = eventManager; - this.#networkStorage = networkStorage; - this.#cdpTarget = cdpTarget; - this.#redirectCount = redirectCount; - this.#logger = logger; - } - get id() { - return this.#id; - } - get fetchId() { - return this.#fetchId; - } - get interceptPhase() { - return this.#interceptPhase; - } - get url() { - const fragment = this.#request.info?.request.urlFragment ?? - this.#request.paused?.request.urlFragment ?? - ''; - const url = this.#response.paused?.request.url ?? - this.#requestOverrides?.url ?? - this.#response.info?.url ?? - this.#request.auth?.request.url ?? - this.#request.info?.request.url ?? - this.#request.paused?.request.url ?? - _a$3.unknownParameter; - return `${url}${fragment}`; - } - get redirectCount() { - return this.#redirectCount; - } - get cdpTarget() { - return this.#cdpTarget; - } - updateCdpTarget(cdpTarget) { - if (cdpTarget !== this.#cdpTarget) { - this.#logger?.(LogType.debugInfo, `Request ${this.id} was moved from ${this.#cdpTarget.id} to ${cdpTarget.id}`); - this.#cdpTarget = cdpTarget; - } - } - get cdpClient() { - return this.#cdpTarget.cdpClient; - } - isRedirecting() { - return Boolean(this.#request.info); - } - #isDataUrl() { - return this.url.startsWith('data:'); - } - #isNonInterceptable() { - return ( - this.#isDataUrl() || - this.#servedFromCache); - } - get #method() { - return (this.#requestOverrides?.method ?? - this.#request.info?.request.method ?? - this.#request.paused?.request.method ?? - this.#request.auth?.request.method ?? - this.#response.paused?.request.method); - } - get #navigationId() { - if (!this.#request.info || - !this.#request.info.loaderId || - this.#request.info.loaderId !== this.#request.info.requestId) { - return null; - } - return this.#networkStorage.getNavigationId(this.#context ?? undefined); - } - get #cookies() { - let cookies = []; - if (this.#request.extraInfo) { - cookies = this.#request.extraInfo.associatedCookies - .filter(({ blockedReasons }) => { - return !Array.isArray(blockedReasons) || blockedReasons.length === 0; - }) - .map(({ cookie }) => cdpToBiDiCookie(cookie)); - } - return cookies; - } - #getBodySizeFromHeaders(headers) { - if (headers === undefined) { - return undefined; - } - if (headers['Content-Length'] !== undefined) { - const bodySize = Number.parseInt(headers['Content-Length']); - if (Number.isInteger(bodySize)) { - return bodySize; - } - this.#logger?.(LogType.debugError, "Unexpected non-integer 'Content-Length' header"); - } - return undefined; - } - get bodySize() { - if (typeof this.#requestOverrides?.bodySize === 'number') { - return this.#requestOverrides.bodySize; - } - if (this.#request.info?.request.postDataEntries !== undefined) { - return bidiBodySizeFromCdpPostDataEntries(this.#request.info?.request.postDataEntries); - } - return (this.#getBodySizeFromHeaders(this.#request.info?.request.headers) ?? - this.#getBodySizeFromHeaders(this.#request.extraInfo?.headers) ?? - 0); - } - get #context() { - const result = this.#response.paused?.frameId ?? - this.#request.info?.frameId ?? - this.#request.paused?.frameId ?? - this.#request.auth?.frameId; - if (result !== undefined) { - return result; - } - if (this.#request?.info?.initiator.type === 'preflight' && - this.#request?.info?.initiator.requestId !== undefined) { - const maybeInitiator = this.#networkStorage.getRequestById(this.#request?.info?.initiator.requestId); - if (maybeInitiator !== undefined) { - return maybeInitiator.#request.info?.frameId ?? null; - } - } - return null; - } - get #statusCode() { - return (this.#responseOverrides?.statusCode ?? - this.#response.paused?.responseStatusCode ?? - this.#response.extraInfo?.statusCode ?? - this.#response.info?.status); - } - get #requestHeaders() { - let headers = []; - if (this.#requestOverrides?.headers) { - const headerMap = new DefaultMap(() => []); - for (const header of this.#requestOverrides.headers) { - headerMap.get(header.name).push(header.value.value); - } - for (const [name, value] of headerMap.entries()) { - headers.push({ - name, - value: { - type: 'string', - value: value.join('\n').trimEnd(), - }, - }); - } - } - else { - headers = [ - ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.info?.request.headers), - ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.extraInfo?.headers), - ]; - } - return headers; - } - get #authChallenges() { - if (!this.#response.info) { - return; - } - if (!(this.#statusCode === 401 || this.#statusCode === 407)) { - return undefined; - } - const headerName = this.#statusCode === 401 ? 'WWW-Authenticate' : 'Proxy-Authenticate'; - const authChallenges = []; - for (const [header, value] of Object.entries(this.#response.info.headers)) { - if (header.localeCompare(headerName, undefined, { sensitivity: 'base' }) === 0) { - authChallenges.push({ - scheme: value.split(' ').at(0) ?? '', - realm: value.match(REALM_REGEX)?.at(0) ?? '', - }); - } - } - return authChallenges; - } - get #timings() { - const responseTimeOffset = getTiming(getTiming(this.#response.info?.timing?.requestTime) - - getTiming(this.#request.info?.timestamp)); - return { - timeOrigin: Math.round(getTiming(this.#request.info?.wallTime) * 1000), - requestTime: 0, - redirectStart: 0, - redirectEnd: 0, - fetchStart: getTiming(this.#response.info?.timing?.workerFetchStart, responseTimeOffset), - dnsStart: getTiming(this.#response.info?.timing?.dnsStart, responseTimeOffset), - dnsEnd: getTiming(this.#response.info?.timing?.dnsEnd, responseTimeOffset), - connectStart: getTiming(this.#response.info?.timing?.connectStart, responseTimeOffset), - connectEnd: getTiming(this.#response.info?.timing?.connectEnd, responseTimeOffset), - tlsStart: getTiming(this.#response.info?.timing?.sslStart, responseTimeOffset), - requestStart: getTiming(this.#response.info?.timing?.sendStart, responseTimeOffset), - responseStart: getTiming(this.#response.info?.timing?.receiveHeadersStart, responseTimeOffset), - responseEnd: getTiming(this.#response.info?.timing?.receiveHeadersEnd, responseTimeOffset), - }; - } - #phaseChanged() { - this.waitNextPhase.resolve(); - this.waitNextPhase = new Deferred(); - } - #interceptsInPhase(phase) { - if (this.#isNonInterceptable() || - !this.#cdpTarget.isSubscribedTo(`network.${phase}`)) { - return new Set(); - } - return this.#networkStorage.getInterceptsForPhase(this, phase); - } - #isBlockedInPhase(phase) { - return this.#interceptsInPhase(phase).size > 0; - } - handleRedirect(event) { - this.#response.hasExtraInfo = false; - this.#response.decodedSize = 0; - this.#response.encodedSize = 0; - this.#response.info = event.redirectResponse; - this.#emitEventsIfReady({ - wasRedirected: true, - }); - } - #emitEventsIfReady(options = {}) { - const requestExtraInfoCompleted = - options.wasRedirected || - Boolean(this.#response.loadingFailed) || - this.#isDataUrl() || - Boolean(this.#request.extraInfo) || - this.#isBlockedInPhase("authRequired" ) || - this.#servedFromCache || - Boolean(this.#response.info && !this.#response.hasExtraInfo); - const noInterceptionExpected = this.#isNonInterceptable(); - const requestInterceptionExpected = !noInterceptionExpected && - this.#isBlockedInPhase("beforeRequestSent" ); - const requestInterceptionCompleted = !requestInterceptionExpected || - (requestInterceptionExpected && Boolean(this.#request.paused)); - if (Boolean(this.#request.info) && - (requestInterceptionExpected - ? requestInterceptionCompleted - : requestExtraInfoCompleted)) { - this.#emitEvent(this.#getBeforeRequestEvent.bind(this)); - } - const responseExtraInfoCompleted = Boolean(this.#response.extraInfo) || - this.#servedFromCache || - Boolean(this.#response.info && !this.#response.hasExtraInfo); - const responseInterceptionExpected = !noInterceptionExpected && - this.#isBlockedInPhase("responseStarted" ); - if (this.#response.info || - (responseInterceptionExpected && Boolean(this.#response.paused))) { - this.#emitEvent(this.#getResponseStartedEvent.bind(this)); - } - const responseInterceptionCompleted = !responseInterceptionExpected || - (responseInterceptionExpected && Boolean(this.#response.paused)); - const loadingFinished = Boolean(this.#response.loadingFailed) || - Boolean(this.#response.loadingFinished); - if (Boolean(this.#response.info) && - responseExtraInfoCompleted && - responseInterceptionCompleted && - (loadingFinished || options.wasRedirected)) { - this.#emitEvent(this.#getResponseReceivedEvent.bind(this)); - this.#networkStorage.disposeRequest(this.id); - } - } - onRequestWillBeSentEvent(event) { - this.#request.info = event; - this.#networkStorage.collectIfNeeded(this, "request" ); - this.#emitEventsIfReady(); - } - onRequestWillBeSentExtraInfoEvent(event) { - this.#request.extraInfo = event; - this.#emitEventsIfReady(); - } - onResponseReceivedExtraInfoEvent(event) { - if (event.statusCode >= 300 && - event.statusCode <= 399 && - this.#request.info && - event.headers['location'] === this.#request.info.request.url) { - return; - } - this.#response.extraInfo = event; - this.#emitEventsIfReady(); - } - onResponseReceivedEvent(event) { - this.#response.hasExtraInfo = event.hasExtraInfo; - this.#response.info = event.response; - this.#networkStorage.collectIfNeeded(this, "response" ); - this.#emitEventsIfReady(); - } - onServedFromCache() { - this.#servedFromCache = true; - this.#emitEventsIfReady(); - } - onLoadingFinishedEvent(event) { - this.#response.loadingFinished = event; - this.#emitEventsIfReady(); - } - onDataReceivedEvent(event) { - this.#response.decodedSize += event.dataLength; - this.#response.encodedSize += event.encodedDataLength; - } - onLoadingFailedEvent(event) { - this.#response.loadingFailed = event; - this.#emitEventsIfReady(); - this.#emitEvent(() => { - return { - method: Network$2.EventNames.FetchError, - params: { - ...this.#getBaseEventParams(), - errorText: event.errorText, - }, - }; - }); - } - async failRequest(errorReason) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.failRequest', { - requestId: this.#fetchId, - errorReason, - }); - this.#interceptPhase = undefined; - } - onRequestPaused(event) { - this.#fetchId = event.requestId; - if (event.responseStatusCode || event.responseErrorReason) { - this.#response.paused = event; - if (this.#isBlockedInPhase("responseStarted" ) && - !this.#emittedEvents[Network$2.EventNames.ResponseStarted] && - this.#fetchId !== this.id) { - this.#interceptPhase = "responseStarted" ; - } - else { - void this.#continueResponse(); - } - } - else { - this.#request.paused = event; - if (this.#isBlockedInPhase("beforeRequestSent" ) && - !this.#emittedEvents[Network$2.EventNames.BeforeRequestSent] && - this.#fetchId !== this.id) { - this.#interceptPhase = "beforeRequestSent" ; - } - else { - void this.#continueRequest(); - } - } - this.#emitEventsIfReady(); - } - onAuthRequired(event) { - this.#fetchId = event.requestId; - this.#request.auth = event; - if (this.#isBlockedInPhase("authRequired" ) && - this.#fetchId !== this.id) { - this.#interceptPhase = "authRequired" ; - this.#emitEventsIfReady(); - } - else { - void this.#continueWithAuth({ - response: 'Default', - }); - } - this.#emitEvent(() => { - return { - method: Network$2.EventNames.AuthRequired, - params: { - ...this.#getBaseEventParams("authRequired" ), - response: this.#getResponseEventParams(), - }, - }; - }); - } - async continueRequest(overrides = {}) { - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const headers = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - const postData = getCdpBodyFromBiDiBytesValue(overrides.body); - await this.#continueRequest({ - url: overrides.url, - method: overrides.method, - headers, - postData, - }); - this.#requestOverrides = { - url: overrides.url, - method: overrides.method, - headers: overrides.headers, - cookies: overrides.cookies, - bodySize: getSizeFromBiDiBytesValue(overrides.body), - }; - } - async #continueRequest(overrides = {}) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueRequest', { - requestId: this.#fetchId, - url: overrides.url, - method: overrides.method, - headers: overrides.headers, - postData: overrides.postData, - }); - this.#interceptPhase = undefined; - } - async continueResponse(overrides = {}) { - if (this.interceptPhase === "authRequired" ) { - if (overrides.credentials) { - await Promise.all([ - this.waitNextPhase, - await this.#continueWithAuth({ - response: 'ProvideCredentials', - username: overrides.credentials.username, - password: overrides.credentials.password, - }), - ]); - } - else { - return await this.#continueWithAuth({ - response: 'ProvideCredentials', - }); - } - } - if (this.#interceptPhase === "responseStarted" ) { - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - await this.#continueResponse({ - responseCode: overrides.statusCode ?? this.#response.paused?.responseStatusCode, - responsePhrase: overrides.reasonPhrase ?? this.#response.paused?.responseStatusText, - responseHeaders: responseHeaders ?? this.#response.paused?.responseHeaders, - }); - this.#responseOverrides = { - statusCode: overrides.statusCode, - headers: overrideHeaders, - }; - } - } - async #continueResponse({ responseCode, responsePhrase, responseHeaders, } = {}) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueResponse', { - requestId: this.#fetchId, - responseCode, - responsePhrase, - responseHeaders, - }); - this.#interceptPhase = undefined; - } - async continueWithAuth(authChallenge) { - let username; - let password; - if (authChallenge.action === 'provideCredentials') { - const { credentials } = authChallenge; - username = credentials.username; - password = credentials.password; - } - const response = cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(authChallenge.action); - await this.#continueWithAuth({ - response, - username, - password, - }); - } - async provideResponse(overrides) { - assert(this.#fetchId, 'Network Interception not set-up.'); - if (this.interceptPhase === "authRequired" ) { - return await this.#continueWithAuth({ - response: 'ProvideCredentials', - }); - } - if (!overrides.body && !overrides.headers) { - return await this.#continueRequest(); - } - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - const responseCode = overrides.statusCode ?? this.#statusCode ?? 200; - await this.cdpClient.sendCommand('Fetch.fulfillRequest', { - requestId: this.#fetchId, - responseCode, - responsePhrase: overrides.reasonPhrase, - responseHeaders, - body: getCdpBodyFromBiDiBytesValue(overrides.body), - }); - this.#interceptPhase = undefined; - } - dispose() { - this.waitNextPhase.reject(new Error('waitNextPhase disposed')); - } - async #continueWithAuth(authChallengeResponse) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueWithAuth', { - requestId: this.#fetchId, - authChallengeResponse, - }); - this.#interceptPhase = undefined; - } - #emitEvent(getEvent) { - let event; - try { - event = getEvent(); - } - catch (error) { - this.#logger?.(LogType.debugError, error); - return; - } - if (this.#isIgnoredEvent() || - (this.#emittedEvents[event.method] && - event.method !== Network$2.EventNames.AuthRequired)) { - return; - } - this.#phaseChanged(); - this.#emittedEvents[event.method] = true; - if (this.#context) { - this.#eventManager.registerEvent(Object.assign(event, { - type: 'event', - }), this.#context); - } - else { - this.#eventManager.registerGlobalEvent(Object.assign(event, { - type: 'event', - })); - } - } - #getBaseEventParams(phase) { - const interceptProps = { - isBlocked: false, - }; - if (phase) { - const blockedBy = this.#interceptsInPhase(phase); - interceptProps.isBlocked = blockedBy.size > 0; - if (interceptProps.isBlocked) { - interceptProps.intercepts = [...blockedBy]; - } - } - return { - context: this.#context, - navigation: this.#navigationId, - redirectCount: this.#redirectCount, - request: this.#getRequestData(), - timestamp: Math.round(getTiming(this.#request.info?.wallTime) * 1000), - ...interceptProps, - }; - } - #getResponseEventParams() { - if (this.#response.info?.fromDiskCache) { - this.#response.extraInfo = undefined; - } - const cdpHeaders = this.#response.info?.headers ?? {}; - const cdpRawHeaders = this.#response.extraInfo?.headers ?? {}; - for (const [key, value] of Object.entries(cdpRawHeaders)) { - cdpHeaders[key] = value; - } - const headers = bidiNetworkHeadersFromCdpNetworkHeaders(cdpHeaders); - const authChallenges = this.#authChallenges; - const response = { - url: this.url, - protocol: this.#response.info?.protocol ?? '', - status: this.#statusCode ?? -1, - statusText: this.#response.info?.statusText || - this.#response.paused?.responseStatusText || - '', - fromCache: this.#response.info?.fromDiskCache || - this.#response.info?.fromPrefetchCache || - this.#servedFromCache, - headers: this.#responseOverrides?.headers ?? headers, - mimeType: this.#response.info?.mimeType || '', - bytesReceived: this.encodedResponseBodySize, - headersSize: computeHeadersSize(headers), - bodySize: this.encodedResponseBodySize, - content: { - size: this.#response.decodedSize ?? 0, - }, - ...(authChallenges ? { authChallenges } : {}), - }; - return { - ...response, - 'goog:securityDetails': this.#response.info?.securityDetails, - }; - } - get encodedResponseBodySize() { - return (this.#response.loadingFinished?.encodedDataLength ?? - this.#response.info?.encodedDataLength ?? - this.#response.encodedSize ?? - 0); - } - #getRequestData() { - const headers = this.#requestHeaders; - const request = { - request: this.#id, - url: this.url, - method: this.#method ?? _a$3.unknownParameter, - headers, - cookies: this.#cookies, - headersSize: computeHeadersSize(headers), - bodySize: this.bodySize, - destination: this.#getDestination(), - initiatorType: this.#getInitiatorType(), - timings: this.#timings, - }; - return { - ...request, - 'goog:postData': this.#request.info?.request?.postData, - 'goog:hasPostData': this.#request.info?.request?.hasPostData, - 'goog:resourceType': this.#request.info?.type, - 'goog:resourceInitiator': this.#request.info?.initiator, - }; - } - #getDestination() { - switch (this.#request.info?.type) { - case 'Script': - return 'script'; - case 'Stylesheet': - return 'style'; - case 'Image': - return 'image'; - case 'Document': - return this.#request.info?.initiator.type === 'parser' - ? 'iframe' - : 'document'; - default: - return ''; - } - } - #getInitiatorType() { - if (this.#request.info?.initiator.type === 'parser') { - switch (this.#request.info?.type) { - case 'Document': - return 'iframe'; - case 'Font': - return this.#request.info?.initiator?.url === - this.#request.info?.documentURL - ? 'font' - : 'css'; - case 'Image': - return this.#request.info?.initiator?.url === - this.#request.info?.documentURL - ? 'img' - : 'css'; - case 'Script': - return 'script'; - case 'Stylesheet': - return 'link'; - default: - return null; - } - } - if (this.#request?.info?.type === 'Fetch') { - return 'fetch'; - } - return null; - } - #getBeforeRequestEvent() { - assert(this.#request.info, 'RequestWillBeSentEvent is not set'); - return { - method: Network$2.EventNames.BeforeRequestSent, - params: { - ...this.#getBaseEventParams("beforeRequestSent" ), - initiator: { - type: _a$3.#getInitiator(this.#request.info.initiator.type), - columnNumber: this.#request.info.initiator.columnNumber, - lineNumber: this.#request.info.initiator.lineNumber, - stackTrace: this.#request.info.initiator.stack, - request: this.#request.info.initiator.requestId, - }, - }, - }; - } - #getResponseStartedEvent() { - return { - method: Network$2.EventNames.ResponseStarted, - params: { - ...this.#getBaseEventParams("responseStarted" ), - response: this.#getResponseEventParams(), - }, - }; - } - #getResponseReceivedEvent() { - return { - method: Network$2.EventNames.ResponseCompleted, - params: { - ...this.#getBaseEventParams(), - response: this.#getResponseEventParams(), - }, - }; - } - #isIgnoredEvent() { - const faviconUrl = '/favicon.ico'; - return (this.#request.paused?.request.url.endsWith(faviconUrl) ?? - this.#request.info?.request.url.endsWith(faviconUrl) ?? - false); - } - #getOverrideHeader(headers, cookies) { - if (!headers && !cookies) { - return undefined; - } - let overrideHeaders = headers; - const cookieHeader = networkHeaderFromCookieHeaders(cookies); - if (cookieHeader && !overrideHeaders) { - overrideHeaders = this.#requestHeaders; - } - if (cookieHeader && overrideHeaders) { - overrideHeaders.filter((header) => header.name.localeCompare('cookie', undefined, { - sensitivity: 'base', - }) !== 0); - overrideHeaders.push(cookieHeader); - } - return overrideHeaders; - } - static #getInitiator(initiatorType) { - switch (initiatorType) { - case 'parser': - case 'script': - case 'preflight': - return initiatorType; - default: - return 'other'; - } - } - } - _a$3 = NetworkRequest; - function getCdpBodyFromBiDiBytesValue(body) { - let parsedBody; - if (body?.type === 'string') { - parsedBody = stringToBase64(body.value); - } - else if (body?.type === 'base64') { - parsedBody = body.value; - } - return parsedBody; - } - function getSizeFromBiDiBytesValue(body) { - if (body?.type === 'string') { - return body.value.length; - } - else if (body?.type === 'base64') { - return atob(body.value).length; - } - return 0; - } - - const MAX_TOTAL_COLLECTED_SIZE = 200_000_000; - class NetworkStorage { - #browsingContextStorage; - #eventManager; - #collectorsStorage; - #logger; - #requests = new Map(); - #intercepts = new Map(); - #defaultCacheBehavior = 'default'; - constructor(eventManager, browsingContextStorage, browserClient, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#eventManager = eventManager; - this.#collectorsStorage = new CollectorsStorage(MAX_TOTAL_COLLECTED_SIZE, logger); - browserClient.on('Target.detachedFromTarget', ({ sessionId }) => { - this.disposeRequestMap(sessionId); - }); - this.#logger = logger; - } - #getOrCreateNetworkRequest(id, cdpTarget, redirectCount) { - let request = this.getRequestById(id); - if (redirectCount === undefined && request) { - return request; - } - request = new NetworkRequest(id, this.#eventManager, this, cdpTarget, redirectCount, this.#logger); - this.addRequest(request); - return request; - } - onCdpTargetCreated(cdpTarget) { - const cdpClient = cdpTarget.cdpClient; - const listeners = [ - [ - 'Network.requestWillBeSent', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - if (request && request.isRedirecting()) { - request.handleRedirect(params); - this.disposeRequest(params.requestId); - this.#getOrCreateNetworkRequest(params.requestId, cdpTarget, request.redirectCount + 1).onRequestWillBeSentEvent(params); - } - else { - this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onRequestWillBeSentEvent(params); - } - }, - ], - [ - 'Network.requestWillBeSentExtraInfo', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onRequestWillBeSentExtraInfoEvent(params); - }, - ], - [ - 'Network.responseReceived', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onResponseReceivedEvent(params); - }, - ], - [ - 'Network.responseReceivedExtraInfo', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onResponseReceivedExtraInfoEvent(params); - }, - ], - [ - 'Network.requestServedFromCache', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onServedFromCache(); - }, - ], - [ - 'Fetch.requestPaused', - (event) => { - const request = this.#getOrCreateNetworkRequest( - event.networkId ?? event.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onRequestPaused(event); - }, - ], - [ - 'Fetch.authRequired', - (event) => { - let request = this.getRequestByFetchId(event.requestId); - if (!request) { - request = this.#getOrCreateNetworkRequest(event.requestId, cdpTarget); - } - request.updateCdpTarget(cdpTarget); - request.onAuthRequired(event); - }, - ], - [ - 'Network.dataReceived', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - request?.onDataReceivedEvent(params); - }, - ], - [ - 'Network.loadingFailed', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onLoadingFailedEvent(params); - }, - ], - [ - 'Network.loadingFinished', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - request?.onLoadingFinishedEvent(params); - }, - ], - ]; - for (const [event, listener] of listeners) { - cdpClient.on(event, listener); - } - } - async getCollectedData(params) { - if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) { - throw new NoSuchNetworkDataException(params.collector === undefined - ? `No collected ${params.dataType} data` - : `Collector ${params.collector} didn't collect ${params.dataType} data`); - } - if (params.disown && params.collector === undefined) { - throw new InvalidArgumentException('Cannot disown collected data without collector ID'); - } - const request = this.getRequestById(params.request); - if (request === undefined) { - throw new NoSuchNetworkDataException(`No data for ${params.request}`); - } - let result = undefined; - switch (params.dataType) { - case "response" : - result = await this.#getCollectedResponseData(request); - break; - case "request" : - result = await this.#getCollectedRequestData(request); - break; - default: - throw new UnsupportedOperationException(`Unsupported data type ${params.dataType}`); - } - if (params.disown && params.collector !== undefined) { - this.#collectorsStorage.disownData(request.id, params.dataType, params.collector); - this.disposeRequest(request.id); - } - return result; - } - async #getCollectedResponseData(request) { - try { - const responseBody = await request.cdpClient.sendCommand('Network.getResponseBody', { requestId: request.id }); - return { - bytes: { - type: responseBody.base64Encoded ? 'base64' : 'string', - value: responseBody.body, - }, - }; - } - catch (error) { - if (error.code === -32e3 && - error.message === 'No resource with given identifier found') { - throw new NoSuchNetworkDataException(`Response data was disposed`); - } - if (error.code === -32001 ) { - throw new NoSuchNetworkDataException(`Response data is disposed after the related page`); - } - throw error; - } - } - async #getCollectedRequestData(request) { - const requestPostData = await request.cdpClient.sendCommand('Network.getRequestPostData', { requestId: request.id }); - return { - bytes: { - type: 'string', - value: requestPostData.postData, - }, - }; - } - collectIfNeeded(request, dataType) { - this.#collectorsStorage.collectIfNeeded(request, dataType, request.cdpTarget.topLevelId, request.cdpTarget.userContext); - } - getInterceptionStages(browsingContextId) { - const stages = { - request: false, - response: false, - auth: false, - }; - for (const intercept of this.#intercepts.values()) { - if (intercept.contexts && - !intercept.contexts.includes(browsingContextId)) { - continue; - } - stages.request ||= intercept.phases.includes("beforeRequestSent" ); - stages.response ||= intercept.phases.includes("responseStarted" ); - stages.auth ||= intercept.phases.includes("authRequired" ); - } - return stages; - } - getInterceptsForPhase(request, phase) { - if (request.url === NetworkRequest.unknownParameter) { - return new Set(); - } - const intercepts = new Set(); - for (const [interceptId, intercept] of this.#intercepts.entries()) { - if (!intercept.phases.includes(phase) || - (intercept.contexts && - !intercept.contexts.includes(request.cdpTarget.topLevelId))) { - continue; - } - if (intercept.urlPatterns.length === 0) { - intercepts.add(interceptId); - continue; - } - for (const pattern of intercept.urlPatterns) { - if (matchUrlPattern(pattern, request.url)) { - intercepts.add(interceptId); - break; - } - } - } - return intercepts; - } - disposeRequestMap(sessionId) { - for (const request of this.#requests.values()) { - if (request.cdpClient.sessionId === sessionId) { - this.#requests.delete(request.id); - request.dispose(); - } - } - } - addIntercept(value) { - const interceptId = uuidv4(); - this.#intercepts.set(interceptId, value); - return interceptId; - } - removeIntercept(intercept) { - if (!this.#intercepts.has(intercept)) { - throw new NoSuchInterceptException(`Intercept '${intercept}' does not exist.`); - } - this.#intercepts.delete(intercept); - } - getRequestsByTarget(target) { - const requests = []; - for (const request of this.#requests.values()) { - if (request.cdpTarget === target) { - requests.push(request); - } - } - return requests; - } - getRequestById(id) { - return this.#requests.get(id); - } - getRequestByFetchId(fetchId) { - for (const request of this.#requests.values()) { - if (request.fetchId === fetchId) { - return request; - } - } - return; - } - addRequest(request) { - this.#requests.set(request.id, request); - } - disposeRequest(id) { - if (this.#collectorsStorage.isCollected(id)) { - return; - } - this.#requests.delete(id); - } - getNavigationId(contextId) { - if (contextId === undefined) { - return null; - } - return (this.#browsingContextStorage.findContext(contextId)?.navigationId ?? null); - } - set defaultCacheBehavior(behavior) { - this.#defaultCacheBehavior = behavior; - } - get defaultCacheBehavior() { - return this.#defaultCacheBehavior; - } - addDataCollector(params) { - return this.#collectorsStorage.addDataCollector(params); - } - removeDataCollector(params) { - const releasedRequests = this.#collectorsStorage.removeDataCollector(params.collector); - releasedRequests.map((request) => this.disposeRequest(request)); - } - disownData(params) { - if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) { - throw new NoSuchNetworkDataException(`Collector ${params.collector} didn't collect ${params.dataType} data`); - } - this.#collectorsStorage.disownData(params.request, params.dataType, params.collector); - this.disposeRequest(params.request); - } - } - - class CdpTarget { - #id; - userContext; - #cdpClient; - #browserCdpClient; - #parentCdpClient; - #realmStorage; - #eventManager; - #preloadScriptStorage; - #browsingContextStorage; - #networkStorage; - contextConfigStorage; - #unblocked = new Deferred(); - #defaultUserAgent; - #logger; - #windowId; - #deviceAccessEnabled = false; - #cacheDisableState = false; - #preloadEnabled = false; - #fetchDomainStages = { - request: false, - response: false, - auth: false, - }; - static create(targetId, cdpClient, browserCdpClient, parentCdpClient, realmStorage, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, configStorage, userContext, defaultUserAgent, logger) { - const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger); - LogManager.create(cdpTarget, realmStorage, eventManager, logger); - cdpTarget.#setEventListeners(); - void cdpTarget.#unblock(); - return cdpTarget; - } - constructor(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger) { - this.#defaultUserAgent = defaultUserAgent; - this.userContext = userContext; - this.#id = targetId; - this.#cdpClient = cdpClient; - this.#browserCdpClient = browserCdpClient; - this.#parentCdpClient = parentCdpClient; - this.#eventManager = eventManager; - this.#realmStorage = realmStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#networkStorage = networkStorage; - this.#browsingContextStorage = browsingContextStorage; - this.contextConfigStorage = configStorage; - this.#logger = logger; - } - get unblocked() { - return this.#unblocked; - } - get id() { - return this.#id; - } - get cdpClient() { - return this.#cdpClient; - } - get parentCdpClient() { - return this.#parentCdpClient; - } - get browserCdpClient() { - return this.#browserCdpClient; - } - get cdpSessionId() { - return this.#cdpClient.sessionId; - } - get windowId() { - if (this.#windowId === undefined) { - this.#logger?.(LogType.debugError, 'Getting windowId before it was set, returning 0'); - } - return this.#windowId ?? 0; - } - async #unblock() { - const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext); - const results = await Promise.allSettled([ - this.#cdpClient.sendCommand('Page.enable', { - enableFileChooserOpenedEvent: true, - }), - ...(this.#ignoreFileDialog() - ? [] - : [ - this.#cdpClient.sendCommand('Page.setInterceptFileChooserDialog', { - enabled: true, - cancel: true, - }), - ]), - this.#cdpClient - .sendCommand('Page.getFrameTree') - .then((frameTree) => this.#restoreFrameTreeState(frameTree.frameTree)), - this.#cdpClient.sendCommand('Runtime.enable'), - this.#cdpClient.sendCommand('Page.setLifecycleEventsEnabled', { - enabled: true, - }), - this.#cdpClient - .sendCommand('Network.enable', { - enableDurableMessages: config.disableNetworkDurableMessages !== true, - maxTotalBufferSize: MAX_TOTAL_COLLECTED_SIZE, - }) - .then(() => this.toggleNetworkIfNeeded()), - this.#cdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - }), - this.#updateWindowId(), - this.#setUserContextConfig(config), - this.#initAndEvaluatePreloadScripts(), - this.#cdpClient.sendCommand('Runtime.runIfWaitingForDebugger'), - this.#parentCdpClient.sendCommand('Runtime.runIfWaitingForDebugger'), - this.toggleDeviceAccessIfNeeded(), - this.togglePreloadIfNeeded(), - ]); - for (const result of results) { - if (result instanceof Error) { - this.#logger?.(LogType.debugError, 'Error happened when configuring a new target', result); - } - } - this.#unblocked.resolve({ - kind: 'success', - value: undefined, - }); - } - #restoreFrameTreeState(frameTree) { - const frame = frameTree.frame; - const maybeContext = this.#browsingContextStorage.findContext(frame.id); - if (maybeContext !== undefined) { - if (maybeContext.parentId === null && - frame.parentId !== null && - frame.parentId !== undefined) { - maybeContext.parentId = frame.parentId; - } - } - if (maybeContext === undefined && frame.parentId !== undefined) { - const parentBrowsingContext = this.#browsingContextStorage.getContext(frame.parentId); - BrowsingContextImpl.create(frame.id, frame.parentId, this.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.contextConfigStorage, frame.url, undefined, this.#logger); - } - frameTree.childFrames?.map((frameTree) => this.#restoreFrameTreeState(frameTree)); - } - async toggleFetchIfNeeded() { - const stages = this.#networkStorage.getInterceptionStages(this.topLevelId); - if (this.#fetchDomainStages.request === stages.request && - this.#fetchDomainStages.response === stages.response && - this.#fetchDomainStages.auth === stages.auth) { - return; - } - const patterns = []; - this.#fetchDomainStages = stages; - if (stages.request || stages.auth) { - patterns.push({ - urlPattern: '*', - requestStage: 'Request', - }); - } - if (stages.response) { - patterns.push({ - urlPattern: '*', - requestStage: 'Response', - }); - } - if (patterns.length) { - await this.#cdpClient.sendCommand('Fetch.enable', { - patterns, - handleAuthRequests: stages.auth, - }); - } - else { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - void Promise.allSettled(blockedRequest.map((request) => request.waitNextPhase)) - .then(async () => { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - if (blockedRequest.length) { - return await this.toggleFetchIfNeeded(); - } - return await this.#cdpClient.sendCommand('Fetch.disable'); - }) - .catch((error) => { - this.#logger?.(LogType.bidi, 'Disable failed', error); - }); - } - } - async toggleNetworkIfNeeded() { - try { - await Promise.all([ - this.toggleSetCacheDisabled(), - this.toggleFetchIfNeeded(), - ]); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async toggleSetCacheDisabled(disable) { - const defaultCacheDisabled = this.#networkStorage.defaultCacheBehavior === 'bypass'; - const cacheDisabled = disable ?? defaultCacheDisabled; - if (this.#cacheDisableState === cacheDisabled) { - return; - } - this.#cacheDisableState = cacheDisabled; - try { - await this.#cdpClient.sendCommand('Network.setCacheDisabled', { - cacheDisabled, - }); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#cacheDisableState = !cacheDisabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async toggleDeviceAccessIfNeeded() { - const enabled = this.isSubscribedTo(Bluetooth$2.EventNames.RequestDevicePromptUpdated); - if (this.#deviceAccessEnabled === enabled) { - return; - } - this.#deviceAccessEnabled = enabled; - try { - await this.#cdpClient.sendCommand(enabled ? 'DeviceAccess.enable' : 'DeviceAccess.disable'); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#deviceAccessEnabled = !enabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async togglePreloadIfNeeded() { - const enabled = this.isSubscribedTo(Speculation.EventNames.PrefetchStatusUpdated); - if (this.#preloadEnabled === enabled) { - return; - } - this.#preloadEnabled = enabled; - try { - await this.#cdpClient.sendCommand(enabled ? 'Preload.enable' : 'Preload.disable'); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#preloadEnabled = !enabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - #isExpectedError(err) { - const error = err; - return ((error.code === -32001 && - error.message === 'Session with given id not found.') || - this.#cdpClient.isCloseError(err)); - } - #setEventListeners() { - this.#cdpClient.on('*', (event, params) => { - if (typeof event !== 'string') { - return; - } - this.#eventManager.registerEvent({ - type: 'event', - method: `goog:cdp.${event}`, - params: { - event, - params, - session: this.cdpSessionId, - }, - }, this.id); - }); - } - async #enableFetch(stages) { - const patterns = []; - if (stages.request || stages.auth) { - patterns.push({ - urlPattern: '*', - requestStage: 'Request', - }); - } - if (stages.response) { - patterns.push({ - urlPattern: '*', - requestStage: 'Response', - }); - } - if (patterns.length) { - const oldStages = this.#fetchDomainStages; - this.#fetchDomainStages = stages; - try { - await this.#cdpClient.sendCommand('Fetch.enable', { - patterns, - handleAuthRequests: stages.auth, - }); - } - catch { - this.#fetchDomainStages = oldStages; - } - } - } - async #disableFetch() { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - if (blockedRequest.length === 0) { - this.#fetchDomainStages = { - request: false, - response: false, - auth: false, - }; - await this.#cdpClient.sendCommand('Fetch.disable'); - } - } - async toggleNetwork() { - const stages = this.#networkStorage.getInterceptionStages(this.topLevelId); - const fetchEnable = Object.values(stages).some((value) => value); - const fetchChanged = this.#fetchDomainStages.request !== stages.request || - this.#fetchDomainStages.response !== stages.response || - this.#fetchDomainStages.auth !== stages.auth; - this.#logger?.(LogType.debugInfo, 'Toggle Network', `Fetch (${fetchEnable}) ${fetchChanged}`); - if (fetchEnable && fetchChanged) { - await this.#enableFetch(stages); - } - if (!fetchEnable && fetchChanged) { - await this.#disableFetch(); - } - } - getChannels() { - return this.#preloadScriptStorage - .find() - .flatMap((script) => script.channels); - } - async #updateWindowId() { - const { windowId } = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId: this.id }); - this.#windowId = windowId; - } - async #initAndEvaluatePreloadScripts() { - await Promise.all(this.#preloadScriptStorage - .find({ - targetId: this.topLevelId, - }) - .map((script) => { - return script.initInTarget(this, true); - })); - } - async setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, screenArea, scrollbarType = null) { - if (viewport === null && - devicePixelRatio === null && - screenOrientation === null && - screenArea === null && - scrollbarType === null) { - await this.cdpClient.sendCommand('Emulation.clearDeviceMetricsOverride'); - return; - } - const metricsOverride = { - width: viewport?.width ?? 0, - height: viewport?.height ?? 0, - deviceScaleFactor: devicePixelRatio ?? 0, - screenOrientation: this.#toCdpScreenOrientationAngle(screenOrientation) ?? undefined, - mobile: false, - screenWidth: screenArea?.width, - screenHeight: screenArea?.height, - scrollbarType: scrollbarType === 'overlay' ? 'overlay' : 'default', - }; - await this.cdpClient.sendCommand('Emulation.setDeviceMetricsOverride', metricsOverride); - } - async #setUserContextConfig(config) { - const promises = []; - promises.push(this.#cdpClient - .sendCommand('Page.setPrerenderingAllowed', { - isAllowed: !config.prerenderingDisabled, - }) - .catch(() => { - })); - if (config.viewport !== undefined || - config.devicePixelRatio !== undefined || - config.screenOrientation !== undefined || - config.screenArea !== undefined) { - promises.push(this.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, config.scrollbarType ?? null).catch(() => { - })); - } - if (config.geolocation !== undefined && config.geolocation !== null) { - promises.push(this.setGeolocationOverride(config.geolocation)); - } - if (config.locale !== undefined) { - promises.push(this.setLocaleOverride(config.locale)); - } - if (config.timezone !== undefined) { - promises.push(this.setTimezoneOverride(config.timezone)); - } - if (config.extraHeaders !== undefined) { - promises.push(this.setExtraHeaders(config.extraHeaders)); - } - if (config.userAgent !== undefined || - config.locale !== undefined || - config.clientHints !== undefined) { - promises.push(this.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints)); - } - if (config.scriptingEnabled !== undefined) { - promises.push(this.setScriptingEnabled(config.scriptingEnabled)); - } - if (config.acceptInsecureCerts !== undefined) { - promises.push(this.cdpClient.sendCommand('Security.setIgnoreCertificateErrors', { - ignore: config.acceptInsecureCerts, - })); - } - if (config.emulatedNetworkConditions !== undefined) { - promises.push(this.setEmulatedNetworkConditions(config.emulatedNetworkConditions)); - } - if (config.maxTouchPoints !== undefined) { - promises.push(this.setTouchOverride(config.maxTouchPoints)); - } - await Promise.all(promises); - } - get topLevelId() { - return (this.#browsingContextStorage.findTopLevelContextId(this.id) ?? this.id); - } - isSubscribedTo(moduleOrEvent) { - return this.#eventManager.subscriptionManager.isSubscribedTo(moduleOrEvent, this.topLevelId); - } - #ignoreFileDialog() { - const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext); - return ((config.userPromptHandler?.file ?? - config.userPromptHandler?.default ?? - "ignore" ) === - "ignore" ); - } - async setGeolocationOverride(geolocation) { - if (geolocation === null) { - await this.cdpClient.sendCommand('Emulation.clearGeolocationOverride'); - } - else if ('type' in geolocation) { - if (geolocation.type !== 'positionUnavailable') { - throw new UnknownErrorException(`Unknown geolocation error ${geolocation.type}`); - } - await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {}); - } - else if ('latitude' in geolocation) { - await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', { - latitude: geolocation.latitude, - longitude: geolocation.longitude, - accuracy: geolocation.accuracy ?? 1, - altitude: geolocation.altitude ?? undefined, - altitudeAccuracy: geolocation.altitudeAccuracy ?? undefined, - heading: geolocation.heading ?? undefined, - speed: geolocation.speed ?? undefined, - }); - } - else { - throw new UnknownErrorException('Unexpected geolocation coordinates value'); - } - } - async setTouchOverride(maxTouchPoints) { - const touchEmulationParams = { - enabled: maxTouchPoints !== null, - }; - if (maxTouchPoints !== null) { - touchEmulationParams.maxTouchPoints = maxTouchPoints; - } - await this.cdpClient.sendCommand('Emulation.setTouchEmulationEnabled', touchEmulationParams); - } - #toCdpScreenOrientationAngle(orientation) { - if (orientation === null) { - return null; - } - if (orientation.natural === "portrait" ) { - switch (orientation.type) { - case 'portrait-primary': - return { - angle: 0, - type: 'portraitPrimary', - }; - case 'landscape-primary': - return { - angle: 90, - type: 'landscapePrimary', - }; - case 'portrait-secondary': - return { - angle: 180, - type: 'portraitSecondary', - }; - case 'landscape-secondary': - return { - angle: 270, - type: 'landscapeSecondary', - }; - default: - throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`); - } - } - if (orientation.natural === "landscape" ) { - switch (orientation.type) { - case 'landscape-primary': - return { - angle: 0, - type: 'landscapePrimary', - }; - case 'portrait-primary': - return { - angle: 90, - type: 'portraitPrimary', - }; - case 'landscape-secondary': - return { - angle: 180, - type: 'landscapeSecondary', - }; - case 'portrait-secondary': - return { - angle: 270, - type: 'portraitSecondary', - }; - default: - throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`); - } - } - throw new UnknownErrorException(`Unexpected orientation natural ${orientation.natural}`); - } - async setLocaleOverride(locale) { - if (locale === null) { - await this.cdpClient.sendCommand('Emulation.setLocaleOverride', {}); - } - else { - await this.cdpClient.sendCommand('Emulation.setLocaleOverride', { - locale, - }); - } - } - async setScriptingEnabled(scriptingEnabled) { - await this.cdpClient.sendCommand('Emulation.setScriptExecutionDisabled', { - value: scriptingEnabled === false, - }); - } - async setTimezoneOverride(timezone) { - if (timezone === null) { - await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', { - timezoneId: '', - }); - } - else { - await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', { - timezoneId: timezone, - }); - } - } - async setExtraHeaders(headers) { - await this.cdpClient.sendCommand('Network.setExtraHTTPHeaders', { - headers, - }); - } - async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) { - const userAgentMetadata = clientHints - ? { - brands: clientHints.brands?.map((b) => ({ - brand: b.brand, - version: b.version, - })), - fullVersionList: clientHints.fullVersionList, - platform: clientHints.platform ?? '', - platformVersion: clientHints.platformVersion ?? '', - architecture: clientHints.architecture ?? '', - model: clientHints.model ?? '', - mobile: clientHints.mobile ?? false, - bitness: clientHints.bitness ?? undefined, - wow64: clientHints.wow64 ?? undefined, - formFactors: clientHints.formFactors ?? undefined, - } - : undefined; - await this.cdpClient.sendCommand('Emulation.setUserAgentOverride', { - userAgent: userAgent || (userAgentMetadata ? this.#defaultUserAgent : ''), - acceptLanguage: acceptLanguage ?? undefined, - platform: clientHints?.platform ?? undefined, - userAgentMetadata, - }); - } - async setEmulatedNetworkConditions(networkConditions) { - if (networkConditions !== null && networkConditions.type !== 'offline') { - throw new UnsupportedOperationException(`Unsupported network conditions ${networkConditions.type}`); - } - await Promise.all([ - this.cdpClient.sendCommand('Network.emulateNetworkConditionsByRule', { - offline: networkConditions?.type === 'offline', - matchedNetworkConditions: [ - { - urlPattern: '', - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }, - ], - }), - this.cdpClient.sendCommand('Network.overrideNetworkState', { - offline: networkConditions?.type === 'offline', - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }), - ]); - } - } - - const cdpToBidiTargetTypes = { - service_worker: 'service-worker', - shared_worker: 'shared-worker', - worker: 'dedicated-worker', - }; - class CdpTargetManager { - #browserCdpClient; - #cdpConnection; - #targetKeysToBeIgnoredByAutoAttach = new Set(); - #selfTargetId; - #eventManager; - #browsingContextStorage; - #networkStorage; - #bluetoothProcessor; - #preloadScriptStorage; - #realmStorage; - #configStorage; - #speculationProcessor; - #defaultUserContextId; - #defaultUserAgent; - #logger; - constructor(cdpConnection, browserCdpClient, selfTargetId, eventManager, browsingContextStorage, realmStorage, networkStorage, configStorage, bluetoothProcessor, speculationProcessor, preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger) { - this.#cdpConnection = cdpConnection; - this.#browserCdpClient = browserCdpClient; - this.#targetKeysToBeIgnoredByAutoAttach.add(selfTargetId); - this.#selfTargetId = selfTargetId; - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#networkStorage = networkStorage; - this.#configStorage = configStorage; - this.#bluetoothProcessor = bluetoothProcessor; - this.#speculationProcessor = speculationProcessor; - this.#realmStorage = realmStorage; - this.#defaultUserContextId = defaultUserContextId; - this.#defaultUserAgent = defaultUserAgent; - this.#logger = logger; - this.#setEventListeners(browserCdpClient); - } - #setEventListeners(cdpClient) { - cdpClient.on('Target.attachedToTarget', (params) => { - this.#handleAttachedToTargetEvent(params, cdpClient); - }); - cdpClient.on('Target.detachedFromTarget', this.#handleDetachedFromTargetEvent.bind(this)); - cdpClient.on('Target.targetInfoChanged', this.#handleTargetInfoChangedEvent.bind(this)); - cdpClient.on('Inspector.targetCrashed', () => { - this.#handleTargetCrashedEvent(cdpClient); - }); - cdpClient.on('Page.frameAttached', this.#handleFrameAttachedEvent.bind(this)); - cdpClient.on('Page.frameSubtreeWillBeDetached', this.#handleFrameSubtreeWillBeDetached.bind(this)); - } - #handleFrameAttachedEvent(params) { - const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId); - if (parentBrowsingContext !== undefined) { - BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, - 'about:blank', undefined, this.#logger); - } - } - #handleFrameSubtreeWillBeDetached(params) { - this.#browsingContextStorage.findContext(params.frameId)?.dispose(true); - } - #handleAttachedToTargetEvent(params, parentSessionCdpClient) { - const { sessionId, targetInfo } = params; - const targetCdpClient = this.#cdpConnection.getCdpClient(sessionId); - const detach = async () => { - await targetCdpClient - .sendCommand('Runtime.runIfWaitingForDebugger') - .then(() => parentSessionCdpClient.sendCommand('Target.detachFromTarget', params)) - .catch((error) => this.#logger?.(LogType.debugError, error)); - }; - if (this.#selfTargetId === targetInfo.targetId) { - void detach(); - return; - } - const targetKey = targetInfo.type === 'service_worker' - ? `${parentSessionCdpClient.sessionId}_${targetInfo.targetId}` - : targetInfo.targetId; - if (this.#targetKeysToBeIgnoredByAutoAttach.has(targetKey)) { - return; - } - this.#targetKeysToBeIgnoredByAutoAttach.add(targetKey); - const userContext = targetInfo.browserContextId && - targetInfo.browserContextId !== this.#defaultUserContextId - ? targetInfo.browserContextId - : 'default'; - switch (targetInfo.type) { - case 'tab': { - this.#setEventListeners(targetCdpClient); - void (async () => { - await targetCdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - }); - })(); - return; - } - case 'page': - case 'iframe': { - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - const maybeContext = this.#browsingContextStorage.findContext(targetInfo.targetId); - if (maybeContext && targetInfo.type === 'iframe') { - maybeContext.updateCdpTarget(cdpTarget); - } - else { - const parentId = this.#findFrameParentId(targetInfo, parentSessionCdpClient.sessionId); - BrowsingContextImpl.create(targetInfo.targetId, parentId, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, - targetInfo.url === '' ? 'about:blank' : targetInfo.url, targetInfo.openerFrameId ?? targetInfo.openerId, this.#logger); - } - return; - } - case 'service_worker': - case 'worker': { - const realm = this.#realmStorage.findRealm({ - cdpSessionId: parentSessionCdpClient.sessionId, - sandbox: null, - }); - if (!realm) { - void detach(); - return; - } - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget, realm); - return; - } - case 'shared_worker': { - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget); - return; - } - } - void detach(); - } - #findFrameParentId(targetInfo, parentSessionId) { - if (targetInfo.type !== 'iframe') { - return null; - } - const parentId = targetInfo.openerFrameId ?? targetInfo.openerId; - if (parentId !== undefined) { - return parentId; - } - if (parentSessionId !== undefined) { - return (this.#browsingContextStorage.findContextBySession(parentSessionId) - ?.id ?? null); - } - return null; - } - #createCdpTarget(targetCdpClient, parentCdpClient, targetInfo, userContext) { - this.#setEventListeners(targetCdpClient); - this.#preloadScriptStorage.onCdpTargetCreated(targetInfo.targetId, userContext); - const target = CdpTarget.create(targetInfo.targetId, targetCdpClient, this.#browserCdpClient, parentCdpClient, this.#realmStorage, this.#eventManager, this.#preloadScriptStorage, this.#browsingContextStorage, this.#networkStorage, this.#configStorage, userContext, - this.#defaultUserAgent, this.#logger); - this.#networkStorage.onCdpTargetCreated(target); - this.#bluetoothProcessor.onCdpTargetCreated(target); - this.#speculationProcessor.onCdpTargetCreated(target); - return target; - } - #workers = new Map(); - #handleWorkerTarget(realmType, cdpTarget, ownerRealm) { - cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => { - const { uniqueId, id, origin } = params.context; - const workerRealm = new WorkerRealm(cdpTarget.cdpClient, this.#eventManager, id, this.#logger, serializeOrigin(origin), ownerRealm ? [ownerRealm] : [], uniqueId, this.#realmStorage, realmType); - this.#workers.set(cdpTarget.cdpSessionId, workerRealm); - }); - } - #handleDetachedFromTargetEvent({ sessionId, targetId, }) { - if (targetId) { - this.#preloadScriptStorage.find({ targetId }).map((preloadScript) => { - preloadScript.dispose(targetId); - }); - } - const context = this.#browsingContextStorage.findContextBySession(sessionId); - if (context) { - context.dispose(true); - return; - } - const worker = this.#workers.get(sessionId); - if (worker) { - this.#realmStorage.deleteRealms({ - cdpSessionId: worker.cdpClient.sessionId, - }); - } - } - #handleTargetInfoChangedEvent(params) { - const context = this.#browsingContextStorage.findContext(params.targetInfo.targetId); - if (context) { - context.onTargetInfoChanged(params); - } - } - #handleTargetCrashedEvent(cdpClient) { - const realms = this.#realmStorage.findRealms({ - cdpSessionId: cdpClient.sessionId, - }); - for (const realm of realms) { - realm.dispose(); - } - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class BrowsingContextStorage { - #contexts = new Map(); - #eventEmitter = new EventEmitter(); - getTopLevelContexts() { - return this.getAllContexts().filter((context) => context.isTopLevelContext()); - } - getAllContexts() { - return Array.from(this.#contexts.values()); - } - deleteContextById(id) { - this.#contexts.delete(id); - } - deleteContext(context) { - this.#contexts.delete(context.id); - } - addContext(context) { - this.#contexts.set(context.id, context); - this.#eventEmitter.emit("added" , { - browsingContext: context, - }); - } - waitForContext(browsingContextId) { - if (this.#contexts.has(browsingContextId)) { - return Promise.resolve(this.getContext(browsingContextId)); - } - return new Promise((resolve) => { - const listener = (event) => { - if (event.browsingContext.id === browsingContextId) { - this.#eventEmitter.off("added" , listener); - resolve(event.browsingContext); - } - }; - this.#eventEmitter.on("added" , listener); - }); - } - hasContext(id) { - return this.#contexts.has(id); - } - findContext(id) { - return this.#contexts.get(id); - } - findTopLevelContextId(id) { - if (id === null) { - return null; - } - const maybeContext = this.findContext(id); - if (!maybeContext) { - return null; - } - const parentId = maybeContext.parentId ?? null; - if (parentId === null) { - return id; - } - return this.findTopLevelContextId(parentId); - } - findContextBySession(sessionId) { - for (const context of this.#contexts.values()) { - if (context.cdpTarget.cdpSessionId === sessionId) { - return context; - } - } - return; - } - getContext(id) { - const result = this.findContext(id); - if (result === undefined) { - throw new NoSuchFrameException(`Context ${id} not found`); - } - return result; - } - verifyTopLevelContextsList(contexts) { - const foundContexts = new Set(); - if (!contexts) { - return foundContexts; - } - for (const contextId of contexts) { - const context = this.getContext(contextId); - if (context.isTopLevelContext()) { - foundContexts.add(context); - } - else { - throw new InvalidArgumentException(`Non top-level context '${contextId}' given.`); - } - } - return foundContexts; - } - verifyContextsList(contexts) { - if (!contexts.length) { - return; - } - for (const contextId of contexts) { - this.getContext(contextId); - } - } - } - - /* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class PreloadScriptStorage { - #scripts = new Set(); - find(filter) { - if (!filter) { - return [...this.#scripts]; - } - return [...this.#scripts].filter((script) => { - if (script.contexts === undefined && script.userContexts === undefined) { - return true; - } - if (filter.targetId !== undefined && - script.targetIds.has(filter.targetId)) { - return true; - } - return false; - }); - } - add(preloadScript) { - this.#scripts.add(preloadScript); - } - remove(id) { - const script = [...this.#scripts].find((script) => script.id === id); - if (script === undefined) { - throw new NoSuchScriptException(`No preload script with id '${id}'`); - } - this.#scripts.delete(script); - } - getPreloadScript(id) { - const script = [...this.#scripts].find((script) => script.id === id); - if (script === undefined) { - throw new NoSuchScriptException(`No preload script with id '${id}'`); - } - return script; - } - onCdpTargetCreated(targetId, userContext) { - const scriptInUserContext = [...this.#scripts].filter((script) => { - if (!script.userContexts && !script.contexts) { - return true; - } - return script.userContexts?.includes(userContext); - }); - for (const script of scriptInUserContext) { - script.targetIds.add(targetId); - } - } - } - - class RealmStorage { - #knownHandlesToRealmMap = new Map(); - #realmMap = new Map(); - hiddenSandboxes = new Set(); - get knownHandlesToRealmMap() { - return this.#knownHandlesToRealmMap; - } - addRealm(realm) { - this.#realmMap.set(realm.realmId, realm); - } - findRealms(filter) { - const sandboxFilterValue = filter.sandbox === null ? undefined : filter.sandbox; - return Array.from(this.#realmMap.values()).filter((realm) => { - if (filter.realmId !== undefined && filter.realmId !== realm.realmId) { - return false; - } - if (filter.browsingContextId !== undefined && - !realm.associatedBrowsingContexts - .map((browsingContext) => browsingContext.id) - .includes(filter.browsingContextId)) { - return false; - } - if (filter.sandbox !== undefined && - (!(realm instanceof WindowRealm) || - sandboxFilterValue !== realm.sandbox)) { - return false; - } - if (filter.executionContextId !== undefined && - filter.executionContextId !== realm.executionContextId) { - return false; - } - if (filter.origin !== undefined && filter.origin !== realm.origin) { - return false; - } - if (filter.type !== undefined && filter.type !== realm.realmType) { - return false; - } - if (filter.cdpSessionId !== undefined && - filter.cdpSessionId !== realm.cdpClient.sessionId) { - return false; - } - if (filter.isHidden !== undefined && - filter.isHidden !== realm.isHidden()) { - return false; - } - return true; - }); - } - findRealm(filter) { - return this.findRealms(filter)[0]; - } - getRealm(filter) { - const maybeRealm = this.findRealm(filter); - if (maybeRealm === undefined) { - throw new NoSuchFrameException(`Realm ${JSON.stringify(filter)} not found`); - } - return maybeRealm; - } - deleteRealms(filter) { - this.findRealms(filter).map((realm) => { - realm.dispose(); - this.#realmMap.delete(realm.realmId); - Array.from(this.knownHandlesToRealmMap.entries()) - .filter(([, r]) => r === realm.realmId) - .map(([handle]) => this.knownHandlesToRealmMap.delete(handle)); - }); - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - let Buffer$1 = class Buffer { - #capacity; - #entries = []; - #onItemRemoved; - constructor(capacity, onItemRemoved) { - this.#capacity = capacity; - this.#onItemRemoved = onItemRemoved; - } - get() { - return this.#entries; - } - add(value) { - this.#entries.push(value); - while (this.#entries.length > this.#capacity) { - const item = this.#entries.shift(); - if (item !== undefined) { - this.#onItemRemoved?.(item); - } - } - } - }; - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class IdWrapper { - static #counter = 0; - #id; - constructor() { - this.#id = ++IdWrapper.#counter; - } - get id() { - return this.#id; - } - } - - /** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function isCdpEvent(name) { - return (name.split('.').at(0)?.startsWith(BiDiModule.Cdp) ?? false); - } - function assertSupportedEvent(name) { - if (!EVENT_NAMES.has(name) && !isCdpEvent(name)) { - throw new InvalidArgumentException(`Unknown event: ${name}`); - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function unrollEvents(events) { - const allEvents = new Set(); - function addEvents(events) { - for (const event of events) { - allEvents.add(event); - } - } - for (const event of events) { - switch (event) { - case BiDiModule.Bluetooth: - addEvents(Object.values(Bluetooth$2.EventNames)); - break; - case BiDiModule.BrowsingContext: - addEvents(Object.values(BrowsingContext$2.EventNames)); - break; - case BiDiModule.Input: - addEvents(Object.values(Input$2.EventNames)); - break; - case BiDiModule.Log: - addEvents(Object.values(Log$1.EventNames)); - break; - case BiDiModule.Network: - addEvents(Object.values(Network$2.EventNames)); - break; - case BiDiModule.Script: - addEvents(Object.values(Script$2.EventNames)); - break; - case BiDiModule.Speculation: - addEvents(Object.values(Speculation.EventNames)); - break; - default: - allEvents.add(event); - } - } - return allEvents.values(); - } - class SubscriptionManager { - #subscriptions = []; - #knownSubscriptionIds = new Set(); - #browsingContextStorage; - constructor(browsingContextStorage) { - this.#browsingContextStorage = browsingContextStorage; - } - getGoogChannelsSubscribedToEvent(eventName, contextId) { - const googChannels = new Set(); - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, eventName, contextId)) { - googChannels.add(subscription.googChannel); - } - } - return Array.from(googChannels); - } - getGoogChannelsSubscribedToEventGlobally(eventName) { - const googChannels = new Set(); - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, eventName)) { - googChannels.add(subscription.googChannel); - } - } - return Array.from(googChannels); - } - #isSubscribedTo(subscription, moduleOrEvent, browsingContextId) { - let includesEvent = false; - for (const eventName of subscription.eventNames) { - if ( - eventName === moduleOrEvent || - eventName === moduleOrEvent.split('.').at(0) || - eventName.split('.').at(0) === moduleOrEvent) { - includesEvent = true; - break; - } - } - if (!includesEvent) { - return false; - } - if (subscription.userContextIds.size !== 0) { - if (!browsingContextId) { - return false; - } - const context = this.#browsingContextStorage.findContext(browsingContextId); - if (!context) { - return false; - } - return subscription.userContextIds.has(context.userContext); - } - if (subscription.topLevelTraversableIds.size !== 0) { - if (!browsingContextId) { - return false; - } - const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(browsingContextId); - return (topLevelContext !== null && - subscription.topLevelTraversableIds.has(topLevelContext)); - } - return true; - } - isSubscribedTo(moduleOrEvent, contextId) { - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, moduleOrEvent, contextId)) { - return true; - } - } - return false; - } - subscribe(eventNames, contextIds, userContextIds, googChannel) { - const subscription = { - id: uuidv4(), - eventNames: new Set(unrollEvents(eventNames)), - topLevelTraversableIds: new Set(contextIds.map((contextId) => { - const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(contextId); - if (!topLevelContext) { - throw new NoSuchFrameException(`Top-level navigable not found for context id ${contextId}`); - } - return topLevelContext; - })), - userContextIds: new Set(userContextIds), - googChannel, - }; - this.#subscriptions.push(subscription); - this.#knownSubscriptionIds.add(subscription.id); - return subscription; - } - unsubscribe(inputEventNames, googChannel) { - const eventNames = new Set(unrollEvents(inputEventNames)); - const newSubscriptions = []; - const eventsMatched = new Set(); - for (const subscription of this.#subscriptions) { - if (subscription.googChannel !== googChannel) { - newSubscriptions.push(subscription); - continue; - } - if (subscription.userContextIds.size !== 0) { - newSubscriptions.push(subscription); - continue; - } - if (intersection(subscription.eventNames, eventNames).size === 0) { - newSubscriptions.push(subscription); - continue; - } - if (subscription.topLevelTraversableIds.size !== 0) { - newSubscriptions.push(subscription); - continue; - } - const subscriptionEventNames = new Set(subscription.eventNames); - for (const eventName of eventNames) { - if (subscriptionEventNames.has(eventName)) { - eventsMatched.add(eventName); - subscriptionEventNames.delete(eventName); - } - } - if (subscriptionEventNames.size !== 0) { - newSubscriptions.push({ - ...subscription, - eventNames: subscriptionEventNames, - }); - } - } - if (!equal(eventsMatched, eventNames)) { - throw new InvalidArgumentException('No subscription found'); - } - this.#subscriptions = newSubscriptions; - } - unsubscribeById(subscriptionIds) { - const subscriptionIdsSet = new Set(subscriptionIds); - const unknownIds = difference(subscriptionIdsSet, this.#knownSubscriptionIds); - if (unknownIds.size !== 0) { - throw new InvalidArgumentException('No subscription found'); - } - this.#subscriptions = this.#subscriptions.filter((subscription) => { - return !subscriptionIdsSet.has(subscription.id); - }); - this.#knownSubscriptionIds = difference(this.#knownSubscriptionIds, subscriptionIdsSet); - } - } - function intersection(setA, setB) { - const result = new Set(); - for (const a of setA) { - if (setB.has(a)) { - result.add(a); - } - } - return result; - } - function difference(setA, setB) { - const result = new Set(); - for (const a of setA) { - if (!setB.has(a)) { - result.add(a); - } - } - return result; - } - function equal(setA, setB) { - if (setA.size !== setB.size) { - return false; - } - for (const a of setA) { - if (!setB.has(a)) { - return false; - } - } - return true; - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var _a$2; - class EventWrapper { - #idWrapper = new IdWrapper(); - #contextId; - #event; - constructor(event, contextId) { - this.#event = event; - this.#contextId = contextId; - } - get id() { - return this.#idWrapper.id; - } - get contextId() { - return this.#contextId; - } - get event() { - return this.#event; - } - } - const eventBufferLength = new Map([[Log$1.EventNames.LogEntryAdded, 100]]); - class EventManager extends EventEmitter { - #eventToContextsMap = new DefaultMap(() => new Set()); - #eventBuffers = new Map(); - #lastMessageSent = new Map(); - #subscriptionManager; - #browsingContextStorage; - #subscribeHooks; - #userContextStorage; - constructor(browsingContextStorage, userContextStorage) { - super(); - this.#browsingContextStorage = browsingContextStorage; - this.#userContextStorage = userContextStorage; - this.#subscriptionManager = new SubscriptionManager(browsingContextStorage); - this.#subscribeHooks = new DefaultMap(() => []); - } - get subscriptionManager() { - return this.#subscriptionManager; - } - static #getMapKey(eventName, browsingContext) { - return JSON.stringify({ eventName, browsingContext }); - } - addSubscribeHook(event, hook) { - this.#subscribeHooks.get(event).push(hook); - } - registerEvent(event, contextId) { - this.registerPromiseEvent(Promise.resolve({ - kind: 'success', - value: event, - }), contextId, event.method); - } - registerGlobalEvent(event) { - this.registerGlobalPromiseEvent(Promise.resolve({ - kind: 'success', - value: event, - }), event.method); - } - registerPromiseEvent(event, contextId, eventName) { - const eventWrapper = new EventWrapper(event, contextId); - const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEvent(eventName, contextId); - this.#bufferEvent(eventWrapper, eventName); - for (const googChannel of sortedGoogChannels) { - this.emit("event" , { - message: OutgoingMessage.createFromPromise(event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - registerGlobalPromiseEvent(event, eventName) { - const eventWrapper = new EventWrapper(event, null); - const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEventGlobally(eventName); - this.#bufferEvent(eventWrapper, eventName); - for (const googChannel of sortedGoogChannels) { - this.emit("event" , { - message: OutgoingMessage.createFromPromise(event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - async subscribe(eventNames, contextIds, userContextIds, googChannel) { - for (const name of eventNames) { - assertSupportedEvent(name); - } - if (userContextIds.length && contextIds.length) { - throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.'); - } - this.#browsingContextStorage.verifyContextsList(contextIds); - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - const unrolledEventNames = new Set(unrollEvents(eventNames)); - const subscribeStepEvents = new Map(); - const subscriptionNavigableIds = new Set(contextIds.length - ? contextIds.map((contextId) => { - const id = this.#browsingContextStorage.findTopLevelContextId(contextId); - if (!id) { - throw new InvalidArgumentException('Invalid context id'); - } - return id; - }) - : this.#browsingContextStorage.getTopLevelContexts().map((c) => c.id)); - for (const eventName of unrolledEventNames) { - const subscribedNavigableIds = new Set(this.#browsingContextStorage - .getTopLevelContexts() - .map((c) => c.id) - .filter((id) => { - return this.#subscriptionManager.isSubscribedTo(eventName, id); - })); - subscribeStepEvents.set(eventName, difference(subscriptionNavigableIds, subscribedNavigableIds)); - } - const subscription = this.#subscriptionManager.subscribe(eventNames, contextIds, userContextIds, googChannel); - for (const eventName of subscription.eventNames) { - for (const contextId of subscriptionNavigableIds) { - for (const eventWrapper of this.#getBufferedEvents(eventName, contextId, googChannel)) { - this.emit("event" , { - message: OutgoingMessage.createFromPromise(eventWrapper.event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - } - for (const [eventName, contextIds] of subscribeStepEvents) { - for (const contextId of contextIds) { - this.#subscribeHooks.get(eventName).forEach((hook) => hook(contextId)); - } - } - await this.toggleModulesIfNeeded(); - return subscription.id; - } - async unsubscribe(eventNames, googChannel) { - for (const name of eventNames) { - assertSupportedEvent(name); - } - this.#subscriptionManager.unsubscribe(eventNames, googChannel); - await this.toggleModulesIfNeeded(); - } - async unsubscribeByIds(subscriptionIds) { - this.#subscriptionManager.unsubscribeById(subscriptionIds); - await this.toggleModulesIfNeeded(); - } - async toggleModulesIfNeeded() { - await Promise.all(this.#browsingContextStorage.getAllContexts().map(async (context) => { - return await context.toggleModulesIfNeeded(); - })); - } - clearBufferedEvents(contextId) { - for (const eventName of eventBufferLength.keys()) { - const bufferMapKey = _a$2.#getMapKey(eventName, contextId); - this.#eventBuffers.delete(bufferMapKey); - } - } - #bufferEvent(eventWrapper, eventName) { - if (!eventBufferLength.has(eventName)) { - return; - } - const bufferMapKey = _a$2.#getMapKey(eventName, eventWrapper.contextId); - if (!this.#eventBuffers.has(bufferMapKey)) { - this.#eventBuffers.set(bufferMapKey, new Buffer$1(eventBufferLength.get(eventName))); - } - this.#eventBuffers.get(bufferMapKey).add(eventWrapper); - this.#eventToContextsMap.get(eventName).add(eventWrapper.contextId); - } - #markEventSent(eventWrapper, googChannel, eventName) { - if (!eventBufferLength.has(eventName)) { - return; - } - const lastSentMapKey = _a$2.#getMapKey(eventName, eventWrapper.contextId); - const lastId = Math.max(this.#lastMessageSent.get(lastSentMapKey)?.get(googChannel) ?? 0, eventWrapper.id); - const googChannelMap = this.#lastMessageSent.get(lastSentMapKey); - if (googChannelMap) { - googChannelMap.set(googChannel, lastId); - } - else { - this.#lastMessageSent.set(lastSentMapKey, new Map([[googChannel, lastId]])); - } - } - #getBufferedEvents(eventName, contextId, googChannel) { - const bufferMapKey = _a$2.#getMapKey(eventName, contextId); - const lastSentMessageId = this.#lastMessageSent.get(bufferMapKey)?.get(googChannel) ?? -Infinity; - const result = this.#eventBuffers - .get(bufferMapKey) - ?.get() - .filter((wrapper) => wrapper.id > lastSentMessageId) ?? []; - if (contextId === null) { - Array.from(this.#eventToContextsMap.get(eventName).keys()) - .filter((_contextId) => - _contextId !== null && - this.#browsingContextStorage.hasContext(_contextId)) - .map((_contextId) => this.#getBufferedEvents(eventName, _contextId, googChannel)) - .forEach((events) => result.push(...events)); - } - return result.sort((e1, e2) => e1.id - e2.id); - } - } - _a$2 = EventManager; - - /** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class SpeculationProcessor { - #eventManager; - #logger; - constructor(eventManager, logger) { - this.#eventManager = eventManager; - this.#logger = logger; - } - onCdpTargetCreated(cdpTarget) { - cdpTarget.cdpClient.on('Preload.prefetchStatusUpdated', (event) => { - let prefetchStatus; - switch (event.status) { - case 'Running': - prefetchStatus = "pending" ; - break; - case 'Ready': - prefetchStatus = "ready" ; - break; - case 'Success': - prefetchStatus = "success" ; - break; - case 'Failure': - prefetchStatus = "failure" ; - break; - default: - this.#logger?.(LogType.debugWarn, `Unknown prefetch status: ${event.status}`); - return; - } - this.#eventManager.registerEvent({ - type: 'event', - method: 'speculation.prefetchStatusUpdated', - params: { - context: event.initiatingFrameId, - url: event.prefetchUrl, - status: prefetchStatus, - }, - }, cdpTarget.id); - }); - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class BidiServer extends EventEmitter { - #messageQueue; - #transport; - #commandProcessor; - #eventManager; - #browsingContextStorage = new BrowsingContextStorage(); - #realmStorage = new RealmStorage(); - #preloadScriptStorage = new PreloadScriptStorage(); - #bluetoothProcessor; - #speculationProcessor; - #logger; - #handleIncomingMessage = (message) => { - void this.#commandProcessor.processCommand(message).catch((error) => { - this.#logger?.(LogType.debugError, error); - }); - }; - #processOutgoingMessage = async (messageEntry) => { - const message = messageEntry.message; - if (messageEntry.googChannel !== null) { - message['goog:channel'] = messageEntry.googChannel; - } - await this.#transport.sendMessage(message); - }; - constructor(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, defaultUserAgent, parser, logger) { - super(); - this.#logger = logger; - this.#messageQueue = new ProcessingQueue(this.#processOutgoingMessage, this.#logger); - this.#transport = bidiTransport; - this.#transport.setOnMessage(this.#handleIncomingMessage); - const contextConfigStorage = new ContextConfigStorage(); - const userContextStorage = new UserContextStorage(browserCdpClient); - this.#eventManager = new EventManager(this.#browsingContextStorage, userContextStorage); - const networkStorage = new NetworkStorage(this.#eventManager, this.#browsingContextStorage, browserCdpClient, logger); - this.#bluetoothProcessor = new BluetoothProcessor(this.#eventManager, this.#browsingContextStorage); - this.#speculationProcessor = new SpeculationProcessor(this.#eventManager, this.#logger); - this.#commandProcessor = new CommandProcessor(cdpConnection, browserCdpClient, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#preloadScriptStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, userContextStorage, parser, async (options) => { - await browserCdpClient.sendCommand('Security.setIgnoreCertificateErrors', { - ignore: options.acceptInsecureCerts ?? false, - }); - contextConfigStorage.updateGlobalConfig({ - acceptInsecureCerts: options.acceptInsecureCerts ?? false, - userPromptHandler: options.unhandledPromptBehavior, - prerenderingDisabled: options?.['goog:prerenderingDisabled'] ?? false, - disableNetworkDurableMessages: options?.['goog:disableNetworkDurableMessages'], - }); - new CdpTargetManager(cdpConnection, browserCdpClient, selfTargetId, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, this.#speculationProcessor, this.#preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger); - await browserCdpClient.sendCommand('Target.setDiscoverTargets', { - discover: true, - }); - await browserCdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - filter: [ - { - type: 'page', - exclude: true, - }, - {}, - ], - }); - await this.#topLevelContextsLoaded(); - }, this.#logger); - this.#eventManager.on("event" , ({ message, event }) => { - this.emitOutgoingMessage(message, event); - }); - this.#commandProcessor.on("response" , ({ message, event }) => { - this.emitOutgoingMessage(message, event); - }); - } - static async createAndStart(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, parser, logger) { - const [defaultUserContextId, version] = await Promise.all([ - this.#getDefaultUserContextId(browserCdpClient), - browserCdpClient.sendCommand('Browser.getVersion'), - browserCdpClient.sendCommand('Browser.setDownloadBehavior', { - behavior: 'default', - eventsEnabled: true, - }), - ]); - const server = new BidiServer(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, version.userAgent, parser, logger); - return server; - } - static async #getDefaultUserContextId(browserCdpClient) { - const [{ defaultBrowserContextId, browserContextIds }, { targetInfos }] = await Promise.all([ - browserCdpClient.sendCommand('Target.getBrowserContexts'), - browserCdpClient.sendCommand('Target.getTargets'), - ]); - if (defaultBrowserContextId) { - return defaultBrowserContextId; - } - for (const info of targetInfos) { - if (info.browserContextId && - !browserContextIds.includes(info.browserContextId)) { - return info.browserContextId; - } - } - return 'default'; - } - emitOutgoingMessage(messageEntry, event) { - this.#messageQueue.add(messageEntry, event); - } - close() { - this.#transport.close(); - } - async #topLevelContextsLoaded() { - await Promise.all(this.#browsingContextStorage - .getTopLevelContexts() - .map((c) => c.lifecycleLoaded())); - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - class CloseError extends Error { - } - class MapperCdpClient extends EventEmitter { - #cdpConnection; - #sessionId; - constructor(cdpConnection, sessionId) { - super(); - this.#cdpConnection = cdpConnection; - this.#sessionId = sessionId; - } - get sessionId() { - return this.#sessionId; - } - sendCommand(method, ...params) { - return this.#cdpConnection.sendCommand(method, params[0], this.#sessionId); - } - isCloseError(error) { - return error instanceof CloseError; - } - } - - var _a$1; - class MapperCdpConnection { - static LOGGER_PREFIX_RECV = `${LogType.cdp}:RECV ◂`; - static LOGGER_PREFIX_SEND = `${LogType.cdp}:SEND ▸`; - #mainBrowserCdpClient; - #transport; - #sessionCdpClients = new Map(); - #commandCallbacks = new Map(); - #logger; - #nextId = 0; - constructor(transport, logger) { - this.#transport = transport; - this.#logger = logger; - this.#transport.setOnMessage(this.#onMessage); - this.#mainBrowserCdpClient = this.#createCdpClient(undefined); - } - close() { - this.#transport.close(); - for (const [, { reject, error }] of this.#commandCallbacks) { - reject(error); - } - this.#commandCallbacks.clear(); - this.#sessionCdpClients.clear(); - } - async createBrowserSession() { - const { sessionId } = await this.#mainBrowserCdpClient.sendCommand('Target.attachToBrowserTarget'); - return this.#createCdpClient(sessionId); - } - getCdpClient(sessionId) { - const cdpClient = this.#sessionCdpClients.get(sessionId); - if (!cdpClient) { - throw new Error(`Unknown CDP session ID: ${sessionId}`); - } - return cdpClient; - } - sendCommand(method, params, sessionId) { - return new Promise((resolve, reject) => { - const id = this.#nextId++; - this.#commandCallbacks.set(id, { - sessionId, - resolve, - reject, - error: new CloseError(`${method} ${JSON.stringify(params)} ${sessionId ?? ''} call rejected because the connection has been closed.`), - }); - const cdpMessage = { id, method, params }; - if (sessionId) { - cdpMessage.sessionId = sessionId; - } - void this.#transport - .sendMessage(JSON.stringify(cdpMessage)) - ?.catch((error) => { - this.#logger?.(LogType.debugError, error); - this.#transport.close(); - }); - this.#logger?.(_a$1.LOGGER_PREFIX_SEND, cdpMessage); - }); - } - #onMessage = (json) => { - const message = JSON.parse(json); - this.#logger?.(_a$1.LOGGER_PREFIX_RECV, message); - if (message.method === 'Target.attachedToTarget') { - const { sessionId } = message.params; - this.#createCdpClient(sessionId); - } - if (message.id !== undefined) { - const callbacks = this.#commandCallbacks.get(message.id); - this.#commandCallbacks.delete(message.id); - if (callbacks) { - if (message.result) { - callbacks.resolve(message.result); - } - else if (message.error) { - callbacks.reject(message.error); - } - } - } - else if (message.method) { - const client = this.#sessionCdpClients.get(message.sessionId ?? undefined); - client?.emit(message.method, message.params || {}); - if (message.method === 'Target.detachedFromTarget') { - const { sessionId } = message.params; - const client = this.#sessionCdpClients.get(sessionId); - if (client) { - this.#sessionCdpClients.delete(sessionId); - client.removeAllListeners(); - } - for (const callback of this.#commandCallbacks.values()) { - if (callback.sessionId === sessionId) { - callback.reject(callback.error); - } - } - } - } - }; - #createCdpClient(sessionId) { - const cdpClient = new MapperCdpClient(this, sessionId); - this.#sessionCdpClients.set(sessionId, cdpClient); - return cdpClient; - } - } - _a$1 = MapperCdpConnection; - - var util; - (function (util) { - util.assertEqual = (_) => { }; - function assertIs(_arg) { } - util.assertIs = assertIs; - function assertNever(_x) { - throw new Error(); - } - util.assertNever = assertNever; - util.arrayToEnum = (items) => { - const obj = {}; - for (const item of items) { - obj[item] = item; - } - return obj; - }; - util.getValidEnumValues = (obj) => { - const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== "number"); - const filtered = {}; - for (const k of validKeys) { - filtered[k] = obj[k]; - } - return util.objectValues(filtered); - }; - util.objectValues = (obj) => { - return util.objectKeys(obj).map(function (e) { - return obj[e]; - }); - }; - util.objectKeys = typeof Object.keys === "function" - ? (obj) => Object.keys(obj) - : (object) => { - const keys = []; - for (const key in object) { - if (Object.prototype.hasOwnProperty.call(object, key)) { - keys.push(key); - } - } - return keys; - }; - util.find = (arr, checker) => { - for (const item of arr) { - if (checker(item)) - return item; - } - return undefined; - }; - util.isInteger = typeof Number.isInteger === "function" - ? (val) => Number.isInteger(val) - : (val) => typeof val === "number" && Number.isFinite(val) && Math.floor(val) === val; - function joinValues(array, separator = " | ") { - return array.map((val) => (typeof val === "string" ? `'${val}'` : val)).join(separator); - } - util.joinValues = joinValues; - util.jsonStringifyReplacer = (_, value) => { - if (typeof value === "bigint") { - return value.toString(); - } - return value; - }; - })(util || (util = {})); - var objectUtil; - (function (objectUtil) { - objectUtil.mergeShapes = (first, second) => { - return { - ...first, - ...second, - }; - }; - })(objectUtil || (objectUtil = {})); - const ZodParsedType = util.arrayToEnum([ - "string", - "nan", - "number", - "integer", - "float", - "boolean", - "date", - "bigint", - "symbol", - "function", - "undefined", - "null", - "array", - "object", - "unknown", - "promise", - "void", - "never", - "map", - "set", - ]); - const getParsedType = (data) => { - const t = typeof data; - switch (t) { - case "undefined": - return ZodParsedType.undefined; - case "string": - return ZodParsedType.string; - case "number": - return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; - case "boolean": - return ZodParsedType.boolean; - case "function": - return ZodParsedType.function; - case "bigint": - return ZodParsedType.bigint; - case "symbol": - return ZodParsedType.symbol; - case "object": - if (Array.isArray(data)) { - return ZodParsedType.array; - } - if (data === null) { - return ZodParsedType.null; - } - if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { - return ZodParsedType.promise; - } - if (typeof Map !== "undefined" && data instanceof Map) { - return ZodParsedType.map; - } - if (typeof Set !== "undefined" && data instanceof Set) { - return ZodParsedType.set; - } - if (typeof Date !== "undefined" && data instanceof Date) { - return ZodParsedType.date; - } - return ZodParsedType.object; - default: - return ZodParsedType.unknown; - } - }; - - const ZodIssueCode = util.arrayToEnum([ - "invalid_type", - "invalid_literal", - "custom", - "invalid_union", - "invalid_union_discriminator", - "invalid_enum_value", - "unrecognized_keys", - "invalid_arguments", - "invalid_return_type", - "invalid_date", - "invalid_string", - "too_small", - "too_big", - "invalid_intersection_types", - "not_multiple_of", - "not_finite", - ]); - const quotelessJson = (obj) => { - const json = JSON.stringify(obj, null, 2); - return json.replace(/"([^"]+)":/g, "$1:"); - }; - class ZodError extends Error { - get errors() { - return this.issues; - } - constructor(issues) { - super(); - this.issues = []; - this.addIssue = (sub) => { - this.issues = [...this.issues, sub]; - }; - this.addIssues = (subs = []) => { - this.issues = [...this.issues, ...subs]; - }; - const actualProto = new.target.prototype; - if (Object.setPrototypeOf) { - Object.setPrototypeOf(this, actualProto); - } - else { - this.__proto__ = actualProto; - } - this.name = "ZodError"; - this.issues = issues; - } - format(_mapper) { - const mapper = _mapper || - function (issue) { - return issue.message; - }; - const fieldErrors = { _errors: [] }; - const processError = (error) => { - for (const issue of error.issues) { - if (issue.code === "invalid_union") { - issue.unionErrors.map(processError); - } - else if (issue.code === "invalid_return_type") { - processError(issue.returnTypeError); - } - else if (issue.code === "invalid_arguments") { - processError(issue.argumentsError); - } - else if (issue.path.length === 0) { - fieldErrors._errors.push(mapper(issue)); - } - else { - let curr = fieldErrors; - let i = 0; - while (i < issue.path.length) { - const el = issue.path[i]; - const terminal = i === issue.path.length - 1; - if (!terminal) { - curr[el] = curr[el] || { _errors: [] }; - } - else { - curr[el] = curr[el] || { _errors: [] }; - curr[el]._errors.push(mapper(issue)); - } - curr = curr[el]; - i++; - } - } - } - }; - processError(this); - return fieldErrors; - } - static assert(value) { - if (!(value instanceof ZodError)) { - throw new Error(`Not a ZodError: ${value}`); - } - } - toString() { - return this.message; - } - get message() { - return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); - } - get isEmpty() { - return this.issues.length === 0; - } - flatten(mapper = (issue) => issue.message) { - const fieldErrors = {}; - const formErrors = []; - for (const sub of this.issues) { - if (sub.path.length > 0) { - const firstEl = sub.path[0]; - fieldErrors[firstEl] = fieldErrors[firstEl] || []; - fieldErrors[firstEl].push(mapper(sub)); - } - else { - formErrors.push(mapper(sub)); - } - } - return { formErrors, fieldErrors }; - } - get formErrors() { - return this.flatten(); - } - } - ZodError.create = (issues) => { - const error = new ZodError(issues); - return error; - }; - - const errorMap = (issue, _ctx) => { - let message; - switch (issue.code) { - case ZodIssueCode.invalid_type: - if (issue.received === ZodParsedType.undefined) { - message = "Required"; - } - else { - message = `Expected ${issue.expected}, received ${issue.received}`; - } - break; - case ZodIssueCode.invalid_literal: - message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; - break; - case ZodIssueCode.unrecognized_keys: - message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; - break; - case ZodIssueCode.invalid_union: - message = `Invalid input`; - break; - case ZodIssueCode.invalid_union_discriminator: - message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; - break; - case ZodIssueCode.invalid_enum_value: - message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; - break; - case ZodIssueCode.invalid_arguments: - message = `Invalid function arguments`; - break; - case ZodIssueCode.invalid_return_type: - message = `Invalid function return type`; - break; - case ZodIssueCode.invalid_date: - message = `Invalid date`; - break; - case ZodIssueCode.invalid_string: - if (typeof issue.validation === "object") { - if ("includes" in issue.validation) { - message = `Invalid input: must include "${issue.validation.includes}"`; - if (typeof issue.validation.position === "number") { - message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; - } - } - else if ("startsWith" in issue.validation) { - message = `Invalid input: must start with "${issue.validation.startsWith}"`; - } - else if ("endsWith" in issue.validation) { - message = `Invalid input: must end with "${issue.validation.endsWith}"`; - } - else { - util.assertNever(issue.validation); - } - } - else if (issue.validation !== "regex") { - message = `Invalid ${issue.validation}`; - } - else { - message = "Invalid"; - } - break; - case ZodIssueCode.too_small: - if (issue.type === "array") - message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; - else if (issue.type === "string") - message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; - else if (issue.type === "number") - message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; - else if (issue.type === "bigint") - message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; - else if (issue.type === "date") - message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; - else - message = "Invalid input"; - break; - case ZodIssueCode.too_big: - if (issue.type === "array") - message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; - else if (issue.type === "string") - message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; - else if (issue.type === "number") - message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; - else if (issue.type === "bigint") - message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; - else if (issue.type === "date") - message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; - else - message = "Invalid input"; - break; - case ZodIssueCode.custom: - message = `Invalid input`; - break; - case ZodIssueCode.invalid_intersection_types: - message = `Intersection results could not be merged`; - break; - case ZodIssueCode.not_multiple_of: - message = `Number must be a multiple of ${issue.multipleOf}`; - break; - case ZodIssueCode.not_finite: - message = "Number must be finite"; - break; - default: - message = _ctx.defaultError; - util.assertNever(issue); - } - return { message }; - }; - - let overrideErrorMap = errorMap; - function setErrorMap(map) { - overrideErrorMap = map; - } - function getErrorMap() { - return overrideErrorMap; - } - - const makeIssue = (params) => { - const { data, path, errorMaps, issueData } = params; - const fullPath = [...path, ...(issueData.path || [])]; - const fullIssue = { - ...issueData, - path: fullPath, - }; - if (issueData.message !== undefined) { - return { - ...issueData, - path: fullPath, - message: issueData.message, - }; - } - let errorMessage = ""; - const maps = errorMaps - .filter((m) => !!m) - .slice() - .reverse(); - for (const map of maps) { - errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message; - } - return { - ...issueData, - path: fullPath, - message: errorMessage, - }; - }; - const EMPTY_PATH = []; - function addIssueToContext(ctx, issueData) { - const overrideMap = getErrorMap(); - const issue = makeIssue({ - issueData: issueData, - data: ctx.data, - path: ctx.path, - errorMaps: [ - ctx.common.contextualErrorMap, - ctx.schemaErrorMap, - overrideMap, - overrideMap === errorMap ? undefined : errorMap, - ].filter((x) => !!x), - }); - ctx.common.issues.push(issue); - } - class ParseStatus { - constructor() { - this.value = "valid"; - } - dirty() { - if (this.value === "valid") - this.value = "dirty"; - } - abort() { - if (this.value !== "aborted") - this.value = "aborted"; - } - static mergeArray(status, results) { - const arrayValue = []; - for (const s of results) { - if (s.status === "aborted") - return INVALID; - if (s.status === "dirty") - status.dirty(); - arrayValue.push(s.value); - } - return { status: status.value, value: arrayValue }; - } - static async mergeObjectAsync(status, pairs) { - const syncPairs = []; - for (const pair of pairs) { - const key = await pair.key; - const value = await pair.value; - syncPairs.push({ - key, - value, - }); - } - return ParseStatus.mergeObjectSync(status, syncPairs); - } - static mergeObjectSync(status, pairs) { - const finalObject = {}; - for (const pair of pairs) { - const { key, value } = pair; - if (key.status === "aborted") - return INVALID; - if (value.status === "aborted") - return INVALID; - if (key.status === "dirty") - status.dirty(); - if (value.status === "dirty") - status.dirty(); - if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { - finalObject[key.value] = value.value; - } - } - return { status: status.value, value: finalObject }; - } - } - const INVALID = Object.freeze({ - status: "aborted", - }); - const DIRTY = (value) => ({ status: "dirty", value }); - const OK = (value) => ({ status: "valid", value }); - const isAborted = (x) => x.status === "aborted"; - const isDirty = (x) => x.status === "dirty"; - const isValid = (x) => x.status === "valid"; - const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise; - - var errorUtil; - (function (errorUtil) { - errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {}; - errorUtil.toString = (message) => typeof message === "string" ? message : message?.message; - })(errorUtil || (errorUtil = {})); - - class ParseInputLazyPath { - constructor(parent, value, path, key) { - this._cachedPath = []; - this.parent = parent; - this.data = value; - this._path = path; - this._key = key; - } - get path() { - if (!this._cachedPath.length) { - if (Array.isArray(this._key)) { - this._cachedPath.push(...this._path, ...this._key); - } - else { - this._cachedPath.push(...this._path, this._key); - } - } - return this._cachedPath; - } - } - const handleResult = (ctx, result) => { - if (isValid(result)) { - return { success: true, data: result.value }; - } - else { - if (!ctx.common.issues.length) { - throw new Error("Validation failed but no issues detected."); - } - return { - success: false, - get error() { - if (this._error) - return this._error; - const error = new ZodError(ctx.common.issues); - this._error = error; - return this._error; - }, - }; - } - }; - function processCreateParams(params) { - if (!params) - return {}; - const { errorMap, invalid_type_error, required_error, description } = params; - if (errorMap && (invalid_type_error || required_error)) { - throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); - } - if (errorMap) - return { errorMap: errorMap, description }; - const customMap = (iss, ctx) => { - const { message } = params; - if (iss.code === "invalid_enum_value") { - return { message: message ?? ctx.defaultError }; - } - if (typeof ctx.data === "undefined") { - return { message: message ?? required_error ?? ctx.defaultError }; - } - if (iss.code !== "invalid_type") - return { message: ctx.defaultError }; - return { message: message ?? invalid_type_error ?? ctx.defaultError }; - }; - return { errorMap: customMap, description }; - } - class ZodType { - get description() { - return this._def.description; - } - _getType(input) { - return getParsedType(input.data); - } - _getOrReturnCtx(input, ctx) { - return (ctx || { - common: input.parent.common, - data: input.data, - parsedType: getParsedType(input.data), - schemaErrorMap: this._def.errorMap, - path: input.path, - parent: input.parent, - }); - } - _processInputParams(input) { - return { - status: new ParseStatus(), - ctx: { - common: input.parent.common, - data: input.data, - parsedType: getParsedType(input.data), - schemaErrorMap: this._def.errorMap, - path: input.path, - parent: input.parent, - }, - }; - } - _parseSync(input) { - const result = this._parse(input); - if (isAsync(result)) { - throw new Error("Synchronous parse encountered promise."); - } - return result; - } - _parseAsync(input) { - const result = this._parse(input); - return Promise.resolve(result); - } - parse(data, params) { - const result = this.safeParse(data, params); - if (result.success) - return result.data; - throw result.error; - } - safeParse(data, params) { - const ctx = { - common: { - issues: [], - async: params?.async ?? false, - contextualErrorMap: params?.errorMap, - }, - path: params?.path || [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data), - }; - const result = this._parseSync({ data, path: ctx.path, parent: ctx }); - return handleResult(ctx, result); - } - "~validate"(data) { - const ctx = { - common: { - issues: [], - async: !!this["~standard"].async, - }, - path: [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data), - }; - if (!this["~standard"].async) { - try { - const result = this._parseSync({ data, path: [], parent: ctx }); - return isValid(result) - ? { - value: result.value, - } - : { - issues: ctx.common.issues, - }; - } - catch (err) { - if (err?.message?.toLowerCase()?.includes("encountered")) { - this["~standard"].async = true; - } - ctx.common = { - issues: [], - async: true, - }; - } - } - return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) - ? { - value: result.value, - } - : { - issues: ctx.common.issues, - }); - } - async parseAsync(data, params) { - const result = await this.safeParseAsync(data, params); - if (result.success) - return result.data; - throw result.error; - } - async safeParseAsync(data, params) { - const ctx = { - common: { - issues: [], - contextualErrorMap: params?.errorMap, - async: true, - }, - path: params?.path || [], - schemaErrorMap: this._def.errorMap, - parent: null, - data, - parsedType: getParsedType(data), - }; - const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); - const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); - return handleResult(ctx, result); - } - refine(check, message) { - const getIssueProperties = (val) => { - if (typeof message === "string" || typeof message === "undefined") { - return { message }; - } - else if (typeof message === "function") { - return message(val); - } - else { - return message; - } - }; - return this._refinement((val, ctx) => { - const result = check(val); - const setError = () => ctx.addIssue({ - code: ZodIssueCode.custom, - ...getIssueProperties(val), - }); - if (typeof Promise !== "undefined" && result instanceof Promise) { - return result.then((data) => { - if (!data) { - setError(); - return false; - } - else { - return true; - } - }); - } - if (!result) { - setError(); - return false; - } - else { - return true; - } - }); - } - refinement(check, refinementData) { - return this._refinement((val, ctx) => { - if (!check(val)) { - ctx.addIssue(typeof refinementData === "function" ? refinementData(val, ctx) : refinementData); - return false; - } - else { - return true; - } - }); - } - _refinement(refinement) { - return new ZodEffects({ - schema: this, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect: { type: "refinement", refinement }, - }); - } - superRefine(refinement) { - return this._refinement(refinement); - } - constructor(def) { - this.spa = this.safeParseAsync; - this._def = def; - this.parse = this.parse.bind(this); - this.safeParse = this.safeParse.bind(this); - this.parseAsync = this.parseAsync.bind(this); - this.safeParseAsync = this.safeParseAsync.bind(this); - this.spa = this.spa.bind(this); - this.refine = this.refine.bind(this); - this.refinement = this.refinement.bind(this); - this.superRefine = this.superRefine.bind(this); - this.optional = this.optional.bind(this); - this.nullable = this.nullable.bind(this); - this.nullish = this.nullish.bind(this); - this.array = this.array.bind(this); - this.promise = this.promise.bind(this); - this.or = this.or.bind(this); - this.and = this.and.bind(this); - this.transform = this.transform.bind(this); - this.brand = this.brand.bind(this); - this.default = this.default.bind(this); - this.catch = this.catch.bind(this); - this.describe = this.describe.bind(this); - this.pipe = this.pipe.bind(this); - this.readonly = this.readonly.bind(this); - this.isNullable = this.isNullable.bind(this); - this.isOptional = this.isOptional.bind(this); - this["~standard"] = { - version: 1, - vendor: "zod", - validate: (data) => this["~validate"](data), - }; - } - optional() { - return ZodOptional.create(this, this._def); - } - nullable() { - return ZodNullable.create(this, this._def); - } - nullish() { - return this.nullable().optional(); - } - array() { - return ZodArray.create(this); - } - promise() { - return ZodPromise.create(this, this._def); - } - or(option) { - return ZodUnion.create([this, option], this._def); - } - and(incoming) { - return ZodIntersection.create(this, incoming, this._def); - } - transform(transform) { - return new ZodEffects({ - ...processCreateParams(this._def), - schema: this, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect: { type: "transform", transform }, - }); - } - default(def) { - const defaultValueFunc = typeof def === "function" ? def : () => def; - return new ZodDefault({ - ...processCreateParams(this._def), - innerType: this, - defaultValue: defaultValueFunc, - typeName: ZodFirstPartyTypeKind.ZodDefault, - }); - } - brand() { - return new ZodBranded({ - typeName: ZodFirstPartyTypeKind.ZodBranded, - type: this, - ...processCreateParams(this._def), - }); - } - catch(def) { - const catchValueFunc = typeof def === "function" ? def : () => def; - return new ZodCatch({ - ...processCreateParams(this._def), - innerType: this, - catchValue: catchValueFunc, - typeName: ZodFirstPartyTypeKind.ZodCatch, - }); - } - describe(description) { - const This = this.constructor; - return new This({ - ...this._def, - description, - }); - } - pipe(target) { - return ZodPipeline.create(this, target); - } - readonly() { - return ZodReadonly.create(this); - } - isOptional() { - return this.safeParse(undefined).success; - } - isNullable() { - return this.safeParse(null).success; - } - } - const cuidRegex = /^c[^\s-]{8,}$/i; - const cuid2Regex = /^[0-9a-z]+$/; - const ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; - const uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; - const nanoidRegex = /^[a-z0-9_-]{21}$/i; - const jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; - const durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; - const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; - const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; - let emojiRegex; - const ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; - const ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/; - const ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; - const ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; - const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; - const base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; - const dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`; - const dateRegex = new RegExp(`^${dateRegexSource}$`); - function timeRegexSource(args) { - let secondsRegexSource = `[0-5]\\d`; - if (args.precision) { - secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`; - } - else if (args.precision == null) { - secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`; - } - const secondsQuantifier = args.precision ? "+" : "?"; - return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`; - } - function timeRegex(args) { - return new RegExp(`^${timeRegexSource(args)}$`); - } - function datetimeRegex(args) { - let regex = `${dateRegexSource}T${timeRegexSource(args)}`; - const opts = []; - opts.push(args.local ? `Z?` : `Z`); - if (args.offset) - opts.push(`([+-]\\d{2}:?\\d{2})`); - regex = `${regex}(${opts.join("|")})`; - return new RegExp(`^${regex}$`); - } - function isValidIP(ip, version) { - if ((version === "v4" || !version) && ipv4Regex.test(ip)) { - return true; - } - if ((version === "v6" || !version) && ipv6Regex.test(ip)) { - return true; - } - return false; - } - function isValidJWT(jwt, alg) { - if (!jwtRegex.test(jwt)) - return false; - try { - const [header] = jwt.split("."); - if (!header) - return false; - const base64 = header - .replace(/-/g, "+") - .replace(/_/g, "/") - .padEnd(header.length + ((4 - (header.length % 4)) % 4), "="); - const decoded = JSON.parse(atob(base64)); - if (typeof decoded !== "object" || decoded === null) - return false; - if ("typ" in decoded && decoded?.typ !== "JWT") - return false; - if (!decoded.alg) - return false; - if (alg && decoded.alg !== alg) - return false; - return true; - } - catch { - return false; - } - } - function isValidCidr(ip, version) { - if ((version === "v4" || !version) && ipv4CidrRegex.test(ip)) { - return true; - } - if ((version === "v6" || !version) && ipv6CidrRegex.test(ip)) { - return true; - } - return false; - } - class ZodString extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = String(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.string) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.string, - received: ctx.parsedType, - }); - return INVALID; - } - const status = new ParseStatus(); - let ctx = undefined; - for (const check of this._def.checks) { - if (check.kind === "min") { - if (input.data.length < check.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check.value, - type: "string", - inclusive: true, - exact: false, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "max") { - if (input.data.length > check.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check.value, - type: "string", - inclusive: true, - exact: false, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "length") { - const tooBig = input.data.length > check.value; - const tooSmall = input.data.length < check.value; - if (tooBig || tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - if (tooBig) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check.value, - type: "string", - inclusive: true, - exact: true, - message: check.message, - }); - } - else if (tooSmall) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check.value, - type: "string", - inclusive: true, - exact: true, - message: check.message, - }); - } - status.dirty(); - } - } - else if (check.kind === "email") { - if (!emailRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "email", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "emoji") { - if (!emojiRegex) { - emojiRegex = new RegExp(_emojiRegex, "u"); - } - if (!emojiRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "emoji", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "uuid") { - if (!uuidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "uuid", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "nanoid") { - if (!nanoidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "nanoid", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "cuid") { - if (!cuidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cuid", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "cuid2") { - if (!cuid2Regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cuid2", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "ulid") { - if (!ulidRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "ulid", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "url") { - try { - new URL(input.data); - } - catch { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "url", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "regex") { - check.regex.lastIndex = 0; - const testResult = check.regex.test(input.data); - if (!testResult) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "regex", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "trim") { - input.data = input.data.trim(); - } - else if (check.kind === "includes") { - if (!input.data.includes(check.value, check.position)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { includes: check.value, position: check.position }, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "toLowerCase") { - input.data = input.data.toLowerCase(); - } - else if (check.kind === "toUpperCase") { - input.data = input.data.toUpperCase(); - } - else if (check.kind === "startsWith") { - if (!input.data.startsWith(check.value)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { startsWith: check.value }, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "endsWith") { - if (!input.data.endsWith(check.value)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: { endsWith: check.value }, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "datetime") { - const regex = datetimeRegex(check); - if (!regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "datetime", - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "date") { - const regex = dateRegex; - if (!regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "date", - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "time") { - const regex = timeRegex(check); - if (!regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_string, - validation: "time", - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "duration") { - if (!durationRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "duration", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "ip") { - if (!isValidIP(input.data, check.version)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "ip", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "jwt") { - if (!isValidJWT(input.data, check.alg)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "jwt", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "cidr") { - if (!isValidCidr(input.data, check.version)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "cidr", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "base64") { - if (!base64Regex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "base64", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "base64url") { - if (!base64urlRegex.test(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - validation: "base64url", - code: ZodIssueCode.invalid_string, - message: check.message, - }); - status.dirty(); - } - } - else { - util.assertNever(check); - } - } - return { status: status.value, value: input.data }; - } - _regex(regex, validation, message) { - return this.refinement((data) => regex.test(data), { - validation, - code: ZodIssueCode.invalid_string, - ...errorUtil.errToObj(message), - }); - } - _addCheck(check) { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, check], - }); - } - email(message) { - return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); - } - url(message) { - return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); - } - emoji(message) { - return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); - } - uuid(message) { - return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); - } - nanoid(message) { - return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); - } - cuid(message) { - return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); - } - cuid2(message) { - return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); - } - ulid(message) { - return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); - } - base64(message) { - return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); - } - base64url(message) { - return this._addCheck({ - kind: "base64url", - ...errorUtil.errToObj(message), - }); - } - jwt(options) { - return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); - } - ip(options) { - return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); - } - cidr(options) { - return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); - } - datetime(options) { - if (typeof options === "string") { - return this._addCheck({ - kind: "datetime", - precision: null, - offset: false, - local: false, - message: options, - }); - } - return this._addCheck({ - kind: "datetime", - precision: typeof options?.precision === "undefined" ? null : options?.precision, - offset: options?.offset ?? false, - local: options?.local ?? false, - ...errorUtil.errToObj(options?.message), - }); - } - date(message) { - return this._addCheck({ kind: "date", message }); - } - time(options) { - if (typeof options === "string") { - return this._addCheck({ - kind: "time", - precision: null, - message: options, - }); - } - return this._addCheck({ - kind: "time", - precision: typeof options?.precision === "undefined" ? null : options?.precision, - ...errorUtil.errToObj(options?.message), - }); - } - duration(message) { - return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); - } - regex(regex, message) { - return this._addCheck({ - kind: "regex", - regex: regex, - ...errorUtil.errToObj(message), - }); - } - includes(value, options) { - return this._addCheck({ - kind: "includes", - value: value, - position: options?.position, - ...errorUtil.errToObj(options?.message), - }); - } - startsWith(value, message) { - return this._addCheck({ - kind: "startsWith", - value: value, - ...errorUtil.errToObj(message), - }); - } - endsWith(value, message) { - return this._addCheck({ - kind: "endsWith", - value: value, - ...errorUtil.errToObj(message), - }); - } - min(minLength, message) { - return this._addCheck({ - kind: "min", - value: minLength, - ...errorUtil.errToObj(message), - }); - } - max(maxLength, message) { - return this._addCheck({ - kind: "max", - value: maxLength, - ...errorUtil.errToObj(message), - }); - } - length(len, message) { - return this._addCheck({ - kind: "length", - value: len, - ...errorUtil.errToObj(message), - }); - } - nonempty(message) { - return this.min(1, errorUtil.errToObj(message)); - } - trim() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "trim" }], - }); - } - toLowerCase() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "toLowerCase" }], - }); - } - toUpperCase() { - return new ZodString({ - ...this._def, - checks: [...this._def.checks, { kind: "toUpperCase" }], - }); - } - get isDatetime() { - return !!this._def.checks.find((ch) => ch.kind === "datetime"); - } - get isDate() { - return !!this._def.checks.find((ch) => ch.kind === "date"); - } - get isTime() { - return !!this._def.checks.find((ch) => ch.kind === "time"); - } - get isDuration() { - return !!this._def.checks.find((ch) => ch.kind === "duration"); - } - get isEmail() { - return !!this._def.checks.find((ch) => ch.kind === "email"); - } - get isURL() { - return !!this._def.checks.find((ch) => ch.kind === "url"); - } - get isEmoji() { - return !!this._def.checks.find((ch) => ch.kind === "emoji"); - } - get isUUID() { - return !!this._def.checks.find((ch) => ch.kind === "uuid"); - } - get isNANOID() { - return !!this._def.checks.find((ch) => ch.kind === "nanoid"); - } - get isCUID() { - return !!this._def.checks.find((ch) => ch.kind === "cuid"); - } - get isCUID2() { - return !!this._def.checks.find((ch) => ch.kind === "cuid2"); - } - get isULID() { - return !!this._def.checks.find((ch) => ch.kind === "ulid"); - } - get isIP() { - return !!this._def.checks.find((ch) => ch.kind === "ip"); - } - get isCIDR() { - return !!this._def.checks.find((ch) => ch.kind === "cidr"); - } - get isBase64() { - return !!this._def.checks.find((ch) => ch.kind === "base64"); - } - get isBase64url() { - return !!this._def.checks.find((ch) => ch.kind === "base64url"); - } - get minLength() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } - } - return min; - } - get maxLength() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } - } - return max; - } - } - ZodString.create = (params) => { - return new ZodString({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodString, - coerce: params?.coerce ?? false, - ...processCreateParams(params), - }); - }; - function floatSafeRemainder(val, step) { - const valDecCount = (val.toString().split(".")[1] || "").length; - const stepDecCount = (step.toString().split(".")[1] || "").length; - const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; - const valInt = Number.parseInt(val.toFixed(decCount).replace(".", "")); - const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); - return (valInt % stepInt) / 10 ** decCount; - } - class ZodNumber extends ZodType { - constructor() { - super(...arguments); - this.min = this.gte; - this.max = this.lte; - this.step = this.multipleOf; - } - _parse(input) { - if (this._def.coerce) { - input.data = Number(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.number) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.number, - received: ctx.parsedType, - }); - return INVALID; - } - let ctx = undefined; - const status = new ParseStatus(); - for (const check of this._def.checks) { - if (check.kind === "int") { - if (!util.isInteger(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: "integer", - received: "float", - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "min") { - const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; - if (tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: check.value, - type: "number", - inclusive: check.inclusive, - exact: false, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "max") { - const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; - if (tooBig) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: check.value, - type: "number", - inclusive: check.inclusive, - exact: false, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "multipleOf") { - if (floatSafeRemainder(input.data, check.value) !== 0) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_multiple_of, - multipleOf: check.value, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "finite") { - if (!Number.isFinite(input.data)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_finite, - message: check.message, - }); - status.dirty(); - } - } - else { - util.assertNever(check); - } - } - return { status: status.value, value: input.data }; - } - gte(value, message) { - return this.setLimit("min", value, true, errorUtil.toString(message)); - } - gt(value, message) { - return this.setLimit("min", value, false, errorUtil.toString(message)); - } - lte(value, message) { - return this.setLimit("max", value, true, errorUtil.toString(message)); - } - lt(value, message) { - return this.setLimit("max", value, false, errorUtil.toString(message)); - } - setLimit(kind, value, inclusive, message) { - return new ZodNumber({ - ...this._def, - checks: [ - ...this._def.checks, - { - kind, - value, - inclusive, - message: errorUtil.toString(message), - }, - ], - }); - } - _addCheck(check) { - return new ZodNumber({ - ...this._def, - checks: [...this._def.checks, check], - }); - } - int(message) { - return this._addCheck({ - kind: "int", - message: errorUtil.toString(message), - }); - } - positive(message) { - return this._addCheck({ - kind: "min", - value: 0, - inclusive: false, - message: errorUtil.toString(message), - }); - } - negative(message) { - return this._addCheck({ - kind: "max", - value: 0, - inclusive: false, - message: errorUtil.toString(message), - }); - } - nonpositive(message) { - return this._addCheck({ - kind: "max", - value: 0, - inclusive: true, - message: errorUtil.toString(message), - }); - } - nonnegative(message) { - return this._addCheck({ - kind: "min", - value: 0, - inclusive: true, - message: errorUtil.toString(message), - }); - } - multipleOf(value, message) { - return this._addCheck({ - kind: "multipleOf", - value: value, - message: errorUtil.toString(message), - }); - } - finite(message) { - return this._addCheck({ - kind: "finite", - message: errorUtil.toString(message), - }); - } - safe(message) { - return this._addCheck({ - kind: "min", - inclusive: true, - value: Number.MIN_SAFE_INTEGER, - message: errorUtil.toString(message), - })._addCheck({ - kind: "max", - inclusive: true, - value: Number.MAX_SAFE_INTEGER, - message: errorUtil.toString(message), - }); - } - get minValue() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } - } - return min; - } - get maxValue() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } - } - return max; - } - get isInt() { - return !!this._def.checks.find((ch) => ch.kind === "int" || (ch.kind === "multipleOf" && util.isInteger(ch.value))); - } - get isFinite() { - let max = null; - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { - return true; - } - else if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } - else if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } - } - return Number.isFinite(min) && Number.isFinite(max); - } - } - ZodNumber.create = (params) => { - return new ZodNumber({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodNumber, - coerce: params?.coerce || false, - ...processCreateParams(params), - }); - }; - class ZodBigInt extends ZodType { - constructor() { - super(...arguments); - this.min = this.gte; - this.max = this.lte; - } - _parse(input) { - if (this._def.coerce) { - try { - input.data = BigInt(input.data); - } - catch { - return this._getInvalidInput(input); - } - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.bigint) { - return this._getInvalidInput(input); - } - let ctx = undefined; - const status = new ParseStatus(); - for (const check of this._def.checks) { - if (check.kind === "min") { - const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; - if (tooSmall) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - type: "bigint", - minimum: check.value, - inclusive: check.inclusive, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "max") { - const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; - if (tooBig) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - type: "bigint", - maximum: check.value, - inclusive: check.inclusive, - message: check.message, - }); - status.dirty(); - } - } - else if (check.kind === "multipleOf") { - if (input.data % check.value !== BigInt(0)) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.not_multiple_of, - multipleOf: check.value, - message: check.message, - }); - status.dirty(); - } - } - else { - util.assertNever(check); - } - } - return { status: status.value, value: input.data }; - } - _getInvalidInput(input) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.bigint, - received: ctx.parsedType, - }); - return INVALID; - } - gte(value, message) { - return this.setLimit("min", value, true, errorUtil.toString(message)); - } - gt(value, message) { - return this.setLimit("min", value, false, errorUtil.toString(message)); - } - lte(value, message) { - return this.setLimit("max", value, true, errorUtil.toString(message)); - } - lt(value, message) { - return this.setLimit("max", value, false, errorUtil.toString(message)); - } - setLimit(kind, value, inclusive, message) { - return new ZodBigInt({ - ...this._def, - checks: [ - ...this._def.checks, - { - kind, - value, - inclusive, - message: errorUtil.toString(message), - }, - ], - }); - } - _addCheck(check) { - return new ZodBigInt({ - ...this._def, - checks: [...this._def.checks, check], - }); - } - positive(message) { - return this._addCheck({ - kind: "min", - value: BigInt(0), - inclusive: false, - message: errorUtil.toString(message), - }); - } - negative(message) { - return this._addCheck({ - kind: "max", - value: BigInt(0), - inclusive: false, - message: errorUtil.toString(message), - }); - } - nonpositive(message) { - return this._addCheck({ - kind: "max", - value: BigInt(0), - inclusive: true, - message: errorUtil.toString(message), - }); - } - nonnegative(message) { - return this._addCheck({ - kind: "min", - value: BigInt(0), - inclusive: true, - message: errorUtil.toString(message), - }); - } - multipleOf(value, message) { - return this._addCheck({ - kind: "multipleOf", - value, - message: errorUtil.toString(message), - }); - } - get minValue() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } - } - return min; - } - get maxValue() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } - } - return max; - } - } - ZodBigInt.create = (params) => { - return new ZodBigInt({ - checks: [], - typeName: ZodFirstPartyTypeKind.ZodBigInt, - coerce: params?.coerce ?? false, - ...processCreateParams(params), - }); - }; - class ZodBoolean extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = Boolean(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.boolean) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.boolean, - received: ctx.parsedType, - }); - return INVALID; - } - return OK(input.data); - } - } - ZodBoolean.create = (params) => { - return new ZodBoolean({ - typeName: ZodFirstPartyTypeKind.ZodBoolean, - coerce: params?.coerce || false, - ...processCreateParams(params), - }); - }; - class ZodDate extends ZodType { - _parse(input) { - if (this._def.coerce) { - input.data = new Date(input.data); - } - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.date) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.date, - received: ctx.parsedType, - }); - return INVALID; - } - if (Number.isNaN(input.data.getTime())) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_date, - }); - return INVALID; - } - const status = new ParseStatus(); - let ctx = undefined; - for (const check of this._def.checks) { - if (check.kind === "min") { - if (input.data.getTime() < check.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - message: check.message, - inclusive: true, - exact: false, - minimum: check.value, - type: "date", - }); - status.dirty(); - } - } - else if (check.kind === "max") { - if (input.data.getTime() > check.value) { - ctx = this._getOrReturnCtx(input, ctx); - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - message: check.message, - inclusive: true, - exact: false, - maximum: check.value, - type: "date", - }); - status.dirty(); - } - } - else { - util.assertNever(check); - } - } - return { - status: status.value, - value: new Date(input.data.getTime()), - }; - } - _addCheck(check) { - return new ZodDate({ - ...this._def, - checks: [...this._def.checks, check], - }); - } - min(minDate, message) { - return this._addCheck({ - kind: "min", - value: minDate.getTime(), - message: errorUtil.toString(message), - }); - } - max(maxDate, message) { - return this._addCheck({ - kind: "max", - value: maxDate.getTime(), - message: errorUtil.toString(message), - }); - } - get minDate() { - let min = null; - for (const ch of this._def.checks) { - if (ch.kind === "min") { - if (min === null || ch.value > min) - min = ch.value; - } - } - return min != null ? new Date(min) : null; - } - get maxDate() { - let max = null; - for (const ch of this._def.checks) { - if (ch.kind === "max") { - if (max === null || ch.value < max) - max = ch.value; - } - } - return max != null ? new Date(max) : null; - } - } - ZodDate.create = (params) => { - return new ZodDate({ - checks: [], - coerce: params?.coerce || false, - typeName: ZodFirstPartyTypeKind.ZodDate, - ...processCreateParams(params), - }); - }; - class ZodSymbol extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.symbol) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.symbol, - received: ctx.parsedType, - }); - return INVALID; - } - return OK(input.data); - } - } - ZodSymbol.create = (params) => { - return new ZodSymbol({ - typeName: ZodFirstPartyTypeKind.ZodSymbol, - ...processCreateParams(params), - }); - }; - class ZodUndefined extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.undefined) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.undefined, - received: ctx.parsedType, - }); - return INVALID; - } - return OK(input.data); - } - } - ZodUndefined.create = (params) => { - return new ZodUndefined({ - typeName: ZodFirstPartyTypeKind.ZodUndefined, - ...processCreateParams(params), - }); - }; - class ZodNull extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.null) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.null, - received: ctx.parsedType, - }); - return INVALID; - } - return OK(input.data); - } - } - ZodNull.create = (params) => { - return new ZodNull({ - typeName: ZodFirstPartyTypeKind.ZodNull, - ...processCreateParams(params), - }); - }; - class ZodAny extends ZodType { - constructor() { - super(...arguments); - this._any = true; - } - _parse(input) { - return OK(input.data); - } - } - ZodAny.create = (params) => { - return new ZodAny({ - typeName: ZodFirstPartyTypeKind.ZodAny, - ...processCreateParams(params), - }); - }; - class ZodUnknown extends ZodType { - constructor() { - super(...arguments); - this._unknown = true; - } - _parse(input) { - return OK(input.data); - } - } - ZodUnknown.create = (params) => { - return new ZodUnknown({ - typeName: ZodFirstPartyTypeKind.ZodUnknown, - ...processCreateParams(params), - }); - }; - class ZodNever extends ZodType { - _parse(input) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.never, - received: ctx.parsedType, - }); - return INVALID; - } - } - ZodNever.create = (params) => { - return new ZodNever({ - typeName: ZodFirstPartyTypeKind.ZodNever, - ...processCreateParams(params), - }); - }; - class ZodVoid extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.undefined) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.void, - received: ctx.parsedType, - }); - return INVALID; - } - return OK(input.data); - } - } - ZodVoid.create = (params) => { - return new ZodVoid({ - typeName: ZodFirstPartyTypeKind.ZodVoid, - ...processCreateParams(params), - }); - }; - class ZodArray extends ZodType { - _parse(input) { - const { ctx, status } = this._processInputParams(input); - const def = this._def; - if (ctx.parsedType !== ZodParsedType.array) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.array, - received: ctx.parsedType, - }); - return INVALID; - } - if (def.exactLength !== null) { - const tooBig = ctx.data.length > def.exactLength.value; - const tooSmall = ctx.data.length < def.exactLength.value; - if (tooBig || tooSmall) { - addIssueToContext(ctx, { - code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, - minimum: (tooSmall ? def.exactLength.value : undefined), - maximum: (tooBig ? def.exactLength.value : undefined), - type: "array", - inclusive: true, - exact: true, - message: def.exactLength.message, - }); - status.dirty(); - } - } - if (def.minLength !== null) { - if (ctx.data.length < def.minLength.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: def.minLength.value, - type: "array", - inclusive: true, - exact: false, - message: def.minLength.message, - }); - status.dirty(); - } - } - if (def.maxLength !== null) { - if (ctx.data.length > def.maxLength.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: def.maxLength.value, - type: "array", - inclusive: true, - exact: false, - message: def.maxLength.message, - }); - status.dirty(); - } - } - if (ctx.common.async) { - return Promise.all([...ctx.data].map((item, i) => { - return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i)); - })).then((result) => { - return ParseStatus.mergeArray(status, result); - }); - } - const result = [...ctx.data].map((item, i) => { - return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i)); - }); - return ParseStatus.mergeArray(status, result); - } - get element() { - return this._def.type; - } - min(minLength, message) { - return new ZodArray({ - ...this._def, - minLength: { value: minLength, message: errorUtil.toString(message) }, - }); - } - max(maxLength, message) { - return new ZodArray({ - ...this._def, - maxLength: { value: maxLength, message: errorUtil.toString(message) }, - }); - } - length(len, message) { - return new ZodArray({ - ...this._def, - exactLength: { value: len, message: errorUtil.toString(message) }, - }); - } - nonempty(message) { - return this.min(1, message); - } - } - ZodArray.create = (schema, params) => { - return new ZodArray({ - type: schema, - minLength: null, - maxLength: null, - exactLength: null, - typeName: ZodFirstPartyTypeKind.ZodArray, - ...processCreateParams(params), - }); - }; - function deepPartialify(schema) { - if (schema instanceof ZodObject) { - const newShape = {}; - for (const key in schema.shape) { - const fieldSchema = schema.shape[key]; - newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); - } - return new ZodObject({ - ...schema._def, - shape: () => newShape, - }); - } - else if (schema instanceof ZodArray) { - return new ZodArray({ - ...schema._def, - type: deepPartialify(schema.element), - }); - } - else if (schema instanceof ZodOptional) { - return ZodOptional.create(deepPartialify(schema.unwrap())); - } - else if (schema instanceof ZodNullable) { - return ZodNullable.create(deepPartialify(schema.unwrap())); - } - else if (schema instanceof ZodTuple) { - return ZodTuple.create(schema.items.map((item) => deepPartialify(item))); - } - else { - return schema; - } - } - class ZodObject extends ZodType { - constructor() { - super(...arguments); - this._cached = null; - this.nonstrict = this.passthrough; - this.augment = this.extend; - } - _getCached() { - if (this._cached !== null) - return this._cached; - const shape = this._def.shape(); - const keys = util.objectKeys(shape); - this._cached = { shape, keys }; - return this._cached; - } - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.object) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx.parsedType, - }); - return INVALID; - } - const { status, ctx } = this._processInputParams(input); - const { shape, keys: shapeKeys } = this._getCached(); - const extraKeys = []; - if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { - for (const key in ctx.data) { - if (!shapeKeys.includes(key)) { - extraKeys.push(key); - } - } - } - const pairs = []; - for (const key of shapeKeys) { - const keyValidator = shape[key]; - const value = ctx.data[key]; - pairs.push({ - key: { status: "valid", value: key }, - value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), - alwaysSet: key in ctx.data, - }); - } - if (this._def.catchall instanceof ZodNever) { - const unknownKeys = this._def.unknownKeys; - if (unknownKeys === "passthrough") { - for (const key of extraKeys) { - pairs.push({ - key: { status: "valid", value: key }, - value: { status: "valid", value: ctx.data[key] }, - }); - } - } - else if (unknownKeys === "strict") { - if (extraKeys.length > 0) { - addIssueToContext(ctx, { - code: ZodIssueCode.unrecognized_keys, - keys: extraKeys, - }); - status.dirty(); - } - } - else if (unknownKeys === "strip") ; - else { - throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); - } - } - else { - const catchall = this._def.catchall; - for (const key of extraKeys) { - const value = ctx.data[key]; - pairs.push({ - key: { status: "valid", value: key }, - value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) - ), - alwaysSet: key in ctx.data, - }); - } - } - if (ctx.common.async) { - return Promise.resolve() - .then(async () => { - const syncPairs = []; - for (const pair of pairs) { - const key = await pair.key; - const value = await pair.value; - syncPairs.push({ - key, - value, - alwaysSet: pair.alwaysSet, - }); - } - return syncPairs; - }) - .then((syncPairs) => { - return ParseStatus.mergeObjectSync(status, syncPairs); - }); - } - else { - return ParseStatus.mergeObjectSync(status, pairs); - } - } - get shape() { - return this._def.shape(); - } - strict(message) { - errorUtil.errToObj; - return new ZodObject({ - ...this._def, - unknownKeys: "strict", - ...(message !== undefined - ? { - errorMap: (issue, ctx) => { - const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError; - if (issue.code === "unrecognized_keys") - return { - message: errorUtil.errToObj(message).message ?? defaultError, - }; - return { - message: defaultError, - }; - }, - } - : {}), - }); - } - strip() { - return new ZodObject({ - ...this._def, - unknownKeys: "strip", - }); - } - passthrough() { - return new ZodObject({ - ...this._def, - unknownKeys: "passthrough", - }); - } - extend(augmentation) { - return new ZodObject({ - ...this._def, - shape: () => ({ - ...this._def.shape(), - ...augmentation, - }), - }); - } - merge(merging) { - const merged = new ZodObject({ - unknownKeys: merging._def.unknownKeys, - catchall: merging._def.catchall, - shape: () => ({ - ...this._def.shape(), - ...merging._def.shape(), - }), - typeName: ZodFirstPartyTypeKind.ZodObject, - }); - return merged; - } - setKey(key, schema) { - return this.augment({ [key]: schema }); - } - catchall(index) { - return new ZodObject({ - ...this._def, - catchall: index, - }); - } - pick(mask) { - const shape = {}; - for (const key of util.objectKeys(mask)) { - if (mask[key] && this.shape[key]) { - shape[key] = this.shape[key]; - } - } - return new ZodObject({ - ...this._def, - shape: () => shape, - }); - } - omit(mask) { - const shape = {}; - for (const key of util.objectKeys(this.shape)) { - if (!mask[key]) { - shape[key] = this.shape[key]; - } - } - return new ZodObject({ - ...this._def, - shape: () => shape, - }); - } - deepPartial() { - return deepPartialify(this); - } - partial(mask) { - const newShape = {}; - for (const key of util.objectKeys(this.shape)) { - const fieldSchema = this.shape[key]; - if (mask && !mask[key]) { - newShape[key] = fieldSchema; - } - else { - newShape[key] = fieldSchema.optional(); - } - } - return new ZodObject({ - ...this._def, - shape: () => newShape, - }); - } - required(mask) { - const newShape = {}; - for (const key of util.objectKeys(this.shape)) { - if (mask && !mask[key]) { - newShape[key] = this.shape[key]; - } - else { - const fieldSchema = this.shape[key]; - let newField = fieldSchema; - while (newField instanceof ZodOptional) { - newField = newField._def.innerType; - } - newShape[key] = newField; - } - } - return new ZodObject({ - ...this._def, - shape: () => newShape, - }); - } - keyof() { - return createZodEnum(util.objectKeys(this.shape)); - } - } - ZodObject.create = (shape, params) => { - return new ZodObject({ - shape: () => shape, - unknownKeys: "strip", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params), - }); - }; - ZodObject.strictCreate = (shape, params) => { - return new ZodObject({ - shape: () => shape, - unknownKeys: "strict", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params), - }); - }; - ZodObject.lazycreate = (shape, params) => { - return new ZodObject({ - shape, - unknownKeys: "strip", - catchall: ZodNever.create(), - typeName: ZodFirstPartyTypeKind.ZodObject, - ...processCreateParams(params), - }); - }; - class ZodUnion extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const options = this._def.options; - function handleResults(results) { - for (const result of results) { - if (result.result.status === "valid") { - return result.result; - } - } - for (const result of results) { - if (result.result.status === "dirty") { - ctx.common.issues.push(...result.ctx.common.issues); - return result.result; - } - } - const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union, - unionErrors, - }); - return INVALID; - } - if (ctx.common.async) { - return Promise.all(options.map(async (option) => { - const childCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [], - }, - parent: null, - }; - return { - result: await option._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: childCtx, - }), - ctx: childCtx, - }; - })).then(handleResults); - } - else { - let dirty = undefined; - const issues = []; - for (const option of options) { - const childCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [], - }, - parent: null, - }; - const result = option._parseSync({ - data: ctx.data, - path: ctx.path, - parent: childCtx, - }); - if (result.status === "valid") { - return result; - } - else if (result.status === "dirty" && !dirty) { - dirty = { result, ctx: childCtx }; - } - if (childCtx.common.issues.length) { - issues.push(childCtx.common.issues); - } - } - if (dirty) { - ctx.common.issues.push(...dirty.ctx.common.issues); - return dirty.result; - } - const unionErrors = issues.map((issues) => new ZodError(issues)); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union, - unionErrors, - }); - return INVALID; - } - } - get options() { - return this._def.options; - } - } - ZodUnion.create = (types, params) => { - return new ZodUnion({ - options: types, - typeName: ZodFirstPartyTypeKind.ZodUnion, - ...processCreateParams(params), - }); - }; - const getDiscriminator = (type) => { - if (type instanceof ZodLazy) { - return getDiscriminator(type.schema); - } - else if (type instanceof ZodEffects) { - return getDiscriminator(type.innerType()); - } - else if (type instanceof ZodLiteral) { - return [type.value]; - } - else if (type instanceof ZodEnum) { - return type.options; - } - else if (type instanceof ZodNativeEnum) { - return util.objectValues(type.enum); - } - else if (type instanceof ZodDefault) { - return getDiscriminator(type._def.innerType); - } - else if (type instanceof ZodUndefined) { - return [undefined]; - } - else if (type instanceof ZodNull) { - return [null]; - } - else if (type instanceof ZodOptional) { - return [undefined, ...getDiscriminator(type.unwrap())]; - } - else if (type instanceof ZodNullable) { - return [null, ...getDiscriminator(type.unwrap())]; - } - else if (type instanceof ZodBranded) { - return getDiscriminator(type.unwrap()); - } - else if (type instanceof ZodReadonly) { - return getDiscriminator(type.unwrap()); - } - else if (type instanceof ZodCatch) { - return getDiscriminator(type._def.innerType); - } - else { - return []; - } - }; - class ZodDiscriminatedUnion extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.object) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx.parsedType, - }); - return INVALID; - } - const discriminator = this.discriminator; - const discriminatorValue = ctx.data[discriminator]; - const option = this.optionsMap.get(discriminatorValue); - if (!option) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_union_discriminator, - options: Array.from(this.optionsMap.keys()), - path: [discriminator], - }); - return INVALID; - } - if (ctx.common.async) { - return option._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - } - else { - return option._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - } - } - get discriminator() { - return this._def.discriminator; - } - get options() { - return this._def.options; - } - get optionsMap() { - return this._def.optionsMap; - } - static create(discriminator, options, params) { - const optionsMap = new Map(); - for (const type of options) { - const discriminatorValues = getDiscriminator(type.shape[discriminator]); - if (!discriminatorValues.length) { - throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); - } - for (const value of discriminatorValues) { - if (optionsMap.has(value)) { - throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); - } - optionsMap.set(value, type); - } - } - return new ZodDiscriminatedUnion({ - typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, - discriminator, - options, - optionsMap, - ...processCreateParams(params), - }); - } - } - function mergeValues(a, b) { - const aType = getParsedType(a); - const bType = getParsedType(b); - if (a === b) { - return { valid: true, data: a }; - } - else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { - const bKeys = util.objectKeys(b); - const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1); - const newObj = { ...a, ...b }; - for (const key of sharedKeys) { - const sharedValue = mergeValues(a[key], b[key]); - if (!sharedValue.valid) { - return { valid: false }; - } - newObj[key] = sharedValue.data; - } - return { valid: true, data: newObj }; - } - else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { - if (a.length !== b.length) { - return { valid: false }; - } - const newArray = []; - for (let index = 0; index < a.length; index++) { - const itemA = a[index]; - const itemB = b[index]; - const sharedValue = mergeValues(itemA, itemB); - if (!sharedValue.valid) { - return { valid: false }; - } - newArray.push(sharedValue.data); - } - return { valid: true, data: newArray }; - } - else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) { - return { valid: true, data: a }; - } - else { - return { valid: false }; - } - } - class ZodIntersection extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - const handleParsed = (parsedLeft, parsedRight) => { - if (isAborted(parsedLeft) || isAborted(parsedRight)) { - return INVALID; - } - const merged = mergeValues(parsedLeft.value, parsedRight.value); - if (!merged.valid) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_intersection_types, - }); - return INVALID; - } - if (isDirty(parsedLeft) || isDirty(parsedRight)) { - status.dirty(); - } - return { status: status.value, value: merged.data }; - }; - if (ctx.common.async) { - return Promise.all([ - this._def.left._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }), - this._def.right._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }), - ]).then(([left, right]) => handleParsed(left, right)); - } - else { - return handleParsed(this._def.left._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }), this._def.right._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - })); - } - } - } - ZodIntersection.create = (left, right, params) => { - return new ZodIntersection({ - left: left, - right: right, - typeName: ZodFirstPartyTypeKind.ZodIntersection, - ...processCreateParams(params), - }); - }; - class ZodTuple extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.array) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.array, - received: ctx.parsedType, - }); - return INVALID; - } - if (ctx.data.length < this._def.items.length) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: this._def.items.length, - inclusive: true, - exact: false, - type: "array", - }); - return INVALID; - } - const rest = this._def.rest; - if (!rest && ctx.data.length > this._def.items.length) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: this._def.items.length, - inclusive: true, - exact: false, - type: "array", - }); - status.dirty(); - } - const items = [...ctx.data] - .map((item, itemIndex) => { - const schema = this._def.items[itemIndex] || this._def.rest; - if (!schema) - return null; - return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); - }) - .filter((x) => !!x); - if (ctx.common.async) { - return Promise.all(items).then((results) => { - return ParseStatus.mergeArray(status, results); - }); - } - else { - return ParseStatus.mergeArray(status, items); - } - } - get items() { - return this._def.items; - } - rest(rest) { - return new ZodTuple({ - ...this._def, - rest, - }); - } - } - ZodTuple.create = (schemas, params) => { - if (!Array.isArray(schemas)) { - throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); - } - return new ZodTuple({ - items: schemas, - typeName: ZodFirstPartyTypeKind.ZodTuple, - rest: null, - ...processCreateParams(params), - }); - }; - class ZodRecord extends ZodType { - get keySchema() { - return this._def.keyType; - } - get valueSchema() { - return this._def.valueType; - } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.object) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.object, - received: ctx.parsedType, - }); - return INVALID; - } - const pairs = []; - const keyType = this._def.keyType; - const valueType = this._def.valueType; - for (const key in ctx.data) { - pairs.push({ - key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), - value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)), - alwaysSet: key in ctx.data, - }); - } - if (ctx.common.async) { - return ParseStatus.mergeObjectAsync(status, pairs); - } - else { - return ParseStatus.mergeObjectSync(status, pairs); - } - } - get element() { - return this._def.valueType; - } - static create(first, second, third) { - if (second instanceof ZodType) { - return new ZodRecord({ - keyType: first, - valueType: second, - typeName: ZodFirstPartyTypeKind.ZodRecord, - ...processCreateParams(third), - }); - } - return new ZodRecord({ - keyType: ZodString.create(), - valueType: first, - typeName: ZodFirstPartyTypeKind.ZodRecord, - ...processCreateParams(second), - }); - } - } - class ZodMap extends ZodType { - get keySchema() { - return this._def.keyType; - } - get valueSchema() { - return this._def.valueType; - } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.map) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.map, - received: ctx.parsedType, - }); - return INVALID; - } - const keyType = this._def.keyType; - const valueType = this._def.valueType; - const pairs = [...ctx.data.entries()].map(([key, value], index) => { - return { - key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), - value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])), - }; - }); - if (ctx.common.async) { - const finalMap = new Map(); - return Promise.resolve().then(async () => { - for (const pair of pairs) { - const key = await pair.key; - const value = await pair.value; - if (key.status === "aborted" || value.status === "aborted") { - return INVALID; - } - if (key.status === "dirty" || value.status === "dirty") { - status.dirty(); - } - finalMap.set(key.value, value.value); - } - return { status: status.value, value: finalMap }; - }); - } - else { - const finalMap = new Map(); - for (const pair of pairs) { - const key = pair.key; - const value = pair.value; - if (key.status === "aborted" || value.status === "aborted") { - return INVALID; - } - if (key.status === "dirty" || value.status === "dirty") { - status.dirty(); - } - finalMap.set(key.value, value.value); - } - return { status: status.value, value: finalMap }; - } - } - } - ZodMap.create = (keyType, valueType, params) => { - return new ZodMap({ - valueType, - keyType, - typeName: ZodFirstPartyTypeKind.ZodMap, - ...processCreateParams(params), - }); - }; - class ZodSet extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.set) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.set, - received: ctx.parsedType, - }); - return INVALID; - } - const def = this._def; - if (def.minSize !== null) { - if (ctx.data.size < def.minSize.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_small, - minimum: def.minSize.value, - type: "set", - inclusive: true, - exact: false, - message: def.minSize.message, - }); - status.dirty(); - } - } - if (def.maxSize !== null) { - if (ctx.data.size > def.maxSize.value) { - addIssueToContext(ctx, { - code: ZodIssueCode.too_big, - maximum: def.maxSize.value, - type: "set", - inclusive: true, - exact: false, - message: def.maxSize.message, - }); - status.dirty(); - } - } - const valueType = this._def.valueType; - function finalizeSet(elements) { - const parsedSet = new Set(); - for (const element of elements) { - if (element.status === "aborted") - return INVALID; - if (element.status === "dirty") - status.dirty(); - parsedSet.add(element.value); - } - return { status: status.value, value: parsedSet }; - } - const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i))); - if (ctx.common.async) { - return Promise.all(elements).then((elements) => finalizeSet(elements)); - } - else { - return finalizeSet(elements); - } - } - min(minSize, message) { - return new ZodSet({ - ...this._def, - minSize: { value: minSize, message: errorUtil.toString(message) }, - }); - } - max(maxSize, message) { - return new ZodSet({ - ...this._def, - maxSize: { value: maxSize, message: errorUtil.toString(message) }, - }); - } - size(size, message) { - return this.min(size, message).max(size, message); - } - nonempty(message) { - return this.min(1, message); - } - } - ZodSet.create = (valueType, params) => { - return new ZodSet({ - valueType, - minSize: null, - maxSize: null, - typeName: ZodFirstPartyTypeKind.ZodSet, - ...processCreateParams(params), - }); - }; - class ZodFunction extends ZodType { - constructor() { - super(...arguments); - this.validate = this.implement; - } - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.function) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.function, - received: ctx.parsedType, - }); - return INVALID; - } - function makeArgsIssue(args, error) { - return makeIssue({ - data: args, - path: ctx.path, - errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), errorMap].filter((x) => !!x), - issueData: { - code: ZodIssueCode.invalid_arguments, - argumentsError: error, - }, - }); - } - function makeReturnsIssue(returns, error) { - return makeIssue({ - data: returns, - path: ctx.path, - errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), errorMap].filter((x) => !!x), - issueData: { - code: ZodIssueCode.invalid_return_type, - returnTypeError: error, - }, - }); - } - const params = { errorMap: ctx.common.contextualErrorMap }; - const fn = ctx.data; - if (this._def.returns instanceof ZodPromise) { - const me = this; - return OK(async function (...args) { - const error = new ZodError([]); - const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => { - error.addIssue(makeArgsIssue(args, e)); - throw error; - }); - const result = await Reflect.apply(fn, this, parsedArgs); - const parsedReturns = await me._def.returns._def.type - .parseAsync(result, params) - .catch((e) => { - error.addIssue(makeReturnsIssue(result, e)); - throw error; - }); - return parsedReturns; - }); - } - else { - const me = this; - return OK(function (...args) { - const parsedArgs = me._def.args.safeParse(args, params); - if (!parsedArgs.success) { - throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); - } - const result = Reflect.apply(fn, this, parsedArgs.data); - const parsedReturns = me._def.returns.safeParse(result, params); - if (!parsedReturns.success) { - throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); - } - return parsedReturns.data; - }); - } - } - parameters() { - return this._def.args; - } - returnType() { - return this._def.returns; - } - args(...items) { - return new ZodFunction({ - ...this._def, - args: ZodTuple.create(items).rest(ZodUnknown.create()), - }); - } - returns(returnType) { - return new ZodFunction({ - ...this._def, - returns: returnType, - }); - } - implement(func) { - const validatedFunc = this.parse(func); - return validatedFunc; - } - strictImplement(func) { - const validatedFunc = this.parse(func); - return validatedFunc; - } - static create(args, returns, params) { - return new ZodFunction({ - args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())), - returns: returns || ZodUnknown.create(), - typeName: ZodFirstPartyTypeKind.ZodFunction, - ...processCreateParams(params), - }); - } - } - class ZodLazy extends ZodType { - get schema() { - return this._def.getter(); - } - _parse(input) { - const { ctx } = this._processInputParams(input); - const lazySchema = this._def.getter(); - return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); - } - } - ZodLazy.create = (getter, params) => { - return new ZodLazy({ - getter: getter, - typeName: ZodFirstPartyTypeKind.ZodLazy, - ...processCreateParams(params), - }); - }; - class ZodLiteral extends ZodType { - _parse(input) { - if (input.data !== this._def.value) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_literal, - expected: this._def.value, - }); - return INVALID; - } - return { status: "valid", value: input.data }; - } - get value() { - return this._def.value; - } - } - ZodLiteral.create = (value, params) => { - return new ZodLiteral({ - value: value, - typeName: ZodFirstPartyTypeKind.ZodLiteral, - ...processCreateParams(params), - }); - }; - function createZodEnum(values, params) { - return new ZodEnum({ - values, - typeName: ZodFirstPartyTypeKind.ZodEnum, - ...processCreateParams(params), - }); - } - class ZodEnum extends ZodType { - _parse(input) { - if (typeof input.data !== "string") { - const ctx = this._getOrReturnCtx(input); - const expectedValues = this._def.values; - addIssueToContext(ctx, { - expected: util.joinValues(expectedValues), - received: ctx.parsedType, - code: ZodIssueCode.invalid_type, - }); - return INVALID; - } - if (!this._cache) { - this._cache = new Set(this._def.values); - } - if (!this._cache.has(input.data)) { - const ctx = this._getOrReturnCtx(input); - const expectedValues = this._def.values; - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_enum_value, - options: expectedValues, - }); - return INVALID; - } - return OK(input.data); - } - get options() { - return this._def.values; - } - get enum() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; - } - return enumValues; - } - get Values() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; - } - return enumValues; - } - get Enum() { - const enumValues = {}; - for (const val of this._def.values) { - enumValues[val] = val; - } - return enumValues; - } - extract(values, newDef = this._def) { - return ZodEnum.create(values, { - ...this._def, - ...newDef, - }); - } - exclude(values, newDef = this._def) { - return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { - ...this._def, - ...newDef, - }); - } - } - ZodEnum.create = createZodEnum; - class ZodNativeEnum extends ZodType { - _parse(input) { - const nativeEnumValues = util.getValidEnumValues(this._def.values); - const ctx = this._getOrReturnCtx(input); - if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { - const expectedValues = util.objectValues(nativeEnumValues); - addIssueToContext(ctx, { - expected: util.joinValues(expectedValues), - received: ctx.parsedType, - code: ZodIssueCode.invalid_type, - }); - return INVALID; - } - if (!this._cache) { - this._cache = new Set(util.getValidEnumValues(this._def.values)); - } - if (!this._cache.has(input.data)) { - const expectedValues = util.objectValues(nativeEnumValues); - addIssueToContext(ctx, { - received: ctx.data, - code: ZodIssueCode.invalid_enum_value, - options: expectedValues, - }); - return INVALID; - } - return OK(input.data); - } - get enum() { - return this._def.values; - } - } - ZodNativeEnum.create = (values, params) => { - return new ZodNativeEnum({ - values: values, - typeName: ZodFirstPartyTypeKind.ZodNativeEnum, - ...processCreateParams(params), - }); - }; - class ZodPromise extends ZodType { - unwrap() { - return this._def.type; - } - _parse(input) { - const { ctx } = this._processInputParams(input); - if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.promise, - received: ctx.parsedType, - }); - return INVALID; - } - const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); - return OK(promisified.then((data) => { - return this._def.type.parseAsync(data, { - path: ctx.path, - errorMap: ctx.common.contextualErrorMap, - }); - })); - } - } - ZodPromise.create = (schema, params) => { - return new ZodPromise({ - type: schema, - typeName: ZodFirstPartyTypeKind.ZodPromise, - ...processCreateParams(params), - }); - }; - class ZodEffects extends ZodType { - innerType() { - return this._def.schema; - } - sourceType() { - return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects - ? this._def.schema.sourceType() - : this._def.schema; - } - _parse(input) { - const { status, ctx } = this._processInputParams(input); - const effect = this._def.effect || null; - const checkCtx = { - addIssue: (arg) => { - addIssueToContext(ctx, arg); - if (arg.fatal) { - status.abort(); - } - else { - status.dirty(); - } - }, - get path() { - return ctx.path; - }, - }; - checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); - if (effect.type === "preprocess") { - const processed = effect.transform(ctx.data, checkCtx); - if (ctx.common.async) { - return Promise.resolve(processed).then(async (processed) => { - if (status.value === "aborted") - return INVALID; - const result = await this._def.schema._parseAsync({ - data: processed, - path: ctx.path, - parent: ctx, - }); - if (result.status === "aborted") - return INVALID; - if (result.status === "dirty") - return DIRTY(result.value); - if (status.value === "dirty") - return DIRTY(result.value); - return result; - }); - } - else { - if (status.value === "aborted") - return INVALID; - const result = this._def.schema._parseSync({ - data: processed, - path: ctx.path, - parent: ctx, - }); - if (result.status === "aborted") - return INVALID; - if (result.status === "dirty") - return DIRTY(result.value); - if (status.value === "dirty") - return DIRTY(result.value); - return result; - } - } - if (effect.type === "refinement") { - const executeRefinement = (acc) => { - const result = effect.refinement(acc, checkCtx); - if (ctx.common.async) { - return Promise.resolve(result); - } - if (result instanceof Promise) { - throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); - } - return acc; - }; - if (ctx.common.async === false) { - const inner = this._def.schema._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - if (inner.status === "aborted") - return INVALID; - if (inner.status === "dirty") - status.dirty(); - executeRefinement(inner.value); - return { status: status.value, value: inner.value }; - } - else { - return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { - if (inner.status === "aborted") - return INVALID; - if (inner.status === "dirty") - status.dirty(); - return executeRefinement(inner.value).then(() => { - return { status: status.value, value: inner.value }; - }); - }); - } - } - if (effect.type === "transform") { - if (ctx.common.async === false) { - const base = this._def.schema._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - if (!isValid(base)) - return INVALID; - const result = effect.transform(base.value, checkCtx); - if (result instanceof Promise) { - throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); - } - return { status: status.value, value: result }; - } - else { - return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { - if (!isValid(base)) - return INVALID; - return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ - status: status.value, - value: result, - })); - }); - } - } - util.assertNever(effect); - } - } - ZodEffects.create = (schema, effect, params) => { - return new ZodEffects({ - schema, - typeName: ZodFirstPartyTypeKind.ZodEffects, - effect, - ...processCreateParams(params), - }); - }; - ZodEffects.createWithPreprocess = (preprocess, schema, params) => { - return new ZodEffects({ - schema, - effect: { type: "preprocess", transform: preprocess }, - typeName: ZodFirstPartyTypeKind.ZodEffects, - ...processCreateParams(params), - }); - }; - class ZodOptional extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType === ZodParsedType.undefined) { - return OK(undefined); - } - return this._def.innerType._parse(input); - } - unwrap() { - return this._def.innerType; - } - } - ZodOptional.create = (type, params) => { - return new ZodOptional({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodOptional, - ...processCreateParams(params), - }); - }; - class ZodNullable extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType === ZodParsedType.null) { - return OK(null); - } - return this._def.innerType._parse(input); - } - unwrap() { - return this._def.innerType; - } - } - ZodNullable.create = (type, params) => { - return new ZodNullable({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodNullable, - ...processCreateParams(params), - }); - }; - class ZodDefault extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - let data = ctx.data; - if (ctx.parsedType === ZodParsedType.undefined) { - data = this._def.defaultValue(); - } - return this._def.innerType._parse({ - data, - path: ctx.path, - parent: ctx, - }); - } - removeDefault() { - return this._def.innerType; - } - } - ZodDefault.create = (type, params) => { - return new ZodDefault({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodDefault, - defaultValue: typeof params.default === "function" ? params.default : () => params.default, - ...processCreateParams(params), - }); - }; - class ZodCatch extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const newCtx = { - ...ctx, - common: { - ...ctx.common, - issues: [], - }, - }; - const result = this._def.innerType._parse({ - data: newCtx.data, - path: newCtx.path, - parent: { - ...newCtx, - }, - }); - if (isAsync(result)) { - return result.then((result) => { - return { - status: "valid", - value: result.status === "valid" - ? result.value - : this._def.catchValue({ - get error() { - return new ZodError(newCtx.common.issues); - }, - input: newCtx.data, - }), - }; - }); - } - else { - return { - status: "valid", - value: result.status === "valid" - ? result.value - : this._def.catchValue({ - get error() { - return new ZodError(newCtx.common.issues); - }, - input: newCtx.data, - }), - }; - } - } - removeCatch() { - return this._def.innerType; - } - } - ZodCatch.create = (type, params) => { - return new ZodCatch({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodCatch, - catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, - ...processCreateParams(params), - }); - }; - class ZodNaN extends ZodType { - _parse(input) { - const parsedType = this._getType(input); - if (parsedType !== ZodParsedType.nan) { - const ctx = this._getOrReturnCtx(input); - addIssueToContext(ctx, { - code: ZodIssueCode.invalid_type, - expected: ZodParsedType.nan, - received: ctx.parsedType, - }); - return INVALID; - } - return { status: "valid", value: input.data }; - } - } - ZodNaN.create = (params) => { - return new ZodNaN({ - typeName: ZodFirstPartyTypeKind.ZodNaN, - ...processCreateParams(params), - }); - }; - const BRAND = Symbol("zod_brand"); - class ZodBranded extends ZodType { - _parse(input) { - const { ctx } = this._processInputParams(input); - const data = ctx.data; - return this._def.type._parse({ - data, - path: ctx.path, - parent: ctx, - }); - } - unwrap() { - return this._def.type; - } - } - class ZodPipeline extends ZodType { - _parse(input) { - const { status, ctx } = this._processInputParams(input); - if (ctx.common.async) { - const handleAsync = async () => { - const inResult = await this._def.in._parseAsync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - if (inResult.status === "aborted") - return INVALID; - if (inResult.status === "dirty") { - status.dirty(); - return DIRTY(inResult.value); - } - else { - return this._def.out._parseAsync({ - data: inResult.value, - path: ctx.path, - parent: ctx, - }); - } - }; - return handleAsync(); - } - else { - const inResult = this._def.in._parseSync({ - data: ctx.data, - path: ctx.path, - parent: ctx, - }); - if (inResult.status === "aborted") - return INVALID; - if (inResult.status === "dirty") { - status.dirty(); - return { - status: "dirty", - value: inResult.value, - }; - } - else { - return this._def.out._parseSync({ - data: inResult.value, - path: ctx.path, - parent: ctx, - }); - } - } - } - static create(a, b) { - return new ZodPipeline({ - in: a, - out: b, - typeName: ZodFirstPartyTypeKind.ZodPipeline, - }); - } - } - class ZodReadonly extends ZodType { - _parse(input) { - const result = this._def.innerType._parse(input); - const freeze = (data) => { - if (isValid(data)) { - data.value = Object.freeze(data.value); - } - return data; - }; - return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); - } - unwrap() { - return this._def.innerType; - } - } - ZodReadonly.create = (type, params) => { - return new ZodReadonly({ - innerType: type, - typeName: ZodFirstPartyTypeKind.ZodReadonly, - ...processCreateParams(params), - }); - }; - function cleanParams(params, data) { - const p = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; - const p2 = typeof p === "string" ? { message: p } : p; - return p2; - } - function custom(check, _params = {}, - fatal) { - if (check) - return ZodAny.create().superRefine((data, ctx) => { - const r = check(data); - if (r instanceof Promise) { - return r.then((r) => { - if (!r) { - const params = cleanParams(_params, data); - const _fatal = params.fatal ?? fatal ?? true; - ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); - } - }); - } - if (!r) { - const params = cleanParams(_params, data); - const _fatal = params.fatal ?? fatal ?? true; - ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); - } - return; - }); - return ZodAny.create(); - } - const late = { - object: ZodObject.lazycreate, - }; - var ZodFirstPartyTypeKind; - (function (ZodFirstPartyTypeKind) { - ZodFirstPartyTypeKind["ZodString"] = "ZodString"; - ZodFirstPartyTypeKind["ZodNumber"] = "ZodNumber"; - ZodFirstPartyTypeKind["ZodNaN"] = "ZodNaN"; - ZodFirstPartyTypeKind["ZodBigInt"] = "ZodBigInt"; - ZodFirstPartyTypeKind["ZodBoolean"] = "ZodBoolean"; - ZodFirstPartyTypeKind["ZodDate"] = "ZodDate"; - ZodFirstPartyTypeKind["ZodSymbol"] = "ZodSymbol"; - ZodFirstPartyTypeKind["ZodUndefined"] = "ZodUndefined"; - ZodFirstPartyTypeKind["ZodNull"] = "ZodNull"; - ZodFirstPartyTypeKind["ZodAny"] = "ZodAny"; - ZodFirstPartyTypeKind["ZodUnknown"] = "ZodUnknown"; - ZodFirstPartyTypeKind["ZodNever"] = "ZodNever"; - ZodFirstPartyTypeKind["ZodVoid"] = "ZodVoid"; - ZodFirstPartyTypeKind["ZodArray"] = "ZodArray"; - ZodFirstPartyTypeKind["ZodObject"] = "ZodObject"; - ZodFirstPartyTypeKind["ZodUnion"] = "ZodUnion"; - ZodFirstPartyTypeKind["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; - ZodFirstPartyTypeKind["ZodIntersection"] = "ZodIntersection"; - ZodFirstPartyTypeKind["ZodTuple"] = "ZodTuple"; - ZodFirstPartyTypeKind["ZodRecord"] = "ZodRecord"; - ZodFirstPartyTypeKind["ZodMap"] = "ZodMap"; - ZodFirstPartyTypeKind["ZodSet"] = "ZodSet"; - ZodFirstPartyTypeKind["ZodFunction"] = "ZodFunction"; - ZodFirstPartyTypeKind["ZodLazy"] = "ZodLazy"; - ZodFirstPartyTypeKind["ZodLiteral"] = "ZodLiteral"; - ZodFirstPartyTypeKind["ZodEnum"] = "ZodEnum"; - ZodFirstPartyTypeKind["ZodEffects"] = "ZodEffects"; - ZodFirstPartyTypeKind["ZodNativeEnum"] = "ZodNativeEnum"; - ZodFirstPartyTypeKind["ZodOptional"] = "ZodOptional"; - ZodFirstPartyTypeKind["ZodNullable"] = "ZodNullable"; - ZodFirstPartyTypeKind["ZodDefault"] = "ZodDefault"; - ZodFirstPartyTypeKind["ZodCatch"] = "ZodCatch"; - ZodFirstPartyTypeKind["ZodPromise"] = "ZodPromise"; - ZodFirstPartyTypeKind["ZodBranded"] = "ZodBranded"; - ZodFirstPartyTypeKind["ZodPipeline"] = "ZodPipeline"; - ZodFirstPartyTypeKind["ZodReadonly"] = "ZodReadonly"; - })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); - const instanceOfType = ( - cls, params = { - message: `Input not instance of ${cls.name}`, - }) => custom((data) => data instanceof cls, params); - const stringType = ZodString.create; - const numberType = ZodNumber.create; - const nanType = ZodNaN.create; - const bigIntType = ZodBigInt.create; - const booleanType = ZodBoolean.create; - const dateType = ZodDate.create; - const symbolType = ZodSymbol.create; - const undefinedType = ZodUndefined.create; - const nullType = ZodNull.create; - const anyType = ZodAny.create; - const unknownType = ZodUnknown.create; - const neverType = ZodNever.create; - const voidType = ZodVoid.create; - const arrayType = ZodArray.create; - const objectType = ZodObject.create; - const strictObjectType = ZodObject.strictCreate; - const unionType = ZodUnion.create; - const discriminatedUnionType = ZodDiscriminatedUnion.create; - const intersectionType = ZodIntersection.create; - const tupleType = ZodTuple.create; - const recordType = ZodRecord.create; - const mapType = ZodMap.create; - const setType = ZodSet.create; - const functionType = ZodFunction.create; - const lazyType = ZodLazy.create; - const literalType = ZodLiteral.create; - const enumType = ZodEnum.create; - const nativeEnumType = ZodNativeEnum.create; - const promiseType = ZodPromise.create; - const effectsType = ZodEffects.create; - const optionalType = ZodOptional.create; - const nullableType = ZodNullable.create; - const preprocessType = ZodEffects.createWithPreprocess; - const pipelineType = ZodPipeline.create; - const ostring = () => stringType().optional(); - const onumber = () => numberType().optional(); - const oboolean = () => booleanType().optional(); - const coerce = { - string: ((arg) => ZodString.create({ ...arg, coerce: true })), - number: ((arg) => ZodNumber.create({ ...arg, coerce: true })), - boolean: ((arg) => ZodBoolean.create({ - ...arg, - coerce: true, - })), - bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })), - date: ((arg) => ZodDate.create({ ...arg, coerce: true })), - }; - const NEVER = INVALID; - - var z = /*#__PURE__*/Object.freeze({ - __proto__: null, - BRAND: BRAND, - DIRTY: DIRTY, - EMPTY_PATH: EMPTY_PATH, - INVALID: INVALID, - NEVER: NEVER, - OK: OK, - ParseStatus: ParseStatus, - Schema: ZodType, - ZodAny: ZodAny, - ZodArray: ZodArray, - ZodBigInt: ZodBigInt, - ZodBoolean: ZodBoolean, - ZodBranded: ZodBranded, - ZodCatch: ZodCatch, - ZodDate: ZodDate, - ZodDefault: ZodDefault, - ZodDiscriminatedUnion: ZodDiscriminatedUnion, - ZodEffects: ZodEffects, - ZodEnum: ZodEnum, - ZodError: ZodError, - get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; }, - ZodFunction: ZodFunction, - ZodIntersection: ZodIntersection, - ZodIssueCode: ZodIssueCode, - ZodLazy: ZodLazy, - ZodLiteral: ZodLiteral, - ZodMap: ZodMap, - ZodNaN: ZodNaN, - ZodNativeEnum: ZodNativeEnum, - ZodNever: ZodNever, - ZodNull: ZodNull, - ZodNullable: ZodNullable, - ZodNumber: ZodNumber, - ZodObject: ZodObject, - ZodOptional: ZodOptional, - ZodParsedType: ZodParsedType, - ZodPipeline: ZodPipeline, - ZodPromise: ZodPromise, - ZodReadonly: ZodReadonly, - ZodRecord: ZodRecord, - ZodSchema: ZodType, - ZodSet: ZodSet, - ZodString: ZodString, - ZodSymbol: ZodSymbol, - ZodTransformer: ZodEffects, - ZodTuple: ZodTuple, - ZodType: ZodType, - ZodUndefined: ZodUndefined, - ZodUnion: ZodUnion, - ZodUnknown: ZodUnknown, - ZodVoid: ZodVoid, - addIssueToContext: addIssueToContext, - any: anyType, - array: arrayType, - bigint: bigIntType, - boolean: booleanType, - coerce: coerce, - custom: custom, - date: dateType, - datetimeRegex: datetimeRegex, - defaultErrorMap: errorMap, - discriminatedUnion: discriminatedUnionType, - effect: effectsType, - enum: enumType, - function: functionType, - getErrorMap: getErrorMap, - getParsedType: getParsedType, - instanceof: instanceOfType, - intersection: intersectionType, - isAborted: isAborted, - isAsync: isAsync, - isDirty: isDirty, - isValid: isValid, - late: late, - lazy: lazyType, - literal: literalType, - makeIssue: makeIssue, - map: mapType, - nan: nanType, - nativeEnum: nativeEnumType, - never: neverType, - null: nullType, - nullable: nullableType, - number: numberType, - object: objectType, - get objectUtil () { return objectUtil; }, - oboolean: oboolean, - onumber: onumber, - optional: optionalType, - ostring: ostring, - pipeline: pipelineType, - preprocess: preprocessType, - promise: promiseType, - quotelessJson: quotelessJson, - record: recordType, - set: setType, - setErrorMap: setErrorMap, - strictObject: strictObjectType, - string: stringType, - symbol: symbolType, - transformer: effectsType, - tuple: tupleType, - undefined: undefinedType, - union: unionType, - unknown: unknownType, - get util () { return util; }, - void: voidType - }); - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - var Bluetooth$1; - (function (Bluetooth) { - Bluetooth.BluetoothUuidSchema = z.lazy(() => z.string()); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.BluetoothManufacturerDataSchema = z.lazy(() => z.object({ - key: z.number().int().nonnegative(), - data: z.string(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.CharacteristicPropertiesSchema = z.lazy(() => z.object({ - broadcast: z.boolean().optional(), - read: z.boolean().optional(), - writeWithoutResponse: z.boolean().optional(), - write: z.boolean().optional(), - notify: z.boolean().optional(), - indicate: z.boolean().optional(), - authenticatedSignedWrites: z.boolean().optional(), - extendedProperties: z.boolean().optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.RequestDeviceSchema = z.lazy(() => z.string()); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.RequestDeviceInfoSchema = z.lazy(() => z.object({ - id: Bluetooth.RequestDeviceSchema, - name: z.union([z.string(), z.null()]), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.RequestDevicePromptSchema = z.lazy(() => z.string()); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.ScanRecordSchema = z.lazy(() => z.object({ - name: z.string().optional(), - uuids: z.array(Bluetooth.BluetoothUuidSchema).optional(), - appearance: z.number().optional(), - manufacturerData: z - .array(Bluetooth.BluetoothManufacturerDataSchema) - .optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - z.lazy(() => z.union([ - Bluetooth$1.HandleRequestDevicePromptSchema, - Bluetooth$1.SimulateAdapterSchema, - Bluetooth$1.DisableSimulationSchema, - Bluetooth$1.SimulatePreconnectedPeripheralSchema, - Bluetooth$1.SimulateAdvertisementSchema, - Bluetooth$1.SimulateGattConnectionResponseSchema, - Bluetooth$1.SimulateGattDisconnectionSchema, - Bluetooth$1.SimulateServiceSchema, - Bluetooth$1.SimulateCharacteristicSchema, - Bluetooth$1.SimulateCharacteristicResponseSchema, - Bluetooth$1.SimulateDescriptorSchema, - Bluetooth$1.SimulateDescriptorResponseSchema, - ])); - (function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.handleRequestDevicePrompt'), - params: Bluetooth.HandleRequestDevicePromptParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptParametersSchema = z.lazy(() => z - .object({ - context: z.string(), - prompt: Bluetooth.RequestDevicePromptSchema, - }) - .and(z.union([ - Bluetooth.HandleRequestDevicePromptAcceptParametersSchema, - Bluetooth.HandleRequestDevicePromptCancelParametersSchema, - ]))); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptAcceptParametersSchema = z.lazy(() => z.object({ - accept: z.literal(true), - device: Bluetooth.RequestDeviceSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptCancelParametersSchema = z.lazy(() => z.object({ - accept: z.literal(false), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateAdapterSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateAdapter'), - params: Bluetooth.SimulateAdapterParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateAdapterParametersSchema = z.lazy(() => z.object({ - context: z.string(), - leSupported: z.boolean().optional(), - state: z.enum(['absent', 'powered-off', 'powered-on']), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.DisableSimulationSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.disableSimulation'), - params: Bluetooth.DisableSimulationParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.DisableSimulationParametersSchema = z.lazy(() => z.object({ - context: z.string(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulatePreconnectedPeripheralSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulatePreconnectedPeripheral'), - params: Bluetooth.SimulatePreconnectedPeripheralParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulatePreconnectedPeripheralParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - name: z.string(), - manufacturerData: z.array(Bluetooth.BluetoothManufacturerDataSchema), - knownServiceUuids: z.array(Bluetooth.BluetoothUuidSchema), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateAdvertisementSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateAdvertisement'), - params: Bluetooth.SimulateAdvertisementParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateAdvertisementParametersSchema = z.lazy(() => z.object({ - context: z.string(), - scanEntry: Bluetooth.SimulateAdvertisementScanEntryParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateAdvertisementScanEntryParametersSchema = z.lazy(() => z.object({ - deviceAddress: z.string(), - rssi: z.number(), - scanRecord: Bluetooth.ScanRecordSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateGattConnectionResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateGattConnectionResponse'), - params: Bluetooth.SimulateGattConnectionResponseParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateGattConnectionResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - code: z.number().int().nonnegative(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateGattDisconnectionSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateGattDisconnection'), - params: Bluetooth.SimulateGattDisconnectionParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateGattDisconnectionParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateServiceSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateService'), - params: Bluetooth.SimulateServiceParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateServiceParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - uuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['add', 'remove']), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateCharacteristicSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateCharacteristic'), - params: Bluetooth.SimulateCharacteristicParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateCharacteristicParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - characteristicProperties: Bluetooth.CharacteristicPropertiesSchema.optional(), - type: z.enum(['add', 'remove']), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateCharacteristicResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateCharacteristicResponse'), - params: Bluetooth.SimulateCharacteristicResponseParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateCharacteristicResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum([ - 'read', - 'write', - 'subscribe-to-notifications', - 'unsubscribe-from-notifications', - ]), - code: z.number().int().nonnegative(), - data: z.array(z.number().int().nonnegative()).optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateDescriptorSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateDescriptor'), - params: Bluetooth.SimulateDescriptorParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateDescriptorParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['add', 'remove']), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateDescriptorResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateDescriptorResponse'), - params: Bluetooth.SimulateDescriptorResponseParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.SimulateDescriptorResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['read', 'write']), - code: z.number().int().nonnegative(), - data: z.array(z.number().int().nonnegative()).optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - z.lazy(() => z.union([ - Bluetooth$1.RequestDevicePromptUpdatedSchema, - Bluetooth$1.GattConnectionAttemptedSchema, - ])); - (function (Bluetooth) { - Bluetooth.RequestDevicePromptUpdatedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.requestDevicePromptUpdated'), - params: Bluetooth.RequestDevicePromptUpdatedParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.RequestDevicePromptUpdatedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - prompt: Bluetooth.RequestDevicePromptSchema, - devices: z.array(Bluetooth.RequestDeviceInfoSchema), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.GattConnectionAttemptedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.gattConnectionAttempted'), - params: Bluetooth.GattConnectionAttemptedParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.GattConnectionAttemptedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.CharacteristicEventGeneratedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.characteristicEventGenerated'), - params: Bluetooth.CharacteristicEventGeneratedParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.CharacteristicEventGeneratedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum([ - 'read', - 'write-with-response', - 'write-without-response', - 'subscribe-to-notifications', - 'unsubscribe-from-notifications', - ]), - data: z.array(z.number().int().nonnegative()).optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.DescriptorEventGeneratedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.descriptorEventGenerated'), - params: Bluetooth.DescriptorEventGeneratedParametersSchema, - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - (function (Bluetooth) { - Bluetooth.DescriptorEventGeneratedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['read', 'write']), - data: z.array(z.number().int().nonnegative()).optional(), - })); - })(Bluetooth$1 || (Bluetooth$1 = {})); - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - z.lazy(() => Permissions$1.SetPermissionSchema); - var Permissions$1; - (function (Permissions) { - Permissions.PermissionDescriptorSchema = z.lazy(() => z.object({ - name: z.string(), - })); - })(Permissions$1 || (Permissions$1 = {})); - (function (Permissions) { - Permissions.PermissionStateSchema = z.lazy(() => z.enum(['granted', 'denied', 'prompt'])); - })(Permissions$1 || (Permissions$1 = {})); - (function (Permissions) { - Permissions.SetPermissionSchema = z.lazy(() => z.object({ - method: z.literal('permissions.setPermission'), - params: Permissions.SetPermissionParametersSchema, - })); - })(Permissions$1 || (Permissions$1 = {})); - (function (Permissions) { - Permissions.SetPermissionParametersSchema = z.lazy(() => z.object({ - descriptor: Permissions.PermissionDescriptorSchema, - state: Permissions.PermissionStateSchema, - origin: z.string(), - embeddedOrigin: z.string().optional(), - userContext: z.string().optional(), - })); - })(Permissions$1 || (Permissions$1 = {})); - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - z.lazy(() => UserAgentClientHints.SetClientHintsOverrideCommandSchema); - var UserAgentClientHints; - (function (UserAgentClientHints) { - UserAgentClientHints.SetClientHintsOverrideCommandSchema = z.lazy(() => z.object({ - method: z.literal('userAgentClientHints.setClientHintsOverride'), - params: z.object({ - clientHints: z.union([ - UserAgentClientHints.ClientHintsMetadataSchema, - z.null(), - ]), - contexts: z.array(z.string()).min(1).optional(), - userContexts: z.array(z.string()).min(1).optional(), - }), - })); - })(UserAgentClientHints || (UserAgentClientHints = {})); - (function (UserAgentClientHints) { - UserAgentClientHints.ClientHintsMetadataSchema = z.lazy(() => z.object({ - brands: z.array(UserAgentClientHints.BrandVersionSchema).optional(), - fullVersionList: z - .array(UserAgentClientHints.BrandVersionSchema) - .optional(), - platform: z.string().optional(), - platformVersion: z.string().optional(), - architecture: z.string().optional(), - model: z.string().optional(), - mobile: z.boolean().optional(), - bitness: z.string().optional(), - wow64: z.boolean().optional(), - formFactors: z.array(z.string()).optional(), - })); - })(UserAgentClientHints || (UserAgentClientHints = {})); - (function (UserAgentClientHints) { - UserAgentClientHints.BrandVersionSchema = z.lazy(() => z.object({ - brand: z.string(), - version: z.string(), - })); - })(UserAgentClientHints || (UserAgentClientHints = {})); - (function (UserAgentClientHints) { - UserAgentClientHints.SetClientHintsOverrideResultSchema = z.lazy(() => z.object({})); - })(UserAgentClientHints || (UserAgentClientHints = {})); - - /** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - z.lazy(() => z - .object({ - id: JsUintSchema, - }) - .and(CommandDataSchema) - .and(ExtensibleSchema)); - const CommandDataSchema = z.lazy(() => z.union([ - BrowserCommandSchema, - BrowsingContextCommandSchema, - EmulationCommandSchema, - InputCommandSchema, - NetworkCommandSchema, - ScriptCommandSchema, - SessionCommandSchema, - StorageCommandSchema, - WebExtensionCommandSchema, - ])); - const EmptyParamsSchema = z.lazy(() => ExtensibleSchema); - z.lazy(() => z.union([CommandResponseSchema, ErrorResponseSchema, EventSchema])); - const CommandResponseSchema = z.lazy(() => z - .object({ - type: z.literal('success'), - id: JsUintSchema, - result: ResultDataSchema, - }) - .and(ExtensibleSchema)); - const ErrorResponseSchema = z.lazy(() => z - .object({ - type: z.literal('error'), - id: z.union([JsUintSchema, z.null()]), - error: ErrorCodeSchema, - message: z.string(), - stacktrace: z.string().optional(), - }) - .and(ExtensibleSchema)); - const ResultDataSchema = z.lazy(() => z.union([ - BrowserResultSchema, - BrowsingContextResultSchema, - EmulationResultSchema, - InputResultSchema, - NetworkResultSchema, - ScriptResultSchema, - SessionResultSchema, - StorageResultSchema, - WebExtensionResultSchema, - ])); - const EmptyResultSchema = z.lazy(() => ExtensibleSchema); - const EventSchema = z.lazy(() => z - .object({ - type: z.literal('event'), - }) - .and(EventDataSchema) - .and(ExtensibleSchema)); - const EventDataSchema = z.lazy(() => z.union([ - BrowsingContextEventSchema, - InputEventSchema, - LogEventSchema, - NetworkEventSchema, - ScriptEventSchema, - ])); - const ExtensibleSchema = z.lazy(() => z.record(z.string(), z.any())); - const JsIntSchema = z - .number() - .int() - .gte(-9007199254740991) - .lte(9007199254740991); - const JsUintSchema = z - .number() - .int() - .nonnegative() - .gte(0) - .lte(9007199254740991); - const ErrorCodeSchema = z.lazy(() => z.enum([ - 'invalid argument', - 'invalid selector', - 'invalid session id', - 'invalid web extension', - 'move target out of bounds', - 'no such alert', - 'no such network collector', - 'no such element', - 'no such frame', - 'no such handle', - 'no such history entry', - 'no such intercept', - 'no such network data', - 'no such node', - 'no such request', - 'no such script', - 'no such storage partition', - 'no such user context', - 'no such web extension', - 'session not created', - 'unable to capture screen', - 'unable to close browser', - 'unable to set cookie', - 'unable to set file input', - 'unavailable network data', - 'underspecified storage partition', - 'unknown command', - 'unknown error', - 'unsupported operation', - ])); - const SessionCommandSchema = z.lazy(() => z.union([ - Session$1.EndSchema, - Session$1.NewSchema, - Session$1.StatusSchema, - Session$1.SubscribeSchema, - Session$1.UnsubscribeSchema, - ])); - const SessionResultSchema = z.lazy(() => z.union([ - Session$1.EndResultSchema, - Session$1.NewResultSchema, - Session$1.StatusResultSchema, - Session$1.SubscribeResultSchema, - Session$1.UnsubscribeResultSchema, - ])); - var Session$1; - (function (Session) { - Session.CapabilitiesRequestSchema = z.lazy(() => z.object({ - alwaysMatch: Session.CapabilityRequestSchema.optional(), - firstMatch: z.array(Session.CapabilityRequestSchema).optional(), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.CapabilityRequestSchema = z.lazy(() => z - .object({ - acceptInsecureCerts: z.boolean().optional(), - browserName: z.string().optional(), - browserVersion: z.string().optional(), - platformName: z.string().optional(), - proxy: Session.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.ProxyConfigurationSchema = z.lazy(() => z.union([ - Session.AutodetectProxyConfigurationSchema, - Session.DirectProxyConfigurationSchema, - Session.ManualProxyConfigurationSchema, - Session.PacProxyConfigurationSchema, - Session.SystemProxyConfigurationSchema, - ])); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.AutodetectProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('autodetect'), - }) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.DirectProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('direct'), - }) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.ManualProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('manual'), - httpProxy: z.string().optional(), - sslProxy: z.string().optional(), - }) - .and(Session.SocksProxyConfigurationSchema.or(z.object({}))) - .and(z.object({ - noProxy: z.array(z.string()).optional(), - })) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SocksProxyConfigurationSchema = z.lazy(() => z.object({ - socksProxy: z.string(), - socksVersion: z.number().int().nonnegative().gte(0).lte(255), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.PacProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('pac'), - proxyAutoconfigUrl: z.string(), - }) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SystemProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('system'), - }) - .and(ExtensibleSchema)); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UserPromptHandlerSchema = z.lazy(() => z.object({ - alert: Session.UserPromptHandlerTypeSchema.optional(), - beforeUnload: Session.UserPromptHandlerTypeSchema.optional(), - confirm: Session.UserPromptHandlerTypeSchema.optional(), - default: Session.UserPromptHandlerTypeSchema.optional(), - file: Session.UserPromptHandlerTypeSchema.optional(), - prompt: Session.UserPromptHandlerTypeSchema.optional(), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UserPromptHandlerTypeSchema = z.lazy(() => z.enum(['accept', 'dismiss', 'ignore'])); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SubscriptionSchema = z.lazy(() => z.string()); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SubscribeParametersSchema = z.lazy(() => z.object({ - events: z.array(z.string()).min(1), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UnsubscribeByIdRequestSchema = z.lazy(() => z.object({ - subscriptions: z.array(Session.SubscriptionSchema).min(1), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UnsubscribeByAttributesRequestSchema = z.lazy(() => z.object({ - events: z.array(z.string()).min(1), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.StatusSchema = z.lazy(() => z.object({ - method: z.literal('session.status'), - params: EmptyParamsSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.StatusResultSchema = z.lazy(() => z.object({ - ready: z.boolean(), - message: z.string(), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.NewSchema = z.lazy(() => z.object({ - method: z.literal('session.new'), - params: Session.NewParametersSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.NewParametersSchema = z.lazy(() => z.object({ - capabilities: Session.CapabilitiesRequestSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.NewResultSchema = z.lazy(() => z.object({ - sessionId: z.string(), - capabilities: z - .object({ - acceptInsecureCerts: z.boolean(), - browserName: z.string(), - browserVersion: z.string(), - platformName: z.string(), - setWindowRect: z.boolean(), - userAgent: z.string(), - proxy: Session.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(), - webSocketUrl: z.string().optional(), - }) - .and(ExtensibleSchema), - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.EndSchema = z.lazy(() => z.object({ - method: z.literal('session.end'), - params: EmptyParamsSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.EndResultSchema = z.lazy(() => EmptyResultSchema); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SubscribeSchema = z.lazy(() => z.object({ - method: z.literal('session.subscribe'), - params: Session.SubscribeParametersSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.SubscribeResultSchema = z.lazy(() => z.object({ - subscription: Session.SubscriptionSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UnsubscribeSchema = z.lazy(() => z.object({ - method: z.literal('session.unsubscribe'), - params: Session.UnsubscribeParametersSchema, - })); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UnsubscribeParametersSchema = z.lazy(() => z.union([ - Session.UnsubscribeByAttributesRequestSchema, - Session.UnsubscribeByIdRequestSchema, - ])); - })(Session$1 || (Session$1 = {})); - (function (Session) { - Session.UnsubscribeResultSchema = z.lazy(() => EmptyResultSchema); - })(Session$1 || (Session$1 = {})); - const BrowserCommandSchema = z.lazy(() => z.union([ - Browser$1.CloseSchema, - Browser$1.CreateUserContextSchema, - Browser$1.GetClientWindowsSchema, - Browser$1.GetUserContextsSchema, - Browser$1.RemoveUserContextSchema, - Browser$1.SetClientWindowStateSchema, - Browser$1.SetDownloadBehaviorSchema, - ])); - const BrowserResultSchema = z.lazy(() => z.union([ - Browser$1.CloseResultSchema, - Browser$1.CreateUserContextResultSchema, - Browser$1.GetClientWindowsResultSchema, - Browser$1.GetUserContextsResultSchema, - Browser$1.RemoveUserContextResultSchema, - Browser$1.SetClientWindowStateResultSchema, - Browser$1.SetDownloadBehaviorResultSchema, - ])); - var Browser$1; - (function (Browser) { - Browser.ClientWindowSchema = z.lazy(() => z.string()); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.ClientWindowInfoSchema = z.lazy(() => z.object({ - active: z.boolean(), - clientWindow: Browser.ClientWindowSchema, - height: JsUintSchema, - state: z.enum(['fullscreen', 'maximized', 'minimized', 'normal']), - width: JsUintSchema, - x: JsIntSchema, - y: JsIntSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.UserContextSchema = z.lazy(() => z.string()); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.UserContextInfoSchema = z.lazy(() => z.object({ - userContext: Browser.UserContextSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.CloseSchema = z.lazy(() => z.object({ - method: z.literal('browser.close'), - params: EmptyParamsSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.CloseResultSchema = z.lazy(() => EmptyResultSchema); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.CreateUserContextSchema = z.lazy(() => z.object({ - method: z.literal('browser.createUserContext'), - params: Browser.CreateUserContextParametersSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.CreateUserContextParametersSchema = z.lazy(() => z.object({ - acceptInsecureCerts: z.boolean().optional(), - proxy: Session$1.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session$1.UserPromptHandlerSchema.optional(), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.CreateUserContextResultSchema = z.lazy(() => Browser.UserContextInfoSchema); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.GetClientWindowsSchema = z.lazy(() => z.object({ - method: z.literal('browser.getClientWindows'), - params: EmptyParamsSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.GetClientWindowsResultSchema = z.lazy(() => z.object({ - clientWindows: z.array(Browser.ClientWindowInfoSchema), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.GetUserContextsSchema = z.lazy(() => z.object({ - method: z.literal('browser.getUserContexts'), - params: EmptyParamsSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.GetUserContextsResultSchema = z.lazy(() => z.object({ - userContexts: z.array(Browser.UserContextInfoSchema).min(1), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.RemoveUserContextSchema = z.lazy(() => z.object({ - method: z.literal('browser.removeUserContext'), - params: Browser.RemoveUserContextParametersSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.RemoveUserContextParametersSchema = z.lazy(() => z.object({ - userContext: Browser.UserContextSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.RemoveUserContextResultSchema = z.lazy(() => EmptyResultSchema); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetClientWindowStateSchema = z.lazy(() => z.object({ - method: z.literal('browser.setClientWindowState'), - params: Browser.SetClientWindowStateParametersSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetClientWindowStateParametersSchema = z.lazy(() => z - .object({ - clientWindow: Browser.ClientWindowSchema, - }) - .and(z.union([ - Browser.ClientWindowNamedStateSchema, - Browser.ClientWindowRectStateSchema, - ]))); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.ClientWindowNamedStateSchema = z.lazy(() => z.object({ - state: z.enum(['fullscreen', 'maximized', 'minimized']), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.ClientWindowRectStateSchema = z.lazy(() => z.object({ - state: z.literal('normal'), - width: JsUintSchema.optional(), - height: JsUintSchema.optional(), - x: JsIntSchema.optional(), - y: JsIntSchema.optional(), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetClientWindowStateResultSchema = z.lazy(() => Browser.ClientWindowInfoSchema); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetDownloadBehaviorSchema = z.lazy(() => z.object({ - method: z.literal('browser.setDownloadBehavior'), - params: Browser.SetDownloadBehaviorParametersSchema, - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetDownloadBehaviorParametersSchema = z.lazy(() => z.object({ - downloadBehavior: z.union([Browser.DownloadBehaviorSchema, z.null()]), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.DownloadBehaviorSchema = z.lazy(() => z.union([ - Browser.DownloadBehaviorAllowedSchema, - Browser.DownloadBehaviorDeniedSchema, - ])); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.DownloadBehaviorAllowedSchema = z.lazy(() => z.object({ - type: z.literal('allowed'), - destinationFolder: z.string(), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.DownloadBehaviorDeniedSchema = z.lazy(() => z.object({ - type: z.literal('denied'), - })); - })(Browser$1 || (Browser$1 = {})); - (function (Browser) { - Browser.SetDownloadBehaviorResultSchema = z.lazy(() => EmptyResultSchema); - })(Browser$1 || (Browser$1 = {})); - const BrowsingContextCommandSchema = z.lazy(() => z.union([ - BrowsingContext$1.ActivateSchema, - BrowsingContext$1.CaptureScreenshotSchema, - BrowsingContext$1.CloseSchema, - BrowsingContext$1.CreateSchema, - BrowsingContext$1.GetTreeSchema, - BrowsingContext$1.HandleUserPromptSchema, - BrowsingContext$1.LocateNodesSchema, - BrowsingContext$1.NavigateSchema, - BrowsingContext$1.PrintSchema, - BrowsingContext$1.ReloadSchema, - BrowsingContext$1.SetBypassCspSchema, - BrowsingContext$1.SetViewportSchema, - BrowsingContext$1.TraverseHistorySchema, - ])); - const BrowsingContextResultSchema = z.lazy(() => z.union([ - BrowsingContext$1.ActivateResultSchema, - BrowsingContext$1.CaptureScreenshotResultSchema, - BrowsingContext$1.CloseResultSchema, - BrowsingContext$1.CreateResultSchema, - BrowsingContext$1.GetTreeResultSchema, - BrowsingContext$1.HandleUserPromptResultSchema, - BrowsingContext$1.LocateNodesResultSchema, - BrowsingContext$1.NavigateResultSchema, - BrowsingContext$1.PrintResultSchema, - BrowsingContext$1.ReloadResultSchema, - BrowsingContext$1.SetBypassCspResultSchema, - BrowsingContext$1.SetViewportResultSchema, - BrowsingContext$1.TraverseHistoryResultSchema, - ])); - const BrowsingContextEventSchema = z.lazy(() => z.union([ - BrowsingContext$1.ContextCreatedSchema, - BrowsingContext$1.ContextDestroyedSchema, - BrowsingContext$1.DomContentLoadedSchema, - BrowsingContext$1.DownloadEndSchema, - BrowsingContext$1.DownloadWillBeginSchema, - BrowsingContext$1.FragmentNavigatedSchema, - BrowsingContext$1.HistoryUpdatedSchema, - BrowsingContext$1.LoadSchema, - BrowsingContext$1.NavigationAbortedSchema, - BrowsingContext$1.NavigationCommittedSchema, - BrowsingContext$1.NavigationFailedSchema, - BrowsingContext$1.NavigationStartedSchema, - BrowsingContext$1.UserPromptClosedSchema, - BrowsingContext$1.UserPromptOpenedSchema, - ])); - var BrowsingContext$1; - (function (BrowsingContext) { - BrowsingContext.BrowsingContextSchema = z.lazy(() => z.string()); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.InfoListSchema = z.lazy(() => z.array(BrowsingContext.InfoSchema)); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.InfoSchema = z.lazy(() => z.object({ - children: z.union([BrowsingContext.InfoListSchema, z.null()]), - clientWindow: Browser$1.ClientWindowSchema, - context: BrowsingContext.BrowsingContextSchema, - originalOpener: z.union([ - BrowsingContext.BrowsingContextSchema, - z.null(), - ]), - url: z.string(), - userContext: Browser$1.UserContextSchema, - parent: z - .union([BrowsingContext.BrowsingContextSchema, z.null()]) - .optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.LocatorSchema = z.lazy(() => z.union([ - BrowsingContext.AccessibilityLocatorSchema, - BrowsingContext.CssLocatorSchema, - BrowsingContext.ContextLocatorSchema, - BrowsingContext.InnerTextLocatorSchema, - BrowsingContext.XPathLocatorSchema, - ])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.AccessibilityLocatorSchema = z.lazy(() => z.object({ - type: z.literal('accessibility'), - value: z.object({ - name: z.string().optional(), - role: z.string().optional(), - }), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CssLocatorSchema = z.lazy(() => z.object({ - type: z.literal('css'), - value: z.string(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ContextLocatorSchema = z.lazy(() => z.object({ - type: z.literal('context'), - value: z.object({ - context: BrowsingContext.BrowsingContextSchema, - }), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.InnerTextLocatorSchema = z.lazy(() => z.object({ - type: z.literal('innerText'), - value: z.string(), - ignoreCase: z.boolean().optional(), - matchType: z.enum(['full', 'partial']).optional(), - maxDepth: JsUintSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.XPathLocatorSchema = z.lazy(() => z.object({ - type: z.literal('xpath'), - value: z.string(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationSchema = z.lazy(() => z.string()); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.BaseNavigationInfoSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - navigation: z.union([BrowsingContext.NavigationSchema, z.null()]), - timestamp: JsUintSchema, - url: z.string(), - userContext: Browser$1.UserContextSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationInfoSchema = z.lazy(() => BrowsingContext.BaseNavigationInfoSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ReadinessStateSchema = z.lazy(() => z.enum(['none', 'interactive', 'complete'])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.UserPromptTypeSchema = z.lazy(() => z.enum(['alert', 'beforeunload', 'confirm', 'prompt'])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ActivateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.activate'), - params: BrowsingContext.ActivateParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ActivateParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ActivateResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CaptureScreenshotSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.captureScreenshot'), - params: BrowsingContext.CaptureScreenshotParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CaptureScreenshotParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - origin: z.enum(['viewport', 'document']).default('viewport').optional(), - format: BrowsingContext.ImageFormatSchema.optional(), - clip: BrowsingContext.ClipRectangleSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ImageFormatSchema = z.lazy(() => z.object({ - type: z.string(), - quality: z.number().gte(0).lte(1).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ClipRectangleSchema = z.lazy(() => z.union([ - BrowsingContext.BoxClipRectangleSchema, - BrowsingContext.ElementClipRectangleSchema, - ])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ElementClipRectangleSchema = z.lazy(() => z.object({ - type: z.literal('element'), - element: Script$1.SharedReferenceSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.BoxClipRectangleSchema = z.lazy(() => z.object({ - type: z.literal('box'), - x: z.number(), - y: z.number(), - width: z.number(), - height: z.number(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CaptureScreenshotResultSchema = z.lazy(() => z.object({ - data: z.string(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CloseSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.close'), - params: BrowsingContext.CloseParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CloseParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - promptUnload: z.boolean().default(false).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CloseResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CreateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.create'), - params: BrowsingContext.CreateParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CreateTypeSchema = z.lazy(() => z.enum(['tab', 'window'])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CreateParametersSchema = z.lazy(() => z.object({ - type: BrowsingContext.CreateTypeSchema, - referenceContext: BrowsingContext.BrowsingContextSchema.optional(), - background: z.boolean().default(false).optional(), - userContext: Browser$1.UserContextSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.CreateResultSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - userContext: Browser$1.UserContextSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.GetTreeSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.getTree'), - params: BrowsingContext.GetTreeParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.GetTreeParametersSchema = z.lazy(() => z.object({ - maxDepth: JsUintSchema.optional(), - root: BrowsingContext.BrowsingContextSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.GetTreeResultSchema = z.lazy(() => z.object({ - contexts: BrowsingContext.InfoListSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.HandleUserPromptSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.handleUserPrompt'), - params: BrowsingContext.HandleUserPromptParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.HandleUserPromptParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - accept: z.boolean().optional(), - userText: z.string().optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.HandleUserPromptResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.LocateNodesSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.locateNodes'), - params: BrowsingContext.LocateNodesParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.LocateNodesParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - locator: BrowsingContext.LocatorSchema, - maxNodeCount: JsUintSchema.gte(1).optional(), - serializationOptions: Script$1.SerializationOptionsSchema.optional(), - startNodes: z.array(Script$1.SharedReferenceSchema).min(1).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.LocateNodesResultSchema = z.lazy(() => z.object({ - nodes: z.array(Script$1.NodeRemoteValueSchema), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigate'), - params: BrowsingContext.NavigateParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigateParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - url: z.string(), - wait: BrowsingContext.ReadinessStateSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigateResultSchema = z.lazy(() => z.object({ - navigation: z.union([BrowsingContext.NavigationSchema, z.null()]), - url: z.string(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.PrintSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.print'), - params: BrowsingContext.PrintParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.PrintParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - background: z.boolean().default(false).optional(), - margin: BrowsingContext.PrintMarginParametersSchema.optional(), - orientation: z - .enum(['portrait', 'landscape']) - .default('portrait') - .optional(), - page: BrowsingContext.PrintPageParametersSchema.optional(), - pageRanges: z.array(z.union([JsUintSchema, z.string()])).optional(), - scale: z.number().gte(0.1).lte(2).default(1).optional(), - shrinkToFit: z.boolean().default(true).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.PrintMarginParametersSchema = z.lazy(() => z.object({ - bottom: z.number().gte(0).default(1).optional(), - left: z.number().gte(0).default(1).optional(), - right: z.number().gte(0).default(1).optional(), - top: z.number().gte(0).default(1).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.PrintPageParametersSchema = z.lazy(() => z.object({ - height: z.number().gte(0.0352).default(27.94).optional(), - width: z.number().gte(0.0352).default(21.59).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.PrintResultSchema = z.lazy(() => z.object({ - data: z.string(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ReloadSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.reload'), - params: BrowsingContext.ReloadParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ReloadParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - ignoreCache: z.boolean().optional(), - wait: BrowsingContext.ReadinessStateSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ReloadResultSchema = z.lazy(() => BrowsingContext.NavigateResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetBypassCspSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.setBypassCSP'), - params: BrowsingContext.SetBypassCspParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetBypassCspParametersSchema = z.lazy(() => z.object({ - bypass: z.union([z.literal(true), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetBypassCspResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetViewportSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.setViewport'), - params: BrowsingContext.SetViewportParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetViewportParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema.optional(), - viewport: z.union([BrowsingContext.ViewportSchema, z.null()]).optional(), - devicePixelRatio: z.union([z.number().gt(0), z.null()]).optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ViewportSchema = z.lazy(() => z.object({ - width: JsUintSchema, - height: JsUintSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.SetViewportResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.TraverseHistorySchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.traverseHistory'), - params: BrowsingContext.TraverseHistoryParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.TraverseHistoryParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - delta: JsIntSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.TraverseHistoryResultSchema = z.lazy(() => EmptyResultSchema); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ContextCreatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.contextCreated'), - params: BrowsingContext.InfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.ContextDestroyedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.contextDestroyed'), - params: BrowsingContext.InfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationStartedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationStarted'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.FragmentNavigatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.fragmentNavigated'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.HistoryUpdatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.historyUpdated'), - params: BrowsingContext.HistoryUpdatedParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.HistoryUpdatedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - timestamp: JsUintSchema, - url: z.string(), - userContext: Browser$1.UserContextSchema.optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DomContentLoadedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.domContentLoaded'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.LoadSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.load'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadWillBeginSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.downloadWillBegin'), - params: BrowsingContext.DownloadWillBeginParamsSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadWillBeginParamsSchema = z.lazy(() => z - .object({ - suggestedFilename: z.string(), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadEndSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.downloadEnd'), - params: BrowsingContext.DownloadEndParamsSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadEndParamsSchema = z.lazy(() => z.union([ - BrowsingContext.DownloadCanceledParamsSchema, - BrowsingContext.DownloadCompleteParamsSchema, - ])); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadCanceledParamsSchema = z.lazy(() => z - .object({ - status: z.literal('canceled'), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.DownloadCompleteParamsSchema = z.lazy(() => z - .object({ - status: z.literal('complete'), - filepath: z.union([z.string(), z.null()]), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationAbortedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationAborted'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationCommittedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationCommitted'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.NavigationFailedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationFailed'), - params: BrowsingContext.NavigationInfoSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.UserPromptClosedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.userPromptClosed'), - params: BrowsingContext.UserPromptClosedParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.UserPromptClosedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - accepted: z.boolean(), - type: BrowsingContext.UserPromptTypeSchema, - userContext: Browser$1.UserContextSchema.optional(), - userText: z.string().optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.UserPromptOpenedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.userPromptOpened'), - params: BrowsingContext.UserPromptOpenedParametersSchema, - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - (function (BrowsingContext) { - BrowsingContext.UserPromptOpenedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - handler: Session$1.UserPromptHandlerTypeSchema, - message: z.string(), - type: BrowsingContext.UserPromptTypeSchema, - userContext: Browser$1.UserContextSchema.optional(), - defaultValue: z.string().optional(), - })); - })(BrowsingContext$1 || (BrowsingContext$1 = {})); - const EmulationCommandSchema = z.lazy(() => z.union([ - Emulation$1.SetForcedColorsModeThemeOverrideSchema, - Emulation$1.SetGeolocationOverrideSchema, - Emulation$1.SetLocaleOverrideSchema, - Emulation$1.SetNetworkConditionsSchema, - Emulation$1.SetScreenOrientationOverrideSchema, - Emulation$1.SetScreenSettingsOverrideSchema, - Emulation$1.SetScriptingEnabledSchema, - Emulation$1.SetScrollbarTypeOverrideSchema, - Emulation$1.SetTimezoneOverrideSchema, - Emulation$1.SetTouchOverrideSchema, - Emulation$1.SetUserAgentOverrideSchema, - ])); - const EmulationResultSchema = z.lazy(() => z.union([ - Emulation$1.SetForcedColorsModeThemeOverrideResultSchema, - Emulation$1.SetGeolocationOverrideResultSchema, - Emulation$1.SetLocaleOverrideResultSchema, - Emulation$1.SetScreenOrientationOverrideResultSchema, - Emulation$1.SetScriptingEnabledResultSchema, - Emulation$1.SetScrollbarTypeOverrideResultSchema, - Emulation$1.SetTimezoneOverrideResultSchema, - Emulation$1.SetTouchOverrideResultSchema, - Emulation$1.SetUserAgentOverrideResultSchema, - ])); - var Emulation$1; - (function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setForcedColorsModeThemeOverride'), - params: Emulation.SetForcedColorsModeThemeOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideParametersSchema = z.lazy(() => z.object({ - theme: z.union([Emulation.ForcedColorsModeThemeSchema, z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.ForcedColorsModeThemeSchema = z.lazy(() => z.enum(['light', 'dark'])); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetGeolocationOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setGeolocationOverride'), - params: Emulation.SetGeolocationOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetGeolocationOverrideParametersSchema = z.lazy(() => z - .union([ - z.object({ - coordinates: z.union([ - Emulation.GeolocationCoordinatesSchema, - z.null(), - ]), - }), - z.object({ - error: Emulation.GeolocationPositionErrorSchema, - }), - ]) - .and(z.object({ - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - }))); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.GeolocationCoordinatesSchema = z.lazy(() => z.object({ - latitude: z.number().gte(-90).lte(90), - longitude: z.number().gte(-180).lte(180), - accuracy: z.number().gte(0).default(1).optional(), - altitude: z.union([z.number(), z.null().default(null)]).optional(), - altitudeAccuracy: z - .union([z.number().gte(0), z.null().default(null)]) - .optional(), - heading: z - .union([z.number().gt(0).lt(360), z.null().default(null)]) - .optional(), - speed: z.union([z.number().gte(0), z.null().default(null)]).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.GeolocationPositionErrorSchema = z.lazy(() => z.object({ - type: z.literal('positionUnavailable'), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetGeolocationOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetLocaleOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setLocaleOverride'), - params: Emulation.SetLocaleOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetLocaleOverrideParametersSchema = z.lazy(() => z.object({ - locale: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetLocaleOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetNetworkConditionsSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setNetworkConditions'), - params: Emulation.SetNetworkConditionsParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetNetworkConditionsParametersSchema = z.lazy(() => z.object({ - networkConditions: z.union([Emulation.NetworkConditionsSchema, z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.NetworkConditionsSchema = z.lazy(() => Emulation.NetworkConditionsOfflineSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.NetworkConditionsOfflineSchema = z.lazy(() => z.object({ - type: z.literal('offline'), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetNetworkConditionsResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenSettingsOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScreenSettingsOverride'), - params: Emulation.SetScreenSettingsOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.ScreenAreaSchema = z.lazy(() => z.object({ - width: JsUintSchema, - height: JsUintSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenSettingsOverrideParametersSchema = z.lazy(() => z.object({ - screenArea: z.union([Emulation.ScreenAreaSchema, z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenSettingsOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenOrientationOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScreenOrientationOverride'), - params: Emulation.SetScreenOrientationOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.ScreenOrientationNaturalSchema = z.lazy(() => z.enum(['portrait', 'landscape'])); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.ScreenOrientationTypeSchema = z.lazy(() => z.enum([ - 'portrait-primary', - 'portrait-secondary', - 'landscape-primary', - 'landscape-secondary', - ])); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.ScreenOrientationSchema = z.lazy(() => z.object({ - natural: Emulation.ScreenOrientationNaturalSchema, - type: Emulation.ScreenOrientationTypeSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenOrientationOverrideParametersSchema = z.lazy(() => z.object({ - screenOrientation: z.union([Emulation.ScreenOrientationSchema, z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScreenOrientationOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetUserAgentOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setUserAgentOverride'), - params: Emulation.SetUserAgentOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetUserAgentOverrideParametersSchema = z.lazy(() => z.object({ - userAgent: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetUserAgentOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScriptingEnabledSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScriptingEnabled'), - params: Emulation.SetScriptingEnabledParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScriptingEnabledParametersSchema = z.lazy(() => z.object({ - enabled: z.union([z.literal(false), z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScriptingEnabledResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScrollbarTypeOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScrollbarTypeOverride'), - params: Emulation.SetScrollbarTypeOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScrollbarTypeOverrideParametersSchema = z.lazy(() => z.object({ - scrollbarType: z.union([ - z.literal('classic'), - z.literal('overlay'), - z.null(), - ]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetScrollbarTypeOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTimezoneOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setTimezoneOverride'), - params: Emulation.SetTimezoneOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTimezoneOverrideParametersSchema = z.lazy(() => z.object({ - timezone: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTimezoneOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTouchOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setTouchOverride'), - params: Emulation.SetTouchOverrideParametersSchema, - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTouchOverrideParametersSchema = z.lazy(() => z.object({ - maxTouchPoints: z.union([JsUintSchema.gte(1), z.null()]), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Emulation$1 || (Emulation$1 = {})); - (function (Emulation) { - Emulation.SetTouchOverrideResultSchema = z.lazy(() => EmptyResultSchema); - })(Emulation$1 || (Emulation$1 = {})); - const NetworkCommandSchema = z.lazy(() => z.union([ - Network$1.AddDataCollectorSchema, - Network$1.AddInterceptSchema, - Network$1.ContinueRequestSchema, - Network$1.ContinueResponseSchema, - Network$1.ContinueWithAuthSchema, - Network$1.DisownDataSchema, - Network$1.FailRequestSchema, - Network$1.GetDataSchema, - Network$1.ProvideResponseSchema, - Network$1.RemoveDataCollectorSchema, - Network$1.RemoveInterceptSchema, - Network$1.SetCacheBehaviorSchema, - Network$1.SetExtraHeadersSchema, - ])); - const NetworkResultSchema = z.lazy(() => z.union([ - Network$1.AddDataCollectorResultSchema, - Network$1.AddInterceptResultSchema, - Network$1.ContinueRequestResultSchema, - Network$1.ContinueResponseResultSchema, - Network$1.ContinueWithAuthResultSchema, - Network$1.DisownDataResultSchema, - Network$1.FailRequestResultSchema, - Network$1.GetDataResultSchema, - Network$1.ProvideResponseResultSchema, - Network$1.RemoveDataCollectorResultSchema, - Network$1.RemoveInterceptResultSchema, - Network$1.SetCacheBehaviorResultSchema, - Network$1.SetExtraHeadersResultSchema, - ])); - const NetworkEventSchema = z.lazy(() => z.union([ - Network$1.AuthRequiredSchema, - Network$1.BeforeRequestSentSchema, - Network$1.FetchErrorSchema, - Network$1.ResponseCompletedSchema, - Network$1.ResponseStartedSchema, - ])); - var Network$1; - (function (Network) { - Network.AuthChallengeSchema = z.lazy(() => z.object({ - scheme: z.string(), - realm: z.string(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AuthCredentialsSchema = z.lazy(() => z.object({ - type: z.literal('password'), - username: z.string(), - password: z.string(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.BaseParametersSchema = z.lazy(() => z.object({ - context: z.union([BrowsingContext$1.BrowsingContextSchema, z.null()]), - isBlocked: z.boolean(), - navigation: z.union([BrowsingContext$1.NavigationSchema, z.null()]), - redirectCount: JsUintSchema, - request: Network.RequestDataSchema, - timestamp: JsUintSchema, - userContext: z.union([Browser$1.UserContextSchema, z.null()]).optional(), - intercepts: z.array(Network.InterceptSchema).min(1).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.BytesValueSchema = z.lazy(() => z.union([Network.StringValueSchema, Network.Base64ValueSchema])); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.StringValueSchema = z.lazy(() => z.object({ - type: z.literal('string'), - value: z.string(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.Base64ValueSchema = z.lazy(() => z.object({ - type: z.literal('base64'), - value: z.string(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.CollectorSchema = z.lazy(() => z.string()); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.CollectorTypeSchema = z.literal('blob'); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SameSiteSchema = z.lazy(() => z.enum(['strict', 'lax', 'none', 'default'])); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.CookieSchema = z.lazy(() => z - .object({ - name: z.string(), - value: Network.BytesValueSchema, - domain: z.string(), - path: z.string(), - size: JsUintSchema, - httpOnly: z.boolean(), - secure: z.boolean(), - sameSite: Network.SameSiteSchema, - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.CookieHeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.DataTypeSchema = z.lazy(() => z.enum(['request', 'response'])); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FetchTimingInfoSchema = z.lazy(() => z.object({ - timeOrigin: z.number(), - requestTime: z.number(), - redirectStart: z.number(), - redirectEnd: z.number(), - fetchStart: z.number(), - dnsStart: z.number(), - dnsEnd: z.number(), - connectStart: z.number(), - connectEnd: z.number(), - tlsStart: z.number(), - requestStart: z.number(), - responseStart: z.number(), - responseEnd: z.number(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.HeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.InitiatorSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema.optional(), - lineNumber: JsUintSchema.optional(), - request: Network.RequestSchema.optional(), - stackTrace: Script$1.StackTraceSchema.optional(), - type: z.enum(['parser', 'script', 'preflight', 'other']).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.InterceptSchema = z.lazy(() => z.string()); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RequestSchema = z.lazy(() => z.string()); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RequestDataSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - url: z.string(), - method: z.string(), - headers: z.array(Network.HeaderSchema), - cookies: z.array(Network.CookieSchema), - headersSize: JsUintSchema, - bodySize: z.union([JsUintSchema, z.null()]), - destination: z.string(), - initiatorType: z.union([z.string(), z.null()]), - timings: Network.FetchTimingInfoSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseContentSchema = z.lazy(() => z.object({ - size: JsUintSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseDataSchema = z.lazy(() => z.object({ - url: z.string(), - protocol: z.string(), - status: JsUintSchema, - statusText: z.string(), - fromCache: z.boolean(), - headers: z.array(Network.HeaderSchema), - mimeType: z.string(), - bytesReceived: JsUintSchema, - headersSize: z.union([JsUintSchema, z.null()]), - bodySize: z.union([JsUintSchema, z.null()]), - content: Network.ResponseContentSchema, - authChallenges: z.array(Network.AuthChallengeSchema).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetCookieHeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - domain: z.string().optional(), - httpOnly: z.boolean().optional(), - expiry: z.string().optional(), - maxAge: JsIntSchema.optional(), - path: z.string().optional(), - sameSite: Network.SameSiteSchema.optional(), - secure: z.boolean().optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.UrlPatternSchema = z.lazy(() => z.union([Network.UrlPatternPatternSchema, Network.UrlPatternStringSchema])); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.UrlPatternPatternSchema = z.lazy(() => z.object({ - type: z.literal('pattern'), - protocol: z.string().optional(), - hostname: z.string().optional(), - port: z.string().optional(), - pathname: z.string().optional(), - search: z.string().optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.UrlPatternStringSchema = z.lazy(() => z.object({ - type: z.literal('string'), - pattern: z.string(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddDataCollectorSchema = z.lazy(() => z.object({ - method: z.literal('network.addDataCollector'), - params: Network.AddDataCollectorParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddDataCollectorParametersSchema = z.lazy(() => z.object({ - dataTypes: z.array(Network.DataTypeSchema).min(1), - maxEncodedDataSize: JsUintSchema, - collectorType: Network.CollectorTypeSchema.default('blob').optional(), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddDataCollectorResultSchema = z.lazy(() => z.object({ - collector: Network.CollectorSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddInterceptSchema = z.lazy(() => z.object({ - method: z.literal('network.addIntercept'), - params: Network.AddInterceptParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddInterceptParametersSchema = z.lazy(() => z.object({ - phases: z.array(Network.InterceptPhaseSchema).min(1), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - urlPatterns: z.array(Network.UrlPatternSchema).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.InterceptPhaseSchema = z.lazy(() => z.enum(['beforeRequestSent', 'responseStarted', 'authRequired'])); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AddInterceptResultSchema = z.lazy(() => z.object({ - intercept: Network.InterceptSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueRequestSchema = z.lazy(() => z.object({ - method: z.literal('network.continueRequest'), - params: Network.ContinueRequestParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueRequestParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - body: Network.BytesValueSchema.optional(), - cookies: z.array(Network.CookieHeaderSchema).optional(), - headers: z.array(Network.HeaderSchema).optional(), - method: z.string().optional(), - url: z.string().optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueRequestResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueResponseSchema = z.lazy(() => z.object({ - method: z.literal('network.continueResponse'), - params: Network.ContinueResponseParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueResponseParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - cookies: z.array(Network.SetCookieHeaderSchema).optional(), - credentials: Network.AuthCredentialsSchema.optional(), - headers: z.array(Network.HeaderSchema).optional(), - reasonPhrase: z.string().optional(), - statusCode: JsUintSchema.optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueResponseResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueWithAuthSchema = z.lazy(() => z.object({ - method: z.literal('network.continueWithAuth'), - params: Network.ContinueWithAuthParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueWithAuthParametersSchema = z.lazy(() => z - .object({ - request: Network.RequestSchema, - }) - .and(z.union([ - Network.ContinueWithAuthCredentialsSchema, - Network.ContinueWithAuthNoCredentialsSchema, - ]))); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueWithAuthCredentialsSchema = z.lazy(() => z.object({ - action: z.literal('provideCredentials'), - credentials: Network.AuthCredentialsSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueWithAuthNoCredentialsSchema = z.lazy(() => z.object({ - action: z.enum(['default', 'cancel']), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ContinueWithAuthResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.DisownDataSchema = z.lazy(() => z.object({ - method: z.literal('network.disownData'), - params: Network.DisownDataParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.DisownDataParametersSchema = z.lazy(() => z.object({ - dataType: Network.DataTypeSchema, - collector: Network.CollectorSchema, - request: Network.RequestSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.DisownDataResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FailRequestSchema = z.lazy(() => z.object({ - method: z.literal('network.failRequest'), - params: Network.FailRequestParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FailRequestParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FailRequestResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.GetDataSchema = z.lazy(() => z.object({ - method: z.literal('network.getData'), - params: Network.GetDataParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.GetDataParametersSchema = z.lazy(() => z.object({ - dataType: Network.DataTypeSchema, - collector: Network.CollectorSchema.optional(), - disown: z.boolean().default(false).optional(), - request: Network.RequestSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.GetDataResultSchema = z.lazy(() => z.object({ - bytes: Network.BytesValueSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ProvideResponseSchema = z.lazy(() => z.object({ - method: z.literal('network.provideResponse'), - params: Network.ProvideResponseParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ProvideResponseParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - body: Network.BytesValueSchema.optional(), - cookies: z.array(Network.SetCookieHeaderSchema).optional(), - headers: z.array(Network.HeaderSchema).optional(), - reasonPhrase: z.string().optional(), - statusCode: JsUintSchema.optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ProvideResponseResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveDataCollectorSchema = z.lazy(() => z.object({ - method: z.literal('network.removeDataCollector'), - params: Network.RemoveDataCollectorParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveDataCollectorParametersSchema = z.lazy(() => z.object({ - collector: Network.CollectorSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveDataCollectorResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveInterceptSchema = z.lazy(() => z.object({ - method: z.literal('network.removeIntercept'), - params: Network.RemoveInterceptParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveInterceptParametersSchema = z.lazy(() => z.object({ - intercept: Network.InterceptSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.RemoveInterceptResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetCacheBehaviorSchema = z.lazy(() => z.object({ - method: z.literal('network.setCacheBehavior'), - params: Network.SetCacheBehaviorParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetCacheBehaviorParametersSchema = z.lazy(() => z.object({ - cacheBehavior: z.enum(['default', 'bypass']), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetCacheBehaviorResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetExtraHeadersSchema = z.lazy(() => z.object({ - method: z.literal('network.setExtraHeaders'), - params: Network.SetExtraHeadersParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetExtraHeadersParametersSchema = z.lazy(() => z.object({ - headers: z.array(Network.HeaderSchema), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.SetExtraHeadersResultSchema = z.lazy(() => EmptyResultSchema); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AuthRequiredSchema = z.lazy(() => z.object({ - method: z.literal('network.authRequired'), - params: Network.AuthRequiredParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.AuthRequiredParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.BeforeRequestSentSchema = z.lazy(() => z.object({ - method: z.literal('network.beforeRequestSent'), - params: Network.BeforeRequestSentParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.BeforeRequestSentParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - initiator: Network.InitiatorSchema.optional(), - }))); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FetchErrorSchema = z.lazy(() => z.object({ - method: z.literal('network.fetchError'), - params: Network.FetchErrorParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.FetchErrorParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - errorText: z.string(), - }))); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseCompletedSchema = z.lazy(() => z.object({ - method: z.literal('network.responseCompleted'), - params: Network.ResponseCompletedParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseCompletedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseStartedSchema = z.lazy(() => z.object({ - method: z.literal('network.responseStarted'), - params: Network.ResponseStartedParametersSchema, - })); - })(Network$1 || (Network$1 = {})); - (function (Network) { - Network.ResponseStartedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); - })(Network$1 || (Network$1 = {})); - const ScriptCommandSchema = z.lazy(() => z.union([ - Script$1.AddPreloadScriptSchema, - Script$1.CallFunctionSchema, - Script$1.DisownSchema, - Script$1.EvaluateSchema, - Script$1.GetRealmsSchema, - Script$1.RemovePreloadScriptSchema, - ])); - const ScriptResultSchema = z.lazy(() => z.union([ - Script$1.AddPreloadScriptResultSchema, - Script$1.CallFunctionResultSchema, - Script$1.DisownResultSchema, - Script$1.EvaluateResultSchema, - Script$1.GetRealmsResultSchema, - Script$1.RemovePreloadScriptResultSchema, - ])); - const ScriptEventSchema = z.lazy(() => z.union([ - Script$1.MessageSchema, - Script$1.RealmCreatedSchema, - Script$1.RealmDestroyedSchema, - ])); - var Script$1; - (function (Script) { - Script.ChannelSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ChannelValueSchema = z.lazy(() => z.object({ - type: z.literal('channel'), - value: Script.ChannelPropertiesSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ChannelPropertiesSchema = z.lazy(() => z.object({ - channel: Script.ChannelSchema, - serializationOptions: Script.SerializationOptionsSchema.optional(), - ownership: Script.ResultOwnershipSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.EvaluateResultSchema = z.lazy(() => z.union([ - Script.EvaluateResultSuccessSchema, - Script.EvaluateResultExceptionSchema, - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.EvaluateResultSuccessSchema = z.lazy(() => z.object({ - type: z.literal('success'), - result: Script.RemoteValueSchema, - realm: Script.RealmSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.EvaluateResultExceptionSchema = z.lazy(() => z.object({ - type: z.literal('exception'), - exceptionDetails: Script.ExceptionDetailsSchema, - realm: Script.RealmSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ExceptionDetailsSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema, - exception: Script.RemoteValueSchema, - lineNumber: JsUintSchema, - stackTrace: Script.StackTraceSchema, - text: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.HandleSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.InternalIdSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.LocalValueSchema = z.lazy(() => z.union([ - Script.RemoteReferenceSchema, - Script.PrimitiveProtocolValueSchema, - Script.ChannelValueSchema, - Script.ArrayLocalValueSchema, - Script.DateLocalValueSchema, - Script.MapLocalValueSchema, - Script.ObjectLocalValueSchema, - Script.RegExpLocalValueSchema, - Script.SetLocalValueSchema, - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ListLocalValueSchema = z.lazy(() => z.array(Script.LocalValueSchema)); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ArrayLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('array'), - value: Script.ListLocalValueSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DateLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('date'), - value: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MappingLocalValueSchema = z.lazy(() => z.array(z.tuple([ - z.union([Script.LocalValueSchema, z.string()]), - Script.LocalValueSchema, - ]))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MapLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('map'), - value: Script.MappingLocalValueSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ObjectLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('object'), - value: Script.MappingLocalValueSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RegExpValueSchema = z.lazy(() => z.object({ - pattern: z.string(), - flags: z.string().optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RegExpLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('regexp'), - value: Script.RegExpValueSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SetLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('set'), - value: Script.ListLocalValueSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.PreloadScriptSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.PrimitiveProtocolValueSchema = z.lazy(() => z.union([ - Script.UndefinedValueSchema, - Script.NullValueSchema, - Script.StringValueSchema, - Script.NumberValueSchema, - Script.BooleanValueSchema, - Script.BigIntValueSchema, - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.UndefinedValueSchema = z.lazy(() => z.object({ - type: z.literal('undefined'), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.NullValueSchema = z.lazy(() => z.object({ - type: z.literal('null'), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.StringValueSchema = z.lazy(() => z.object({ - type: z.literal('string'), - value: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SpecialNumberSchema = z.lazy(() => z.enum(['NaN', '-0', 'Infinity', '-Infinity'])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.NumberValueSchema = z.lazy(() => z.object({ - type: z.literal('number'), - value: z.union([z.number(), Script.SpecialNumberSchema]), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.BooleanValueSchema = z.lazy(() => z.object({ - type: z.literal('boolean'), - value: z.boolean(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.BigIntValueSchema = z.lazy(() => z.object({ - type: z.literal('bigint'), - value: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmInfoSchema = z.lazy(() => z.union([ - Script.WindowRealmInfoSchema, - Script.DedicatedWorkerRealmInfoSchema, - Script.SharedWorkerRealmInfoSchema, - Script.ServiceWorkerRealmInfoSchema, - Script.WorkerRealmInfoSchema, - Script.PaintWorkletRealmInfoSchema, - Script.AudioWorkletRealmInfoSchema, - Script.WorkletRealmInfoSchema, - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.BaseRealmInfoSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - origin: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WindowRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('window'), - context: BrowsingContext$1.BrowsingContextSchema, - userContext: Browser$1.UserContextSchema.optional(), - sandbox: z.string().optional(), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DedicatedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('dedicated-worker'), - owners: z.tuple([Script.RealmSchema]), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SharedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('shared-worker'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ServiceWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('service-worker'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('worker'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.PaintWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('paint-worklet'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.AudioWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('audio-worklet'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('worklet'), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmTypeSchema = z.lazy(() => z.enum([ - 'window', - 'dedicated-worker', - 'shared-worker', - 'service-worker', - 'worker', - 'paint-worklet', - 'audio-worklet', - 'worklet', - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemoteReferenceSchema = z.lazy(() => z.union([Script.SharedReferenceSchema, Script.RemoteObjectReferenceSchema])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SharedReferenceSchema = z.lazy(() => z - .object({ - sharedId: Script.SharedIdSchema, - handle: Script.HandleSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemoteObjectReferenceSchema = z.lazy(() => z - .object({ - handle: Script.HandleSchema, - sharedId: Script.SharedIdSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemoteValueSchema = z.lazy(() => z.union([ - Script.PrimitiveProtocolValueSchema, - Script.SymbolRemoteValueSchema, - Script.ArrayRemoteValueSchema, - Script.ObjectRemoteValueSchema, - Script.FunctionRemoteValueSchema, - Script.RegExpRemoteValueSchema, - Script.DateRemoteValueSchema, - Script.MapRemoteValueSchema, - Script.SetRemoteValueSchema, - Script.WeakMapRemoteValueSchema, - Script.WeakSetRemoteValueSchema, - Script.GeneratorRemoteValueSchema, - Script.ErrorRemoteValueSchema, - Script.ProxyRemoteValueSchema, - Script.PromiseRemoteValueSchema, - Script.TypedArrayRemoteValueSchema, - Script.ArrayBufferRemoteValueSchema, - Script.NodeListRemoteValueSchema, - Script.HtmlCollectionRemoteValueSchema, - Script.NodeRemoteValueSchema, - Script.WindowProxyRemoteValueSchema, - ])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ListRemoteValueSchema = z.lazy(() => z.array(Script.RemoteValueSchema)); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MappingRemoteValueSchema = z.lazy(() => z.array(z.tuple([ - z.union([Script.RemoteValueSchema, z.string()]), - Script.RemoteValueSchema, - ]))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SymbolRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('symbol'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ArrayRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('array'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ObjectRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('object'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.MappingRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.FunctionRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('function'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RegExpRemoteValueSchema = z.lazy(() => Script.RegExpLocalValueSchema.and(z.object({ - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DateRemoteValueSchema = z.lazy(() => Script.DateLocalValueSchema.and(z.object({ - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - }))); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MapRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('map'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.MappingRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SetRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('set'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WeakMapRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('weakmap'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WeakSetRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('weakset'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.GeneratorRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('generator'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ErrorRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('error'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ProxyRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('proxy'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.PromiseRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('promise'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.TypedArrayRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('typedarray'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ArrayBufferRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('arraybuffer'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.NodeListRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('nodelist'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.HtmlCollectionRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('htmlcollection'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.NodeRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('node'), - sharedId: Script.SharedIdSchema.optional(), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.NodePropertiesSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.NodePropertiesSchema = z.lazy(() => z.object({ - nodeType: JsUintSchema, - childNodeCount: JsUintSchema, - attributes: z.record(z.string(), z.string()).optional(), - children: z.array(Script.NodeRemoteValueSchema).optional(), - localName: z.string().optional(), - mode: z.enum(['open', 'closed']).optional(), - namespaceURI: z.string().optional(), - nodeValue: z.string().optional(), - shadowRoot: z.union([Script.NodeRemoteValueSchema, z.null()]).optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WindowProxyRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('window'), - value: Script.WindowProxyPropertiesSchema, - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.WindowProxyPropertiesSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ResultOwnershipSchema = z.lazy(() => z.enum(['root', 'none'])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SerializationOptionsSchema = z.lazy(() => z.object({ - maxDomDepth: z.union([JsUintSchema, z.null()]).default(0).optional(), - maxObjectDepth: z - .union([JsUintSchema, z.null()]) - .default(null) - .optional(), - includeShadowTree: z - .enum(['none', 'open', 'all']) - .default('none') - .optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SharedIdSchema = z.lazy(() => z.string()); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.StackFrameSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema, - functionName: z.string(), - lineNumber: JsUintSchema, - url: z.string(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.StackTraceSchema = z.lazy(() => z.object({ - callFrames: z.array(Script.StackFrameSchema), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.SourceSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - context: BrowsingContext$1.BrowsingContextSchema.optional(), - userContext: Browser$1.UserContextSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmTargetSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.ContextTargetSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - sandbox: z.string().optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.TargetSchema = z.lazy(() => z.union([Script.ContextTargetSchema, Script.RealmTargetSchema])); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.AddPreloadScriptSchema = z.lazy(() => z.object({ - method: z.literal('script.addPreloadScript'), - params: Script.AddPreloadScriptParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.AddPreloadScriptParametersSchema = z.lazy(() => z.object({ - functionDeclaration: z.string(), - arguments: z.array(Script.ChannelValueSchema).optional(), - contexts: z - .array(BrowsingContext$1.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser$1.UserContextSchema).min(1).optional(), - sandbox: z.string().optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.AddPreloadScriptResultSchema = z.lazy(() => z.object({ - script: Script.PreloadScriptSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DisownSchema = z.lazy(() => z.object({ - method: z.literal('script.disown'), - params: Script.DisownParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DisownParametersSchema = z.lazy(() => z.object({ - handles: z.array(Script.HandleSchema), - target: Script.TargetSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.DisownResultSchema = z.lazy(() => EmptyResultSchema); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.CallFunctionSchema = z.lazy(() => z.object({ - method: z.literal('script.callFunction'), - params: Script.CallFunctionParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.CallFunctionParametersSchema = z.lazy(() => z.object({ - functionDeclaration: z.string(), - awaitPromise: z.boolean(), - target: Script.TargetSchema, - arguments: z.array(Script.LocalValueSchema).optional(), - resultOwnership: Script.ResultOwnershipSchema.optional(), - serializationOptions: Script.SerializationOptionsSchema.optional(), - this: Script.LocalValueSchema.optional(), - userActivation: z.boolean().default(false).optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.CallFunctionResultSchema = z.lazy(() => Script.EvaluateResultSchema); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.EvaluateSchema = z.lazy(() => z.object({ - method: z.literal('script.evaluate'), - params: Script.EvaluateParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.EvaluateParametersSchema = z.lazy(() => z.object({ - expression: z.string(), - target: Script.TargetSchema, - awaitPromise: z.boolean(), - resultOwnership: Script.ResultOwnershipSchema.optional(), - serializationOptions: Script.SerializationOptionsSchema.optional(), - userActivation: z.boolean().default(false).optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.GetRealmsSchema = z.lazy(() => z.object({ - method: z.literal('script.getRealms'), - params: Script.GetRealmsParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.GetRealmsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema.optional(), - type: Script.RealmTypeSchema.optional(), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.GetRealmsResultSchema = z.lazy(() => z.object({ - realms: z.array(Script.RealmInfoSchema), - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemovePreloadScriptSchema = z.lazy(() => z.object({ - method: z.literal('script.removePreloadScript'), - params: Script.RemovePreloadScriptParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemovePreloadScriptParametersSchema = z.lazy(() => z.object({ - script: Script.PreloadScriptSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RemovePreloadScriptResultSchema = z.lazy(() => EmptyResultSchema); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MessageSchema = z.lazy(() => z.object({ - method: z.literal('script.message'), - params: Script.MessageParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.MessageParametersSchema = z.lazy(() => z.object({ - channel: Script.ChannelSchema, - data: Script.RemoteValueSchema, - source: Script.SourceSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmCreatedSchema = z.lazy(() => z.object({ - method: z.literal('script.realmCreated'), - params: Script.RealmInfoSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmDestroyedSchema = z.lazy(() => z.object({ - method: z.literal('script.realmDestroyed'), - params: Script.RealmDestroyedParametersSchema, - })); - })(Script$1 || (Script$1 = {})); - (function (Script) { - Script.RealmDestroyedParametersSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - })); - })(Script$1 || (Script$1 = {})); - const StorageCommandSchema = z.lazy(() => z.union([ - Storage$1.DeleteCookiesSchema, - Storage$1.GetCookiesSchema, - Storage$1.SetCookieSchema, - ])); - const StorageResultSchema = z.lazy(() => z.union([ - Storage$1.DeleteCookiesResultSchema, - Storage$1.GetCookiesResultSchema, - Storage$1.SetCookieResultSchema, - ])); - var Storage$1; - (function (Storage) { - Storage.PartitionKeySchema = z.lazy(() => z - .object({ - userContext: z.string().optional(), - sourceOrigin: z.string().optional(), - }) - .and(ExtensibleSchema)); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.GetCookiesSchema = z.lazy(() => z.object({ - method: z.literal('storage.getCookies'), - params: Storage.GetCookiesParametersSchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.CookieFilterSchema = z.lazy(() => z - .object({ - name: z.string().optional(), - value: Network$1.BytesValueSchema.optional(), - domain: z.string().optional(), - path: z.string().optional(), - size: JsUintSchema.optional(), - httpOnly: z.boolean().optional(), - secure: z.boolean().optional(), - sameSite: Network$1.SameSiteSchema.optional(), - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.BrowsingContextPartitionDescriptorSchema = z.lazy(() => z.object({ - type: z.literal('context'), - context: BrowsingContext$1.BrowsingContextSchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.StorageKeyPartitionDescriptorSchema = z.lazy(() => z - .object({ - type: z.literal('storageKey'), - userContext: z.string().optional(), - sourceOrigin: z.string().optional(), - }) - .and(ExtensibleSchema)); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.PartitionDescriptorSchema = z.lazy(() => z.union([ - Storage.BrowsingContextPartitionDescriptorSchema, - Storage.StorageKeyPartitionDescriptorSchema, - ])); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.GetCookiesParametersSchema = z.lazy(() => z.object({ - filter: Storage.CookieFilterSchema.optional(), - partition: Storage.PartitionDescriptorSchema.optional(), - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.GetCookiesResultSchema = z.lazy(() => z.object({ - cookies: z.array(Network$1.CookieSchema), - partitionKey: Storage.PartitionKeySchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.SetCookieSchema = z.lazy(() => z.object({ - method: z.literal('storage.setCookie'), - params: Storage.SetCookieParametersSchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.PartialCookieSchema = z.lazy(() => z - .object({ - name: z.string(), - value: Network$1.BytesValueSchema, - domain: z.string(), - path: z.string().optional(), - httpOnly: z.boolean().optional(), - secure: z.boolean().optional(), - sameSite: Network$1.SameSiteSchema.optional(), - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.SetCookieParametersSchema = z.lazy(() => z.object({ - cookie: Storage.PartialCookieSchema, - partition: Storage.PartitionDescriptorSchema.optional(), - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.SetCookieResultSchema = z.lazy(() => z.object({ - partitionKey: Storage.PartitionKeySchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.DeleteCookiesSchema = z.lazy(() => z.object({ - method: z.literal('storage.deleteCookies'), - params: Storage.DeleteCookiesParametersSchema, - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.DeleteCookiesParametersSchema = z.lazy(() => z.object({ - filter: Storage.CookieFilterSchema.optional(), - partition: Storage.PartitionDescriptorSchema.optional(), - })); - })(Storage$1 || (Storage$1 = {})); - (function (Storage) { - Storage.DeleteCookiesResultSchema = z.lazy(() => z.object({ - partitionKey: Storage.PartitionKeySchema, - })); - })(Storage$1 || (Storage$1 = {})); - const LogEventSchema = z.lazy(() => Log.EntryAddedSchema); - var Log; - (function (Log) { - Log.LevelSchema = z.lazy(() => z.enum(['debug', 'info', 'warn', 'error'])); - })(Log || (Log = {})); - (function (Log) { - Log.EntrySchema = z.lazy(() => z.union([ - Log.GenericLogEntrySchema, - Log.ConsoleLogEntrySchema, - Log.JavascriptLogEntrySchema, - ])); - })(Log || (Log = {})); - (function (Log) { - Log.BaseLogEntrySchema = z.lazy(() => z.object({ - level: Log.LevelSchema, - source: Script$1.SourceSchema, - text: z.union([z.string(), z.null()]), - timestamp: JsUintSchema, - stackTrace: Script$1.StackTraceSchema.optional(), - })); - })(Log || (Log = {})); - (function (Log) { - Log.GenericLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.string(), - }))); - })(Log || (Log = {})); - (function (Log) { - Log.ConsoleLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.literal('console'), - method: z.string(), - args: z.array(Script$1.RemoteValueSchema), - }))); - })(Log || (Log = {})); - (function (Log) { - Log.JavascriptLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.literal('javascript'), - }))); - })(Log || (Log = {})); - (function (Log) { - Log.EntryAddedSchema = z.lazy(() => z.object({ - method: z.literal('log.entryAdded'), - params: Log.EntrySchema, - })); - })(Log || (Log = {})); - const InputCommandSchema = z.lazy(() => z.union([ - Input$1.PerformActionsSchema, - Input$1.ReleaseActionsSchema, - Input$1.SetFilesSchema, - ])); - const InputResultSchema = z.lazy(() => z.union([ - Input$1.PerformActionsResultSchema, - Input$1.ReleaseActionsResultSchema, - Input$1.SetFilesResultSchema, - ])); - const InputEventSchema = z.lazy(() => Input$1.FileDialogOpenedSchema); - var Input$1; - (function (Input) { - Input.ElementOriginSchema = z.lazy(() => z.object({ - type: z.literal('element'), - element: Script$1.SharedReferenceSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PerformActionsSchema = z.lazy(() => z.object({ - method: z.literal('input.performActions'), - params: Input.PerformActionsParametersSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PerformActionsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - actions: z.array(Input.SourceActionsSchema), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.SourceActionsSchema = z.lazy(() => z.union([ - Input.NoneSourceActionsSchema, - Input.KeySourceActionsSchema, - Input.PointerSourceActionsSchema, - Input.WheelSourceActionsSchema, - ])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.NoneSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('none'), - id: z.string(), - actions: z.array(Input.NoneSourceActionSchema), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.NoneSourceActionSchema = z.lazy(() => Input.PauseActionSchema); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.KeySourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('key'), - id: z.string(), - actions: z.array(Input.KeySourceActionSchema), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.KeySourceActionSchema = z.lazy(() => z.union([ - Input.PauseActionSchema, - Input.KeyDownActionSchema, - Input.KeyUpActionSchema, - ])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('pointer'), - id: z.string(), - parameters: Input.PointerParametersSchema.optional(), - actions: z.array(Input.PointerSourceActionSchema), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerTypeSchema = z.lazy(() => z.enum(['mouse', 'pen', 'touch'])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerParametersSchema = z.lazy(() => z.object({ - pointerType: Input.PointerTypeSchema.default('mouse').optional(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerSourceActionSchema = z.lazy(() => z.union([ - Input.PauseActionSchema, - Input.PointerDownActionSchema, - Input.PointerUpActionSchema, - Input.PointerMoveActionSchema, - ])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.WheelSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('wheel'), - id: z.string(), - actions: z.array(Input.WheelSourceActionSchema), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.WheelSourceActionSchema = z.lazy(() => z.union([Input.PauseActionSchema, Input.WheelScrollActionSchema])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PauseActionSchema = z.lazy(() => z.object({ - type: z.literal('pause'), - duration: JsUintSchema.optional(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.KeyDownActionSchema = z.lazy(() => z.object({ - type: z.literal('keyDown'), - value: z.string(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.KeyUpActionSchema = z.lazy(() => z.object({ - type: z.literal('keyUp'), - value: z.string(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerUpActionSchema = z.lazy(() => z.object({ - type: z.literal('pointerUp'), - button: JsUintSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerDownActionSchema = z.lazy(() => z - .object({ - type: z.literal('pointerDown'), - button: JsUintSchema, - }) - .and(Input.PointerCommonPropertiesSchema)); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerMoveActionSchema = z.lazy(() => z - .object({ - type: z.literal('pointerMove'), - x: z.number(), - y: z.number(), - duration: JsUintSchema.optional(), - origin: Input.OriginSchema.optional(), - }) - .and(Input.PointerCommonPropertiesSchema)); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.WheelScrollActionSchema = z.lazy(() => z.object({ - type: z.literal('scroll'), - x: JsIntSchema, - y: JsIntSchema, - deltaX: JsIntSchema, - deltaY: JsIntSchema, - duration: JsUintSchema.optional(), - origin: Input.OriginSchema.default('viewport').optional(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PointerCommonPropertiesSchema = z.lazy(() => z.object({ - width: JsUintSchema.optional(), - height: JsUintSchema.optional(), - pressure: z.number().gte(0).lte(1).optional(), - tangentialPressure: z.number().gte(-1).lte(1).optional(), - twist: z.number().int().nonnegative().gte(0).lte(359).optional(), - altitudeAngle: z.number().gte(0).lte(1.5707963267948966).optional(), - azimuthAngle: z.number().gte(0).lte(6.283185307179586).optional(), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.OriginSchema = z.lazy(() => z.union([ - z.literal('viewport'), - z.literal('pointer'), - Input.ElementOriginSchema, - ])); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.PerformActionsResultSchema = z.lazy(() => EmptyResultSchema); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.ReleaseActionsSchema = z.lazy(() => z.object({ - method: z.literal('input.releaseActions'), - params: Input.ReleaseActionsParametersSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.ReleaseActionsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.ReleaseActionsResultSchema = z.lazy(() => EmptyResultSchema); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.SetFilesSchema = z.lazy(() => z.object({ - method: z.literal('input.setFiles'), - params: Input.SetFilesParametersSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.SetFilesParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - element: Script$1.SharedReferenceSchema, - files: z.array(z.string()), - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.SetFilesResultSchema = z.lazy(() => EmptyResultSchema); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.FileDialogOpenedSchema = z.lazy(() => z.object({ - method: z.literal('input.fileDialogOpened'), - params: Input.FileDialogInfoSchema, - })); - })(Input$1 || (Input$1 = {})); - (function (Input) { - Input.FileDialogInfoSchema = z.lazy(() => z.object({ - context: BrowsingContext$1.BrowsingContextSchema, - userContext: Browser$1.UserContextSchema.optional(), - element: Script$1.SharedReferenceSchema.optional(), - multiple: z.boolean(), - })); - })(Input$1 || (Input$1 = {})); - const WebExtensionCommandSchema = z.lazy(() => z.union([WebExtension.InstallSchema, WebExtension.UninstallSchema])); - const WebExtensionResultSchema = z.lazy(() => z.union([ - WebExtension.InstallResultSchema, - WebExtension.UninstallResultSchema, - ])); - var WebExtension; - (function (WebExtension) { - WebExtension.ExtensionSchema = z.lazy(() => z.string()); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.InstallSchema = z.lazy(() => z.object({ - method: z.literal('webExtension.install'), - params: WebExtension.InstallParametersSchema, - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.InstallParametersSchema = z.lazy(() => z.object({ - extensionData: WebExtension.ExtensionDataSchema, - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.ExtensionDataSchema = z.lazy(() => z.union([ - WebExtension.ExtensionArchivePathSchema, - WebExtension.ExtensionBase64EncodedSchema, - WebExtension.ExtensionPathSchema, - ])); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.ExtensionPathSchema = z.lazy(() => z.object({ - type: z.literal('path'), - path: z.string(), - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.ExtensionArchivePathSchema = z.lazy(() => z.object({ - type: z.literal('archivePath'), - path: z.string(), - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.ExtensionBase64EncodedSchema = z.lazy(() => z.object({ - type: z.literal('base64'), - value: z.string(), - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.InstallResultSchema = z.lazy(() => z.object({ - extension: WebExtension.ExtensionSchema, - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.UninstallSchema = z.lazy(() => z.object({ - method: z.literal('webExtension.uninstall'), - params: WebExtension.UninstallParametersSchema, - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.UninstallParametersSchema = z.lazy(() => z.object({ - extension: WebExtension.ExtensionSchema, - })); - })(WebExtension || (WebExtension = {})); - (function (WebExtension) { - WebExtension.UninstallResultSchema = z.lazy(() => EmptyResultSchema); - })(WebExtension || (WebExtension = {})); - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - function parseObject(obj, schema) { - const parseResult = schema.safeParse(obj); - if (parseResult.success) { - return parseResult.data; - } - const errorMessage = parseResult.error.errors - .map((e) => `${e.message} in ` + - `${e.path.map((p) => JSON.stringify(p)).join('/')}.`) - .join(' '); - throw new InvalidArgumentException(errorMessage); - } - var Browser; - (function (Browser) { - function parseCreateUserContextParameters(params) { - return parseObject(params, Browser$1.CreateUserContextParametersSchema); - } - Browser.parseCreateUserContextParameters = parseCreateUserContextParameters; - function parseRemoveUserContextParameters(params) { - return parseObject(params, Browser$1.RemoveUserContextParametersSchema); - } - Browser.parseRemoveUserContextParameters = parseRemoveUserContextParameters; - function parseSetClientWindowStateParameters(params) { - return parseObject(params, Browser$1.SetClientWindowStateParametersSchema); - } - Browser.parseSetClientWindowStateParameters = parseSetClientWindowStateParameters; - function parseSetDownloadBehaviorParameters(params) { - return parseObject(params, Browser$1.SetDownloadBehaviorParametersSchema); - } - Browser.parseSetDownloadBehaviorParameters = parseSetDownloadBehaviorParameters; - })(Browser || (Browser = {})); - var Network; - (function (Network) { - function parseAddDataCollectorParameters(params) { - return parseObject(params, Network$1.AddDataCollectorParametersSchema); - } - Network.parseAddDataCollectorParameters = parseAddDataCollectorParameters; - function parseAddInterceptParameters(params) { - return parseObject(params, Network$1.AddInterceptParametersSchema); - } - Network.parseAddInterceptParameters = parseAddInterceptParameters; - function parseContinueRequestParameters(params) { - return parseObject(params, Network$1.ContinueRequestParametersSchema); - } - Network.parseContinueRequestParameters = parseContinueRequestParameters; - function parseContinueResponseParameters(params) { - return parseObject(params, Network$1.ContinueResponseParametersSchema); - } - Network.parseContinueResponseParameters = parseContinueResponseParameters; - function parseContinueWithAuthParameters(params) { - return parseObject(params, Network$1.ContinueWithAuthParametersSchema); - } - Network.parseContinueWithAuthParameters = parseContinueWithAuthParameters; - function parseDisownDataParameters(params) { - return parseObject(params, Network$1.DisownDataParametersSchema); - } - Network.parseDisownDataParameters = parseDisownDataParameters; - function parseFailRequestParameters(params) { - return parseObject(params, Network$1.FailRequestParametersSchema); - } - Network.parseFailRequestParameters = parseFailRequestParameters; - function parseGetDataParameters(params) { - return parseObject(params, Network$1.GetDataParametersSchema); - } - Network.parseGetDataParameters = parseGetDataParameters; - function parseProvideResponseParameters(params) { - return parseObject(params, Network$1.ProvideResponseParametersSchema); - } - Network.parseProvideResponseParameters = parseProvideResponseParameters; - function parseRemoveDataCollectorParameters(params) { - return parseObject(params, Network$1.RemoveDataCollectorParametersSchema); - } - Network.parseRemoveDataCollectorParameters = parseRemoveDataCollectorParameters; - function parseRemoveInterceptParameters(params) { - return parseObject(params, Network$1.RemoveInterceptParametersSchema); - } - Network.parseRemoveInterceptParameters = parseRemoveInterceptParameters; - function parseSetCacheBehaviorParameters(params) { - return parseObject(params, Network$1.SetCacheBehaviorParametersSchema); - } - Network.parseSetCacheBehaviorParameters = parseSetCacheBehaviorParameters; - function parseSetExtraHeadersParameters(params) { - return parseObject(params, Network$1.SetExtraHeadersParametersSchema); - } - Network.parseSetExtraHeadersParameters = parseSetExtraHeadersParameters; - })(Network || (Network = {})); - var Script; - (function (Script) { - function parseAddPreloadScriptParams(params) { - return parseObject(params, Script$1.AddPreloadScriptParametersSchema); - } - Script.parseAddPreloadScriptParams = parseAddPreloadScriptParams; - function parseCallFunctionParams(params) { - return parseObject(params, Script$1.CallFunctionParametersSchema); - } - Script.parseCallFunctionParams = parseCallFunctionParams; - function parseDisownParams(params) { - return parseObject(params, Script$1.DisownParametersSchema); - } - Script.parseDisownParams = parseDisownParams; - function parseEvaluateParams(params) { - return parseObject(params, Script$1.EvaluateParametersSchema); - } - Script.parseEvaluateParams = parseEvaluateParams; - function parseGetRealmsParams(params) { - return parseObject(params, Script$1.GetRealmsParametersSchema); - } - Script.parseGetRealmsParams = parseGetRealmsParams; - function parseRemovePreloadScriptParams(params) { - return parseObject(params, Script$1.RemovePreloadScriptParametersSchema); - } - Script.parseRemovePreloadScriptParams = parseRemovePreloadScriptParams; - })(Script || (Script = {})); - var BrowsingContext; - (function (BrowsingContext) { - function parseActivateParams(params) { - return parseObject(params, BrowsingContext$1.ActivateParametersSchema); - } - BrowsingContext.parseActivateParams = parseActivateParams; - function parseCaptureScreenshotParams(params) { - return parseObject(params, BrowsingContext$1.CaptureScreenshotParametersSchema); - } - BrowsingContext.parseCaptureScreenshotParams = parseCaptureScreenshotParams; - function parseCloseParams(params) { - return parseObject(params, BrowsingContext$1.CloseParametersSchema); - } - BrowsingContext.parseCloseParams = parseCloseParams; - function parseCreateParams(params) { - return parseObject(params, BrowsingContext$1.CreateParametersSchema); - } - BrowsingContext.parseCreateParams = parseCreateParams; - function parseGetTreeParams(params) { - return parseObject(params, BrowsingContext$1.GetTreeParametersSchema); - } - BrowsingContext.parseGetTreeParams = parseGetTreeParams; - function parseHandleUserPromptParameters(params) { - return parseObject(params, BrowsingContext$1.HandleUserPromptParametersSchema); - } - BrowsingContext.parseHandleUserPromptParameters = parseHandleUserPromptParameters; - function parseLocateNodesParams(params) { - return parseObject(params, BrowsingContext$1.LocateNodesParametersSchema); - } - BrowsingContext.parseLocateNodesParams = parseLocateNodesParams; - function parseNavigateParams(params) { - return parseObject(params, BrowsingContext$1.NavigateParametersSchema); - } - BrowsingContext.parseNavigateParams = parseNavigateParams; - function parsePrintParams(params) { - return parseObject(params, BrowsingContext$1.PrintParametersSchema); - } - BrowsingContext.parsePrintParams = parsePrintParams; - function parseReloadParams(params) { - return parseObject(params, BrowsingContext$1.ReloadParametersSchema); - } - BrowsingContext.parseReloadParams = parseReloadParams; - function parseSetBypassCspParams(params) { - return parseObject(params, BrowsingContext$1.SetBypassCspParametersSchema); - } - BrowsingContext.parseSetBypassCspParams = parseSetBypassCspParams; - function parseSetViewportParams(params) { - return parseObject(params, BrowsingContext$1.SetViewportParametersSchema); - } - BrowsingContext.parseSetViewportParams = parseSetViewportParams; - function parseTraverseHistoryParams(params) { - return parseObject(params, BrowsingContext$1.TraverseHistoryParametersSchema); - } - BrowsingContext.parseTraverseHistoryParams = parseTraverseHistoryParams; - })(BrowsingContext || (BrowsingContext = {})); - var Session; - (function (Session) { - function parseSubscribeParams(params) { - return parseObject(params, Session$1.SubscribeParametersSchema); - } - Session.parseSubscribeParams = parseSubscribeParams; - function parseUnsubscribeParams(params) { - if (params && typeof params === 'object' && 'subscriptions' in params) { - return parseObject(params, Session$1.UnsubscribeByIdRequestSchema); - } - return parseObject(params, Session$1.UnsubscribeParametersSchema); - } - Session.parseUnsubscribeParams = parseUnsubscribeParams; - })(Session || (Session = {})); - var Emulation; - (function (Emulation) { - function parseSetClientHintsOverrideParams(params) { - const SetClientHintsOverrideParametersSchema = objectType({ - clientHints: unionType([ - UserAgentClientHints - .ClientHintsMetadataSchema, - nullType(), - ]), - contexts: arrayType(stringType()).min(1).optional(), - userContexts: arrayType(stringType()).min(1).optional(), - }); - return parseObject(params, SetClientHintsOverrideParametersSchema); - } - Emulation.parseSetClientHintsOverrideParams = parseSetClientHintsOverrideParams; - function parseSetForcedColorsModeThemeOverrideParams(params) { - return parseObject(params, Emulation$1.SetForcedColorsModeThemeOverrideParametersSchema); - } - Emulation.parseSetForcedColorsModeThemeOverrideParams = parseSetForcedColorsModeThemeOverrideParams; - function parseSetGeolocationOverrideParams(params) { - if ('coordinates' in params && 'error' in params) { - throw new InvalidArgumentException('Coordinates and error cannot be set at the same time'); - } - return parseObject(params, Emulation$1.SetGeolocationOverrideParametersSchema); - } - Emulation.parseSetGeolocationOverrideParams = parseSetGeolocationOverrideParams; - function parseSetLocaleOverrideParams(params) { - return parseObject(params, Emulation$1.SetLocaleOverrideParametersSchema); - } - Emulation.parseSetLocaleOverrideParams = parseSetLocaleOverrideParams; - function parseSetNetworkConditionsParams(params) { - return parseObject(params, Emulation$1.SetNetworkConditionsParametersSchema); - } - Emulation.parseSetNetworkConditionsParams = parseSetNetworkConditionsParams; - function parseSetScreenOrientationOverrideParams(params) { - return parseObject(params, Emulation$1.SetScreenOrientationOverrideParametersSchema); - } - Emulation.parseSetScreenOrientationOverrideParams = parseSetScreenOrientationOverrideParams; - function parseSetScreenSettingsOverrideParams(params) { - return parseObject(params, Emulation$1.SetScreenSettingsOverrideParametersSchema); - } - Emulation.parseSetScreenSettingsOverrideParams = parseSetScreenSettingsOverrideParams; - function parseSetScriptingEnabledParams(params) { - return parseObject(params, Emulation$1.SetScriptingEnabledParametersSchema); - } - Emulation.parseSetScriptingEnabledParams = parseSetScriptingEnabledParams; - function parseSetScrollbarTypeOverrideParams(params) { - return parseObject(params, Emulation$1.SetScrollbarTypeOverrideParametersSchema); - } - Emulation.parseSetScrollbarTypeOverrideParams = parseSetScrollbarTypeOverrideParams; - function parseSetTimezoneOverrideParams(params) { - return parseObject(params, Emulation$1.SetTimezoneOverrideParametersSchema); - } - Emulation.parseSetTimezoneOverrideParams = parseSetTimezoneOverrideParams; - function parseSetTouchOverrideParams(params) { - return parseObject(params, Emulation$1.SetTouchOverrideParametersSchema); - } - Emulation.parseSetTouchOverrideParams = parseSetTouchOverrideParams; - function parseSetUserAgentOverrideParams(params) { - return parseObject(params, Emulation$1.SetUserAgentOverrideParametersSchema); - } - Emulation.parseSetUserAgentOverrideParams = parseSetUserAgentOverrideParams; - })(Emulation || (Emulation = {})); - var Input; - (function (Input) { - function parsePerformActionsParams(params) { - return parseObject(params, Input$1.PerformActionsParametersSchema); - } - Input.parsePerformActionsParams = parsePerformActionsParams; - function parseReleaseActionsParams(params) { - return parseObject(params, Input$1.ReleaseActionsParametersSchema); - } - Input.parseReleaseActionsParams = parseReleaseActionsParams; - function parseSetFilesParams(params) { - return parseObject(params, Input$1.SetFilesParametersSchema); - } - Input.parseSetFilesParams = parseSetFilesParams; - })(Input || (Input = {})); - var Storage; - (function (Storage) { - function parseDeleteCookiesParams(params) { - return parseObject(params, Storage$1.DeleteCookiesParametersSchema); - } - Storage.parseDeleteCookiesParams = parseDeleteCookiesParams; - function parseGetCookiesParams(params) { - return parseObject(params, Storage$1.GetCookiesParametersSchema); - } - Storage.parseGetCookiesParams = parseGetCookiesParams; - function parseSetCookieParams(params) { - return parseObject(params, Storage$1.SetCookieParametersSchema); - } - Storage.parseSetCookieParams = parseSetCookieParams; - })(Storage || (Storage = {})); - var Cdp; - (function (Cdp) { - const GetSessionRequestSchema = objectType({ - context: BrowsingContext$1.BrowsingContextSchema, - }); - const ResolveRealmRequestSchema = objectType({ - realm: Script$1.RealmSchema, - }); - const SendCommandRequestSchema = objectType({ - method: stringType(), - params: objectType({}).passthrough().optional(), - session: stringType().optional(), - }); - function parseGetSessionRequest(params) { - return parseObject(params, GetSessionRequestSchema); - } - Cdp.parseGetSessionRequest = parseGetSessionRequest; - function parseResolveRealmRequest(params) { - return parseObject(params, ResolveRealmRequestSchema); - } - Cdp.parseResolveRealmRequest = parseResolveRealmRequest; - function parseSendCommandRequest(params) { - return parseObject(params, SendCommandRequestSchema); - } - Cdp.parseSendCommandRequest = parseSendCommandRequest; - })(Cdp || (Cdp = {})); - var Permissions; - (function (Permissions) { - function parseSetPermissionsParams(params) { - return { - ...params, - ...parseObject(params, Permissions$1.SetPermissionParametersSchema), - }; - } - Permissions.parseSetPermissionsParams = parseSetPermissionsParams; - })(Permissions || (Permissions = {})); - var Bluetooth; - (function (Bluetooth) { - function parseDisableSimulationParameters(params) { - return parseObject(params, Bluetooth$1.DisableSimulationParametersSchema); - } - Bluetooth.parseDisableSimulationParameters = parseDisableSimulationParameters; - function parseHandleRequestDevicePromptParams(params) { - return parseObject(params, Bluetooth$1 - .HandleRequestDevicePromptParametersSchema); - } - Bluetooth.parseHandleRequestDevicePromptParams = parseHandleRequestDevicePromptParams; - function parseSimulateAdapterParams(params) { - return parseObject(params, Bluetooth$1.SimulateAdapterParametersSchema); - } - Bluetooth.parseSimulateAdapterParams = parseSimulateAdapterParams; - function parseSimulateAdvertisementParams(params) { - return parseObject(params, Bluetooth$1.SimulateAdvertisementParametersSchema); - } - Bluetooth.parseSimulateAdvertisementParams = parseSimulateAdvertisementParams; - function parseSimulateCharacteristicParams(params) { - return parseObject(params, Bluetooth$1.SimulateCharacteristicParametersSchema); - } - Bluetooth.parseSimulateCharacteristicParams = parseSimulateCharacteristicParams; - function parseSimulateCharacteristicResponseParams(params) { - return parseObject(params, Bluetooth$1 - .SimulateCharacteristicResponseParametersSchema); - } - Bluetooth.parseSimulateCharacteristicResponseParams = parseSimulateCharacteristicResponseParams; - function parseSimulateDescriptorParams(params) { - return parseObject(params, Bluetooth$1.SimulateDescriptorParametersSchema); - } - Bluetooth.parseSimulateDescriptorParams = parseSimulateDescriptorParams; - function parseSimulateDescriptorResponseParams(params) { - return parseObject(params, Bluetooth$1 - .SimulateDescriptorResponseParametersSchema); - } - Bluetooth.parseSimulateDescriptorResponseParams = parseSimulateDescriptorResponseParams; - function parseSimulateGattConnectionResponseParams(params) { - return parseObject(params, Bluetooth$1 - .SimulateGattConnectionResponseParametersSchema); - } - Bluetooth.parseSimulateGattConnectionResponseParams = parseSimulateGattConnectionResponseParams; - function parseSimulateGattDisconnectionParams(params) { - return parseObject(params, Bluetooth$1 - .SimulateGattDisconnectionParametersSchema); - } - Bluetooth.parseSimulateGattDisconnectionParams = parseSimulateGattDisconnectionParams; - function parseSimulatePreconnectedPeripheralParams(params) { - return parseObject(params, Bluetooth$1 - .SimulatePreconnectedPeripheralParametersSchema); - } - Bluetooth.parseSimulatePreconnectedPeripheralParams = parseSimulatePreconnectedPeripheralParams; - function parseSimulateServiceParams(params) { - return parseObject(params, Bluetooth$1.SimulateServiceParametersSchema); - } - Bluetooth.parseSimulateServiceParams = parseSimulateServiceParams; - })(Bluetooth || (Bluetooth = {})); - var WebModule; - (function (WebModule) { - function parseInstallParams(params) { - return parseObject(params, WebExtension.InstallParametersSchema); - } - WebModule.parseInstallParams = parseInstallParams; - function parseUninstallParams(params) { - return parseObject(params, WebExtension.UninstallParametersSchema); - } - WebModule.parseUninstallParams = parseUninstallParams; - })(WebModule || (WebModule = {})); - - class BidiParser { - parseDisableSimulationParameters(params) { - return Bluetooth.parseDisableSimulationParameters(params); - } - parseHandleRequestDevicePromptParams(params) { - return Bluetooth.parseHandleRequestDevicePromptParams(params); - } - parseSimulateAdapterParameters(params) { - return Bluetooth.parseSimulateAdapterParams(params); - } - parseSimulateAdvertisementParameters(params) { - return Bluetooth.parseSimulateAdvertisementParams(params); - } - parseSimulateCharacteristicParameters(params) { - return Bluetooth.parseSimulateCharacteristicParams(params); - } - parseSimulateCharacteristicResponseParameters(params) { - return Bluetooth.parseSimulateCharacteristicResponseParams(params); - } - parseSimulateDescriptorParameters(params) { - return Bluetooth.parseSimulateDescriptorParams(params); - } - parseSimulateDescriptorResponseParameters(params) { - return Bluetooth.parseSimulateDescriptorResponseParams(params); - } - parseSimulateGattConnectionResponseParameters(params) { - return Bluetooth.parseSimulateGattConnectionResponseParams(params); - } - parseSimulateGattDisconnectionParameters(params) { - return Bluetooth.parseSimulateGattDisconnectionParams(params); - } - parseSimulatePreconnectedPeripheralParameters(params) { - return Bluetooth.parseSimulatePreconnectedPeripheralParams(params); - } - parseSimulateServiceParameters(params) { - return Bluetooth.parseSimulateServiceParams(params); - } - parseCreateUserContextParameters(params) { - Browser.parseCreateUserContextParameters(params); - return params; - } - parseRemoveUserContextParameters(params) { - return Browser.parseRemoveUserContextParameters(params); - } - parseSetClientWindowStateParameters(params) { - return Browser.parseSetClientWindowStateParameters(params); - } - parseSetDownloadBehaviorParameters(params) { - return Browser.parseSetDownloadBehaviorParameters(params); - } - parseActivateParams(params) { - return BrowsingContext.parseActivateParams(params); - } - parseCaptureScreenshotParams(params) { - return BrowsingContext.parseCaptureScreenshotParams(params); - } - parseCloseParams(params) { - return BrowsingContext.parseCloseParams(params); - } - parseCreateParams(params) { - return BrowsingContext.parseCreateParams(params); - } - parseGetTreeParams(params) { - return BrowsingContext.parseGetTreeParams(params); - } - parseHandleUserPromptParams(params) { - return BrowsingContext.parseHandleUserPromptParameters(params); - } - parseLocateNodesParams(params) { - return BrowsingContext.parseLocateNodesParams(params); - } - parseNavigateParams(params) { - return BrowsingContext.parseNavigateParams(params); - } - parsePrintParams(params) { - return BrowsingContext.parsePrintParams(params); - } - parseReloadParams(params) { - return BrowsingContext.parseReloadParams(params); - } - parseSetBypassCspParams(params) { - return BrowsingContext.parseSetBypassCspParams(params); - } - parseSetViewportParams(params) { - return BrowsingContext.parseSetViewportParams(params); - } - parseTraverseHistoryParams(params) { - return BrowsingContext.parseTraverseHistoryParams(params); - } - parseGetSessionParams(params) { - return Cdp.parseGetSessionRequest(params); - } - parseResolveRealmParams(params) { - return Cdp.parseResolveRealmRequest(params); - } - parseSendCommandParams(params) { - return Cdp.parseSendCommandRequest(params); - } - parseSetClientHintsOverrideParams(params) { - return Emulation.parseSetClientHintsOverrideParams(params); - } - parseSetForcedColorsModeThemeOverrideParams(params) { - return Emulation.parseSetForcedColorsModeThemeOverrideParams(params); - } - parseSetGeolocationOverrideParams(params) { - return Emulation.parseSetGeolocationOverrideParams(params); - } - parseSetLocaleOverrideParams(params) { - return Emulation.parseSetLocaleOverrideParams(params); - } - parseSetNetworkConditionsParams(params) { - return Emulation.parseSetNetworkConditionsParams(params); - } - parseSetScreenOrientationOverrideParams(params) { - return Emulation.parseSetScreenOrientationOverrideParams(params); - } - parseSetScreenSettingsOverrideParams(params) { - return Emulation.parseSetScreenSettingsOverrideParams(params); - } - parseSetScriptingEnabledParams(params) { - return Emulation.parseSetScriptingEnabledParams(params); - } - parseSetScrollbarTypeOverrideParams(params) { - return Emulation.parseSetScrollbarTypeOverrideParams(params); - } - parseSetTimezoneOverrideParams(params) { - return Emulation.parseSetTimezoneOverrideParams(params); - } - parseSetTouchOverrideParams(params) { - return Emulation.parseSetTouchOverrideParams(params); - } - parseSetUserAgentOverrideParams(params) { - return Emulation.parseSetUserAgentOverrideParams(params); - } - parsePerformActionsParams(params) { - return Input.parsePerformActionsParams(params); - } - parseReleaseActionsParams(params) { - return Input.parseReleaseActionsParams(params); - } - parseSetFilesParams(params) { - return Input.parseSetFilesParams(params); - } - parseAddDataCollectorParams(params) { - return Network.parseAddDataCollectorParameters(params); - } - parseAddInterceptParams(params) { - return Network.parseAddInterceptParameters(params); - } - parseContinueRequestParams(params) { - return Network.parseContinueRequestParameters(params); - } - parseContinueResponseParams(params) { - return Network.parseContinueResponseParameters(params); - } - parseContinueWithAuthParams(params) { - return Network.parseContinueWithAuthParameters(params); - } - parseDisownDataParams(params) { - return Network.parseDisownDataParameters(params); - } - parseFailRequestParams(params) { - return Network.parseFailRequestParameters(params); - } - parseGetDataParams(params) { - return Network.parseGetDataParameters(params); - } - parseProvideResponseParams(params) { - return Network.parseProvideResponseParameters(params); - } - parseRemoveDataCollectorParams(params) { - return Network.parseRemoveDataCollectorParameters(params); - } - parseRemoveInterceptParams(params) { - return Network.parseRemoveInterceptParameters(params); - } - parseSetCacheBehaviorParams(params) { - return Network.parseSetCacheBehaviorParameters(params); - } - parseSetExtraHeadersParams(params) { - return Network.parseSetExtraHeadersParameters(params); - } - parseSetPermissionsParams(params) { - return Permissions.parseSetPermissionsParams(params); - } - parseAddPreloadScriptParams(params) { - return Script.parseAddPreloadScriptParams(params); - } - parseCallFunctionParams(params) { - return Script.parseCallFunctionParams(params); - } - parseDisownParams(params) { - return Script.parseDisownParams(params); - } - parseEvaluateParams(params) { - return Script.parseEvaluateParams(params); - } - parseGetRealmsParams(params) { - return Script.parseGetRealmsParams(params); - } - parseRemovePreloadScriptParams(params) { - return Script.parseRemovePreloadScriptParams(params); - } - parseSubscribeParams(params) { - return Session.parseSubscribeParams(params); - } - parseUnsubscribeParams(params) { - return Session.parseUnsubscribeParams(params); - } - parseDeleteCookiesParams(params) { - return Storage.parseDeleteCookiesParams(params); - } - parseGetCookiesParams(params) { - return Storage.parseGetCookiesParams(params); - } - parseSetCookieParams(params) { - return Storage.parseSetCookieParams(params); - } - parseInstallParams(params) { - return WebModule.parseInstallParams(params); - } - parseUninstallParams(params) { - return WebModule.parseUninstallParams(params); - } - } - - /** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - const mapperPageSource = 'BiDi-CDP Mapper

BiDi-CDP Mapper is controlling this tab

Closing or reloading it will stop the BiDi process. Details.

'; - function generatePage() { - if (!globalThis.document.documentElement) { - return; - } - globalThis.document.documentElement.innerHTML = mapperPageSource; - globalThis.window.onbeforeunload = () => 'Closing or reloading this tab will stop the BiDi process. Are you sure you want to leave?'; - } - function stringify(message) { - if (typeof message === 'object') { - return JSON.stringify(message, null, 2); - } - return message; - } - function log(logPrefix, ...messages) { - if (!globalThis.document.documentElement) { - return; - } - if (!logPrefix.startsWith(LogType.bidi)) { - globalThis.window?.sendDebugMessage?.(JSON.stringify({ logType: logPrefix, messages }, null, 2)); - } - const debugContainer = document.getElementById('logs'); - if (!debugContainer) { - return; - } - const lineElement = document.createElement('div'); - lineElement.className = 'pre'; - lineElement.textContent = [logPrefix, ...messages].map(stringify).join(' '); - debugContainer.appendChild(lineElement); - if (debugContainer.childNodes.length > 400) { - debugContainer.removeChild(debugContainer.childNodes[0]); - } - } - - var _a; - class WindowBidiTransport { - static LOGGER_PREFIX_RECV = `${LogType.bidi}:RECV ◂`; - static LOGGER_PREFIX_SEND = `${LogType.bidi}:SEND ▸`; - static LOGGER_PREFIX_WARN = LogType.debugWarn; - #onMessage = null; - constructor() { - window.onBidiMessage = (message) => { - log(_a.LOGGER_PREFIX_RECV, message); - try { - const command = _a.#parseBidiMessage(message); - this.#onMessage?.call(null, command); - } - catch (e) { - const error = e instanceof Error ? e : new Error(e); - this.#respondWithError(message, "invalid argument" , error, null); - } - }; - } - setOnMessage(onMessage) { - this.#onMessage = onMessage; - } - sendMessage(message) { - log(_a.LOGGER_PREFIX_SEND, message); - const json = JSON.stringify(message); - window.sendBidiResponse(json); - } - close() { - this.#onMessage = null; - window.onBidiMessage = null; - } - #respondWithError(plainCommandData, errorCode, error, googChannel) { - const errorResponse = _a.#getErrorResponse(plainCommandData, errorCode, error); - if (googChannel) { - this.sendMessage({ - ...errorResponse, - 'goog:channel': googChannel, - }); - } - else { - this.sendMessage(errorResponse); - } - } - static #getJsonType(value) { - if (value === null) { - return 'null'; - } - if (Array.isArray(value)) { - return 'array'; - } - return typeof value; - } - static #getErrorResponse(message, errorCode, error) { - let messageId; - try { - const command = JSON.parse(message); - if (_a.#getJsonType(command) === 'object' && - 'id' in command) { - messageId = command.id; - } - } - catch { } - return { - type: 'error', - id: messageId, - error: errorCode, - message: error.message, - }; - } - static #parseBidiMessage(message) { - let command; - try { - command = JSON.parse(message); - } - catch { - throw new Error('Cannot parse data as JSON'); - } - const type = _a.#getJsonType(command); - if (type !== 'object') { - throw new Error(`Expected JSON object but got ${type}`); - } - const { id, method, params } = command; - const idType = _a.#getJsonType(id); - if (idType !== 'number' || !Number.isInteger(id) || id < 0) { - throw new Error(`Expected unsigned integer but got ${idType}`); - } - const methodType = _a.#getJsonType(method); - if (methodType !== 'string') { - throw new Error(`Expected string method but got ${methodType}`); - } - const paramsType = _a.#getJsonType(params); - if (paramsType !== 'object') { - throw new Error(`Expected object params but got ${paramsType}`); - } - let googChannel = command['goog:channel']; - if (googChannel !== undefined) { - const googChannelType = _a.#getJsonType(googChannel); - if (googChannelType !== 'string') { - throw new Error(`Expected string channel but got ${googChannelType}`); - } - if (googChannel === '') { - googChannel = undefined; - } - } - return { - id, - method, - params, - 'goog:channel': googChannel, - }; - } - } - _a = WindowBidiTransport; - class WindowCdpTransport { - #onMessage = null; - #cdpSend; - constructor() { - this.#cdpSend = window.cdp.send; - window.cdp.send = undefined; - window.cdp.onmessage = (message) => { - this.#onMessage?.call(null, message); - }; - } - setOnMessage(onMessage) { - this.#onMessage = onMessage; - } - sendMessage(message) { - this.#cdpSend(message); - } - close() { - this.#onMessage = null; - window.cdp.onmessage = null; - } - } - - /** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @license - */ - generatePage(); - const mapperTabToServerTransport = new WindowBidiTransport(); - const cdpTransport = new WindowCdpTransport(); - const cdpConnection = new MapperCdpConnection(cdpTransport, log); - async function runMapperInstance(selfTargetId) { - console.log('Launching Mapper instance with selfTargetId:', selfTargetId); - const bidiServer = await BidiServer.createAndStart(mapperTabToServerTransport, cdpConnection, - await cdpConnection.createBrowserSession(), selfTargetId, new BidiParser(), log); - log(LogType.debugInfo, 'Mapper instance has been launched'); - return bidiServer; - } - window.runMapperInstance = async (selfTargetId) => { - await runMapperInstance(selfTargetId); - }; - -})(); -//# sourceMappingURL=mapperTab.js.map diff --git a/node_modules/chromium-bidi/lib/iife/mapperTab.js.map b/node_modules/chromium-bidi/lib/iife/mapperTab.js.map deleted file mode 100644 index 49ff506..0000000 --- a/node_modules/chromium-bidi/lib/iife/mapperTab.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"mapperTab.js","sources":["../../node_modules/mitt/dist/mitt.mjs","../utils/EventEmitter.js","../utils/log.js","../utils/ProcessingQueue.js","../protocol/chromium-bidi.js","../protocol/ErrorResponse.js","../bidiMapper/BidiNoOpParser.js","../bidiMapper/modules/browser/BrowserProcessor.js","../bidiMapper/modules/cdp/CdpProcessor.js","../bidiMapper/modules/context/BrowsingContextProcessor.js","../bidiMapper/modules/emulation/EmulationProcessor.js","../utils/assert.js","../utils/graphemeTools.js","../bidiMapper/modules/input/InputSource.js","../bidiMapper/modules/input/keyUtils.js","../bidiMapper/modules/input/USKeyboardLayout.js","../bidiMapper/modules/input/ActionDispatcher.js","../utils/Mutex.js","../bidiMapper/modules/input/InputState.js","../bidiMapper/modules/input/InputStateManager.js","../bidiMapper/modules/input/InputProcessor.js","../utils/base64.js","../bidiMapper/modules/network/NetworkUtils.js","../bidiMapper/modules/network/NetworkProcessor.js","../bidiMapper/modules/permissions/PermissionsProcessor.js","../utils/uuid.js","../bidiMapper/modules/script/ChannelProxy.js","../bidiMapper/modules/script/PreloadScript.js","../bidiMapper/modules/script/ScriptProcessor.js","../bidiMapper/modules/session/SessionProcessor.js","../bidiMapper/modules/storage/StorageProcessor.js","../bidiMapper/modules/webExtension/WebExtensionProcessor.js","../bidiMapper/OutgoingMessage.js","../bidiMapper/CommandProcessor.js","../bidiMapper/modules/bluetooth/BluetoothProcessor.js","../bidiMapper/modules/browser/ContextConfig.js","../bidiMapper/modules/browser/ContextConfigStorage.js","../bidiMapper/modules/browser/UserContextStorage.js","../utils/Deferred.js","../utils/time.js","../utils/unitConversions.js","../bidiMapper/modules/script/SharedId.js","../bidiMapper/modules/script/Realm.js","../bidiMapper/modules/script/WindowRealm.js","../utils/urlHelpers.js","../bidiMapper/modules/context/NavigationTracker.js","../bidiMapper/modules/context/BrowsingContextImpl.js","../bidiMapper/modules/script/WorkerRealm.js","../bidiMapper/modules/log/logHelper.js","../bidiMapper/modules/log/LogManager.js","../bidiMapper/modules/network/CollectorsStorage.js","../utils/DefaultMap.js","../bidiMapper/modules/network/NetworkRequest.js","../bidiMapper/modules/network/NetworkStorage.js","../bidiMapper/modules/cdp/CdpTarget.js","../bidiMapper/modules/cdp/CdpTargetManager.js","../bidiMapper/modules/context/BrowsingContextStorage.js","../bidiMapper/modules/script/PreloadScriptStorage.js","../bidiMapper/modules/script/RealmStorage.js","../utils/Buffer.js","../utils/IdWrapper.js","../bidiMapper/modules/session/events.js","../bidiMapper/modules/session/SubscriptionManager.js","../bidiMapper/modules/session/EventManager.js","../bidiMapper/modules/speculation/SpeculationProcessor.js","../bidiMapper/BidiServer.js","../cdp/CdpClient.js","../cdp/CdpConnection.js","../../node_modules/zod/v3/helpers/util.js","../../node_modules/zod/v3/ZodError.js","../../node_modules/zod/v3/locales/en.js","../../node_modules/zod/v3/errors.js","../../node_modules/zod/v3/helpers/parseUtil.js","../../node_modules/zod/v3/helpers/errorUtil.js","../../node_modules/zod/v3/types.js","../protocol-parser/generated/webdriver-bidi-bluetooth.js","../protocol-parser/generated/webdriver-bidi-permissions.js","../protocol-parser/generated/webdriver-bidi-ua-client-hints.js","../protocol-parser/generated/webdriver-bidi.js","../protocol-parser/protocol-parser.js","../bidiTab/BidiParser.js","../bidiTab/mapperTabPage.js","../bidiTab/Transport.js","../bidiTab/bidiTab.js"],"sourcesContent":["export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport mitt from 'mitt';\nexport class EventEmitter {\n #emitter = mitt();\n on(type, handler) {\n this.#emitter.on(type, handler);\n return this;\n }\n /**\n * Like `on` but the listener will only be fired once and then it will be removed.\n * @param event The event you'd like to listen to\n * @param handler The handler function to run when the event occurs\n * @return `this` to enable chaining method calls.\n */\n once(event, handler) {\n const onceHandler = (eventData) => {\n handler(eventData);\n this.off(event, onceHandler);\n };\n return this.on(event, onceHandler);\n }\n off(type, handler) {\n this.#emitter.off(type, handler);\n return this;\n }\n /**\n * Emits an event and call any associated listeners.\n *\n * @param event The event to emit.\n * @param eventData Any data to emit with the event.\n * @return `true` if there are any listeners, `false` otherwise.\n */\n emit(event, eventData) {\n this.#emitter.emit(event, eventData);\n }\n /**\n * Removes all listeners. If given an event argument, it will remove only\n * listeners for that event.\n * @param event - the event to remove listeners for.\n * @returns `this` to enable you to chain method calls.\n */\n removeAllListeners(event) {\n if (event) {\n this.#emitter.all.delete(event);\n }\n else {\n this.#emitter.all.clear();\n }\n return this;\n }\n}\n//# sourceMappingURL=EventEmitter.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var LogType;\n(function (LogType) {\n // keep-sorted start\n LogType[\"bidi\"] = \"bidi\";\n LogType[\"cdp\"] = \"cdp\";\n LogType[\"debug\"] = \"debug\";\n LogType[\"debugError\"] = \"debug:error\";\n LogType[\"debugInfo\"] = \"debug:info\";\n LogType[\"debugWarn\"] = \"debug:warn\";\n // keep-sorted end\n})(LogType || (LogType = {}));\n//# sourceMappingURL=log.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nimport { LogType } from './log.js';\nexport class ProcessingQueue {\n static LOGGER_PREFIX = `${LogType.debug}:queue`;\n #logger;\n #processor;\n #queue = [];\n // Flag to keep only 1 active processor.\n #isProcessing = false;\n constructor(processor, logger) {\n this.#processor = processor;\n this.#logger = logger;\n }\n add(entry, name) {\n this.#queue.push([entry, name]);\n // No need in waiting. Just initialize processor if needed.\n void this.#processIfNeeded();\n }\n async #processIfNeeded() {\n if (this.#isProcessing) {\n return;\n }\n this.#isProcessing = true;\n while (this.#queue.length > 0) {\n const arrayEntry = this.#queue.shift();\n if (!arrayEntry) {\n continue;\n }\n const [entryPromise, name] = arrayEntry;\n this.#logger?.(_a.LOGGER_PREFIX, 'Processing event:', name);\n await entryPromise\n .then((entry) => {\n if (entry.kind === 'error') {\n this.#logger?.(LogType.debugError, 'Event threw before sending:', entry.error.message, entry.error.stack);\n return;\n }\n return this.#processor(entry.value);\n })\n .catch((error) => {\n this.#logger?.(LogType.debugError, 'Event was not processed:', error?.message);\n });\n }\n this.#isProcessing = false;\n }\n}\n_a = ProcessingQueue;\n//# sourceMappingURL=ProcessingQueue.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// keep-sorted end\nexport var BiDiModule;\n(function (BiDiModule) {\n // keep-sorted start\n BiDiModule[\"Bluetooth\"] = \"bluetooth\";\n BiDiModule[\"Browser\"] = \"browser\";\n BiDiModule[\"BrowsingContext\"] = \"browsingContext\";\n BiDiModule[\"Cdp\"] = \"goog:cdp\";\n BiDiModule[\"Input\"] = \"input\";\n BiDiModule[\"Log\"] = \"log\";\n BiDiModule[\"Network\"] = \"network\";\n BiDiModule[\"Script\"] = \"script\";\n BiDiModule[\"Session\"] = \"session\";\n BiDiModule[\"Speculation\"] = \"speculation\";\n // keep-sorted end\n})(BiDiModule || (BiDiModule = {}));\nexport var Script;\n(function (Script) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"Message\"] = \"script.message\";\n EventNames[\"RealmCreated\"] = \"script.realmCreated\";\n EventNames[\"RealmDestroyed\"] = \"script.realmDestroyed\";\n // keep-sorted end\n })(EventNames = Script.EventNames || (Script.EventNames = {}));\n})(Script || (Script = {}));\nexport var Log;\n(function (Log) {\n let EventNames;\n (function (EventNames) {\n EventNames[\"LogEntryAdded\"] = \"log.entryAdded\";\n })(EventNames = Log.EventNames || (Log.EventNames = {}));\n})(Log || (Log = {}));\nexport var BrowsingContext;\n(function (BrowsingContext) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"ContextCreated\"] = \"browsingContext.contextCreated\";\n EventNames[\"ContextDestroyed\"] = \"browsingContext.contextDestroyed\";\n EventNames[\"DomContentLoaded\"] = \"browsingContext.domContentLoaded\";\n EventNames[\"DownloadEnd\"] = \"browsingContext.downloadEnd\";\n EventNames[\"DownloadWillBegin\"] = \"browsingContext.downloadWillBegin\";\n EventNames[\"FragmentNavigated\"] = \"browsingContext.fragmentNavigated\";\n EventNames[\"HistoryUpdated\"] = \"browsingContext.historyUpdated\";\n EventNames[\"Load\"] = \"browsingContext.load\";\n EventNames[\"NavigationAborted\"] = \"browsingContext.navigationAborted\";\n EventNames[\"NavigationCommitted\"] = \"browsingContext.navigationCommitted\";\n EventNames[\"NavigationFailed\"] = \"browsingContext.navigationFailed\";\n EventNames[\"NavigationStarted\"] = \"browsingContext.navigationStarted\";\n EventNames[\"UserPromptClosed\"] = \"browsingContext.userPromptClosed\";\n EventNames[\"UserPromptOpened\"] = \"browsingContext.userPromptOpened\";\n // keep-sorted end\n })(EventNames = BrowsingContext.EventNames || (BrowsingContext.EventNames = {}));\n})(BrowsingContext || (BrowsingContext = {}));\nexport var Input;\n(function (Input) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"FileDialogOpened\"] = \"input.fileDialogOpened\";\n // keep-sorted end\n })(EventNames = Input.EventNames || (Input.EventNames = {}));\n})(Input || (Input = {}));\nexport var Network;\n(function (Network) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"AuthRequired\"] = \"network.authRequired\";\n EventNames[\"BeforeRequestSent\"] = \"network.beforeRequestSent\";\n EventNames[\"FetchError\"] = \"network.fetchError\";\n EventNames[\"ResponseCompleted\"] = \"network.responseCompleted\";\n EventNames[\"ResponseStarted\"] = \"network.responseStarted\";\n // keep-sorted end\n })(EventNames = Network.EventNames || (Network.EventNames = {}));\n})(Network || (Network = {}));\nexport var Bluetooth;\n(function (Bluetooth) {\n let EventNames;\n (function (EventNames) {\n EventNames[\"RequestDevicePromptUpdated\"] = \"bluetooth.requestDevicePromptUpdated\";\n EventNames[\"GattConnectionAttempted\"] = \"bluetooth.gattConnectionAttempted\";\n EventNames[\"CharacteristicEventGenerated\"] = \"bluetooth.characteristicEventGenerated\";\n EventNames[\"DescriptorEventGenerated\"] = \"bluetooth.descriptorEventGenerated\";\n })(EventNames = Bluetooth.EventNames || (Bluetooth.EventNames = {}));\n})(Bluetooth || (Bluetooth = {}));\nexport var Speculation;\n(function (Speculation) {\n let EventNames;\n (function (EventNames) {\n EventNames[\"PrefetchStatusUpdated\"] = \"speculation.prefetchStatusUpdated\";\n })(EventNames = Speculation.EventNames || (Speculation.EventNames = {}));\n})(Speculation || (Speculation = {}));\nexport const EVENT_NAMES = new Set([\n // keep-sorted start\n ...Object.values(BiDiModule),\n ...Object.values(Bluetooth.EventNames),\n ...Object.values(BrowsingContext.EventNames),\n ...Object.values(Input.EventNames),\n ...Object.values(Log.EventNames),\n ...Object.values(Network.EventNames),\n ...Object.values(Script.EventNames),\n ...Object.values(Speculation.EventNames),\n // keep-sorted end\n]);\n//# sourceMappingURL=chromium-bidi.js.map","export class Exception extends Error {\n error;\n message;\n stacktrace;\n constructor(error, message, stacktrace) {\n super();\n this.error = error;\n this.message = message;\n this.stacktrace = stacktrace;\n }\n toErrorResponse(commandId) {\n return {\n type: 'error',\n id: commandId,\n error: this.error,\n message: this.message,\n stacktrace: this.stacktrace,\n };\n }\n}\nexport class InvalidArgumentException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid argument\" /* ErrorCode.InvalidArgument */, message, stacktrace);\n }\n}\nexport class InvalidSelectorException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid selector\" /* ErrorCode.InvalidSelector */, message, stacktrace);\n }\n}\nexport class InvalidSessionIdException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid session id\" /* ErrorCode.InvalidSessionId */, message, stacktrace);\n }\n}\nexport class MoveTargetOutOfBoundsException extends Exception {\n constructor(message, stacktrace) {\n super(\"move target out of bounds\" /* ErrorCode.MoveTargetOutOfBounds */, message, stacktrace);\n }\n}\nexport class NoSuchAlertException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such alert\" /* ErrorCode.NoSuchAlert */, message, stacktrace);\n }\n}\nexport class NoSuchElementException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such element\" /* ErrorCode.NoSuchElement */, message, stacktrace);\n }\n}\nexport class NoSuchFrameException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such frame\" /* ErrorCode.NoSuchFrame */, message, stacktrace);\n }\n}\nexport class NoSuchHandleException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such handle\" /* ErrorCode.NoSuchHandle */, message, stacktrace);\n }\n}\nexport class NoSuchHistoryEntryException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such history entry\" /* ErrorCode.NoSuchHistoryEntry */, message, stacktrace);\n }\n}\nexport class NoSuchInterceptException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such intercept\" /* ErrorCode.NoSuchIntercept */, message, stacktrace);\n }\n}\nexport class NoSuchNodeException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such node\" /* ErrorCode.NoSuchNode */, message, stacktrace);\n }\n}\nexport class NoSuchRequestException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such request\" /* ErrorCode.NoSuchRequest */, message, stacktrace);\n }\n}\nexport class NoSuchScriptException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such script\" /* ErrorCode.NoSuchScript */, message, stacktrace);\n }\n}\nexport class NoSuchUserContextException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such user context\" /* ErrorCode.NoSuchUserContext */, message, stacktrace);\n }\n}\nexport class SessionNotCreatedException extends Exception {\n constructor(message, stacktrace) {\n super(\"session not created\" /* ErrorCode.SessionNotCreated */, message, stacktrace);\n }\n}\nexport class UnknownCommandException extends Exception {\n constructor(message, stacktrace) {\n super(\"unknown command\" /* ErrorCode.UnknownCommand */, message, stacktrace);\n }\n}\nexport class UnknownErrorException extends Exception {\n constructor(message, stacktrace = new Error().stack) {\n super(\"unknown error\" /* ErrorCode.UnknownError */, message, stacktrace);\n }\n}\nexport class UnableToCaptureScreenException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to capture screen\" /* ErrorCode.UnableToCaptureScreen */, message, stacktrace);\n }\n}\nexport class UnableToCloseBrowserException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to close browser\" /* ErrorCode.UnableToCloseBrowser */, message, stacktrace);\n }\n}\nexport class UnsupportedOperationException extends Exception {\n constructor(message, stacktrace) {\n super(\"unsupported operation\" /* ErrorCode.UnsupportedOperation */, message, stacktrace);\n }\n}\nexport class NoSuchStoragePartitionException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such storage partition\" /* ErrorCode.NoSuchStoragePartition */, message, stacktrace);\n }\n}\nexport class UnableToSetCookieException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to set cookie\" /* ErrorCode.UnableToSetCookie */, message, stacktrace);\n }\n}\nexport class UnableToSetFileInputException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to set file input\" /* ErrorCode.UnableToSetFileInput */, message, stacktrace);\n }\n}\nexport class UnderspecifiedStoragePartitionException extends Exception {\n constructor(message, stacktrace) {\n super(\"underspecified storage partition\" /* ErrorCode.UnderspecifiedStoragePartition */, message, stacktrace);\n }\n}\nexport class InvalidWebExtensionException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid web extension\" /* ErrorCode.InvalidWebExtension */, message, stacktrace);\n }\n}\nexport class NoSuchWebExtensionException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such web extension\" /* ErrorCode.NoSuchWebExtension */, message, stacktrace);\n }\n}\nexport class NoSuchNetworkCollectorException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such network collector\" /* ErrorCode.NoSuchNetworkCollector */, message, stacktrace);\n }\n}\nexport class NoSuchNetworkDataException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such network data\" /* ErrorCode.NoSuchNetworkData */, message, stacktrace);\n }\n}\nexport class UnavailableNetworkDataException extends Exception {\n constructor(message, stacktrace) {\n super(\"unavailable network data\" /* ErrorCode.UnavailableNetworkData */, message, stacktrace);\n }\n}\n//# sourceMappingURL=ErrorResponse.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class BidiNoOpParser {\n // Bluetooth module\n // keep-sorted start block=yes\n parseDisableSimulationParameters(params) {\n return params;\n }\n parseHandleRequestDevicePromptParams(params) {\n return params;\n }\n parseSimulateAdapterParameters(params) {\n return params;\n }\n parseSimulateAdvertisementParameters(params) {\n return params;\n }\n parseSimulateCharacteristicParameters(params) {\n return params;\n }\n parseSimulateCharacteristicResponseParameters(params) {\n return params;\n }\n parseSimulateDescriptorParameters(params) {\n return params;\n }\n parseSimulateDescriptorResponseParameters(params) {\n return params;\n }\n parseSimulateGattConnectionResponseParameters(params) {\n return params;\n }\n parseSimulateGattDisconnectionParameters(params) {\n return params;\n }\n parseSimulatePreconnectedPeripheralParameters(params) {\n return params;\n }\n parseSimulateServiceParameters(params) {\n return params;\n }\n // keep-sorted end\n // Browser module\n // keep-sorted start block=yes\n parseCreateUserContextParameters(params) {\n return params;\n }\n parseRemoveUserContextParameters(params) {\n return params;\n }\n parseSetClientWindowStateParameters(params) {\n return params;\n }\n parseSetDownloadBehaviorParameters(params) {\n return params;\n }\n // keep-sorted end\n // Browsing Context module\n // keep-sorted start block=yes\n parseActivateParams(params) {\n return params;\n }\n parseCaptureScreenshotParams(params) {\n return params;\n }\n parseCloseParams(params) {\n return params;\n }\n parseCreateParams(params) {\n return params;\n }\n parseGetTreeParams(params) {\n return params;\n }\n parseHandleUserPromptParams(params) {\n return params;\n }\n parseLocateNodesParams(params) {\n return params;\n }\n parseNavigateParams(params) {\n return params;\n }\n parsePrintParams(params) {\n return params;\n }\n parseReloadParams(params) {\n return params;\n }\n parseSetBypassCspParams(params) {\n return params;\n }\n parseSetViewportParams(params) {\n return params;\n }\n parseTraverseHistoryParams(params) {\n return params;\n }\n // keep-sorted end\n // CDP module\n // keep-sorted start block=yes\n parseGetSessionParams(params) {\n return params;\n }\n parseResolveRealmParams(params) {\n return params;\n }\n parseSendCommandParams(params) {\n return params;\n }\n // keep-sorted end\n // Emulation module\n // keep-sorted start block=yes\n parseSetClientHintsOverrideParams(params) {\n return params;\n }\n parseSetForcedColorsModeThemeOverrideParams(params) {\n return params;\n }\n parseSetGeolocationOverrideParams(params) {\n return params;\n }\n parseSetLocaleOverrideParams(params) {\n return params;\n }\n parseSetNetworkConditionsParams(params) {\n return params;\n }\n parseSetScreenOrientationOverrideParams(params) {\n return params;\n }\n parseSetScreenSettingsOverrideParams(params) {\n return params;\n }\n parseSetScriptingEnabledParams(params) {\n return params;\n }\n parseSetScrollbarTypeOverrideParams(params) {\n return params;\n }\n parseSetTimezoneOverrideParams(params) {\n return params;\n }\n parseSetTouchOverrideParams(params) {\n return params;\n }\n parseSetUserAgentOverrideParams(params) {\n return params;\n }\n // keep-sorted end\n // Script module\n // keep-sorted start block=yes\n parseAddPreloadScriptParams(params) {\n return params;\n }\n parseCallFunctionParams(params) {\n return params;\n }\n parseDisownParams(params) {\n return params;\n }\n parseEvaluateParams(params) {\n return params;\n }\n parseGetRealmsParams(params) {\n return params;\n }\n parseRemovePreloadScriptParams(params) {\n return params;\n }\n // keep-sorted end\n // Input module\n // keep-sorted start block=yes\n parsePerformActionsParams(params) {\n return params;\n }\n parseReleaseActionsParams(params) {\n return params;\n }\n parseSetFilesParams(params) {\n return params;\n }\n // keep-sorted end\n // Network module\n // keep-sorted start block=yes\n parseAddDataCollectorParams(params) {\n return params;\n }\n parseAddInterceptParams(params) {\n return params;\n }\n parseContinueRequestParams(params) {\n return params;\n }\n parseContinueResponseParams(params) {\n return params;\n }\n parseContinueWithAuthParams(params) {\n return params;\n }\n parseDisownDataParams(params) {\n return params;\n }\n parseFailRequestParams(params) {\n return params;\n }\n parseGetDataParams(params) {\n return params;\n }\n parseProvideResponseParams(params) {\n return params;\n }\n parseRemoveDataCollectorParams(params) {\n return params;\n }\n parseRemoveInterceptParams(params) {\n return params;\n }\n parseSetCacheBehaviorParams(params) {\n return params;\n }\n parseSetExtraHeadersParams(params) {\n return params;\n }\n // keep-sorted end\n // Permissions module\n // keep-sorted start block=yes\n parseSetPermissionsParams(params) {\n return params;\n }\n // keep-sorted end\n // Session module\n // keep-sorted start block=yes\n parseSubscribeParams(params) {\n return params;\n }\n parseUnsubscribeParams(params) {\n return params;\n }\n // keep-sorted end\n // Storage module\n // keep-sorted start block=yes\n parseDeleteCookiesParams(params) {\n return params;\n }\n parseGetCookiesParams(params) {\n return params;\n }\n parseSetCookieParams(params) {\n return params;\n }\n // keep-sorted end\n // WebExtenstion module\n // keep-sorted start block=yes\n parseInstallParams(params) {\n return params;\n }\n parseUninstallParams(params) {\n return params;\n }\n}\n//# sourceMappingURL=BidiNoOpParser.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, NoSuchUserContextException, UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nexport class BrowserProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #configStorage;\n #userContextStorage;\n constructor(browserCdpClient, browsingContextStorage, configStorage, userContextStorage) {\n this.#browserCdpClient = browserCdpClient;\n this.#browsingContextStorage = browsingContextStorage;\n this.#configStorage = configStorage;\n this.#userContextStorage = userContextStorage;\n }\n close() {\n // Ensure that it is put at the end of the event loop.\n // This way we send back the response before closing the tab.\n // Always catch uncaught exceptions.\n setTimeout(() => this.#browserCdpClient.sendCommand('Browser.close').catch(() => { }), 0);\n return {};\n }\n async createUserContext(params) {\n // `params` is a record to provide legacy `goog:` parameters. Now as the `proxy`\n // parameter is specified, we should get rid of `goog:proxyServer` and\n // `goog:proxyBypassList` and make the params of type\n // `Browser.CreateUserContextParameters`.\n const w3cParams = params;\n const globalConfig = this.#configStorage.getGlobalConfig();\n if (w3cParams.acceptInsecureCerts !== undefined) {\n if (w3cParams.acceptInsecureCerts === false &&\n globalConfig.acceptInsecureCerts === true)\n // TODO: https://github.com/GoogleChromeLabs/chromium-bidi/issues/3398\n throw new UnknownErrorException(`Cannot set user context's \"acceptInsecureCerts\" to false, when a capability \"acceptInsecureCerts\" is set to true`);\n }\n const request = {};\n if (w3cParams.proxy) {\n const proxyStr = getProxyStr(w3cParams.proxy);\n if (proxyStr) {\n request.proxyServer = proxyStr;\n }\n if (w3cParams.proxy.noProxy) {\n request.proxyBypassList = w3cParams.proxy.noProxy.join(',');\n }\n }\n else {\n // TODO: remove after Puppeteer stops using it.\n if (params['goog:proxyServer'] !== undefined) {\n request.proxyServer = params['goog:proxyServer'];\n }\n const proxyBypassList = params['goog:proxyBypassList'] ?? undefined;\n if (proxyBypassList) {\n request.proxyBypassList = proxyBypassList.join(',');\n }\n }\n const context = await this.#browserCdpClient.sendCommand('Target.createBrowserContext', request);\n await this.#applyDownloadBehavior(globalConfig.downloadBehavior ?? null, context.browserContextId);\n this.#configStorage.updateUserContextConfig(context.browserContextId, {\n acceptInsecureCerts: params['acceptInsecureCerts'],\n userPromptHandler: params['unhandledPromptBehavior'],\n });\n return {\n userContext: context.browserContextId,\n };\n }\n async removeUserContext(params) {\n const userContext = params.userContext;\n if (userContext === 'default') {\n throw new InvalidArgumentException('`default` user context cannot be removed');\n }\n try {\n await this.#browserCdpClient.sendCommand('Target.disposeBrowserContext', {\n browserContextId: userContext,\n });\n }\n catch (err) {\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/target_handler.cc;l=1424;drc=c686e8f4fd379312469fe018f5c390e9c8f20d0d\n if (err.message.startsWith('Failed to find context with id')) {\n throw new NoSuchUserContextException(err.message);\n }\n throw err;\n }\n return {};\n }\n async getUserContexts() {\n return {\n userContexts: await this.#userContextStorage.getUserContexts(),\n };\n }\n async #getWindowInfo(targetId) {\n const windowInfo = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId });\n return {\n // `active` is not supported in CDP yet.\n active: false,\n clientWindow: `${windowInfo.windowId}`,\n state: windowInfo.bounds.windowState ?? 'normal',\n height: windowInfo.bounds.height ?? 0,\n width: windowInfo.bounds.width ?? 0,\n x: windowInfo.bounds.left ?? 0,\n y: windowInfo.bounds.top ?? 0,\n };\n }\n async setClientWindowState(params) {\n const { clientWindow } = params;\n const bounds = {\n windowState: params.state,\n };\n if (params.state === 'normal') {\n if (params.width !== undefined) {\n bounds.width = params.width;\n }\n if (params.height !== undefined) {\n bounds.height = params.height;\n }\n if (params.x !== undefined) {\n bounds.left = params.x;\n }\n if (params.y !== undefined) {\n bounds.top = params.y;\n }\n }\n const windowId = Number.parseInt(clientWindow);\n if (isNaN(windowId)) {\n throw new InvalidArgumentException('no such client window');\n }\n await this.#browserCdpClient.sendCommand('Browser.setWindowBounds', {\n windowId,\n bounds,\n });\n const result = await this.#browserCdpClient.sendCommand('Browser.getWindowBounds', {\n windowId,\n });\n return {\n active: false,\n clientWindow: `${windowId}`,\n state: result.bounds.windowState ?? 'normal',\n height: result.bounds.height ?? 0,\n width: result.bounds.width ?? 0,\n x: result.bounds.left ?? 0,\n y: result.bounds.top ?? 0,\n };\n }\n async getClientWindows() {\n const topLevelTargetIds = this.#browsingContextStorage\n .getTopLevelContexts()\n .map((b) => b.cdpTarget.id);\n const clientWindows = await Promise.all(topLevelTargetIds.map(async (targetId) => await this.#getWindowInfo(targetId)));\n const uniqueClientWindowIds = new Set();\n const uniqueClientWindows = new Array();\n // Filter out duplicated client windows.\n for (const window of clientWindows) {\n if (!uniqueClientWindowIds.has(window.clientWindow)) {\n uniqueClientWindowIds.add(window.clientWindow);\n uniqueClientWindows.push(window);\n }\n }\n return { clientWindows: uniqueClientWindows };\n }\n #toCdpDownloadBehavior(downloadBehavior) {\n if (downloadBehavior === null)\n // CDP \"default\" behavior.\n return {\n behavior: 'default',\n };\n if (downloadBehavior?.type === 'denied')\n // Deny all the downloads.\n return {\n behavior: 'deny',\n };\n if (downloadBehavior?.type === 'allowed') {\n // CDP behavior \"allow\" means \"save downloaded files to the specific download path\".\n return {\n behavior: 'allow',\n downloadPath: downloadBehavior.destinationFolder,\n };\n }\n // Unreachable. Handled by params parser.\n throw new UnknownErrorException('Unexpected download behavior');\n }\n async #applyDownloadBehavior(downloadBehavior, userContext) {\n await this.#browserCdpClient.sendCommand('Browser.setDownloadBehavior', {\n ...this.#toCdpDownloadBehavior(downloadBehavior),\n browserContextId: userContext === 'default' ? undefined : userContext,\n // Required for enabling download events.\n eventsEnabled: true,\n });\n }\n async setDownloadBehavior(params) {\n let userContexts;\n if (params.userContexts === undefined) {\n // Global download behavior.\n userContexts = (await this.#userContextStorage.getUserContexts()).map((c) => c.userContext);\n }\n else {\n // Download behavior for the specific user contexts.\n userContexts = Array.from(await this.#userContextStorage.verifyUserContextIdList(params.userContexts));\n }\n if (params.userContexts === undefined) {\n // Store the global setting to be applied for the future user contexts.\n this.#configStorage.updateGlobalConfig({\n downloadBehavior: params.downloadBehavior,\n });\n }\n else {\n params.userContexts.map((userContext) => this.#configStorage.updateUserContextConfig(userContext, {\n downloadBehavior: params.downloadBehavior,\n }));\n }\n await Promise.all(userContexts.map(async (userContext) => {\n // Download behavior can be already set per user context, in which case the global\n // one should not be applied.\n const downloadBehavior = this.#configStorage.getActiveConfig(undefined, userContext)\n .downloadBehavior ?? null;\n await this.#applyDownloadBehavior(downloadBehavior, userContext);\n }));\n return {};\n }\n}\n/**\n * Proxy config parse implementation:\n * https://source.chromium.org/chromium/chromium/src/+/main:net/proxy_resolution/proxy_config.h;drc=743a82d08e59d803c94ee1b8564b8b11dd7b462f;l=107\n */\nexport function getProxyStr(proxyConfig) {\n if (proxyConfig.proxyType === 'direct' ||\n proxyConfig.proxyType === 'system') {\n // These types imply that Chrome should use its default behavior (e.g., direct\n // connection or system-configured proxy). No specific `proxyServer` string is\n // needed.\n return undefined;\n }\n if (proxyConfig.proxyType === 'pac') {\n throw new UnsupportedOperationException(`PAC proxy configuration is not supported per user context`);\n }\n if (proxyConfig.proxyType === 'autodetect') {\n throw new UnsupportedOperationException(`Autodetect proxy is not supported per user context`);\n }\n if (proxyConfig.proxyType === 'manual') {\n const servers = [];\n // HTTP Proxy\n if (proxyConfig.httpProxy !== undefined) {\n // servers.push(proxyConfig.httpProxy);\n servers.push(`http=${proxyConfig.httpProxy}`);\n }\n // SSL Proxy (uses 'https' scheme)\n if (proxyConfig.sslProxy !== undefined) {\n // servers.push(proxyConfig.sslProxy);\n servers.push(`https=${proxyConfig.sslProxy}`);\n }\n // SOCKS Proxy\n if (proxyConfig.socksProxy !== undefined ||\n proxyConfig.socksVersion !== undefined) {\n // socksVersion is mandatory and must be a valid integer if socksProxy is\n // specified.\n if (proxyConfig.socksProxy === undefined) {\n throw new InvalidArgumentException(`'socksVersion' cannot be set without 'socksProxy'`);\n }\n if (proxyConfig.socksVersion === undefined ||\n typeof proxyConfig.socksVersion !== 'number' ||\n !Number.isInteger(proxyConfig.socksVersion) ||\n proxyConfig.socksVersion < 0 ||\n proxyConfig.socksVersion > 255) {\n throw new InvalidArgumentException(`'socksVersion' must be between 0 and 255`);\n }\n servers.push(`socks=socks${proxyConfig.socksVersion}://${proxyConfig.socksProxy}`);\n }\n if (servers.length === 0) {\n // If 'manual' proxyType is chosen but no specific proxy servers (http, ssl, socks)\n // are provided, it means no proxy server should be configured.\n return undefined;\n }\n return servers.join(';');\n }\n // Unreachable.\n throw new UnknownErrorException(`Unknown proxy type`);\n}\n//# sourceMappingURL=BrowserProcessor.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { UnknownErrorException } from '../../../protocol/protocol.js';\nexport class CdpProcessor {\n #browsingContextStorage;\n #realmStorage;\n #cdpConnection;\n #browserCdpClient;\n constructor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#cdpConnection = cdpConnection;\n this.#browserCdpClient = browserCdpClient;\n }\n getSession(params) {\n const context = params.context;\n const sessionId = this.#browsingContextStorage.getContext(context).cdpTarget.cdpSessionId;\n if (sessionId === undefined) {\n return {};\n }\n return { session: sessionId };\n }\n resolveRealm(params) {\n const context = params.realm;\n const realm = this.#realmStorage.getRealm({ realmId: context });\n if (realm === undefined) {\n throw new UnknownErrorException(`Could not find realm ${params.realm}`);\n }\n return { executionContextId: realm.executionContextId };\n }\n async sendCommand(params) {\n const client = params.session\n ? this.#cdpConnection.getCdpClient(params.session)\n : this.#browserCdpClient;\n const result = await client.sendCommand(params.method, params.params);\n return {\n result,\n session: params.session,\n };\n }\n}\n//# sourceMappingURL=CdpProcessor.js.map","import { ChromiumBidi, InvalidArgumentException, NoSuchUserContextException, NoSuchAlertException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nexport class BrowsingContextProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #contextConfigStorage;\n #eventManager;\n #userContextStorage;\n constructor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager) {\n this.#contextConfigStorage = contextConfigStorage;\n this.#userContextStorage = userContextStorage;\n this.#browserCdpClient = browserCdpClient;\n this.#browsingContextStorage = browsingContextStorage;\n this.#eventManager = eventManager;\n this.#eventManager.addSubscribeHook(ChromiumBidi.BrowsingContext.EventNames.ContextCreated, this.#onContextCreatedSubscribeHook.bind(this));\n }\n getTree(params) {\n const resultContexts = params.root === undefined\n ? this.#browsingContextStorage.getTopLevelContexts()\n : [this.#browsingContextStorage.getContext(params.root)];\n return {\n contexts: resultContexts.map((c) => c.serializeToBidiValue(params.maxDepth ?? Number.MAX_VALUE)),\n };\n }\n async create(params) {\n let referenceContext;\n let userContext = 'default';\n if (params.referenceContext !== undefined) {\n referenceContext = this.#browsingContextStorage.getContext(params.referenceContext);\n if (!referenceContext.isTopLevelContext()) {\n throw new InvalidArgumentException(`referenceContext should be a top-level context`);\n }\n userContext = referenceContext.userContext;\n }\n if (params.userContext !== undefined) {\n userContext = params.userContext;\n }\n const existingContexts = this.#browsingContextStorage\n .getAllContexts()\n .filter((context) => context.userContext === userContext);\n let newWindow = false;\n switch (params.type) {\n case \"tab\" /* BrowsingContext.CreateType.Tab */:\n newWindow = false;\n break;\n case \"window\" /* BrowsingContext.CreateType.Window */:\n newWindow = true;\n break;\n }\n if (!existingContexts.length) {\n // If there are no contexts in the given user context, we need to set\n // newWindow to true as newWindow=false will be rejected.\n newWindow = true;\n }\n let result;\n try {\n result = await this.#browserCdpClient.sendCommand('Target.createTarget', {\n url: 'about:blank',\n newWindow,\n browserContextId: userContext === 'default' ? undefined : userContext,\n background: params.background === true,\n });\n }\n catch (err) {\n if (\n // See https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/devtools/protocol/target_handler.cc;l=90;drc=e80392ac11e48a691f4309964cab83a3a59e01c8\n err.message.startsWith('Failed to find browser context with id') ||\n // See https://source.chromium.org/chromium/chromium/src/+/main:headless/lib/browser/protocol/target_handler.cc;l=49;drc=e80392ac11e48a691f4309964cab83a3a59e01c8\n err.message === 'browserContextId') {\n throw new NoSuchUserContextException(`The context ${userContext} was not found`);\n }\n throw err;\n }\n // Wait for the new target to be attached and to be added to the browsing context\n // storage.\n const context = await this.#browsingContextStorage.waitForContext(result.targetId);\n // Wait for the new tab to be loaded to avoid race conditions in the\n // `browsingContext` events, when the `browsingContext.domContentLoaded` and\n // `browsingContext.load` events from the initial `about:blank` navigation\n // are emitted after the next navigation is started.\n // Details: https://github.com/web-platform-tests/wpt/issues/35846\n await context.lifecycleLoaded();\n return { context: context.id };\n }\n navigate(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return context.navigate(params.url, params.wait ?? \"none\" /* BrowsingContext.ReadinessState.None */);\n }\n reload(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return context.reload(params.ignoreCache ?? false, params.wait ?? \"none\" /* BrowsingContext.ReadinessState.None */);\n }\n async activate(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context.isTopLevelContext()) {\n throw new InvalidArgumentException('Activation is only supported on the top-level context');\n }\n await context.activate();\n return {};\n }\n async captureScreenshot(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.captureScreenshot(params);\n }\n async print(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.print(params);\n }\n async setViewport(params) {\n // Check the The viewport size limits is not checked by protocol parser, so we need to validate\n // it manually:\n // https://crsrc.org/c/content/browser/devtools/protocol/emulation_handler.cc;drc=f49e23d8e2bd190b42ec62284b8be10dcccd0446;l=660\n const maxDimensionSize = 10_000_000;\n if ((params.viewport?.height ?? 0) > maxDimensionSize ||\n (params.viewport?.width ?? 0) > maxDimensionSize) {\n throw new UnsupportedOperationException(`Viewport dimension over ${maxDimensionSize} are not supported`);\n }\n const config = {};\n // `undefined` means no changes should be done to the config.\n if (params.devicePixelRatio !== undefined) {\n config.devicePixelRatio = params.devicePixelRatio;\n }\n if (params.viewport !== undefined) {\n config.viewport = params.viewport;\n }\n const impactedTopLevelContexts = await this.#getRelatedTopLevelBrowsingContexts(params.context, params.userContexts);\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, config);\n }\n if (params.context !== undefined) {\n this.#contextConfigStorage.updateBrowsingContextConfig(params.context, config);\n }\n await Promise.all(impactedTopLevelContexts.map(async (context) => {\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null);\n }));\n return {};\n }\n /**\n * Returns a list of top-level browsing context ids.\n */\n async #getRelatedTopLevelBrowsingContexts(browsingContextId, userContextIds) {\n if (browsingContextId === undefined && userContextIds === undefined) {\n throw new InvalidArgumentException('Either userContexts or context must be provided');\n }\n if (browsingContextId !== undefined && userContextIds !== undefined) {\n throw new InvalidArgumentException('userContexts and context are mutually exclusive');\n }\n if (browsingContextId !== undefined) {\n const context = this.#browsingContextStorage.getContext(browsingContextId);\n if (!context.isTopLevelContext()) {\n throw new InvalidArgumentException('Emulating viewport is only supported on the top-level context');\n }\n return [context];\n }\n // Verify that all user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n const result = [];\n for (const userContextId of userContextIds) {\n const topLevelBrowsingContexts = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((browsingContext) => browsingContext.userContext === userContextId);\n result.push(...topLevelBrowsingContexts);\n }\n // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as\n // `browsingContextStorage` returns the same instance for the same id.\n return [...new Set(result).values()];\n }\n async traverseHistory(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context) {\n throw new InvalidArgumentException(`No browsing context with id ${params.context}`);\n }\n if (!context.isTopLevelContext()) {\n throw new InvalidArgumentException('Traversing history is only supported on the top-level context');\n }\n await context.traverseHistory(params.delta);\n return {};\n }\n async handleUserPrompt(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n try {\n await context.handleUserPrompt(params.accept, params.userText);\n }\n catch (error) {\n // Heuristically determine the error\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/page_handler.cc;l=1085?q=%22No%20dialog%20is%20showing%22&ss=chromium\n if (error.message?.includes('No dialog is showing')) {\n throw new NoSuchAlertException('No dialog is showing');\n }\n throw error;\n }\n return {};\n }\n async close(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context.isTopLevelContext()) {\n throw new InvalidArgumentException(`Non top-level browsing context ${context.id} cannot be closed.`);\n }\n // Parent session of a page target session can be a `browser` or a `tab` session.\n const parentCdpClient = context.cdpTarget.parentCdpClient;\n try {\n const detachedFromTargetPromise = new Promise((resolve) => {\n const onContextDestroyed = (event) => {\n if (event.targetId === params.context) {\n parentCdpClient.off('Target.detachedFromTarget', onContextDestroyed);\n resolve();\n }\n };\n parentCdpClient.on('Target.detachedFromTarget', onContextDestroyed);\n });\n try {\n if (params.promptUnload) {\n await context.close();\n }\n else {\n await parentCdpClient.sendCommand('Target.closeTarget', {\n targetId: params.context,\n });\n }\n }\n catch (error) {\n // Swallow error that arise from the session being destroyed. Rely on the\n // `detachedFromTargetPromise` event to be resolved.\n if (!parentCdpClient.isCloseError(error)) {\n throw error;\n }\n }\n // Sometimes CDP command finishes before `detachedFromTarget` event,\n // sometimes after. Wait for the CDP command to be finished, and then wait\n // for `detachedFromTarget` if it hasn't emitted.\n await detachedFromTargetPromise;\n }\n catch (error) {\n // Swallow error that arise from the page being destroyed\n // Example is navigating to faulty SSL certificate\n if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'Not attached to an active page')) {\n throw error;\n }\n }\n return {};\n }\n async locateNodes(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.locateNodes(params);\n }\n #onContextCreatedSubscribeHook(contextId) {\n const context = this.#browsingContextStorage.getContext(contextId);\n const contextsToReport = [\n context,\n ...this.#browsingContextStorage.getContext(contextId).allChildren,\n ];\n contextsToReport.forEach((context) => {\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.ContextCreated,\n params: context.serializeToBidiValue(),\n }, context.id);\n });\n return Promise.resolve();\n }\n}\n//# sourceMappingURL=BrowsingContextProcessor.js.map","/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nexport class EmulationProcessor {\n #userContextStorage;\n #browsingContextStorage;\n #contextConfigStorage;\n constructor(browsingContextStorage, userContextStorage, contextConfigStorage) {\n this.#userContextStorage = userContextStorage;\n this.#browsingContextStorage = browsingContextStorage;\n this.#contextConfigStorage = contextConfigStorage;\n }\n async setGeolocationOverride(params) {\n if ('coordinates' in params && 'error' in params) {\n // Unreachable. Handled by params parser.\n throw new InvalidArgumentException('Coordinates and error cannot be set at the same time');\n }\n let geolocation = null;\n if ('coordinates' in params) {\n if ((params.coordinates?.altitude ?? null) === null &&\n (params.coordinates?.altitudeAccuracy ?? null) !== null) {\n throw new InvalidArgumentException('Geolocation altitudeAccuracy can be set only with altitude');\n }\n geolocation = params.coordinates;\n }\n else if ('error' in params) {\n if (params.error.type !== 'positionUnavailable') {\n // Unreachable. Handled by params parser.\n throw new InvalidArgumentException(`Unknown geolocation error ${params.error.type}`);\n }\n geolocation = params.error;\n }\n else {\n // Unreachable. Handled by params parser.\n throw new InvalidArgumentException(`Coordinates or error should be set`);\n }\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n geolocation,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n geolocation,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setGeolocationOverride(config.geolocation ?? null);\n }));\n return {};\n }\n async setLocaleOverride(params) {\n const locale = params.locale ?? null;\n if (locale !== null && !isValidLocale(locale)) {\n throw new InvalidArgumentException(`Invalid locale \"${locale}\"`);\n }\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n locale,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n locale,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await Promise.all([\n context.setLocaleOverride(config.locale ?? null),\n // Set `AcceptLanguage` to locale.\n context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints),\n ]);\n }));\n return {};\n }\n async setScriptingEnabled(params) {\n const scriptingEnabled = params.enabled;\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n scriptingEnabled,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n scriptingEnabled,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setScriptingEnabled(config.scriptingEnabled ?? null);\n }));\n return {};\n }\n async setScrollbarTypeOverride(params) {\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n scrollbarType: params.scrollbarType,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n scrollbarType: params.scrollbarType,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setScrollbarTypeOverride(config.scrollbarType ?? null);\n }));\n return {};\n }\n async setScreenOrientationOverride(params) {\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n screenOrientation: params.screenOrientation,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n screenOrientation: params.screenOrientation,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null);\n }));\n return {};\n }\n async setScreenSettingsOverride(params) {\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n screenArea: params.screenArea,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n screenArea: params.screenArea,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null);\n }));\n return {};\n }\n /**\n * Returns a list of top-level browsing contexts.\n */\n async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds, allowGlobal = false) {\n if (browsingContextIds === undefined && userContextIds === undefined) {\n if (allowGlobal) {\n return this.#browsingContextStorage.getTopLevelContexts();\n }\n throw new InvalidArgumentException('Either user contexts or browsing contexts must be provided');\n }\n if (browsingContextIds !== undefined && userContextIds !== undefined) {\n throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive');\n }\n const result = [];\n if (browsingContextIds === undefined) {\n // userContextIds !== undefined\n if (userContextIds.length === 0) {\n throw new InvalidArgumentException('user context should be provided');\n }\n // Verify that all user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n for (const userContextId of userContextIds) {\n const topLevelBrowsingContexts = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((browsingContext) => browsingContext.userContext === userContextId);\n result.push(...topLevelBrowsingContexts);\n }\n }\n else {\n if (browsingContextIds.length === 0) {\n throw new InvalidArgumentException('browsing context should be provided');\n }\n for (const browsingContextId of browsingContextIds) {\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n if (!browsingContext.isTopLevelContext()) {\n throw new InvalidArgumentException('The command is only supported on the top-level context');\n }\n result.push(browsingContext);\n }\n }\n // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as\n // `browsingContextStorage` returns the same instance for the same id.\n return [...new Set(result).values()];\n }\n async setTimezoneOverride(params) {\n let timezone = params.timezone ?? null;\n if (timezone !== null && !isValidTimezone(timezone)) {\n throw new InvalidArgumentException(`Invalid timezone \"${timezone}\"`);\n }\n if (timezone !== null && isTimeZoneOffsetString(timezone)) {\n // CDP supports offset timezone with `GMT` prefix.\n timezone = `GMT${timezone}`;\n }\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n timezone,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n timezone,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setTimezoneOverride(config.timezone ?? null);\n }));\n return {};\n }\n async setTouchOverride(params) {\n const maxTouchPoints = params.maxTouchPoints;\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n maxTouchPoints,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n maxTouchPoints,\n });\n }\n if (params.contexts === undefined && params.userContexts === undefined) {\n this.#contextConfigStorage.updateGlobalConfig({\n maxTouchPoints,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setTouchOverride(config.maxTouchPoints ?? null);\n }));\n return {};\n }\n async setUserAgentOverrideParams(params) {\n if (params.userAgent === '') {\n throw new UnsupportedOperationException('empty user agent string is not supported');\n }\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n userAgent: params.userAgent,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n userAgent: params.userAgent,\n });\n }\n if (params.contexts === undefined && params.userContexts === undefined) {\n this.#contextConfigStorage.updateGlobalConfig({\n userAgent: params.userAgent,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints);\n }));\n return {};\n }\n async setClientHintsOverride(params) {\n const clientHints = params.clientHints ?? null;\n // Get all relevant contexts to update:\n // 1. Specific browsing contexts (if provided).\n // 2. All contexts for specific user contexts (if provided).\n // 3. All top-level contexts (if global).\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n clientHints,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n clientHints,\n });\n }\n if (params.contexts === undefined && params.userContexts === undefined) {\n this.#contextConfigStorage.updateGlobalConfig({\n clientHints,\n });\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints);\n }));\n return {};\n }\n async setNetworkConditions(params) {\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true);\n for (const browsingContextId of params.contexts ?? []) {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, {\n emulatedNetworkConditions: params.networkConditions,\n });\n }\n for (const userContextId of params.userContexts ?? []) {\n this.#contextConfigStorage.updateUserContextConfig(userContextId, {\n emulatedNetworkConditions: params.networkConditions,\n });\n }\n if (params.contexts === undefined && params.userContexts === undefined) {\n this.#contextConfigStorage.updateGlobalConfig({\n emulatedNetworkConditions: params.networkConditions,\n });\n }\n if (params.networkConditions !== null &&\n params.networkConditions.type !== 'offline') {\n throw new UnsupportedOperationException(`Unsupported network conditions ${params.networkConditions.type}`);\n }\n await Promise.all(browsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing more granular setting.\n const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext);\n await context.setEmulatedNetworkConditions(config.emulatedNetworkConditions ?? null);\n }));\n return {};\n }\n}\n// Export for testing.\nexport function isValidLocale(locale) {\n try {\n new Intl.Locale(locale);\n return true;\n }\n catch (e) {\n if (e instanceof RangeError) {\n return false;\n }\n // Re-throw other errors\n throw e;\n }\n}\n// Export for testing.\nexport function isValidTimezone(timezone) {\n try {\n Intl.DateTimeFormat(undefined, { timeZone: timezone });\n return true;\n }\n catch (e) {\n if (e instanceof RangeError) {\n return false;\n }\n // Re-throw other errors\n throw e;\n }\n}\n// Export for testing.\nexport function isTimeZoneOffsetString(timezone) {\n return /^[+-](?:2[0-3]|[01]\\d)(?::[0-5]\\d)?$/.test(timezone);\n}\n//# sourceMappingURL=EmulationProcessor.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function assert(predicate, message) {\n if (!predicate) {\n throw new Error(message ?? 'Internal assertion failed.');\n }\n}\n//# sourceMappingURL=assert.js.map","/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Check if the given string is a single complex grapheme. A complex grapheme is one that\n * is made up of multiple characters.\n */\nexport function isSingleComplexGrapheme(value) {\n return isSingleGrapheme(value) && value.length > 1;\n}\n/**\n * Check if the given string is a single grapheme.\n */\nexport function isSingleGrapheme(value) {\n // Theoretically there can be some strings considered a grapheme in some locales, like\n // slovak \"ch\" digraph. Use english locale for consistency.\n // https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries\n const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });\n return [...segmenter.segment(value)].length === 1;\n}\n//# sourceMappingURL=graphemeTools.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nexport class NoneSource {\n type = \"none\" /* SourceType.None */;\n}\nexport class KeySource {\n type = \"key\" /* SourceType.Key */;\n pressed = new Set();\n // This is a bitfield that matches the modifiers parameter of\n // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent\n #modifiers = 0;\n get modifiers() {\n return this.#modifiers;\n }\n get alt() {\n return (this.#modifiers & 1) === 1;\n }\n set alt(value) {\n this.#setModifier(value, 1);\n }\n get ctrl() {\n return (this.#modifiers & 2) === 2;\n }\n set ctrl(value) {\n this.#setModifier(value, 2);\n }\n get meta() {\n return (this.#modifiers & 4) === 4;\n }\n set meta(value) {\n this.#setModifier(value, 4);\n }\n get shift() {\n return (this.#modifiers & 8) === 8;\n }\n set shift(value) {\n this.#setModifier(value, 8);\n }\n #setModifier(value, bit) {\n if (value) {\n this.#modifiers |= bit;\n }\n else {\n this.#modifiers &= ~bit;\n }\n }\n}\nexport class PointerSource {\n type = \"pointer\" /* SourceType.Pointer */;\n subtype;\n pointerId;\n pressed = new Set();\n x = 0;\n y = 0;\n radiusX;\n radiusY;\n force;\n constructor(id, subtype) {\n this.pointerId = id;\n this.subtype = subtype;\n }\n // This is a bitfield that matches the buttons parameter of\n // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchMouseEvent\n get buttons() {\n let buttons = 0;\n for (const button of this.pressed) {\n switch (button) {\n case 0:\n buttons |= 1;\n break;\n case 1:\n buttons |= 4;\n break;\n case 2:\n buttons |= 2;\n break;\n case 3:\n buttons |= 8;\n break;\n case 4:\n buttons |= 16;\n break;\n }\n }\n return buttons;\n }\n // --- Platform-specific code starts here ---\n // Input.dispatchMouseEvent doesn't know the concept of double click, so we\n // need to create the logic, similar to how it's done for OSes:\n // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:ui/events/event.cc;l=479\n static ClickContext = class ClickContext {\n static #DOUBLE_CLICK_TIME_MS = 500;\n static #MAX_DOUBLE_CLICK_RADIUS = 2;\n count = 0;\n #x;\n #y;\n #time;\n constructor(x, y, time) {\n this.#x = x;\n this.#y = y;\n this.#time = time;\n }\n compare(context) {\n return (\n // The click needs to be within a certain amount of ms.\n context.#time - this.#time > ClickContext.#DOUBLE_CLICK_TIME_MS ||\n // The click needs to be within a certain square radius.\n Math.abs(context.#x - this.#x) >\n ClickContext.#MAX_DOUBLE_CLICK_RADIUS ||\n Math.abs(context.#y - this.#y) > ClickContext.#MAX_DOUBLE_CLICK_RADIUS);\n }\n };\n #clickContexts = new Map();\n setClickCount(button, context) {\n let storedContext = this.#clickContexts.get(button);\n if (!storedContext || storedContext.compare(context)) {\n storedContext = context;\n }\n ++storedContext.count;\n this.#clickContexts.set(button, storedContext);\n return storedContext.count;\n }\n getClickCount(button) {\n return this.#clickContexts.get(button)?.count ?? 0;\n }\n /**\n * Resets click count. Resets consequent click counter. Prevents grouping clicks in\n * different `performActions` calls, so that they are not grouped as double, triple etc\n * clicks. Required for https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043.\n */\n resetClickCount() {\n this.#clickContexts = new Map();\n }\n}\n_a = PointerSource;\nexport class WheelSource {\n type = \"wheel\" /* SourceType.Wheel */;\n}\n//# sourceMappingURL=InputSource.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns the normalized key value for a given key according to the table:\n * https://w3c.github.io/webdriver/#dfn-normalized-key-value\n */\nexport function getNormalizedKey(value) {\n switch (value) {\n case '\\uE000':\n return 'Unidentified';\n case '\\uE001':\n return 'Cancel';\n case '\\uE002':\n return 'Help';\n case '\\uE003':\n return 'Backspace';\n case '\\uE004':\n return 'Tab';\n case '\\uE005':\n return 'Clear';\n // Specification declares the '\\uE006' to be `Return`, but it is not supported by\n // Chrome, so fall back to `Enter`, which aligns with WPT.\n case '\\uE006':\n case '\\uE007':\n return 'Enter';\n case '\\uE008':\n return 'Shift';\n case '\\uE009':\n return 'Control';\n case '\\uE00A':\n return 'Alt';\n case '\\uE00B':\n return 'Pause';\n case '\\uE00C':\n return 'Escape';\n case '\\uE00D':\n return ' ';\n case '\\uE00E':\n return 'PageUp';\n case '\\uE00F':\n return 'PageDown';\n case '\\uE010':\n return 'End';\n case '\\uE011':\n return 'Home';\n case '\\uE012':\n return 'ArrowLeft';\n case '\\uE013':\n return 'ArrowUp';\n case '\\uE014':\n return 'ArrowRight';\n case '\\uE015':\n return 'ArrowDown';\n case '\\uE016':\n return 'Insert';\n case '\\uE017':\n return 'Delete';\n case '\\uE018':\n return ';';\n case '\\uE019':\n return '=';\n case '\\uE01A':\n return '0';\n case '\\uE01B':\n return '1';\n case '\\uE01C':\n return '2';\n case '\\uE01D':\n return '3';\n case '\\uE01E':\n return '4';\n case '\\uE01F':\n return '5';\n case '\\uE020':\n return '6';\n case '\\uE021':\n return '7';\n case '\\uE022':\n return '8';\n case '\\uE023':\n return '9';\n case '\\uE024':\n return '*';\n case '\\uE025':\n return '+';\n case '\\uE026':\n return ',';\n case '\\uE027':\n return '-';\n case '\\uE028':\n return '.';\n case '\\uE029':\n return '/';\n case '\\uE031':\n return 'F1';\n case '\\uE032':\n return 'F2';\n case '\\uE033':\n return 'F3';\n case '\\uE034':\n return 'F4';\n case '\\uE035':\n return 'F5';\n case '\\uE036':\n return 'F6';\n case '\\uE037':\n return 'F7';\n case '\\uE038':\n return 'F8';\n case '\\uE039':\n return 'F9';\n case '\\uE03A':\n return 'F10';\n case '\\uE03B':\n return 'F11';\n case '\\uE03C':\n return 'F12';\n case '\\uE03D':\n return 'Meta';\n case '\\uE040':\n return 'ZenkakuHankaku';\n case '\\uE050':\n return 'Shift';\n case '\\uE051':\n return 'Control';\n case '\\uE052':\n return 'Alt';\n case '\\uE053':\n return 'Meta';\n case '\\uE054':\n return 'PageUp';\n case '\\uE055':\n return 'PageDown';\n case '\\uE056':\n return 'End';\n case '\\uE057':\n return 'Home';\n case '\\uE058':\n return 'ArrowLeft';\n case '\\uE059':\n return 'ArrowUp';\n case '\\uE05A':\n return 'ArrowRight';\n case '\\uE05B':\n return 'ArrowDown';\n case '\\uE05C':\n return 'Insert';\n case '\\uE05D':\n return 'Delete';\n default:\n return value;\n }\n}\n/**\n * Returns the key code for a given key according to the table:\n * https://w3c.github.io/webdriver/#dfn-shifted-character\n */\nexport function getKeyCode(key) {\n switch (key) {\n case '`':\n case '~':\n return 'Backquote';\n case '\\\\':\n case '|':\n return 'Backslash';\n case '\\uE003':\n return 'Backspace';\n case '[':\n case '{':\n return 'BracketLeft';\n case ']':\n case '}':\n return 'BracketRight';\n case ',':\n case '<':\n return 'Comma';\n case '0':\n case ')':\n return 'Digit0';\n case '1':\n case '!':\n return 'Digit1';\n case '2':\n case '@':\n return 'Digit2';\n case '3':\n case '#':\n return 'Digit3';\n case '4':\n case '$':\n return 'Digit4';\n case '5':\n case '%':\n return 'Digit5';\n case '6':\n case '^':\n return 'Digit6';\n case '7':\n case '&':\n return 'Digit7';\n case '8':\n case '*':\n return 'Digit8';\n case '9':\n case '(':\n return 'Digit9';\n case '=':\n case '+':\n return 'Equal';\n // The spec declares the '<' to be `IntlBackslash` as well, but it is already covered\n // in the `Comma` above.\n case '>':\n return 'IntlBackslash';\n case 'a':\n case 'A':\n return 'KeyA';\n case 'b':\n case 'B':\n return 'KeyB';\n case 'c':\n case 'C':\n return 'KeyC';\n case 'd':\n case 'D':\n return 'KeyD';\n case 'e':\n case 'E':\n return 'KeyE';\n case 'f':\n case 'F':\n return 'KeyF';\n case 'g':\n case 'G':\n return 'KeyG';\n case 'h':\n case 'H':\n return 'KeyH';\n case 'i':\n case 'I':\n return 'KeyI';\n case 'j':\n case 'J':\n return 'KeyJ';\n case 'k':\n case 'K':\n return 'KeyK';\n case 'l':\n case 'L':\n return 'KeyL';\n case 'm':\n case 'M':\n return 'KeyM';\n case 'n':\n case 'N':\n return 'KeyN';\n case 'o':\n case 'O':\n return 'KeyO';\n case 'p':\n case 'P':\n return 'KeyP';\n case 'q':\n case 'Q':\n return 'KeyQ';\n case 'r':\n case 'R':\n return 'KeyR';\n case 's':\n case 'S':\n return 'KeyS';\n case 't':\n case 'T':\n return 'KeyT';\n case 'u':\n case 'U':\n return 'KeyU';\n case 'v':\n case 'V':\n return 'KeyV';\n case 'w':\n case 'W':\n return 'KeyW';\n case 'x':\n case 'X':\n return 'KeyX';\n case 'y':\n case 'Y':\n return 'KeyY';\n case 'z':\n case 'Z':\n return 'KeyZ';\n case '-':\n case '_':\n return 'Minus';\n case '.':\n return 'Period';\n case \"'\":\n case '\"':\n return 'Quote';\n case ';':\n case ':':\n return 'Semicolon';\n case '/':\n case '?':\n return 'Slash';\n case '\\uE00A':\n return 'AltLeft';\n case '\\uE052':\n return 'AltRight';\n case '\\uE009':\n return 'ControlLeft';\n case '\\uE051':\n return 'ControlRight';\n case '\\uE006':\n return 'Enter';\n case '\\uE00B':\n return 'Pause';\n case '\\uE03D':\n return 'MetaLeft';\n case '\\uE053':\n return 'MetaRight';\n case '\\uE008':\n return 'ShiftLeft';\n case '\\uE050':\n return 'ShiftRight';\n case ' ':\n case '\\uE00D':\n return 'Space';\n case '\\uE004':\n return 'Tab';\n case '\\uE017':\n return 'Delete';\n case '\\uE010':\n return 'End';\n case '\\uE002':\n return 'Help';\n case '\\uE011':\n return 'Home';\n case '\\uE016':\n return 'Insert';\n case '\\uE00F':\n return 'PageDown';\n case '\\uE00E':\n return 'PageUp';\n case '\\uE015':\n return 'ArrowDown';\n case '\\uE012':\n return 'ArrowLeft';\n case '\\uE014':\n return 'ArrowRight';\n case '\\uE013':\n return 'ArrowUp';\n case '\\uE00C':\n return 'Escape';\n case '\\uE031':\n return 'F1';\n case '\\uE032':\n return 'F2';\n case '\\uE033':\n return 'F3';\n case '\\uE034':\n return 'F4';\n case '\\uE035':\n return 'F5';\n case '\\uE036':\n return 'F6';\n case '\\uE037':\n return 'F7';\n case '\\uE038':\n return 'F8';\n case '\\uE039':\n return 'F9';\n case '\\uE03A':\n return 'F10';\n case '\\uE03B':\n return 'F11';\n case '\\uE03C':\n return 'F12';\n case '\\uE019':\n return 'NumpadEqual';\n case '\\uE01A':\n case '\\uE05C':\n return 'Numpad0';\n case '\\uE01B':\n case '\\uE056':\n return 'Numpad1';\n case '\\uE01C':\n case '\\uE05B':\n return 'Numpad2';\n case '\\uE01D':\n case '\\uE055':\n return 'Numpad3';\n case '\\uE01E':\n case '\\uE058':\n return 'Numpad4';\n case '\\uE01F':\n return 'Numpad5';\n case '\\uE020':\n case '\\uE05A':\n return 'Numpad6';\n case '\\uE021':\n case '\\uE057':\n return 'Numpad7';\n case '\\uE022':\n case '\\uE059':\n return 'Numpad8';\n case '\\uE023':\n case '\\uE054':\n return 'Numpad9';\n case '\\uE025':\n return 'NumpadAdd';\n case '\\uE026':\n return 'NumpadComma';\n case '\\uE028':\n case '\\uE05D':\n return 'NumpadDecimal';\n case '\\uE029':\n return 'NumpadDivide';\n case '\\uE007':\n return 'NumpadEnter';\n case '\\uE024':\n return 'NumpadMultiply';\n case '\\uE027':\n return 'NumpadSubtract';\n default:\n return;\n }\n}\n/**\n * Returns the location of the key according to the table:\n * https://w3c.github.io/webdriver/#dfn-key-location\n */\nexport function getKeyLocation(key) {\n switch (key) {\n case '\\uE007':\n case '\\uE008':\n case '\\uE009':\n case '\\uE00A':\n case '\\uE03D':\n return 1;\n case '\\uE019':\n case '\\uE01A':\n case '\\uE01B':\n case '\\uE01C':\n case '\\uE01D':\n case '\\uE01E':\n case '\\uE01F':\n case '\\uE020':\n case '\\uE021':\n case '\\uE022':\n case '\\uE023':\n case '\\uE024':\n case '\\uE025':\n case '\\uE026':\n case '\\uE027':\n case '\\uE028':\n case '\\uE029':\n case '\\uE054':\n case '\\uE055':\n case '\\uE056':\n case '\\uE057':\n case '\\uE058':\n case '\\uE059':\n case '\\uE05A':\n case '\\uE05B':\n case '\\uE05C':\n case '\\uE05D':\n return 3;\n case '\\uE050':\n case '\\uE051':\n case '\\uE052':\n case '\\uE053':\n return 2;\n default:\n return 0;\n }\n}\n//# sourceMappingURL=keyUtils.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// TODO: Remove this once https://crrev.com/c/4548290 is stably in Chromium.\n// `Input.dispatchKeyboardEvent` will automatically handle these conversions.\nexport const KeyToKeyCode = {\n '0': 48,\n '1': 49,\n '2': 50,\n '3': 51,\n '4': 52,\n '5': 53,\n '6': 54,\n '7': 55,\n '8': 56,\n '9': 57,\n Abort: 3,\n Help: 6,\n Backspace: 8,\n Tab: 9,\n Numpad5: 12,\n NumpadEnter: 13,\n Enter: 13,\n '\\\\r': 13,\n '\\\\n': 13,\n ShiftLeft: 16,\n ShiftRight: 16,\n ControlLeft: 17,\n ControlRight: 17,\n AltLeft: 18,\n AltRight: 18,\n Pause: 19,\n CapsLock: 20,\n Escape: 27,\n Convert: 28,\n NonConvert: 29,\n Space: 32,\n Numpad9: 33,\n PageUp: 33,\n Numpad3: 34,\n PageDown: 34,\n End: 35,\n Numpad1: 35,\n Home: 36,\n Numpad7: 36,\n ArrowLeft: 37,\n Numpad4: 37,\n Numpad8: 38,\n ArrowUp: 38,\n ArrowRight: 39,\n Numpad6: 39,\n Numpad2: 40,\n ArrowDown: 40,\n Select: 41,\n Open: 43,\n PrintScreen: 44,\n Insert: 45,\n Numpad0: 45,\n Delete: 46,\n NumpadDecimal: 46,\n Digit0: 48,\n Digit1: 49,\n Digit2: 50,\n Digit3: 51,\n Digit4: 52,\n Digit5: 53,\n Digit6: 54,\n Digit7: 55,\n Digit8: 56,\n Digit9: 57,\n KeyA: 65,\n KeyB: 66,\n KeyC: 67,\n KeyD: 68,\n KeyE: 69,\n KeyF: 70,\n KeyG: 71,\n KeyH: 72,\n KeyI: 73,\n KeyJ: 74,\n KeyK: 75,\n KeyL: 76,\n KeyM: 77,\n KeyN: 78,\n KeyO: 79,\n KeyP: 80,\n KeyQ: 81,\n KeyR: 82,\n KeyS: 83,\n KeyT: 84,\n KeyU: 85,\n KeyV: 86,\n KeyW: 87,\n KeyX: 88,\n KeyY: 89,\n KeyZ: 90,\n MetaLeft: 91,\n MetaRight: 92,\n ContextMenu: 93,\n NumpadMultiply: 106,\n NumpadAdd: 107,\n NumpadSubtract: 109,\n NumpadDivide: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n F13: 124,\n F14: 125,\n F15: 126,\n F16: 127,\n F17: 128,\n F18: 129,\n F19: 130,\n F20: 131,\n F21: 132,\n F22: 133,\n F23: 134,\n F24: 135,\n NumLock: 144,\n ScrollLock: 145,\n AudioVolumeMute: 173,\n AudioVolumeDown: 174,\n AudioVolumeUp: 175,\n MediaTrackNext: 176,\n MediaTrackPrevious: 177,\n MediaStop: 178,\n MediaPlayPause: 179,\n Semicolon: 186,\n Equal: 187,\n NumpadEqual: 187,\n Comma: 188,\n Minus: 189,\n Period: 190,\n Slash: 191,\n Backquote: 192,\n BracketLeft: 219,\n Backslash: 220,\n BracketRight: 221,\n Quote: 222,\n AltGraph: 225,\n Props: 247,\n Cancel: 3,\n Clear: 12,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Accept: 30,\n ModeChange: 31,\n ' ': 32,\n Print: 42,\n Execute: 43,\n '\\\\u0000': 46,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n Meta: 91,\n '*': 106,\n '+': 107,\n '-': 109,\n '/': 111,\n ';': 186,\n '=': 187,\n ',': 188,\n '.': 190,\n '`': 192,\n '[': 219,\n '\\\\\\\\': 220,\n ']': 221,\n \"'\": 222,\n Attn: 246,\n CrSel: 247,\n ExSel: 248,\n EraseEof: 249,\n Play: 250,\n ZoomOut: 251,\n ')': 48,\n '!': 49,\n '@': 50,\n '#': 51,\n $: 52,\n '%': 53,\n '^': 54,\n '&': 55,\n '(': 57,\n A: 65,\n B: 66,\n C: 67,\n D: 68,\n E: 69,\n F: 70,\n G: 71,\n H: 72,\n I: 73,\n J: 74,\n K: 75,\n L: 76,\n M: 77,\n N: 78,\n O: 79,\n P: 80,\n Q: 81,\n R: 82,\n S: 83,\n T: 84,\n U: 85,\n V: 86,\n W: 87,\n X: 88,\n Y: 89,\n Z: 90,\n ':': 186,\n '<': 188,\n _: 189,\n '>': 190,\n '?': 191,\n '~': 192,\n '{': 219,\n '|': 220,\n '}': 221,\n '\"': 222,\n Camera: 44,\n EndCall: 95,\n VolumeDown: 182,\n VolumeUp: 183,\n};\n//# sourceMappingURL=USKeyboardLayout.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, MoveTargetOutOfBoundsException, NoSuchElementException, } from '../../../protocol/protocol.js';\nimport { assert } from '../../../utils/assert.js';\nimport { isSingleComplexGrapheme, isSingleGrapheme, } from '../../../utils/graphemeTools.js';\nimport { PointerSource, } from './InputSource.js';\nimport { getKeyCode, getKeyLocation, getNormalizedKey } from './keyUtils.js';\nimport { KeyToKeyCode } from './USKeyboardLayout.js';\n/** https://w3c.github.io/webdriver/#dfn-center-point */\nconst CALCULATE_IN_VIEW_CENTER_PT_DECL = ((i) => {\n const t = i.getClientRects()[0], e = Math.max(0, Math.min(t.x, t.x + t.width)), n = Math.min(window.innerWidth, Math.max(t.x, t.x + t.width)), h = Math.max(0, Math.min(t.y, t.y + t.height)), m = Math.min(window.innerHeight, Math.max(t.y, t.y + t.height));\n return [e + ((n - e) >> 1), h + ((m - h) >> 1)];\n}).toString();\nconst IS_MAC_DECL = (() => {\n return navigator.platform.toLowerCase().includes('mac');\n}).toString();\nasync function getElementCenter(context, element) {\n const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox();\n const result = await hiddenSandboxRealm.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, false, { type: 'undefined' }, [element]);\n if (result.type === 'exception') {\n throw new NoSuchElementException(`Origin element ${element.sharedId} was not found`);\n }\n assert(result.result.type === 'array');\n assert(result.result.value?.[0]?.type === 'number');\n assert(result.result.value?.[1]?.type === 'number');\n const { result: { value: [{ value: x }, { value: y }], }, } = result;\n return { x: x, y: y };\n}\nexport class ActionDispatcher {\n static isMacOS = async (context) => {\n const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox();\n const result = await hiddenSandboxRealm.callFunction(IS_MAC_DECL, false);\n assert(result.type !== 'exception');\n assert(result.result.type === 'boolean');\n return result.result.value;\n };\n #browsingContextStorage;\n #tickStart = 0;\n #tickDuration = 0;\n #inputState;\n #contextId;\n #isMacOS;\n constructor(inputState, browsingContextStorage, contextId, isMacOS) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#inputState = inputState;\n this.#contextId = contextId;\n this.#isMacOS = isMacOS;\n }\n /**\n * The context can be disposed between action ticks, so need to get it each time.\n */\n get #context() {\n return this.#browsingContextStorage.getContext(this.#contextId);\n }\n async dispatchActions(optionsByTick) {\n await this.#inputState.queue.run(async () => {\n for (const options of optionsByTick) {\n await this.dispatchTickActions(options);\n }\n });\n }\n async dispatchTickActions(options) {\n this.#tickStart = performance.now();\n this.#tickDuration = 0;\n for (const { action } of options) {\n if ('duration' in action && action.duration !== undefined) {\n this.#tickDuration = Math.max(this.#tickDuration, action.duration);\n }\n }\n const promises = [\n new Promise((resolve) => setTimeout(resolve, this.#tickDuration)),\n ];\n for (const option of options) {\n // In theory we have to wait for each action to happen, but CDP is serial,\n // so as an optimization, we queue all CDP commands at once and await all\n // of them.\n promises.push(this.#dispatchAction(option));\n }\n await Promise.all(promises);\n }\n async #dispatchAction({ id, action }) {\n const source = this.#inputState.get(id);\n const keyState = this.#inputState.getGlobalKeyState();\n switch (action.type) {\n case 'keyDown': {\n // SAFETY: The source is validated before.\n await this.#dispatchKeyDownAction(source, action);\n this.#inputState.cancelList.push({\n id,\n action: {\n ...action,\n type: 'keyUp',\n },\n });\n break;\n }\n case 'keyUp': {\n // SAFETY: The source is validated before.\n await this.#dispatchKeyUpAction(source, action);\n break;\n }\n case 'pause': {\n // TODO: Implement waiting on the input source.\n break;\n }\n case 'pointerDown': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerDownAction(source, keyState, action);\n this.#inputState.cancelList.push({\n id,\n action: {\n ...action,\n type: 'pointerUp',\n },\n });\n break;\n }\n case 'pointerMove': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerMoveAction(source, keyState, action);\n break;\n }\n case 'pointerUp': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerUpAction(source, keyState, action);\n break;\n }\n case 'scroll': {\n // SAFETY: The source is validated before.\n await this.#dispatchScrollAction(source, keyState, action);\n break;\n }\n }\n }\n async #dispatchPointerDownAction(source, keyState, action) {\n const { button } = action;\n if (source.pressed.has(button)) {\n return;\n }\n source.pressed.add(button);\n const { x, y, subtype: pointerType } = source;\n const { width, height, pressure, twist, tangentialPressure } = action;\n const { tiltX, tiltY } = getTilt(action);\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1);\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n case \"pen\" /* Input.PointerType.Pen */:\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mousePressed',\n x,\n y,\n modifiers,\n button: getCdpButton(button),\n buttons: source.buttons,\n clickCount: source.setClickCount(button, new PointerSource.ClickContext(x, y, performance.now())),\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n });\n break;\n case \"touch\" /* Input.PointerType.Touch */:\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchStart',\n touchPoints: [\n {\n x,\n y,\n radiusX,\n radiusY,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n id: source.pointerId,\n },\n ],\n modifiers,\n });\n break;\n }\n source.radiusX = radiusX;\n source.radiusY = radiusY;\n source.force = pressure;\n // --- Platform-specific code ends here ---\n }\n #dispatchPointerUpAction(source, keyState, action) {\n const { button } = action;\n if (!source.pressed.has(button)) {\n return;\n }\n source.pressed.delete(button);\n const { x, y, force, radiusX, radiusY, subtype: pointerType } = source;\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n case \"pen\" /* Input.PointerType.Pen */:\n // TODO: Implement width and height when available.\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseReleased',\n x,\n y,\n modifiers,\n button: getCdpButton(button),\n buttons: source.buttons,\n clickCount: source.getClickCount(button),\n pointerType,\n });\n case \"touch\" /* Input.PointerType.Touch */:\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchEnd',\n touchPoints: [\n {\n x,\n y,\n id: source.pointerId,\n force,\n radiusX,\n radiusY,\n },\n ],\n modifiers,\n });\n }\n // --- Platform-specific code ends here ---\n }\n async #dispatchPointerMoveAction(source, keyState, action) {\n const { x: startX, y: startY, subtype: pointerType } = source;\n const { width, height, pressure, twist, tangentialPressure, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action;\n const { tiltX, tiltY } = getTilt(action);\n const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1);\n const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY);\n if (targetX < 0 || targetY < 0) {\n throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`);\n }\n let last;\n do {\n const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1;\n last = ratio >= 1;\n let x;\n let y;\n if (last) {\n x = targetX;\n y = targetY;\n }\n else {\n x = Math.round(ratio * (targetX - startX) + startX);\n y = Math.round(ratio * (targetY - startY) + startY);\n }\n if (source.x !== x || source.y !== y) {\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseMoved',\n x,\n y,\n modifiers,\n clickCount: 0,\n button: getCdpButton(source.pressed.values().next().value ?? 5),\n buttons: source.buttons,\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n });\n break;\n case \"pen\" /* Input.PointerType.Pen */:\n if (source.pressed.size !== 0) {\n // Empty `source.pressed.size` means the pen is not detected by digitizer.\n // Dispatch a mouse event for the pen only if either:\n // 1. the pen is hovering over the digitizer (0);\n // 2. the pen is in contact with the digitizer (1);\n // 3. the pen has at least one button pressed (2, 4, etc).\n // https://www.w3.org/TR/pointerevents/#the-buttons-property\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseMoved',\n x,\n y,\n modifiers,\n clickCount: 0,\n button: getCdpButton(source.pressed.values().next().value ?? 5),\n buttons: source.buttons,\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure ?? 0.5,\n });\n }\n break;\n case \"touch\" /* Input.PointerType.Touch */:\n if (source.pressed.size !== 0) {\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchMove',\n touchPoints: [\n {\n x,\n y,\n radiusX,\n radiusY,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n id: source.pointerId,\n },\n ],\n modifiers,\n });\n }\n break;\n }\n // --- Platform-specific code ends here ---\n source.x = x;\n source.y = y;\n source.radiusX = radiusX;\n source.radiusY = radiusY;\n source.force = pressure;\n }\n } while (!last);\n }\n async #getFrameOffset() {\n if (this.#context.id === this.#context.cdpTarget.id) {\n return { x: 0, y: 0 };\n }\n // https://github.com/w3c/webdriver/pull/1847 proposes dispatching events from\n // the top-level browsing context. This implementation dispatches it on the top-most\n // same-target frame, which is not top-level one in case of OOPiF.\n // TODO: switch to the top-level browsing context.\n const { backendNodeId } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { frameId: this.#context.id });\n const { model: frameBoxModel } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getBoxModel', {\n backendNodeId,\n });\n return { x: frameBoxModel.content[0], y: frameBoxModel.content[1] };\n }\n async #getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY) {\n let targetX;\n let targetY;\n const frameOffset = await this.#getFrameOffset();\n switch (origin) {\n case 'viewport':\n targetX = offsetX + frameOffset.x;\n targetY = offsetY + frameOffset.y;\n break;\n case 'pointer':\n targetX = startX + offsetX + frameOffset.x;\n targetY = startY + offsetY + frameOffset.y;\n break;\n default: {\n const { x: posX, y: posY } = await getElementCenter(this.#context, origin.element);\n // SAFETY: These can never be special numbers.\n targetX = posX + offsetX + frameOffset.x;\n targetY = posY + offsetY + frameOffset.y;\n break;\n }\n }\n return { targetX, targetY };\n }\n async #dispatchScrollAction(_source, keyState, action) {\n const { deltaX: targetDeltaX, deltaY: targetDeltaY, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action;\n if (origin === 'pointer') {\n throw new InvalidArgumentException('\"pointer\" origin is invalid for scrolling.');\n }\n const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, 0, 0);\n if (targetX < 0 || targetY < 0) {\n throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`);\n }\n let currentDeltaX = 0;\n let currentDeltaY = 0;\n let last;\n do {\n const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1;\n last = ratio >= 1;\n let deltaX;\n let deltaY;\n if (last) {\n deltaX = targetDeltaX - currentDeltaX;\n deltaY = targetDeltaY - currentDeltaY;\n }\n else {\n deltaX = Math.round(ratio * targetDeltaX - currentDeltaX);\n deltaY = Math.round(ratio * targetDeltaY - currentDeltaY);\n }\n if (deltaX !== 0 || deltaY !== 0) {\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseWheel',\n deltaX,\n deltaY,\n x: targetX,\n y: targetY,\n modifiers,\n });\n // --- Platform-specific code ends here ---\n currentDeltaX += deltaX;\n currentDeltaY += deltaY;\n }\n } while (!last);\n }\n async #dispatchKeyDownAction(source, action) {\n const rawKey = action.value;\n if (!isSingleGrapheme(rawKey)) {\n // https://w3c.github.io/webdriver/#dfn-process-a-key-action\n // WebDriver spec allows a grapheme to be used.\n throw new InvalidArgumentException(`Invalid key value: ${rawKey}`);\n }\n const isGrapheme = isSingleComplexGrapheme(rawKey);\n const key = getNormalizedKey(rawKey);\n const repeat = source.pressed.has(key);\n const code = getKeyCode(rawKey);\n const location = getKeyLocation(rawKey);\n switch (key) {\n case 'Alt':\n source.alt = true;\n break;\n case 'Shift':\n source.shift = true;\n break;\n case 'Control':\n source.ctrl = true;\n break;\n case 'Meta':\n source.meta = true;\n break;\n }\n source.pressed.add(key);\n const { modifiers } = source;\n // --- Platform-specific code begins here ---\n // The spread is a little hack so JS gives us an array of unicode characters\n // to measure.\n const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme);\n const text = getKeyEventText(code ?? '', source) ?? unmodifiedText;\n let command;\n // The following commands need to be declared because Chromium doesn't\n // handle them. See\n // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/blink/renderer/core/editing/editing_behavior.cc;l=169;drc=b8143cf1dfd24842890fcd831c4f5d909bef4fc4;bpv=0;bpt=1.\n if (this.#isMacOS && source.meta) {\n switch (code) {\n case 'KeyA':\n command = 'SelectAll';\n break;\n case 'KeyC':\n command = 'Copy';\n break;\n case 'KeyV':\n command = source.shift ? 'PasteAndMatchStyle' : 'Paste';\n break;\n case 'KeyX':\n command = 'Cut';\n break;\n case 'KeyZ':\n command = source.shift ? 'Redo' : 'Undo';\n break;\n default:\n // Intentionally empty.\n }\n }\n const promises = [\n this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', {\n type: text ? 'keyDown' : 'rawKeyDown',\n windowsVirtualKeyCode: KeyToKeyCode[key],\n key,\n code,\n text,\n unmodifiedText,\n autoRepeat: repeat,\n isSystemKey: source.alt || undefined,\n location: location < 3 ? location : undefined,\n isKeypad: location === 3,\n modifiers,\n commands: command ? [command] : undefined,\n }),\n ];\n // Drag cancelling happens on escape.\n if (key === 'Escape') {\n if (!source.alt &&\n ((this.#isMacOS && !source.ctrl && !source.meta) || !this.#isMacOS)) {\n promises.push(this.#context.cdpTarget.cdpClient.sendCommand('Input.cancelDragging'));\n }\n }\n await Promise.all(promises);\n // --- Platform-specific code ends here ---\n }\n #dispatchKeyUpAction(source, action) {\n const rawKey = action.value;\n if (!isSingleGrapheme(rawKey)) {\n // https://w3c.github.io/webdriver/#dfn-process-a-key-action\n // WebDriver spec allows a grapheme to be used.\n throw new InvalidArgumentException(`Invalid key value: ${rawKey}`);\n }\n const isGrapheme = isSingleComplexGrapheme(rawKey);\n const key = getNormalizedKey(rawKey);\n if (!source.pressed.has(key)) {\n return;\n }\n const code = getKeyCode(rawKey);\n const location = getKeyLocation(rawKey);\n switch (key) {\n case 'Alt':\n source.alt = false;\n break;\n case 'Shift':\n source.shift = false;\n break;\n case 'Control':\n source.ctrl = false;\n break;\n case 'Meta':\n source.meta = false;\n break;\n }\n source.pressed.delete(key);\n const { modifiers } = source;\n // --- Platform-specific code begins here ---\n // The spread is a little hack so JS gives us an array of unicode characters\n // to measure.\n const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme);\n const text = getKeyEventText(code ?? '', source) ?? unmodifiedText;\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', {\n type: 'keyUp',\n windowsVirtualKeyCode: KeyToKeyCode[key],\n key,\n code,\n text,\n unmodifiedText,\n location: location < 3 ? location : undefined,\n isSystemKey: source.alt || undefined,\n isKeypad: location === 3,\n modifiers,\n });\n // --- Platform-specific code ends here ---\n }\n}\n/**\n * Translates a non-grapheme key to either an `undefined` for a special keys, or a single\n * character modified by shift if needed.\n */\nconst getKeyEventUnmodifiedText = (key, source, isGrapheme) => {\n if (isGrapheme) {\n // Graphemes should be presented as text in the CDP command.\n return key;\n }\n if (key === 'Enter') {\n return '\\r';\n }\n // If key is not a single character, it is a normalized key value, and should be\n // presented as key, not text in the CDP command.\n return [...key].length === 1\n ? source.shift\n ? key.toLocaleUpperCase('en-US')\n : key\n : undefined;\n};\nconst getKeyEventText = (code, source) => {\n if (source.ctrl) {\n switch (code) {\n case 'Digit2':\n if (source.shift) {\n return '\\x00';\n }\n break;\n case 'KeyA':\n return '\\x01';\n case 'KeyB':\n return '\\x02';\n case 'KeyC':\n return '\\x03';\n case 'KeyD':\n return '\\x04';\n case 'KeyE':\n return '\\x05';\n case 'KeyF':\n return '\\x06';\n case 'KeyG':\n return '\\x07';\n case 'KeyH':\n return '\\x08';\n case 'KeyI':\n return '\\x09';\n case 'KeyJ':\n return '\\x0A';\n case 'KeyK':\n return '\\x0B';\n case 'KeyL':\n return '\\x0C';\n case 'KeyM':\n return '\\x0D';\n case 'KeyN':\n return '\\x0E';\n case 'KeyO':\n return '\\x0F';\n case 'KeyP':\n return '\\x10';\n case 'KeyQ':\n return '\\x11';\n case 'KeyR':\n return '\\x12';\n case 'KeyS':\n return '\\x13';\n case 'KeyT':\n return '\\x14';\n case 'KeyU':\n return '\\x15';\n case 'KeyV':\n return '\\x16';\n case 'KeyW':\n return '\\x17';\n case 'KeyX':\n return '\\x18';\n case 'KeyY':\n return '\\x19';\n case 'KeyZ':\n return '\\x1A';\n case 'BracketLeft':\n return '\\x1B';\n case 'Backslash':\n return '\\x1C';\n case 'BracketRight':\n return '\\x1D';\n case 'Digit6':\n if (source.shift) {\n return '\\x1E';\n }\n break;\n case 'Minus':\n return '\\x1F';\n }\n return '';\n }\n if (source.alt) {\n return '';\n }\n return;\n};\nfunction getCdpButton(button) {\n // https://www.w3.org/TR/pointerevents/#the-button-property\n switch (button) {\n case 0:\n return 'left';\n case 1:\n return 'middle';\n case 2:\n return 'right';\n case 3:\n return 'back';\n case 4:\n return 'forward';\n default:\n return 'none';\n }\n}\nfunction getTilt(action) {\n // https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle\n const altitudeAngle = action.altitudeAngle ?? Math.PI / 2;\n const azimuthAngle = action.azimuthAngle ?? 0;\n let tiltXRadians = 0;\n let tiltYRadians = 0;\n if (altitudeAngle === 0) {\n // the pen is in the X-Y plane\n if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) {\n // pen is on positive X axis\n tiltXRadians = Math.PI / 2;\n }\n if (azimuthAngle === Math.PI / 2) {\n // pen is on positive Y axis\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle === Math.PI) {\n // pen is on negative X axis\n tiltXRadians = -Math.PI / 2;\n }\n if (azimuthAngle === (3 * Math.PI) / 2) {\n // pen is on negative Y axis\n tiltYRadians = -Math.PI / 2;\n }\n if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) {\n tiltXRadians = Math.PI / 2;\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) {\n tiltXRadians = -Math.PI / 2;\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle > Math.PI && azimuthAngle < (3 * Math.PI) / 2) {\n tiltXRadians = -Math.PI / 2;\n tiltYRadians = -Math.PI / 2;\n }\n if (azimuthAngle > (3 * Math.PI) / 2 && azimuthAngle < 2 * Math.PI) {\n tiltXRadians = Math.PI / 2;\n tiltYRadians = -Math.PI / 2;\n }\n }\n if (altitudeAngle !== 0) {\n const tanAlt = Math.tan(altitudeAngle);\n tiltXRadians = Math.atan(Math.cos(azimuthAngle) / tanAlt);\n tiltYRadians = Math.atan(Math.sin(azimuthAngle) / tanAlt);\n }\n const factor = 180 / Math.PI;\n return {\n tiltX: Math.round(tiltXRadians * factor),\n tiltY: Math.round(tiltYRadians * factor),\n };\n}\nfunction getRadii(width, height) {\n return {\n radiusX: width ? width / 2 : 0.5,\n radiusY: height ? height / 2 : 0.5,\n };\n}\n//# sourceMappingURL=ActionDispatcher.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n * Copyright 2022 The Chromium Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Use Mutex class to coordinate local concurrent operations.\n * Once `acquire` promise resolves, you hold the lock and must\n * call `release` function returned by `acquire` to release the\n * lock. Failing to `release` the lock may lead to deadlocks.\n */\nexport class Mutex {\n #locked = false;\n #acquirers = [];\n // This is FIFO.\n acquire() {\n const state = { resolved: false };\n if (this.#locked) {\n return new Promise((resolve) => {\n this.#acquirers.push(() => resolve(this.#release.bind(this, state)));\n });\n }\n this.#locked = true;\n return Promise.resolve(this.#release.bind(this, state));\n }\n #release(state) {\n if (state.resolved) {\n throw new Error('Cannot release more than once.');\n }\n state.resolved = true;\n const resolve = this.#acquirers.shift();\n if (!resolve) {\n this.#locked = false;\n return;\n }\n resolve();\n }\n async run(action) {\n const release = await this.acquire();\n try {\n // Note we need to await here because we want the await to release AFTER\n // that await happens. Returning action() will trigger the release\n // immediately which is counter to what we want.\n const result = await action();\n return result;\n }\n finally {\n release();\n }\n }\n}\n//# sourceMappingURL=Mutex.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, UnknownErrorException, } from '../../../protocol/protocol.js';\nimport { Mutex } from '../../../utils/Mutex.js';\nimport { KeySource, NoneSource, PointerSource, WheelSource, } from './InputSource.js';\nexport class InputState {\n cancelList = [];\n #sources = new Map();\n #mutex = new Mutex();\n getOrCreate(id, type, subtype) {\n let source = this.#sources.get(id);\n if (!source) {\n switch (type) {\n case \"none\" /* SourceType.None */:\n source = new NoneSource();\n break;\n case \"key\" /* SourceType.Key */:\n source = new KeySource();\n break;\n case \"pointer\" /* SourceType.Pointer */: {\n let pointerId = subtype === \"mouse\" /* Input.PointerType.Mouse */ ? 0 : 2;\n const pointerIds = new Set();\n for (const [, source] of this.#sources) {\n if (source.type === \"pointer\" /* SourceType.Pointer */) {\n pointerIds.add(source.pointerId);\n }\n }\n while (pointerIds.has(pointerId)) {\n ++pointerId;\n }\n source = new PointerSource(pointerId, subtype);\n break;\n }\n case \"wheel\" /* SourceType.Wheel */:\n source = new WheelSource();\n break;\n default:\n throw new InvalidArgumentException(`Expected \"${\"none\" /* SourceType.None */}\", \"${\"key\" /* SourceType.Key */}\", \"${\"pointer\" /* SourceType.Pointer */}\", or \"${\"wheel\" /* SourceType.Wheel */}\". Found unknown source type ${type}.`);\n }\n this.#sources.set(id, source);\n return source;\n }\n if (source.type !== type) {\n throw new InvalidArgumentException(`Input source type of ${id} is ${source.type}, but received ${type}.`);\n }\n return source;\n }\n get(id) {\n const source = this.#sources.get(id);\n if (!source) {\n throw new UnknownErrorException(`Internal error.`);\n }\n return source;\n }\n getGlobalKeyState() {\n const state = new KeySource();\n for (const [, source] of this.#sources) {\n if (source.type !== \"key\" /* SourceType.Key */) {\n continue;\n }\n for (const pressed of source.pressed) {\n state.pressed.add(pressed);\n }\n state.alt ||= source.alt;\n state.ctrl ||= source.ctrl;\n state.meta ||= source.meta;\n state.shift ||= source.shift;\n }\n return state;\n }\n get queue() {\n return this.#mutex;\n }\n}\n//# sourceMappingURL=InputState.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { assert } from '../../../utils/assert.js';\nimport { InputState } from './InputState.js';\n// We use a weak map here as specified here:\n// https://www.w3.org/TR/webdriver/#dfn-browsing-context-input-state-map\nexport class InputStateManager extends WeakMap {\n get(context) {\n assert(context.isTopLevelContext());\n if (!this.has(context)) {\n this.set(context, new InputState());\n }\n return super.get(context);\n }\n}\n//# sourceMappingURL=InputStateManager.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, NoSuchElementException, UnableToSetFileInputException, NoSuchNodeException, } from '../../../protocol/protocol.js';\nimport { assert } from '../../../utils/assert.js';\nimport { ActionDispatcher } from '../input/ActionDispatcher.js';\nimport { InputStateManager } from '../input/InputStateManager.js';\nexport class InputProcessor {\n #browsingContextStorage;\n #inputStateManager = new InputStateManager();\n constructor(browsingContextStorage) {\n this.#browsingContextStorage = browsingContextStorage;\n }\n async performActions(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const inputState = this.#inputStateManager.get(context.top);\n const actionsByTick = this.#getActionsByTick(params, inputState);\n const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false));\n await dispatcher.dispatchActions(actionsByTick);\n return {};\n }\n async releaseActions(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const topContext = context.top;\n const inputState = this.#inputStateManager.get(topContext);\n const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false));\n await dispatcher.dispatchTickActions(inputState.cancelList.reverse());\n this.#inputStateManager.delete(topContext);\n return {};\n }\n async setFiles(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox();\n let result;\n try {\n result = await hiddenSandboxRealm.callFunction(String(function getFiles(fileListLength) {\n if (!(this instanceof HTMLInputElement)) {\n if (this instanceof Element) {\n return 1 /* ErrorCode.Element */;\n }\n return 0 /* ErrorCode.Node */;\n }\n if (this.type !== 'file') {\n return 2 /* ErrorCode.Type */;\n }\n if (this.disabled) {\n return 3 /* ErrorCode.Disabled */;\n }\n if (fileListLength > 1 && !this.multiple) {\n return 4 /* ErrorCode.Multiple */;\n }\n return;\n }), false, params.element, [{ type: 'number', value: params.files.length }]);\n }\n catch {\n throw new NoSuchNodeException(`Could not find element ${params.element.sharedId}`);\n }\n assert(result.type === 'success');\n if (result.result.type === 'number') {\n switch (result.result.value) {\n case 0 /* ErrorCode.Node */: {\n throw new NoSuchElementException(`Could not find element ${params.element.sharedId}`);\n }\n case 1 /* ErrorCode.Element */: {\n throw new UnableToSetFileInputException(`Element ${params.element.sharedId} is not a input`);\n }\n case 2 /* ErrorCode.Type */: {\n throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is not a file type`);\n }\n case 3 /* ErrorCode.Disabled */: {\n throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is disabled`);\n }\n case 4 /* ErrorCode.Multiple */: {\n throw new UnableToSetFileInputException(`Cannot set multiple files on a non-multiple input element`);\n }\n }\n }\n /**\n * The zero-length array is a special case, it seems that\n * DOM.setFileInputFiles does not actually update the files in that case, so\n * the solution is to eval the element value to a new FileList directly.\n */\n if (params.files.length === 0) {\n // XXX: These events should converted to trusted events. Perhaps do this\n // in `DOM.setFileInputFiles`?\n await hiddenSandboxRealm.callFunction(String(function dispatchEvent() {\n if (this.files?.length === 0) {\n this.dispatchEvent(new Event('cancel', {\n bubbles: true,\n }));\n return;\n }\n this.files = new DataTransfer().files;\n // Dispatch events for this case because it should behave akin to a user action.\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }), false, params.element);\n return {};\n }\n // Our goal here is to iterate over the input element files and get their\n // file paths.\n const paths = [];\n for (let i = 0; i < params.files.length; ++i) {\n const result = await hiddenSandboxRealm.callFunction(String(function getFiles(index) {\n return this.files?.item(index);\n }), false, params.element, [{ type: 'number', value: 0 }], \"root\" /* Script.ResultOwnership.Root */);\n assert(result.type === 'success');\n if (result.result.type !== 'object') {\n break;\n }\n const { handle } = result.result;\n assert(handle !== undefined);\n const { path } = await hiddenSandboxRealm.cdpClient.sendCommand('DOM.getFileInfo', {\n objectId: handle,\n });\n paths.push(path);\n // Cleanup the handle.\n void hiddenSandboxRealm.disown(handle).catch(undefined);\n }\n paths.sort();\n // We create a new array so we preserve the order of the original files.\n const sortedFiles = [...params.files].sort();\n if (paths.length !== params.files.length ||\n sortedFiles.some((path, index) => {\n return paths[index] !== path;\n })) {\n const { objectId } = await hiddenSandboxRealm.deserializeForCdp(params.element);\n // This cannot throw since this was just used in `callFunction` above.\n assert(objectId !== undefined);\n await hiddenSandboxRealm.cdpClient.sendCommand('DOM.setFileInputFiles', {\n files: params.files,\n objectId,\n });\n }\n else {\n // XXX: We should dispatch a trusted event.\n await hiddenSandboxRealm.callFunction(String(function dispatchEvent() {\n this.dispatchEvent(new Event('cancel', {\n bubbles: true,\n }));\n }), false, params.element);\n }\n return {};\n }\n #getActionsByTick(params, inputState) {\n const actionsByTick = [];\n for (const action of params.actions) {\n switch (action.type) {\n case \"pointer\" /* SourceType.Pointer */: {\n action.parameters ??= { pointerType: \"mouse\" /* Input.PointerType.Mouse */ };\n action.parameters.pointerType ??= \"mouse\" /* Input.PointerType.Mouse */;\n const source = inputState.getOrCreate(action.id, \"pointer\" /* SourceType.Pointer */, action.parameters.pointerType);\n if (source.subtype !== action.parameters.pointerType) {\n throw new InvalidArgumentException(`Expected input source ${action.id} to be ${source.subtype}; got ${action.parameters.pointerType}.`);\n }\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043\n source.resetClickCount();\n break;\n }\n default:\n inputState.getOrCreate(action.id, action.type);\n }\n const actions = action.actions.map((item) => ({\n id: action.id,\n action: item,\n }));\n for (let i = 0; i < actions.length; i++) {\n if (actionsByTick.length === i) {\n actionsByTick.push([]);\n }\n actionsByTick[i].push(actions[i]);\n }\n }\n return actionsByTick;\n }\n}\n//# sourceMappingURL=InputProcessor.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Encodes a string to base64.\n *\n * Uses the native Web API if available, otherwise falls back to a NodeJS Buffer.\n * @param {string} base64Str\n * @return {string}\n */\nexport function base64ToString(base64Str) {\n // Available only if run in a browser context.\n if ('atob' in globalThis) {\n return globalThis.atob(base64Str);\n }\n // Available only if run in a NodeJS context.\n return Buffer.from(base64Str, 'base64').toString('ascii');\n}\n//# sourceMappingURL=base64.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { InvalidArgumentException } from '../../../protocol/ErrorResponse.js';\nimport { base64ToString } from '../../../utils/base64.js';\nexport function computeHeadersSize(headers) {\n const requestHeaders = headers.reduce((acc, header) => {\n return `${acc}${header.name}: ${header.value.value}\\r\\n`;\n }, '');\n return new TextEncoder().encode(requestHeaders).length;\n}\nexport function stringToBase64(str) {\n return typedArrayToBase64(new TextEncoder().encode(str));\n}\nfunction typedArrayToBase64(typedArray) {\n // chunkSize should be less V8 limit on number of arguments!\n // https://github.com/v8/v8/blob/d3de848bea727518aee94dd2fd42ba0b62037a27/src/objects/code.h#L444\n const chunkSize = 65534;\n const chunks = [];\n for (let i = 0; i < typedArray.length; i += chunkSize) {\n const chunk = typedArray.subarray(i, i + chunkSize);\n chunks.push(String.fromCodePoint.apply(null, chunk));\n }\n const binaryString = chunks.join('');\n return btoa(binaryString);\n}\n/** Converts from CDP Network domain headers to BiDi network headers. */\nexport function bidiNetworkHeadersFromCdpNetworkHeaders(headers) {\n if (!headers) {\n return [];\n }\n return Object.entries(headers).map(([name, value]) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from CDP Fetch domain headers to BiDi network headers. */\nexport function bidiNetworkHeadersFromCdpNetworkHeadersEntries(headers) {\n if (!headers) {\n return [];\n }\n return headers.map(({ name, value }) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from Bidi network headers to CDP Network domain headers. */\nexport function cdpNetworkHeadersFromBidiNetworkHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n return headers.reduce((result, header) => {\n // TODO: Distinguish between string and bytes?\n result[header.name] = header.value.value;\n return result;\n }, {});\n}\n/** Converts from CDP Fetch domain header entries to Bidi network headers. */\nexport function bidiNetworkHeadersFromCdpFetchHeaders(headers) {\n if (!headers) {\n return [];\n }\n return headers.map(({ name, value }) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from Bidi network headers to CDP Fetch domain header entries. */\nexport function cdpFetchHeadersFromBidiNetworkHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n return headers.map(({ name, value }) => ({\n name,\n value: value.value,\n }));\n}\nexport function networkHeaderFromCookieHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n const value = headers.reduce((acc, value, index) => {\n if (index > 0) {\n acc += ';';\n }\n const cookieValue = value.value.type === 'base64'\n ? btoa(value.value.value)\n : value.value.value;\n acc += `${value.name}=${cookieValue}`;\n return acc;\n }, '');\n return {\n name: 'Cookie',\n value: {\n type: 'string',\n value,\n },\n };\n}\n/** Converts from Bidi auth action to CDP auth challenge response. */\nexport function cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(action) {\n switch (action) {\n case 'default':\n return 'Default';\n case 'cancel':\n return 'CancelAuth';\n case 'provideCredentials':\n return 'ProvideCredentials';\n }\n}\n/**\n * Converts from CDP Network domain cookie to BiDi network cookie.\n * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie\n * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie\n */\nexport function cdpToBiDiCookie(cookie) {\n const result = {\n name: cookie.name,\n value: { type: 'string', value: cookie.value },\n domain: cookie.domain,\n path: cookie.path,\n size: cookie.size,\n httpOnly: cookie.httpOnly,\n secure: cookie.secure,\n sameSite: cookie.sameSite === undefined\n ? \"none\" /* Network.SameSite.None */\n : sameSiteCdpToBiDi(cookie.sameSite),\n ...(cookie.expires >= 0 ? { expiry: Math.round(cookie.expires) } : undefined),\n };\n // Extending with CDP-specific properties with `goog:` prefix.\n result[`goog:session`] = cookie.session;\n result[`goog:priority`] = cookie.priority;\n result[`goog:sourceScheme`] = cookie.sourceScheme;\n result[`goog:sourcePort`] = cookie.sourcePort;\n if (cookie.partitionKey !== undefined) {\n result[`goog:partitionKey`] = cookie.partitionKey;\n }\n if (cookie.partitionKeyOpaque !== undefined) {\n result[`goog:partitionKeyOpaque`] = cookie.partitionKeyOpaque;\n }\n return result;\n}\n/**\n * Decodes a byte value to a string.\n * @param {Network.BytesValue} value\n * @return {string}\n */\nexport function deserializeByteValue(value) {\n if (value.type === 'base64') {\n return base64ToString(value.value);\n }\n return value.value;\n}\n/**\n * Converts from BiDi set network cookie params to CDP Network domain cookie.\n * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie\n * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-CookieParam\n */\nexport function bidiToCdpCookie(params, partitionKey) {\n const deserializedValue = deserializeByteValue(params.cookie.value);\n const result = {\n name: params.cookie.name,\n value: deserializedValue,\n domain: params.cookie.domain,\n path: params.cookie.path ?? '/',\n secure: params.cookie.secure ?? false,\n httpOnly: params.cookie.httpOnly ?? false,\n ...(partitionKey.sourceOrigin !== undefined && {\n partitionKey: {\n hasCrossSiteAncestor: false,\n // CDP's `partitionKey.topLevelSite` is the BiDi's `partition.sourceOrigin`.\n topLevelSite: partitionKey.sourceOrigin,\n },\n }),\n ...(params.cookie.expiry !== undefined && {\n expires: params.cookie.expiry,\n }),\n ...(params.cookie.sameSite !== undefined && {\n sameSite: sameSiteBiDiToCdp(params.cookie.sameSite),\n }),\n };\n // Extending with CDP-specific properties with `goog:` prefix.\n if (params.cookie[`goog:url`] !== undefined) {\n result.url = params.cookie[`goog:url`];\n }\n if (params.cookie[`goog:priority`] !== undefined) {\n result.priority = params.cookie[`goog:priority`];\n }\n if (params.cookie[`goog:sourceScheme`] !== undefined) {\n result.sourceScheme = params.cookie[`goog:sourceScheme`];\n }\n if (params.cookie[`goog:sourcePort`] !== undefined) {\n result.sourcePort = params.cookie[`goog:sourcePort`];\n }\n return result;\n}\nfunction sameSiteCdpToBiDi(sameSite) {\n switch (sameSite) {\n case 'Strict':\n return \"strict\" /* Network.SameSite.Strict */;\n case 'None':\n return \"none\" /* Network.SameSite.None */;\n case 'Lax':\n return \"lax\" /* Network.SameSite.Lax */;\n default:\n // Defaults to `Lax`:\n // https://web.dev/articles/samesite-cookies-explained#samesitelax_by_default\n return \"lax\" /* Network.SameSite.Lax */;\n }\n}\nexport function sameSiteBiDiToCdp(sameSite) {\n switch (sameSite) {\n case \"none\" /* Network.SameSite.None */:\n return 'None';\n case \"strict\" /* Network.SameSite.Strict */:\n return 'Strict';\n // Defaults to `Lax`:\n // https://web.dev/articles/samesite-cookies-explained#samesitelax_by_default\n case \"default\" /* Network.SameSite.Default */:\n case \"lax\" /* Network.SameSite.Lax */:\n return 'Lax';\n }\n throw new InvalidArgumentException(`Unknown 'sameSite' value ${sameSite}`);\n}\n/**\n * Returns true if the given protocol is special.\n * Special protocols are those that have a default port.\n *\n * Example inputs: 'http', 'http:'\n *\n * @see https://url.spec.whatwg.org/#special-scheme\n */\nexport function isSpecialScheme(protocol) {\n return ['ftp', 'file', 'http', 'https', 'ws', 'wss'].includes(protocol.replace(/:$/, ''));\n}\nfunction getScheme(url) {\n return url.protocol.replace(/:$/, '');\n}\n/** Matches the given URLPattern against the given URL. */\nexport function matchUrlPattern(pattern, url) {\n // Roughly https://w3c.github.io/webdriver-bidi/#match-url-pattern\n // plus some differences based on the URL parsing methods.\n const parsedUrl = new URL(url);\n if (pattern.protocol !== undefined &&\n pattern.protocol !== getScheme(parsedUrl)) {\n return false;\n }\n if (pattern.hostname !== undefined &&\n pattern.hostname !== parsedUrl.hostname) {\n return false;\n }\n if (pattern.port !== undefined && pattern.port !== parsedUrl.port) {\n return false;\n }\n if (pattern.pathname !== undefined &&\n pattern.pathname !== parsedUrl.pathname) {\n return false;\n }\n if (pattern.search !== undefined && pattern.search !== parsedUrl.search) {\n return false;\n }\n return true;\n}\nexport function bidiBodySizeFromCdpPostDataEntries(entries) {\n let size = 0;\n for (const entry of entries) {\n size += atob(entry.bytes ?? '').length;\n }\n return size;\n}\nexport function getTiming(timing, offset = 0) {\n if (!timing) {\n return 0;\n }\n if (timing <= 0 || timing + offset <= 0) {\n return 0;\n }\n return timing + offset;\n}\n//# sourceMappingURL=NetworkUtils.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoSuchRequestException, InvalidArgumentException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nimport { isSpecialScheme } from './NetworkUtils.js';\n/** Dispatches Network module commands. */\nexport class NetworkProcessor {\n #browsingContextStorage;\n #networkStorage;\n #userContextStorage;\n #contextConfigStorage;\n constructor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage) {\n this.#userContextStorage = userContextStorage;\n this.#browsingContextStorage = browsingContextStorage;\n this.#networkStorage = networkStorage;\n this.#contextConfigStorage = contextConfigStorage;\n }\n async addIntercept(params) {\n this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n const urlPatterns = params.urlPatterns ?? [];\n const parsedUrlPatterns = NetworkProcessor.parseUrlPatterns(urlPatterns);\n const intercept = this.#networkStorage.addIntercept({\n urlPatterns: parsedUrlPatterns,\n phases: params.phases,\n contexts: params.contexts,\n });\n // Adding interception may require enabling CDP Network domains.\n await this.#toggleNetwork();\n return {\n intercept,\n };\n }\n async continueRequest(params) {\n if (params.url !== undefined) {\n NetworkProcessor.parseUrlString(params.url);\n }\n if (params.method !== undefined) {\n if (!NetworkProcessor.isMethodValid(params.method)) {\n throw new InvalidArgumentException(`Method '${params.method}' is invalid.`);\n }\n }\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */,\n ]);\n try {\n await request.continueRequest(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n async continueResponse(params) {\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */,\n ]);\n try {\n await request.continueResponse(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n async continueWithAuth(params) {\n const networkId = params.request;\n const request = this.#getBlockedRequestOrFail(networkId, [\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n ]);\n await request.continueWithAuth(params);\n return {};\n }\n async failRequest({ request: networkId, }) {\n const request = this.#getRequestOrFail(networkId);\n if (request.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n throw new InvalidArgumentException(`Request '${networkId}' in 'authRequired' phase cannot be failed`);\n }\n if (!request.interceptPhase) {\n throw new NoSuchRequestException(`No blocked request found for network id '${networkId}'`);\n }\n await request.failRequest('Failed');\n return {};\n }\n async provideResponse(params) {\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */,\n \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */,\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n ]);\n try {\n await request.provideResponse(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n /**\n * In some states CDP Network and Fetch domains are not required, but in some they have\n * to be updated. Whenever potential change in these kinds of states is introduced,\n * update the states of all the CDP targets.\n */\n async #toggleNetwork() {\n await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => {\n return context.cdpTarget.toggleNetwork();\n }));\n }\n async removeIntercept(params) {\n this.#networkStorage.removeIntercept(params.intercept);\n // Removing interception may allow for disabling CDP Network domains.\n await this.#toggleNetwork();\n return {};\n }\n async setCacheBehavior(params) {\n const contexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n // Change all targets\n if (contexts.size === 0) {\n this.#networkStorage.defaultCacheBehavior = params.cacheBehavior;\n await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => {\n return context.cdpTarget.toggleSetCacheDisabled();\n }));\n return {};\n }\n const cacheDisabled = params.cacheBehavior === 'bypass';\n await Promise.all([...contexts.values()].map((context) => {\n return context.cdpTarget.toggleSetCacheDisabled(cacheDisabled);\n }));\n return {};\n }\n #getRequestOrFail(id) {\n const request = this.#networkStorage.getRequestById(id);\n if (!request) {\n throw new NoSuchRequestException(`Network request with ID '${id}' doesn't exist`);\n }\n return request;\n }\n #getBlockedRequestOrFail(id, phases) {\n const request = this.#getRequestOrFail(id);\n if (!request.interceptPhase) {\n throw new NoSuchRequestException(`No blocked request found for network id '${id}'`);\n }\n if (request.interceptPhase && !phases.includes(request.interceptPhase)) {\n throw new InvalidArgumentException(`Blocked request for network id '${id}' is in '${request.interceptPhase}' phase`);\n }\n return request;\n }\n /**\n * Validate https://fetch.spec.whatwg.org/#header-value\n */\n static validateHeaders(headers) {\n for (const header of headers) {\n let headerValue;\n if (header.value.type === 'string') {\n headerValue = header.value.value;\n }\n else {\n headerValue = atob(header.value.value);\n }\n if (headerValue !== headerValue.trim() ||\n headerValue.includes('\\n') ||\n headerValue.includes('\\0')) {\n throw new InvalidArgumentException(`Header value '${headerValue}' is not acceptable value`);\n }\n }\n }\n static isMethodValid(method) {\n // https://httpwg.org/specs/rfc9110.html#method.overview\n return /^[!#$%&'*+\\-.^_`|~a-zA-Z\\d]+$/.test(method);\n }\n /**\n * Attempts to parse the given url.\n * Throws an InvalidArgumentException if the url is invalid.\n */\n static parseUrlString(url) {\n try {\n return new URL(url);\n }\n catch (error) {\n throw new InvalidArgumentException(`Invalid URL '${url}': ${error}`);\n }\n }\n static parseUrlPatterns(urlPatterns) {\n return urlPatterns.map((urlPattern) => {\n let patternUrl = '';\n let hasProtocol = true;\n let hasHostname = true;\n let hasPort = true;\n let hasPathname = true;\n let hasSearch = true;\n switch (urlPattern.type) {\n case 'string': {\n patternUrl = unescapeURLPattern(urlPattern.pattern);\n break;\n }\n case 'pattern': {\n if (urlPattern.protocol === undefined) {\n hasProtocol = false;\n patternUrl += 'http';\n }\n else {\n if (urlPattern.protocol === '') {\n throw new InvalidArgumentException('URL pattern must specify a protocol');\n }\n urlPattern.protocol = unescapeURLPattern(urlPattern.protocol);\n if (!urlPattern.protocol.match(/^[a-zA-Z+-.]+$/)) {\n throw new InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.protocol;\n }\n const scheme = patternUrl.toLocaleLowerCase();\n patternUrl += ':';\n if (isSpecialScheme(scheme)) {\n patternUrl += '//';\n }\n if (urlPattern.hostname === undefined) {\n if (scheme !== 'file') {\n patternUrl += 'placeholder';\n }\n hasHostname = false;\n }\n else {\n if (urlPattern.hostname === '') {\n throw new InvalidArgumentException('URL pattern must specify a hostname');\n }\n if (urlPattern.protocol === 'file') {\n throw new InvalidArgumentException(`URL pattern protocol cannot be 'file'`);\n }\n urlPattern.hostname = unescapeURLPattern(urlPattern.hostname);\n let insideBrackets = false;\n for (const c of urlPattern.hostname) {\n if (c === '/' || c === '?' || c === '#') {\n throw new InvalidArgumentException(`'/', '?', '#' are forbidden in hostname`);\n }\n if (!insideBrackets && c === ':') {\n throw new InvalidArgumentException(`':' is only allowed inside brackets in hostname`);\n }\n if (c === '[') {\n insideBrackets = true;\n }\n if (c === ']') {\n insideBrackets = false;\n }\n }\n patternUrl += urlPattern.hostname;\n }\n if (urlPattern.port === undefined) {\n hasPort = false;\n }\n else {\n if (urlPattern.port === '') {\n throw new InvalidArgumentException(`URL pattern must specify a port`);\n }\n urlPattern.port = unescapeURLPattern(urlPattern.port);\n patternUrl += ':';\n if (!urlPattern.port.match(/^\\d+$/)) {\n throw new InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.port;\n }\n if (urlPattern.pathname === undefined) {\n hasPathname = false;\n }\n else {\n urlPattern.pathname = unescapeURLPattern(urlPattern.pathname);\n if (urlPattern.pathname[0] !== '/') {\n patternUrl += '/';\n }\n if (urlPattern.pathname.includes('#') ||\n urlPattern.pathname.includes('?')) {\n throw new InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.pathname;\n }\n if (urlPattern.search === undefined) {\n hasSearch = false;\n }\n else {\n urlPattern.search = unescapeURLPattern(urlPattern.search);\n if (urlPattern.search[0] !== '?') {\n patternUrl += '?';\n }\n if (urlPattern.search.includes('#')) {\n throw new InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.search;\n }\n break;\n }\n }\n const serializePort = (url) => {\n const defaultPorts = {\n 'ftp:': 21,\n 'file:': null,\n 'http:': 80,\n 'https:': 443,\n 'ws:': 80,\n 'wss:': 443,\n };\n if (isSpecialScheme(url.protocol) &&\n defaultPorts[url.protocol] !== null &&\n (!url.port || String(defaultPorts[url.protocol]) === url.port)) {\n return '';\n }\n else if (url.port) {\n return url.port;\n }\n return undefined;\n };\n try {\n const url = new URL(patternUrl);\n return {\n protocol: hasProtocol ? url.protocol.replace(/:$/, '') : undefined,\n hostname: hasHostname ? url.hostname : undefined,\n port: hasPort ? serializePort(url) : undefined,\n pathname: hasPathname && url.pathname ? url.pathname : undefined,\n search: hasSearch ? url.search : undefined,\n };\n }\n catch (err) {\n throw new InvalidArgumentException(`${err.message} '${patternUrl}'`);\n }\n });\n }\n static wrapInterceptionError(error) {\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/fetch_handler.cc;l=169\n if (error?.message.includes('Invalid header') ||\n error?.message.includes('Unsafe header')) {\n return new InvalidArgumentException(error.message);\n }\n return error;\n }\n async addDataCollector(params) {\n if (params.userContexts !== undefined && params.contexts !== undefined) {\n throw new InvalidArgumentException(\"'contexts' and 'userContexts' are mutually exclusive\");\n }\n if (params.userContexts !== undefined) {\n // Assert the user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(params.userContexts);\n }\n if (params.contexts !== undefined) {\n for (const browsingContextId of params.contexts) {\n // Assert the browsing context exists and are top-level.\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n if (!browsingContext.isTopLevelContext()) {\n throw new InvalidArgumentException(`Data collectors are available only on top-level browsing contexts`);\n }\n }\n }\n const collectorId = this.#networkStorage.addDataCollector(params);\n // Adding data collectors may require enabling CDP Network domains.\n await this.#toggleNetwork();\n return { collector: collectorId };\n }\n async getData(params) {\n return await this.#networkStorage.getCollectedData(params);\n }\n async removeDataCollector(params) {\n this.#networkStorage.removeDataCollector(params);\n // Removing data collectors may allow disabling CDP Network domains.\n await this.#toggleNetwork();\n return {};\n }\n disownData(params) {\n this.#networkStorage.disownData(params);\n return {};\n }\n async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds) {\n // Duplicated with EmulationProcessor logic. Consider moving to ConfigStorage.\n if (browsingContextIds === undefined && userContextIds === undefined) {\n return this.#browsingContextStorage.getTopLevelContexts();\n }\n if (browsingContextIds !== undefined && userContextIds !== undefined) {\n throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive');\n }\n const result = [];\n if (userContextIds !== undefined) {\n if (userContextIds.length === 0) {\n throw new InvalidArgumentException('user context should be provided');\n }\n // Verify that all user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n for (const userContextId of userContextIds) {\n const topLevelBrowsingContexts = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((browsingContext) => browsingContext.userContext === userContextId);\n result.push(...topLevelBrowsingContexts);\n }\n }\n if (browsingContextIds !== undefined) {\n if (browsingContextIds.length === 0) {\n throw new InvalidArgumentException('browsing context should be provided');\n }\n for (const browsingContextId of browsingContextIds) {\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n if (!browsingContext.isTopLevelContext()) {\n throw new InvalidArgumentException('The command is only supported on the top-level context');\n }\n result.push(browsingContext);\n }\n }\n // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as\n // `browsingContextStorage` returns the same instance for the same id.\n return [...new Set(result).values()];\n }\n async setExtraHeaders(params) {\n const affectedBrowsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n const cdpExtraHeaders = parseBiDiHeaders(params.headers);\n if (params.userContexts === undefined && params.contexts === undefined) {\n this.#contextConfigStorage.updateGlobalConfig({\n extraHeaders: cdpExtraHeaders,\n });\n }\n if (params.userContexts !== undefined) {\n params.userContexts.forEach((userContext) => {\n this.#contextConfigStorage.updateUserContextConfig(userContext, {\n extraHeaders: cdpExtraHeaders,\n });\n });\n }\n if (params.contexts !== undefined) {\n params.contexts.forEach((browsingContextId) => {\n this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { extraHeaders: cdpExtraHeaders });\n });\n }\n await Promise.all(affectedBrowsingContexts.map(async (context) => {\n // Actual value can be different from the one in params, e.g. in case of already\n // existing setting.\n const extraHeaders = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext).extraHeaders ?? {};\n await context.setExtraHeaders(extraHeaders);\n }));\n return {};\n }\n}\n/**\n * See https://w3c.github.io/webdriver-bidi/#unescape-url-pattern\n */\nfunction unescapeURLPattern(pattern) {\n const forbidden = new Set(['(', ')', '*', '{', '}']);\n let result = '';\n let isEscaped = false;\n for (const c of pattern) {\n if (!isEscaped) {\n if (forbidden.has(c)) {\n throw new InvalidArgumentException('Forbidden characters');\n }\n if (c === '\\\\') {\n isEscaped = true;\n continue;\n }\n }\n result += c;\n isEscaped = false;\n }\n return result;\n}\n// https://fetch.spec.whatwg.org/#header-name\nconst FORBIDDEN_HEADER_NAME_SYMBOLS = new Set([\n ' ',\n '\\t',\n '\\n',\n '\"',\n '(',\n ')',\n ',',\n '/',\n ':',\n ';',\n '<',\n '=',\n '>',\n '?',\n '@',\n '[',\n '\\\\',\n ']',\n '{',\n '}',\n]);\n// https://fetch.spec.whatwg.org/#header-value\nconst FORBIDDEN_HEADER_VALUE_SYMBOLS = new Set(['\\0', '\\n', '\\r']);\nfunction includesChar(str, chars) {\n for (const char of str) {\n if (chars.has(char)) {\n return true;\n }\n }\n return false;\n}\n// Export for testing.\nexport function parseBiDiHeaders(headers) {\n const parsedHeaders = {};\n for (const bidiHeader of headers) {\n if (bidiHeader.value.type === 'string') {\n const name = bidiHeader.name;\n const value = bidiHeader.value.value;\n if (name.length === 0) {\n throw new InvalidArgumentException(`Empty header name is not allowed`);\n }\n if (includesChar(name, FORBIDDEN_HEADER_NAME_SYMBOLS)) {\n throw new InvalidArgumentException(`Header name '${name}' contains forbidden symbols`);\n }\n if (includesChar(value, FORBIDDEN_HEADER_VALUE_SYMBOLS)) {\n throw new InvalidArgumentException(`Header value '${value}' contains forbidden symbols`);\n }\n if (value.trim() !== value) {\n throw new InvalidArgumentException(`Header value should not contain trailing or ending whitespaces`);\n }\n // BiDi spec does not combine but overrides the headers with the same names.\n // https://www.w3.org/TR/webdriver-bidi/#update-headers\n parsedHeaders[bidiHeader.name] = bidiHeader.value.value;\n }\n else {\n throw new UnsupportedOperationException('Only string headers values are supported');\n }\n }\n return parsedHeaders;\n}\n//# sourceMappingURL=NetworkProcessor.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, } from '../../../protocol/protocol.js';\nexport class PermissionsProcessor {\n #browserCdpClient;\n constructor(browserCdpClient) {\n this.#browserCdpClient = browserCdpClient;\n }\n async setPermissions(params) {\n try {\n const userContextId = params['goog:userContext'] ||\n params.userContext;\n await this.#browserCdpClient.sendCommand('Browser.setPermission', {\n origin: params.origin,\n embeddedOrigin: params.embeddedOrigin,\n browserContextId: userContextId && userContextId !== 'default'\n ? userContextId\n : undefined,\n permission: {\n name: params.descriptor.name,\n },\n setting: params.state,\n });\n }\n catch (err) {\n if (err.message ===\n `Permission can't be granted to opaque origins.`) {\n // Return success if the origin is not valid (does not match any\n // existing origins).\n return {};\n }\n throw new InvalidArgumentException(err.message);\n }\n return {};\n }\n}\n//# sourceMappingURL=PermissionsProcessor.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction bytesToHex(bytes) {\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n/**\n * Generates a random v4 UUID, as specified in RFC4122.\n *\n * Uses the native Web Crypto API if available, otherwise falls back to a\n * polyfill.\n *\n * Example: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'\n */\nexport function uuidv4() {\n // Available only in secure contexts\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API\n if ('crypto' in globalThis && 'randomUUID' in globalThis.crypto) {\n // Node with\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or\n // secure browser context.\n return globalThis.crypto.randomUUID();\n }\n const randomValues = new Uint8Array(16);\n if ('crypto' in globalThis && 'getRandomValues' in globalThis.crypto) {\n // Node (>=18) with\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or\n // browser.\n globalThis.crypto.getRandomValues(randomValues);\n }\n else {\n // Node (<=16) without\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1.\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n require('crypto').webcrypto.getRandomValues(randomValues);\n }\n // Set version (4) and variant (RFC4122) bits.\n randomValues[6] = (randomValues[6] & 0x0f) | 0x40;\n randomValues[8] = (randomValues[8] & 0x3f) | 0x80;\n return [\n bytesToHex(randomValues.subarray(0, 4)),\n bytesToHex(randomValues.subarray(4, 6)),\n bytesToHex(randomValues.subarray(6, 8)),\n bytesToHex(randomValues.subarray(8, 10)),\n bytesToHex(randomValues.subarray(10, 16)),\n ].join('-');\n}\n//# sourceMappingURL=uuid.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { ChromiumBidi } from '../../../protocol/protocol.js';\nimport { LogType } from '../../../utils/log.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\n/**\n * Used to send messages from realm to BiDi user.\n */\nexport class ChannelProxy {\n #properties;\n #id = uuidv4();\n #logger;\n constructor(channel, logger) {\n this.#properties = channel;\n this.#logger = logger;\n }\n /**\n * Creates a channel proxy in the given realm, initialises listener and\n * returns a handle to `sendMessage` delegate.\n */\n async init(realm, eventManager) {\n const channelHandle = await ChannelProxy.#createAndGetHandleInRealm(realm);\n const sendMessageHandle = await ChannelProxy.#createSendMessageHandle(realm, channelHandle);\n void this.#startListener(realm, channelHandle, eventManager);\n return sendMessageHandle;\n }\n /** Gets a ChannelProxy from window and returns its handle. */\n async startListenerFromWindow(realm, eventManager) {\n try {\n const channelHandle = await this.#getHandleFromWindow(realm);\n void this.#startListener(realm, channelHandle, eventManager);\n }\n catch (error) {\n this.#logger?.(LogType.debugError, error);\n }\n }\n /**\n * Evaluation string which creates a ChannelProxy object on the client side.\n */\n static #createChannelProxyEvalStr() {\n const functionStr = String(() => {\n const queue = [];\n let queueNonEmptyResolver = null;\n return {\n /**\n * Gets a promise, which is resolved as soon as a message occurs\n * in the queue.\n */\n async getMessage() {\n const onMessage = queue.length > 0\n ? Promise.resolve()\n : new Promise((resolve) => {\n queueNonEmptyResolver = resolve;\n });\n await onMessage;\n return queue.shift();\n },\n /**\n * Adds a message to the queue.\n * Resolves the pending promise if needed.\n */\n sendMessage(message) {\n queue.push(message);\n if (queueNonEmptyResolver !== null) {\n queueNonEmptyResolver();\n queueNonEmptyResolver = null;\n }\n },\n };\n });\n return `(${functionStr})()`;\n }\n /** Creates a ChannelProxy in the given realm. */\n static async #createAndGetHandleInRealm(realm) {\n const createChannelHandleResult = await realm.cdpClient.sendCommand('Runtime.evaluate', {\n expression: this.#createChannelProxyEvalStr(),\n contextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n if (createChannelHandleResult.exceptionDetails ||\n createChannelHandleResult.result.objectId === undefined) {\n throw new Error(`Cannot create channel`);\n }\n return createChannelHandleResult.result.objectId;\n }\n /** Gets a handle to `sendMessage` delegate from the ChannelProxy handle. */\n static async #createSendMessageHandle(realm, channelHandle) {\n const sendMessageArgResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((channelHandle) => {\n return channelHandle.sendMessage;\n }),\n arguments: [{ objectId: channelHandle }],\n executionContextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n // TODO: check for exceptionDetails.\n return sendMessageArgResult.result.objectId;\n }\n /** Starts listening for the channel events of the provided ChannelProxy. */\n async #startListener(realm, channelHandle, eventManager) {\n // noinspection InfiniteLoopJS\n for (;;) {\n try {\n const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String(async (channelHandle) => await channelHandle.getMessage()),\n arguments: [\n {\n objectId: channelHandle,\n },\n ],\n awaitPromise: true,\n executionContextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,\n maxDepth: this.#properties.serializationOptions?.maxObjectDepth ??\n undefined,\n },\n });\n if (message.exceptionDetails) {\n throw new Error('Runtime.callFunctionOn in ChannelProxy', {\n cause: message.exceptionDetails,\n });\n }\n for (const browsingContext of realm.associatedBrowsingContexts) {\n eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.Script.EventNames.Message,\n params: {\n channel: this.#properties.channel,\n data: realm.cdpToBidiValue(message, this.#properties.ownership ?? \"none\" /* Script.ResultOwnership.None */),\n source: realm.source,\n },\n }, browsingContext.id);\n }\n }\n catch (error) {\n // If an error is thrown, then the channel is permanently broken, so we\n // exit the loop.\n this.#logger?.(LogType.debugError, error);\n break;\n }\n }\n }\n /**\n * Returns a handle of ChannelProxy from window's property which was set there\n * by `getEvalInWindowStr`. If window property is not set yet, sets a promise\n * resolver to the window property, so that `getEvalInWindowStr` can resolve\n * the promise later on with the channel.\n * This is needed because `getEvalInWindowStr` can be called before or\n * after this method.\n */\n async #getHandleFromWindow(realm) {\n const channelHandleResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((id) => {\n const w = window;\n if (w[id] === undefined) {\n // The channelProxy is not created yet. Create a promise, put the\n // resolver to window property and return the promise.\n // `getEvalInWindowStr` will resolve the promise later.\n return new Promise((resolve) => (w[id] = resolve));\n }\n // The channelProxy is already created by `getEvalInWindowStr` and\n // is set into window property. Return it.\n const channelProxy = w[id];\n delete w[id];\n return channelProxy;\n }),\n arguments: [{ value: this.#id }],\n executionContextId: realm.executionContextId,\n awaitPromise: true,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n if (channelHandleResult.exceptionDetails !== undefined ||\n channelHandleResult.result.objectId === undefined) {\n throw new Error(`ChannelHandle not found in window[\"${this.#id}\"]`);\n }\n return channelHandleResult.result.objectId;\n }\n /**\n * String to be evaluated to create a ProxyChannel and put it to window.\n * Returns the delegate `sendMessage`. Used to provide an argument for preload\n * script. Does the following:\n * 1. Creates a ChannelProxy.\n * 2. Puts the ChannelProxy to window['${this.#id}'] or resolves the promise\n * by calling delegate stored in window['${this.#id}'].\n * This is needed because `#getHandleFromWindow` can be called before or\n * after this method.\n * 3. Returns the delegate `sendMessage` of the created ChannelProxy.\n */\n getEvalInWindowStr() {\n const delegate = String((id, channelProxy) => {\n const w = window;\n if (w[id] === undefined) {\n // `#getHandleFromWindow` is not initialized yet, and will get the\n // channelProxy later.\n w[id] = channelProxy;\n }\n else {\n // `#getHandleFromWindow` is already set a delegate to window property\n // and is waiting for it to be called with the channelProxy.\n w[id](channelProxy);\n delete w[id];\n }\n return channelProxy.sendMessage;\n });\n const channelProxyEval = ChannelProxy.#createChannelProxyEvalStr();\n return `(${delegate})('${this.#id}',${channelProxyEval})`;\n }\n}\n//# sourceMappingURL=ChannelProxy.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { uuidv4 } from '../../../utils/uuid.js';\nimport { ChannelProxy } from './ChannelProxy.js';\n/**\n * BiDi IDs are generated by the server and are unique within contexts.\n *\n * CDP preload script IDs are generated by the client and are unique\n * within sessions.\n *\n * The mapping between BiDi and CDP preload script IDs is 1:many.\n * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs\n * in the client.\n */\nexport class PreloadScript {\n /** BiDi ID, an automatically generated UUID. */\n #id = uuidv4();\n /** CDP preload scripts. */\n #cdpPreloadScripts = [];\n /** The script itself, in a format expected by the spec i.e. a function. */\n #functionDeclaration;\n /** Targets, in which the preload script is initialized. */\n #targetIds = new Set();\n /** Channels to be added as arguments to functionDeclaration. */\n #channels;\n /** The script sandbox / world name. */\n #sandbox;\n /** The browsing contexts to execute the preload scripts in, if any. */\n #contexts;\n /** The browsing contexts to execute the preload scripts in, if any. */\n #userContexts;\n get id() {\n return this.#id;\n }\n get targetIds() {\n return this.#targetIds;\n }\n constructor(params, logger) {\n this.#channels =\n params.arguments?.map((a) => new ChannelProxy(a.value, logger)) ?? [];\n this.#functionDeclaration = params.functionDeclaration;\n this.#sandbox = params.sandbox;\n this.#contexts = params.contexts;\n this.#userContexts = params.userContexts;\n }\n /** Channels of the preload script. */\n get channels() {\n return this.#channels;\n }\n /** Contexts of the preload script, if any */\n get contexts() {\n return this.#contexts;\n }\n /** UserContexts of the preload script, if any */\n get userContexts() {\n return this.#userContexts;\n }\n /**\n * String to be evaluated. Wraps user-provided function so that the following\n * steps are run:\n * 1. Create channels.\n * 2. Store the created channels in window.\n * 3. Call the user-provided function with channels as arguments.\n */\n #getEvaluateString() {\n const channelsArgStr = `[${this.channels\n .map((c) => c.getEvalInWindowStr())\n .join(', ')}]`;\n return `(()=>{(${this.#functionDeclaration})(...${channelsArgStr})})()`;\n }\n /**\n * Adds the script to the given CDP targets by calling the\n * `Page.addScriptToEvaluateOnNewDocument` command.\n */\n async initInTargets(cdpTargets, runImmediately) {\n await Promise.all(Array.from(cdpTargets).map((cdpTarget) => this.initInTarget(cdpTarget, runImmediately)));\n }\n /**\n * Adds the script to the given CDP target by calling the\n * `Page.addScriptToEvaluateOnNewDocument` command.\n */\n async initInTarget(cdpTarget, runImmediately) {\n const addCdpPreloadScriptResult = await cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', {\n source: this.#getEvaluateString(),\n worldName: this.#sandbox,\n runImmediately,\n });\n this.#cdpPreloadScripts.push({\n target: cdpTarget,\n preloadScriptId: addCdpPreloadScriptResult.identifier,\n });\n this.#targetIds.add(cdpTarget.id);\n }\n /**\n * Removes this script from all CDP targets.\n */\n async remove() {\n await Promise.all([\n this.#cdpPreloadScripts.map(async (cdpPreloadScript) => {\n const cdpTarget = cdpPreloadScript.target;\n const cdpPreloadScriptId = cdpPreloadScript.preloadScriptId;\n return await cdpTarget.cdpClient.sendCommand('Page.removeScriptToEvaluateOnNewDocument', {\n identifier: cdpPreloadScriptId,\n });\n }),\n ]);\n }\n /** Removes the provided cdp target from the list of cdp preload scripts. */\n dispose(cdpTargetId) {\n this.#cdpPreloadScripts = this.#cdpPreloadScripts.filter((cdpPreloadScript) => cdpPreloadScript.target?.id !== cdpTargetId);\n this.#targetIds.delete(cdpTargetId);\n }\n}\n//# sourceMappingURL=PreloadScript.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js';\nimport { PreloadScript } from './PreloadScript.js';\nexport class ScriptProcessor {\n #eventManager;\n #browsingContextStorage;\n #realmStorage;\n #preloadScriptStorage;\n #userContextStorage;\n #logger;\n constructor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#userContextStorage = userContextStorage;\n this.#logger = logger;\n this.#eventManager = eventManager;\n this.#eventManager.addSubscribeHook(ChromiumBidi.Script.EventNames.RealmCreated, this.#onRealmCreatedSubscribeHook.bind(this));\n }\n #onRealmCreatedSubscribeHook(contextId) {\n const context = this.#browsingContextStorage.getContext(contextId);\n const contextsToReport = [\n context,\n ...this.#browsingContextStorage.getContext(contextId).allChildren,\n ];\n const realms = new Set();\n for (const reportContext of contextsToReport) {\n const realmsForContext = this.#realmStorage.findRealms({\n browsingContextId: reportContext.id,\n });\n for (const realm of realmsForContext) {\n realms.add(realm);\n }\n }\n for (const realm of realms) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.Script.EventNames.RealmCreated,\n params: realm.realmInfo,\n }, context.id);\n }\n return Promise.resolve();\n }\n async addPreloadScript(params) {\n if (params.userContexts?.length && params.contexts?.length) {\n throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.');\n }\n const userContexts = await this.#userContextStorage.verifyUserContextIdList(params.userContexts ?? []);\n const browsingContexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n const preloadScript = new PreloadScript(params, this.#logger);\n this.#preloadScriptStorage.add(preloadScript);\n let contextsToRunIn = [];\n if (userContexts.size) {\n contextsToRunIn = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((context) => {\n return userContexts.has(context.userContext);\n });\n }\n else if (browsingContexts.size) {\n contextsToRunIn = [...browsingContexts.values()];\n }\n else {\n contextsToRunIn = this.#browsingContextStorage.getTopLevelContexts();\n }\n const cdpTargets = new Set(contextsToRunIn.map((context) => context.cdpTarget));\n await preloadScript.initInTargets(cdpTargets, false);\n return {\n script: preloadScript.id,\n };\n }\n async removePreloadScript(params) {\n const { script: id } = params;\n const script = this.#preloadScriptStorage.getPreloadScript(id);\n await script.remove();\n this.#preloadScriptStorage.remove(id);\n return {};\n }\n async callFunction(params) {\n const realm = await this.#getRealm(params.target);\n return await realm.callFunction(params.functionDeclaration, params.awaitPromise, params.this, params.arguments, params.resultOwnership, params.serializationOptions, params.userActivation);\n }\n async evaluate(params) {\n const realm = await this.#getRealm(params.target);\n return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership, params.serializationOptions, params.userActivation);\n }\n async disown(params) {\n const realm = await this.#getRealm(params.target);\n await Promise.all(params.handles.map(async (handle) => await realm.disown(handle)));\n return {};\n }\n getRealms(params) {\n if (params.context !== undefined) {\n // Make sure the context is known.\n this.#browsingContextStorage.getContext(params.context);\n }\n const realms = this.#realmStorage\n .findRealms({\n browsingContextId: params.context,\n type: params.type,\n isHidden: false,\n })\n .map((realm) => realm.realmInfo);\n return { realms };\n }\n async #getRealm(target) {\n if ('context' in target) {\n const context = this.#browsingContextStorage.getContext(target.context);\n return await context.getOrCreateUserSandbox(target.sandbox);\n }\n return this.#realmStorage.getRealm({\n realmId: target.realm,\n isHidden: false,\n });\n }\n}\n//# sourceMappingURL=ScriptProcessor.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, } from '../../../protocol/protocol.js';\nexport class SessionProcessor {\n #eventManager;\n #browserCdpClient;\n #initConnection;\n #created = false;\n constructor(eventManager, browserCdpClient, initConnection) {\n this.#eventManager = eventManager;\n this.#browserCdpClient = browserCdpClient;\n this.#initConnection = initConnection;\n }\n status() {\n return { ready: false, message: 'already connected' };\n }\n #mergeCapabilities(capabilitiesRequest) {\n // Roughly following https://www.w3.org/TR/webdriver2/#dfn-capabilities-processing.\n // Validations should already be done by the parser.\n const mergedCapabilities = [];\n for (const first of capabilitiesRequest.firstMatch ?? [{}]) {\n const result = {\n ...capabilitiesRequest.alwaysMatch,\n };\n for (const key of Object.keys(first)) {\n if (result[key] !== undefined) {\n throw new InvalidArgumentException(`Capability ${key} in firstMatch is already defined in alwaysMatch`);\n }\n result[key] = first[key];\n }\n mergedCapabilities.push(result);\n }\n const match = mergedCapabilities.find((c) => c.browserName === 'chrome') ??\n mergedCapabilities[0] ??\n {};\n match.unhandledPromptBehavior = this.#getUnhandledPromptBehavior(match.unhandledPromptBehavior);\n return match;\n }\n #getUnhandledPromptBehavior(capabilityValue) {\n if (capabilityValue === undefined) {\n return undefined;\n }\n if (typeof capabilityValue === 'object') {\n // Do not validate capabilities. Incorrect ones will be ignored by Mapper.\n return capabilityValue;\n }\n if (typeof capabilityValue !== 'string') {\n throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' type: ${typeof capabilityValue}`);\n }\n switch (capabilityValue) {\n // `beforeUnload: accept` has higher priority over string capability, as the latest\n // one is set to \"fallbackDefault\".\n // https://w3c.github.io/webdriver/#dfn-deserialize-as-an-unhandled-prompt-behavior\n // https://w3c.github.io/webdriver/#dfn-get-the-prompt-handler\n case 'accept':\n case 'accept and notify':\n return {\n default: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n case 'dismiss':\n case 'dismiss and notify':\n return {\n default: \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n case 'ignore':\n return {\n default: \"ignore\" /* Session.UserPromptHandlerType.Ignore */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n default:\n throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' value: ${capabilityValue}`);\n }\n }\n async new(params) {\n if (this.#created) {\n throw new Error('Session has been already created.');\n }\n this.#created = true;\n const matchedCapabitlites = this.#mergeCapabilities(params.capabilities);\n await this.#initConnection(matchedCapabitlites);\n const version = await this.#browserCdpClient.sendCommand('Browser.getVersion');\n return {\n sessionId: 'unknown',\n capabilities: {\n ...matchedCapabitlites,\n acceptInsecureCerts: matchedCapabitlites.acceptInsecureCerts ?? false,\n browserName: version.product,\n browserVersion: version.revision,\n platformName: '',\n setWindowRect: false,\n webSocketUrl: '',\n userAgent: version.userAgent,\n },\n };\n }\n async subscribe(params, googChannel = null) {\n const subscription = await this.#eventManager.subscribe(params.events, params.contexts ?? [], params.userContexts ?? [], googChannel);\n return {\n subscription,\n };\n }\n async unsubscribe(params, googChannel = null) {\n if ('subscriptions' in params) {\n await this.#eventManager.unsubscribeByIds(params.subscriptions);\n return {};\n }\n await this.#eventManager.unsubscribe(params.events, googChannel);\n return {};\n }\n}\n//# sourceMappingURL=SessionProcessor.js.map","import { NoSuchUserContextException, UnableToSetCookieException, } from '../../../protocol/protocol.js';\nimport { assert } from '../../../utils/assert.js';\nimport { LogType } from '../../../utils/log.js';\nimport { NetworkProcessor } from '../network/NetworkProcessor.js';\nimport { bidiToCdpCookie, cdpToBiDiCookie, deserializeByteValue, } from '../network/NetworkUtils.js';\n/**\n * Responsible for handling the `storage` module.\n */\nexport class StorageProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #logger;\n constructor(browserCdpClient, browsingContextStorage, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#browserCdpClient = browserCdpClient;\n this.#logger = logger;\n }\n async deleteCookies(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n let cdpResponse;\n try {\n cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', {\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new NoSuchUserContextException(err.message);\n }\n throw err;\n }\n const cdpCookiesToDelete = cdpResponse.cookies\n .filter(\n // CDP's partition key is the source origin. If the request specifies the\n // `sourceOrigin` partition key, only cookies with the requested source origin\n // are returned.\n (c) => partitionKey.sourceOrigin === undefined ||\n c.partitionKey?.topLevelSite === partitionKey.sourceOrigin)\n .filter((cdpCookie) => {\n const bidiCookie = cdpToBiDiCookie(cdpCookie);\n return this.#matchCookie(bidiCookie, params.filter);\n })\n .map((cookie) => ({\n ...cookie,\n // Set expiry to pass date to delete the cookie.\n expires: 1,\n }));\n await this.#browserCdpClient.sendCommand('Storage.setCookies', {\n cookies: cdpCookiesToDelete,\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n return {\n partitionKey,\n };\n }\n async getCookies(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n let cdpResponse;\n try {\n cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', {\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new NoSuchUserContextException(err.message);\n }\n throw err;\n }\n const filteredBiDiCookies = cdpResponse.cookies\n .filter(\n // CDP's partition key is the source origin. If the request specifies the\n // `sourceOrigin` partition key, only cookies with the requested source origin\n // are returned.\n (c) => partitionKey.sourceOrigin === undefined ||\n c.partitionKey?.topLevelSite === partitionKey.sourceOrigin)\n .map((c) => cdpToBiDiCookie(c))\n .filter((c) => this.#matchCookie(c, params.filter));\n return {\n cookies: filteredBiDiCookies,\n partitionKey,\n };\n }\n async setCookie(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n const cdpCookie = bidiToCdpCookie(params, partitionKey);\n try {\n await this.#browserCdpClient.sendCommand('Storage.setCookies', {\n cookies: [cdpCookie],\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new NoSuchUserContextException(err.message);\n }\n this.#logger?.(LogType.debugError, err);\n throw new UnableToSetCookieException(err.toString());\n }\n return {\n partitionKey,\n };\n }\n #isNoSuchUserContextError(err) {\n // Heuristic to detect if the user context is not found.\n // See https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/browser_handler.cc;drc=a56154dd81e4679712422ac6eed2c9581cb51ab0;l=314\n return err.message?.startsWith('Failed to find browser context for id');\n }\n #getCdpBrowserContextId(partitionKey) {\n return partitionKey.userContext === 'default'\n ? undefined\n : partitionKey.userContext;\n }\n #expandStoragePartitionSpecByBrowsingContext(descriptor) {\n const browsingContextId = descriptor.context;\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n // https://w3c.github.io/webdriver-bidi/#associated-storage-partition.\n // Each browsing context also has an associated storage partition, which is the\n // storage partition it uses to persist data. In Chromium it's a `BrowserContext`\n // which maps to BiDi `UserContext`.\n return {\n userContext: browsingContext.userContext,\n };\n }\n #expandStoragePartitionSpecByStorageKey(descriptor) {\n const unsupportedPartitionKeys = new Map();\n let sourceOrigin = descriptor.sourceOrigin;\n if (sourceOrigin !== undefined) {\n const url = NetworkProcessor.parseUrlString(sourceOrigin);\n if (url.origin === 'null') {\n // Origin `null` is a special case for local pages.\n sourceOrigin = url.origin;\n }\n else {\n // Port is not supported in CDP Cookie's `partitionKey`, so it should be stripped\n // from the requested source origin.\n sourceOrigin = `${url.protocol}//${url.hostname}`;\n }\n }\n for (const [key, value] of Object.entries(descriptor)) {\n if (key !== undefined &&\n value !== undefined &&\n !['type', 'sourceOrigin', 'userContext'].includes(key)) {\n unsupportedPartitionKeys.set(key, value);\n }\n }\n if (unsupportedPartitionKeys.size > 0) {\n this.#logger?.(LogType.debugInfo, `Unsupported partition keys: ${JSON.stringify(Object.fromEntries(unsupportedPartitionKeys))}`);\n }\n // Set `userContext` to `default` if not provided, as it's required in Chromium.\n const userContext = descriptor.userContext ?? 'default';\n return {\n userContext,\n ...(sourceOrigin === undefined ? {} : { sourceOrigin }),\n };\n }\n #expandStoragePartitionSpec(partitionSpec) {\n if (partitionSpec === undefined) {\n // `userContext` is required in Chromium.\n return { userContext: 'default' };\n }\n if (partitionSpec.type === 'context') {\n return this.#expandStoragePartitionSpecByBrowsingContext(partitionSpec);\n }\n assert(partitionSpec.type === 'storageKey', 'Unknown partition type');\n // Partition spec is a storage partition.\n // Let partition key be partition spec.\n return this.#expandStoragePartitionSpecByStorageKey(partitionSpec);\n }\n #matchCookie(cookie, filter) {\n if (filter === undefined) {\n return true;\n }\n return ((filter.domain === undefined || filter.domain === cookie.domain) &&\n (filter.name === undefined || filter.name === cookie.name) &&\n // `value` contains fields `type` and `value`.\n (filter.value === undefined ||\n deserializeByteValue(filter.value) ===\n deserializeByteValue(cookie.value)) &&\n (filter.path === undefined || filter.path === cookie.path) &&\n (filter.size === undefined || filter.size === cookie.size) &&\n (filter.httpOnly === undefined || filter.httpOnly === cookie.httpOnly) &&\n (filter.secure === undefined || filter.secure === cookie.secure) &&\n (filter.sameSite === undefined || filter.sameSite === cookie.sameSite) &&\n (filter.expiry === undefined || filter.expiry === cookie.expiry));\n }\n}\n//# sourceMappingURL=StorageProcessor.js.map","/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidWebExtensionException, UnsupportedOperationException, NoSuchWebExtensionException, } from '../../../protocol/protocol.js';\n/**\n * Responsible for handling the `webModule` module.\n */\nexport class WebExtensionProcessor {\n #browserCdpClient;\n constructor(browserCdpClient) {\n this.#browserCdpClient = browserCdpClient;\n }\n async install(params) {\n switch (params.extensionData.type) {\n case 'archivePath':\n case 'base64':\n throw new UnsupportedOperationException('Archived and Base64 extensions are not supported');\n case 'path':\n break;\n }\n try {\n const response = await this.#browserCdpClient.sendCommand('Extensions.loadUnpacked', {\n path: params.extensionData.path,\n });\n return {\n extension: response.id,\n };\n }\n catch (err) {\n if (err.message.startsWith('invalid web extension')) {\n throw new InvalidWebExtensionException(err.message);\n }\n throw err;\n }\n }\n async uninstall(params) {\n try {\n await this.#browserCdpClient.sendCommand('Extensions.uninstall', {\n id: params.extension,\n });\n return {};\n }\n catch (err) {\n if (err.message ===\n 'Uninstall failed. Reason: could not find extension.') {\n throw new NoSuchWebExtensionException('no such web extension');\n }\n throw err;\n }\n }\n}\n//# sourceMappingURL=WebExtensionProcessor.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class OutgoingMessage {\n #message;\n #googChannel;\n constructor(message, googChannel = null) {\n this.#message = message;\n this.#googChannel = googChannel;\n }\n static createFromPromise(messagePromise, googChannel) {\n return messagePromise.then((message) => {\n if (message.kind === 'success') {\n return {\n kind: 'success',\n value: new OutgoingMessage(message.value, googChannel),\n };\n }\n return message;\n });\n }\n static createResolved(message, googChannel = null) {\n return Promise.resolve({\n kind: 'success',\n value: new OutgoingMessage(message, googChannel),\n });\n }\n get message() {\n return this.#message;\n }\n get googChannel() {\n return this.#googChannel;\n }\n}\n//# sourceMappingURL=OutgoingMessage.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Exception, UnknownCommandException, UnknownErrorException, NoSuchFrameException, UnsupportedOperationException, } from '../protocol/protocol.js';\nimport { EventEmitter } from '../utils/EventEmitter.js';\nimport { LogType } from '../utils/log.js';\nimport { BidiNoOpParser } from './BidiNoOpParser.js';\nimport { BrowserProcessor } from './modules/browser/BrowserProcessor.js';\nimport { CdpProcessor } from './modules/cdp/CdpProcessor.js';\nimport { BrowsingContextProcessor } from './modules/context/BrowsingContextProcessor.js';\nimport { EmulationProcessor } from './modules/emulation/EmulationProcessor.js';\nimport { InputProcessor } from './modules/input/InputProcessor.js';\nimport { NetworkProcessor } from './modules/network/NetworkProcessor.js';\nimport { PermissionsProcessor } from './modules/permissions/PermissionsProcessor.js';\nimport { ScriptProcessor } from './modules/script/ScriptProcessor.js';\nimport { SessionProcessor } from './modules/session/SessionProcessor.js';\nimport { StorageProcessor } from './modules/storage/StorageProcessor.js';\nimport { WebExtensionProcessor } from './modules/webExtension/WebExtensionProcessor.js';\nimport { OutgoingMessage } from './OutgoingMessage.js';\nexport class CommandProcessor extends EventEmitter {\n // keep-sorted start\n #bluetoothProcessor;\n #browserCdpClient;\n #browserProcessor;\n #browsingContextProcessor;\n #cdpProcessor;\n #emulationProcessor;\n #inputProcessor;\n #networkProcessor;\n #permissionsProcessor;\n #scriptProcessor;\n #sessionProcessor;\n #storageProcessor;\n #webExtensionProcessor;\n // keep-sorted end\n #parser;\n #logger;\n constructor(cdpConnection, browserCdpClient, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, networkStorage, contextConfigStorage, bluetoothProcessor, userContextStorage, parser = new BidiNoOpParser(), initConnection, logger) {\n super();\n this.#browserCdpClient = browserCdpClient;\n this.#parser = parser;\n this.#logger = logger;\n this.#bluetoothProcessor = bluetoothProcessor;\n // keep-sorted start block=yes\n this.#browserProcessor = new BrowserProcessor(browserCdpClient, browsingContextStorage, contextConfigStorage, userContextStorage);\n this.#browsingContextProcessor = new BrowsingContextProcessor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager);\n this.#cdpProcessor = new CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient);\n this.#emulationProcessor = new EmulationProcessor(browsingContextStorage, userContextStorage, contextConfigStorage);\n this.#inputProcessor = new InputProcessor(browsingContextStorage);\n this.#networkProcessor = new NetworkProcessor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage);\n this.#permissionsProcessor = new PermissionsProcessor(browserCdpClient);\n this.#scriptProcessor = new ScriptProcessor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger);\n this.#sessionProcessor = new SessionProcessor(eventManager, browserCdpClient, initConnection);\n this.#storageProcessor = new StorageProcessor(browserCdpClient, browsingContextStorage, logger);\n this.#webExtensionProcessor = new WebExtensionProcessor(browserCdpClient);\n // keep-sorted end\n }\n async #processCommand(command) {\n switch (command.method) {\n // Bluetooth module\n // keep-sorted start block=yes\n case 'bluetooth.disableSimulation':\n return await this.#bluetoothProcessor.disableSimulation(this.#parser.parseDisableSimulationParameters(command.params));\n case 'bluetooth.handleRequestDevicePrompt':\n return await this.#bluetoothProcessor.handleRequestDevicePrompt(this.#parser.parseHandleRequestDevicePromptParams(command.params));\n case 'bluetooth.simulateAdapter':\n return await this.#bluetoothProcessor.simulateAdapter(this.#parser.parseSimulateAdapterParameters(command.params));\n case 'bluetooth.simulateAdvertisement':\n return await this.#bluetoothProcessor.simulateAdvertisement(this.#parser.parseSimulateAdvertisementParameters(command.params));\n case 'bluetooth.simulateCharacteristic':\n return await this.#bluetoothProcessor.simulateCharacteristic(this.#parser.parseSimulateCharacteristicParameters(command.params));\n case 'bluetooth.simulateCharacteristicResponse':\n return await this.#bluetoothProcessor.simulateCharacteristicResponse(this.#parser.parseSimulateCharacteristicResponseParameters(command.params));\n case 'bluetooth.simulateDescriptor':\n return await this.#bluetoothProcessor.simulateDescriptor(this.#parser.parseSimulateDescriptorParameters(command.params));\n case 'bluetooth.simulateDescriptorResponse':\n return await this.#bluetoothProcessor.simulateDescriptorResponse(this.#parser.parseSimulateDescriptorResponseParameters(command.params));\n case 'bluetooth.simulateGattConnectionResponse':\n return await this.#bluetoothProcessor.simulateGattConnectionResponse(this.#parser.parseSimulateGattConnectionResponseParameters(command.params));\n case 'bluetooth.simulateGattDisconnection':\n return await this.#bluetoothProcessor.simulateGattDisconnection(this.#parser.parseSimulateGattDisconnectionParameters(command.params));\n case 'bluetooth.simulatePreconnectedPeripheral':\n return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(this.#parser.parseSimulatePreconnectedPeripheralParameters(command.params));\n case 'bluetooth.simulateService':\n return await this.#bluetoothProcessor.simulateService(this.#parser.parseSimulateServiceParameters(command.params));\n // keep-sorted end\n // Browser module\n // keep-sorted start block=yes\n case 'browser.close':\n return this.#browserProcessor.close();\n case 'browser.createUserContext':\n return await this.#browserProcessor.createUserContext(this.#parser.parseCreateUserContextParameters(command.params));\n case 'browser.getClientWindows':\n return await this.#browserProcessor.getClientWindows();\n case 'browser.getUserContexts':\n return await this.#browserProcessor.getUserContexts();\n case 'browser.removeUserContext':\n return await this.#browserProcessor.removeUserContext(this.#parser.parseRemoveUserContextParameters(command.params));\n case 'browser.setClientWindowState':\n return await this.#browserProcessor.setClientWindowState(this.#parser.parseSetClientWindowStateParameters(command.params));\n case 'browser.setDownloadBehavior':\n return await this.#browserProcessor.setDownloadBehavior(this.#parser.parseSetDownloadBehaviorParameters(command.params));\n // keep-sorted end\n // Browsing Context module\n // keep-sorted start block=yes\n case 'browsingContext.activate':\n return await this.#browsingContextProcessor.activate(this.#parser.parseActivateParams(command.params));\n case 'browsingContext.captureScreenshot':\n return await this.#browsingContextProcessor.captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params));\n case 'browsingContext.close':\n return await this.#browsingContextProcessor.close(this.#parser.parseCloseParams(command.params));\n case 'browsingContext.create':\n return await this.#browsingContextProcessor.create(this.#parser.parseCreateParams(command.params));\n case 'browsingContext.getTree':\n return this.#browsingContextProcessor.getTree(this.#parser.parseGetTreeParams(command.params));\n case 'browsingContext.handleUserPrompt':\n return await this.#browsingContextProcessor.handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params));\n case 'browsingContext.locateNodes':\n return await this.#browsingContextProcessor.locateNodes(this.#parser.parseLocateNodesParams(command.params));\n case 'browsingContext.navigate':\n return await this.#browsingContextProcessor.navigate(this.#parser.parseNavigateParams(command.params));\n case 'browsingContext.print':\n return await this.#browsingContextProcessor.print(this.#parser.parsePrintParams(command.params));\n case 'browsingContext.reload':\n return await this.#browsingContextProcessor.reload(this.#parser.parseReloadParams(command.params));\n case 'browsingContext.setBypassCSP':\n this.#parser.parseSetBypassCspParams(command.params);\n throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`);\n case 'browsingContext.setViewport':\n return await this.#browsingContextProcessor.setViewport(this.#parser.parseSetViewportParams(command.params));\n case 'browsingContext.traverseHistory':\n return await this.#browsingContextProcessor.traverseHistory(this.#parser.parseTraverseHistoryParams(command.params));\n // keep-sorted end\n // CDP module\n // keep-sorted start block=yes\n case 'goog:cdp.getSession':\n return this.#cdpProcessor.getSession(this.#parser.parseGetSessionParams(command.params));\n case 'goog:cdp.resolveRealm':\n return this.#cdpProcessor.resolveRealm(this.#parser.parseResolveRealmParams(command.params));\n case 'goog:cdp.sendCommand':\n return await this.#cdpProcessor.sendCommand(this.#parser.parseSendCommandParams(command.params));\n // keep-sorted end\n // Emulation module\n // keep-sorted start block=yes\n case 'emulation.setForcedColorsModeThemeOverride':\n this.#parser.parseSetForcedColorsModeThemeOverrideParams(command.params);\n throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`);\n case 'emulation.setGeolocationOverride':\n return await this.#emulationProcessor.setGeolocationOverride(this.#parser.parseSetGeolocationOverrideParams(command.params));\n case 'emulation.setLocaleOverride':\n return await this.#emulationProcessor.setLocaleOverride(this.#parser.parseSetLocaleOverrideParams(command.params));\n case 'emulation.setNetworkConditions':\n return await this.#emulationProcessor.setNetworkConditions(this.#parser.parseSetNetworkConditionsParams(command.params));\n case 'emulation.setScreenOrientationOverride':\n return await this.#emulationProcessor.setScreenOrientationOverride(this.#parser.parseSetScreenOrientationOverrideParams(command.params));\n case 'emulation.setScreenSettingsOverride':\n return await this.#emulationProcessor.setScreenSettingsOverride(this.#parser.parseSetScreenSettingsOverrideParams(command.params));\n case 'emulation.setScriptingEnabled':\n return await this.#emulationProcessor.setScriptingEnabled(this.#parser.parseSetScriptingEnabledParams(command.params));\n case 'emulation.setScrollbarTypeOverride':\n return await this.#emulationProcessor.setScrollbarTypeOverride(this.#parser.parseSetScrollbarTypeOverrideParams(command.params));\n case 'emulation.setTimezoneOverride':\n return await this.#emulationProcessor.setTimezoneOverride(this.#parser.parseSetTimezoneOverrideParams(command.params));\n case 'emulation.setTouchOverride':\n return await this.#emulationProcessor.setTouchOverride(this.#parser.parseSetTouchOverrideParams(command.params));\n case 'emulation.setUserAgentOverride':\n return await this.#emulationProcessor.setUserAgentOverrideParams(this.#parser.parseSetUserAgentOverrideParams(command.params));\n case 'userAgentClientHints.setClientHintsOverride':\n return await this.#emulationProcessor.setClientHintsOverride(this.#parser.parseSetClientHintsOverrideParams(command.params));\n // keep-sorted end\n // Input module\n // keep-sorted start block=yes\n case 'input.performActions':\n return await this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params));\n case 'input.releaseActions':\n return await this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params));\n case 'input.setFiles':\n return await this.#inputProcessor.setFiles(this.#parser.parseSetFilesParams(command.params));\n // keep-sorted end\n // Network module\n // keep-sorted start block=yes\n case 'network.addDataCollector':\n return await this.#networkProcessor.addDataCollector(this.#parser.parseAddDataCollectorParams(command.params));\n case 'network.addIntercept':\n return await this.#networkProcessor.addIntercept(this.#parser.parseAddInterceptParams(command.params));\n case 'network.continueRequest':\n return await this.#networkProcessor.continueRequest(this.#parser.parseContinueRequestParams(command.params));\n case 'network.continueResponse':\n return await this.#networkProcessor.continueResponse(this.#parser.parseContinueResponseParams(command.params));\n case 'network.continueWithAuth':\n return await this.#networkProcessor.continueWithAuth(this.#parser.parseContinueWithAuthParams(command.params));\n case 'network.disownData':\n return this.#networkProcessor.disownData(this.#parser.parseDisownDataParams(command.params));\n case 'network.failRequest':\n return await this.#networkProcessor.failRequest(this.#parser.parseFailRequestParams(command.params));\n case 'network.getData':\n return await this.#networkProcessor.getData(this.#parser.parseGetDataParams(command.params));\n case 'network.provideResponse':\n return await this.#networkProcessor.provideResponse(this.#parser.parseProvideResponseParams(command.params));\n case 'network.removeDataCollector':\n return await this.#networkProcessor.removeDataCollector(this.#parser.parseRemoveDataCollectorParams(command.params));\n case 'network.removeIntercept':\n return await this.#networkProcessor.removeIntercept(this.#parser.parseRemoveInterceptParams(command.params));\n case 'network.setCacheBehavior':\n return await this.#networkProcessor.setCacheBehavior(this.#parser.parseSetCacheBehaviorParams(command.params));\n case 'network.setExtraHeaders':\n return await this.#networkProcessor.setExtraHeaders(this.#parser.parseSetExtraHeadersParams(command.params));\n // keep-sorted end\n // Permissions module\n // keep-sorted start block=yes\n case 'permissions.setPermission':\n return await this.#permissionsProcessor.setPermissions(this.#parser.parseSetPermissionsParams(command.params));\n // keep-sorted end\n // Script module\n // keep-sorted start block=yes\n case 'script.addPreloadScript':\n return await this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params));\n case 'script.callFunction':\n return await this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(this.#processTargetParams(command.params)));\n case 'script.disown':\n return await this.#scriptProcessor.disown(this.#parser.parseDisownParams(this.#processTargetParams(command.params)));\n case 'script.evaluate':\n return await this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(this.#processTargetParams(command.params)));\n case 'script.getRealms':\n return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params));\n case 'script.removePreloadScript':\n return await this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params));\n // keep-sorted end\n // Session module\n // keep-sorted start block=yes\n case 'session.end':\n throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`);\n case 'session.new':\n return await this.#sessionProcessor.new(command.params);\n case 'session.status':\n return this.#sessionProcessor.status();\n case 'session.subscribe':\n return await this.#sessionProcessor.subscribe(this.#parser.parseSubscribeParams(command.params), command['goog:channel']);\n case 'session.unsubscribe':\n return await this.#sessionProcessor.unsubscribe(this.#parser.parseUnsubscribeParams(command.params), command['goog:channel']);\n // keep-sorted end\n // Storage module\n // keep-sorted start block=yes\n case 'storage.deleteCookies':\n return await this.#storageProcessor.deleteCookies(this.#parser.parseDeleteCookiesParams(command.params));\n case 'storage.getCookies':\n return await this.#storageProcessor.getCookies(this.#parser.parseGetCookiesParams(command.params));\n case 'storage.setCookie':\n return await this.#storageProcessor.setCookie(this.#parser.parseSetCookieParams(command.params));\n // keep-sorted end\n // WebExtension module\n // keep-sorted start block=yes\n case 'webExtension.install':\n return await this.#webExtensionProcessor.install(this.#parser.parseInstallParams(command.params));\n case 'webExtension.uninstall':\n return await this.#webExtensionProcessor.uninstall(this.#parser.parseUninstallParams(command.params));\n // keep-sorted end\n }\n // Intentionally kept outside the switch statement to ensure that\n // ESLint @typescript-eslint/switch-exhaustiveness-check triggers if a new\n // command is added.\n throw new UnknownCommandException(`Unknown command '${command?.method}'.`);\n }\n // Workaround for as zod.union always take the first schema\n // https://github.com/w3c/webdriver-bidi/issues/635\n #processTargetParams(params) {\n if (typeof params === 'object' &&\n params &&\n 'target' in params &&\n typeof params.target === 'object' &&\n params.target &&\n 'context' in params.target) {\n delete params.target['realm'];\n }\n return params;\n }\n async processCommand(command) {\n try {\n const result = await this.#processCommand(command);\n const response = {\n type: 'success',\n id: command.id,\n result,\n };\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage.createResolved(response, command['goog:channel']),\n event: command.method,\n });\n }\n catch (e) {\n if (e instanceof Exception) {\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage.createResolved(e.toErrorResponse(command.id), command['goog:channel']),\n event: command.method,\n });\n }\n else {\n const error = e;\n this.#logger?.(LogType.bidi, error);\n // Heuristic required for processing cases when a browsing context is gone\n // during the command processing, e.g. like in test\n // `test_input_keyDown_closes_browsing_context`.\n const errorException = this.#browserCdpClient.isCloseError(e)\n ? new NoSuchFrameException(`Browsing context is gone`)\n : new UnknownErrorException(error.message, error.stack);\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage.createResolved(errorException.toErrorResponse(command.id), command['goog:channel']),\n event: command.method,\n });\n }\n }\n }\n}\n//# sourceMappingURL=CommandProcessor.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, } from '../../../protocol/protocol.js';\n/** Represents a base Bluetooth GATT item. */\nclass BluetoothGattItem {\n id;\n uuid;\n constructor(id, uuid) {\n this.id = id;\n this.uuid = uuid;\n }\n}\n/** Represents a Bluetooth descriptor. */\nclass BluetoothDescriptor extends BluetoothGattItem {\n characteristic;\n constructor(id, uuid, characteristic) {\n super(id, uuid);\n this.characteristic = characteristic;\n }\n}\n/** Represents a Bluetooth characteristic. */\nclass BluetoothCharacteristic extends BluetoothGattItem {\n descriptors = new Map();\n service;\n constructor(id, uuid, service) {\n super(id, uuid);\n this.service = service;\n }\n}\n/** Represents a Bluetooth service. */\nclass BluetoothService extends BluetoothGattItem {\n characteristics = new Map();\n device;\n constructor(id, uuid, device) {\n super(id, uuid);\n this.device = device;\n }\n}\n/** Represents a Bluetooth device. */\nclass BluetoothDevice {\n address;\n services = new Map();\n constructor(address) {\n this.address = address;\n }\n}\nexport class BluetoothProcessor {\n #eventManager;\n #browsingContextStorage;\n #bluetoothDevices = new Map();\n // A map from a characteristic id from CDP to its BluetoothCharacteristic object.\n #bluetoothCharacteristics = new Map();\n // A map from a descriptor id from CDP to its BluetoothDescriptor object.\n #bluetoothDescriptors = new Map();\n constructor(eventManager, browsingContextStorage) {\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n }\n #getDevice(address) {\n const device = this.#bluetoothDevices.get(address);\n if (!device) {\n throw new InvalidArgumentException(`Bluetooth device with address ${address} does not exist`);\n }\n return device;\n }\n #getService(device, serviceUuid) {\n const service = device.services.get(serviceUuid);\n if (!service) {\n throw new InvalidArgumentException(`Service with UUID ${serviceUuid} on device ${device.address} does not exist`);\n }\n return service;\n }\n #getCharacteristic(service, characteristicUuid) {\n const characteristic = service.characteristics.get(characteristicUuid);\n if (!characteristic) {\n throw new InvalidArgumentException(`Characteristic with UUID ${characteristicUuid} does not exist for service ${service.uuid} on device ${service.device.address}`);\n }\n return characteristic;\n }\n #getDescriptor(characteristic, descriptorUuid) {\n const descriptor = characteristic.descriptors.get(descriptorUuid);\n if (!descriptor) {\n throw new InvalidArgumentException(`Descriptor with UUID ${descriptorUuid} does not exist for characteristic ${characteristic.uuid} on service ${characteristic.service.uuid} on device ${characteristic.service.device.address}`);\n }\n return descriptor;\n }\n async simulateAdapter(params) {\n if (params.state === undefined) {\n // The bluetooth.simulateAdapter Command\n // Step 4.2. If params[\"state\"] does not exist, return error with error code invalid argument.\n // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command\n throw new InvalidArgumentException(`Parameter \"state\" is required for creating a Bluetooth adapter`);\n }\n const context = this.#browsingContextStorage.getContext(params.context);\n // Bluetooth spec requires overriding the existing adapter (step 6). From the CDP\n // perspective, we need to disable the emulation first.\n // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable');\n this.#bluetoothDevices.clear();\n this.#bluetoothCharacteristics.clear();\n this.#bluetoothDescriptors.clear();\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.enable', {\n state: params.state,\n leSupported: params.leSupported ?? true,\n });\n return {};\n }\n async disableSimulation(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable');\n this.#bluetoothDevices.clear();\n this.#bluetoothCharacteristics.clear();\n this.#bluetoothDescriptors.clear();\n return {};\n }\n async simulatePreconnectedPeripheral(params) {\n if (this.#bluetoothDevices.has(params.address)) {\n throw new InvalidArgumentException(`Bluetooth device with address ${params.address} already exists`);\n }\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulatePreconnectedPeripheral', {\n address: params.address,\n name: params.name,\n knownServiceUuids: params.knownServiceUuids,\n manufacturerData: params.manufacturerData,\n });\n this.#bluetoothDevices.set(params.address, new BluetoothDevice(params.address));\n return {};\n }\n async simulateAdvertisement(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateAdvertisement', {\n entry: params.scanEntry,\n });\n return {};\n }\n async simulateCharacteristic(params) {\n const device = this.#getDevice(params.address);\n const service = this.#getService(device, params.serviceUuid);\n const context = this.#browsingContextStorage.getContext(params.context);\n switch (params.type) {\n case 'add': {\n if (params.characteristicProperties === undefined) {\n throw new InvalidArgumentException(`Parameter \"characteristicProperties\" is required for adding a Bluetooth characteristic`);\n }\n if (service.characteristics.has(params.characteristicUuid)) {\n throw new InvalidArgumentException(`Characteristic with UUID ${params.characteristicUuid} already exists`);\n }\n const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addCharacteristic', {\n serviceId: service.id,\n characteristicUuid: params.characteristicUuid,\n properties: params.characteristicProperties,\n });\n const characteristic = new BluetoothCharacteristic(response.characteristicId, params.characteristicUuid, service);\n service.characteristics.set(params.characteristicUuid, characteristic);\n this.#bluetoothCharacteristics.set(characteristic.id, characteristic);\n return {};\n }\n case 'remove': {\n if (params.characteristicProperties !== undefined) {\n throw new InvalidArgumentException(`Parameter \"characteristicProperties\" should not be provided for removing a Bluetooth characteristic`);\n }\n const characteristic = this.#getCharacteristic(service, params.characteristicUuid);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeCharacteristic', {\n characteristicId: characteristic.id,\n });\n service.characteristics.delete(params.characteristicUuid);\n this.#bluetoothCharacteristics.delete(characteristic.id);\n return {};\n }\n default:\n throw new InvalidArgumentException(`Parameter \"type\" of ${params.type} is not supported`);\n }\n }\n async simulateCharacteristicResponse(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const device = this.#getDevice(params.address);\n const service = this.#getService(device, params.serviceUuid);\n const characteristic = this.#getCharacteristic(service, params.characteristicUuid);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateCharacteristicOperationResponse', {\n characteristicId: characteristic.id,\n type: params.type,\n code: params.code,\n ...(params.data && {\n data: btoa(String.fromCharCode(...params.data)),\n }),\n });\n return {};\n }\n async simulateDescriptor(params) {\n const device = this.#getDevice(params.address);\n const service = this.#getService(device, params.serviceUuid);\n const characteristic = this.#getCharacteristic(service, params.characteristicUuid);\n const context = this.#browsingContextStorage.getContext(params.context);\n switch (params.type) {\n case 'add': {\n if (characteristic.descriptors.has(params.descriptorUuid)) {\n throw new InvalidArgumentException(`Descriptor with UUID ${params.descriptorUuid} already exists`);\n }\n const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addDescriptor', {\n characteristicId: characteristic.id,\n descriptorUuid: params.descriptorUuid,\n });\n const descriptor = new BluetoothDescriptor(response.descriptorId, params.descriptorUuid, characteristic);\n characteristic.descriptors.set(params.descriptorUuid, descriptor);\n this.#bluetoothDescriptors.set(descriptor.id, descriptor);\n return {};\n }\n case 'remove': {\n const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeDescriptor', {\n descriptorId: descriptor.id,\n });\n characteristic.descriptors.delete(params.descriptorUuid);\n this.#bluetoothDescriptors.delete(descriptor.id);\n return {};\n }\n default:\n throw new InvalidArgumentException(`Parameter \"type\" of ${params.type} is not supported`);\n }\n }\n async simulateDescriptorResponse(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const device = this.#getDevice(params.address);\n const service = this.#getService(device, params.serviceUuid);\n const characteristic = this.#getCharacteristic(service, params.characteristicUuid);\n const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateDescriptorOperationResponse', {\n descriptorId: descriptor.id,\n type: params.type,\n code: params.code,\n ...(params.data && {\n data: btoa(String.fromCharCode(...params.data)),\n }),\n });\n return {};\n }\n async simulateGattConnectionResponse(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', {\n address: params.address,\n type: 'connection',\n code: params.code,\n });\n return {};\n }\n async simulateGattDisconnection(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTDisconnection', {\n address: params.address,\n });\n return {};\n }\n async simulateService(params) {\n const device = this.#getDevice(params.address);\n const context = this.#browsingContextStorage.getContext(params.context);\n switch (params.type) {\n case 'add': {\n if (device.services.has(params.uuid)) {\n throw new InvalidArgumentException(`Service with UUID ${params.uuid} already exists`);\n }\n const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addService', {\n address: params.address,\n serviceUuid: params.uuid,\n });\n device.services.set(params.uuid, new BluetoothService(response.serviceId, params.uuid, device));\n return {};\n }\n case 'remove': {\n const service = this.#getService(device, params.uuid);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeService', {\n serviceId: service.id,\n });\n device.services.delete(params.uuid);\n return {};\n }\n default:\n throw new InvalidArgumentException(`Parameter \"type\" of ${params.type} is not supported`);\n }\n }\n onCdpTargetCreated(cdpTarget) {\n cdpTarget.cdpClient.on('DeviceAccess.deviceRequestPrompted', (event) => {\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.requestDevicePromptUpdated',\n params: {\n context: cdpTarget.id,\n prompt: event.id,\n devices: event.devices,\n },\n }, cdpTarget.id);\n });\n cdpTarget.browserCdpClient.on('BluetoothEmulation.gattOperationReceived', async (event) => {\n switch (event.type) {\n case 'connection':\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.gattConnectionAttempted',\n params: {\n context: cdpTarget.id,\n address: event.address,\n },\n }, cdpTarget.id);\n return;\n case 'discovery':\n // Chromium Web Bluetooth simulation generates this GATT discovery event when\n // a page attempts to get services for a given Bluetooth device for the first time.\n // This 'get services' operation is put on hold until a GATT discovery response\n // is sent to the simulation.\n // Note: Web Bluetooth automation (see https://webbluetoothcg.github.io/web-bluetooth/#automated-testing)\n // does not support simulating a GATT discovery response. This is because simulated services, characteristics,\n // or descriptors are immediately visible to the simulation, meaning it doesn't have a distinct\n // DISCOVERY state. Therefore, this code simulates a successful GATT discovery\n // response upon receiving this event.\n await cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', {\n address: event.address,\n type: 'discovery',\n code: 0x0,\n });\n }\n });\n cdpTarget.browserCdpClient.on('BluetoothEmulation.characteristicOperationReceived', (event) => {\n if (!this.#bluetoothCharacteristics.has(event.characteristicId)) {\n return;\n }\n let type;\n if (event.type === 'write') {\n // write-default-deprecated comes from\n // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-writevalue,\n // which is deprecated so not supported.\n if (event.writeType === 'write-default-deprecated') {\n return;\n }\n type = event.writeType;\n }\n else {\n type = event.type;\n }\n const characteristic = this.#bluetoothCharacteristics.get(event.characteristicId);\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.characteristicEventGenerated',\n params: {\n context: cdpTarget.id,\n address: characteristic.service.device.address,\n serviceUuid: characteristic.service.uuid,\n characteristicUuid: characteristic.uuid,\n type,\n ...(event.data && {\n data: Array.from(atob(event.data), (c) => c.charCodeAt(0)),\n }),\n },\n }, cdpTarget.id);\n });\n cdpTarget.browserCdpClient.on('BluetoothEmulation.descriptorOperationReceived', (event) => {\n if (!this.#bluetoothDescriptors.has(event.descriptorId)) {\n return;\n }\n const descriptor = this.#bluetoothDescriptors.get(event.descriptorId);\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.descriptorEventGenerated',\n params: {\n context: cdpTarget.id,\n address: descriptor.characteristic.service.device.address,\n serviceUuid: descriptor.characteristic.service.uuid,\n characteristicUuid: descriptor.characteristic.uuid,\n descriptorUuid: descriptor.uuid,\n type: event.type,\n ...(event.data && {\n data: Array.from(atob(event.data), (c) => c.charCodeAt(0)),\n }),\n },\n }, cdpTarget.id);\n });\n }\n async handleRequestDevicePrompt(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (params.accept) {\n await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.selectPrompt', {\n id: params.prompt,\n deviceId: params.device,\n });\n }\n else {\n await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.cancelPrompt', {\n id: params.prompt,\n });\n }\n return {};\n }\n}\n//# sourceMappingURL=BluetoothProcessor.js.map","/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a context configurations. It can be global, per User Context, or per\n * Browsing Context. The undefined value means the config will be taken from the upstream\n * config. `null` values means the value should be default regardless of the upstream.\n */\nexport class ContextConfig {\n // keep-sorted start block=yes\n acceptInsecureCerts;\n clientHints;\n devicePixelRatio;\n disableNetworkDurableMessages;\n downloadBehavior;\n emulatedNetworkConditions;\n // Extra headers are kept in CDP format.\n extraHeaders;\n geolocation;\n locale;\n maxTouchPoints;\n prerenderingDisabled;\n screenArea;\n screenOrientation;\n scriptingEnabled;\n scrollbarType;\n // Timezone is kept in CDP format with GMT prefix for offset values.\n timezone;\n userAgent;\n userPromptHandler;\n viewport;\n // keep-sorted end\n /**\n * Merges multiple `ContextConfig` objects. The configs are merged in the order they are\n * provided. For each property, the value from the last config that defines it will be\n * used. The final result will not contain any `undefined` or `null` properties.\n * `undefined` values are ignored. `null` values remove the already set value.\n */\n static merge(...configs) {\n const result = new ContextConfig();\n for (const config of configs) {\n if (!config) {\n continue;\n }\n for (const key in config) {\n const value = config[key];\n if (value === null) {\n delete result[key];\n }\n else if (value !== undefined) {\n result[key] = value;\n }\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=ContextConfig.js.map","/*\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ContextConfig } from './ContextConfig.js';\n/**\n * Manages context-specific configurations. This class allows setting\n * configurations at three levels: global, user context, and browsing context.\n *\n * When `getActiveConfig` is called, it merges the configurations in a specific\n * order of precedence: `global -> user context -> browsing context`. For each\n * configuration property, the value from the highest-precedence level that has a\n * non-`undefined` value is used.\n *\n * The `update` methods (`updateGlobalConfig`, `updateUserContextConfig`,\n * `updateBrowsingContextConfig`) merge the provided configuration with the\n * existing one at the corresponding level. Properties with `undefined` values in\n * the provided configuration are ignored, preserving the existing value.\n */\nexport class ContextConfigStorage {\n #global = new ContextConfig();\n #userContextConfigs = new Map();\n #browsingContextConfigs = new Map();\n /**\n * Updates the global configuration. Properties with `undefined` values in the\n * provided `config` are ignored.\n */\n updateGlobalConfig(config) {\n this.#global = ContextConfig.merge(this.#global, config);\n }\n /**\n * Updates the configuration for a specific browsing context. Properties with\n * `undefined` values in the provided `config` are ignored.\n */\n updateBrowsingContextConfig(browsingContextId, config) {\n this.#browsingContextConfigs.set(browsingContextId, ContextConfig.merge(this.#browsingContextConfigs.get(browsingContextId), config));\n }\n /**\n * Updates the configuration for a specific user context. Properties with\n * `undefined` values in the provided `config` are ignored.\n */\n updateUserContextConfig(userContext, config) {\n this.#userContextConfigs.set(userContext, ContextConfig.merge(this.#userContextConfigs.get(userContext), config));\n }\n /**\n * Returns the current global configuration.\n */\n getGlobalConfig() {\n return this.#global;\n }\n /**\n * Extra headers is a special case. The headers from the different levels have to be\n * merged instead of being overridden.\n */\n #getExtraHeaders(topLevelBrowsingContextId, userContext) {\n const globalHeaders = this.#global.extraHeaders ?? {};\n const userContextHeaders = this.#userContextConfigs.get(userContext)?.extraHeaders ?? {};\n const browsingContextHeaders = topLevelBrowsingContextId === undefined\n ? {}\n : (this.#browsingContextConfigs.get(topLevelBrowsingContextId)\n ?.extraHeaders ?? {});\n return { ...globalHeaders, ...userContextHeaders, ...browsingContextHeaders };\n }\n /**\n * Calculates the active configuration by merging global, user context, and\n * browsing context settings.\n */\n getActiveConfig(topLevelBrowsingContextId, userContext) {\n let result = ContextConfig.merge(this.#global, this.#userContextConfigs.get(userContext));\n if (topLevelBrowsingContextId !== undefined) {\n result = ContextConfig.merge(result, this.#browsingContextConfigs.get(topLevelBrowsingContextId));\n }\n // Extra headers is a special case which have to be treated in a special way.\n const extraHeaders = this.#getExtraHeaders(topLevelBrowsingContextId, userContext);\n result.extraHeaders =\n Object.keys(extraHeaders).length > 0 ? extraHeaders : undefined;\n return result;\n }\n}\n//# sourceMappingURL=ContextConfigStorage.js.map","/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoSuchUserContextException, } from '../../../protocol/protocol.js';\nexport class UserContextStorage {\n #browserClient;\n constructor(browserClient) {\n this.#browserClient = browserClient;\n }\n async getUserContexts() {\n const result = await this.#browserClient.sendCommand('Target.getBrowserContexts');\n return [\n {\n userContext: 'default',\n },\n ...result.browserContextIds.map((id) => {\n return {\n userContext: id,\n };\n }),\n ];\n }\n async verifyUserContextIdList(userContextIds) {\n const foundContexts = new Set();\n if (!userContextIds.length) {\n return foundContexts;\n }\n const userContexts = await this.getUserContexts();\n const knownUserContextIds = new Set(userContexts.map((userContext) => userContext.userContext));\n for (const userContextId of userContextIds) {\n if (!knownUserContextIds.has(userContextId)) {\n throw new NoSuchUserContextException(`User context ${userContextId} not found`);\n }\n foundContexts.add(userContextId);\n }\n return foundContexts;\n }\n}\n//# sourceMappingURL=UserContextStorage.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport class Deferred {\n #isFinished = false;\n #promise;\n #result;\n #resolve;\n #reject;\n get isFinished() {\n return this.#isFinished;\n }\n get result() {\n if (!this.#isFinished) {\n throw new Error('Deferred is not finished yet');\n }\n return this.#result;\n }\n constructor() {\n this.#promise = new Promise((resolve, reject) => {\n this.#resolve = resolve;\n this.#reject = reject;\n });\n // Needed to avoid `Uncaught (in promise)`. The promises returned by `then`\n // and `catch` will be rejected anyway.\n this.#promise.catch((_error) => {\n // Intentionally empty.\n });\n }\n then(onFulfilled, onRejected) {\n return this.#promise.then(onFulfilled, onRejected);\n }\n catch(onRejected) {\n return this.#promise.catch(onRejected);\n }\n resolve(value) {\n this.#result = value;\n if (!this.#isFinished) {\n this.#isFinished = true;\n this.#resolve(value);\n }\n }\n reject(reason) {\n if (!this.#isFinished) {\n this.#isFinished = true;\n this.#reject(reason);\n }\n }\n finally(onFinally) {\n return this.#promise.finally(onFinally);\n }\n [Symbol.toStringTag] = 'Promise';\n}\n//# sourceMappingURL=Deferred.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport function getTimestamp() {\n // `timestamp` from the event is MonotonicTime, not real time, so\n // the best Mapper can do is to set the timestamp to the epoch time\n // of the event arrived.\n // https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-MonotonicTime\n return new Date().getTime();\n}\n//# sourceMappingURL=time.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** @return Given an input in cm, convert it to inches. */\nexport function inchesFromCm(cm) {\n return cm / 2.54;\n}\n//# sourceMappingURL=unitConversions.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst SHARED_ID_DIVIDER = '_element_';\nexport function getSharedId(frameId, documentId, backendNodeId) {\n return `f.${frameId}.d.${documentId}.e.${backendNodeId}`;\n}\nfunction parseLegacySharedId(sharedId) {\n const match = sharedId.match(new RegExp(`(.*)${SHARED_ID_DIVIDER}(.*)`));\n if (!match) {\n // SharedId is incorrectly formatted.\n return null;\n }\n const documentId = match[1];\n const elementId = match[2];\n if (documentId === undefined || elementId === undefined) {\n return null;\n }\n const backendNodeId = parseInt(elementId ?? '');\n if (isNaN(backendNodeId)) {\n return null;\n }\n return {\n documentId,\n backendNodeId,\n };\n}\nexport function parseSharedId(sharedId) {\n // TODO: remove legacy check once ChromeDriver provides sharedId in the new format.\n const legacyFormattedSharedId = parseLegacySharedId(sharedId);\n if (legacyFormattedSharedId !== null) {\n return { ...legacyFormattedSharedId, frameId: undefined };\n }\n const match = sharedId.match(/f\\.(.*)\\.d\\.(.*)\\.e\\.([0-9]*)/);\n if (!match) {\n // SharedId is incorrectly formatted.\n return null;\n }\n const frameId = match[1];\n const documentId = match[2];\n const elementId = match[3];\n if (frameId === undefined ||\n documentId === undefined ||\n elementId === undefined) {\n return null;\n }\n const backendNodeId = parseInt(elementId ?? '');\n if (isNaN(backendNodeId)) {\n return null;\n }\n return {\n frameId,\n documentId,\n backendNodeId,\n };\n}\n//# sourceMappingURL=SharedId.js.map","import { ChromiumBidi, NoSuchHandleException, } from '../../../protocol/protocol.js';\nimport { LogType } from '../../../utils/log.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\nimport { ChannelProxy } from './ChannelProxy.js';\nexport class Realm {\n #cdpClient;\n #eventManager;\n #executionContextId;\n #logger;\n #origin;\n #realmId;\n realmStorage;\n constructor(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage) {\n this.#cdpClient = cdpClient;\n this.#eventManager = eventManager;\n this.#executionContextId = executionContextId;\n this.#logger = logger;\n this.#origin = origin;\n this.#realmId = realmId;\n this.realmStorage = realmStorage;\n this.realmStorage.addRealm(this);\n }\n cdpToBidiValue(cdpValue, resultOwnership) {\n const bidiValue = this.serializeForBiDi(cdpValue.result.deepSerializedValue, new Map());\n if (cdpValue.result.objectId) {\n const objectId = cdpValue.result.objectId;\n if (resultOwnership === \"root\" /* Script.ResultOwnership.Root */) {\n // Extend BiDi value with `handle` based on required `resultOwnership`\n // and CDP response but not on the actual BiDi type.\n bidiValue.handle = objectId;\n // Remember all the handles sent to client.\n this.realmStorage.knownHandlesToRealmMap.set(objectId, this.realmId);\n }\n else {\n // No need to await for the object to be released.\n void this.#releaseObject(objectId).catch((error) => this.#logger?.(LogType.debugError, error));\n }\n }\n return bidiValue;\n }\n isHidden() {\n return false;\n }\n /**\n * Relies on the CDP to implement proper BiDi serialization, except:\n * * CDP integer property `backendNodeId` is replaced with `sharedId` of\n * `{documentId}_element_{backendNodeId}`;\n * * CDP integer property `weakLocalObjectReference` is replaced with UUID `internalId`\n * using unique-per serialization `internalIdMap`.\n * * CDP type `platformobject` is replaced with `object`.\n * @param deepSerializedValue - CDP value to be converted to BiDi.\n * @param internalIdMap - Map from CDP integer `weakLocalObjectReference` to BiDi UUID\n * `internalId`.\n */\n serializeForBiDi(deepSerializedValue, internalIdMap) {\n if (Object.hasOwn(deepSerializedValue, 'weakLocalObjectReference')) {\n const weakLocalObjectReference = deepSerializedValue.weakLocalObjectReference;\n if (!internalIdMap.has(weakLocalObjectReference)) {\n internalIdMap.set(weakLocalObjectReference, uuidv4());\n }\n deepSerializedValue.internalId = internalIdMap.get(weakLocalObjectReference);\n delete deepSerializedValue['weakLocalObjectReference'];\n }\n if (deepSerializedValue.type === 'node' &&\n deepSerializedValue.value &&\n Object.hasOwn(deepSerializedValue.value, 'frameId')) {\n // `frameId` is not needed in BiDi as it is not yet specified.\n delete deepSerializedValue.value['frameId'];\n }\n // Platform object is a special case. It should have only `{type: object}`\n // without `value` field.\n if (deepSerializedValue.type === 'platformobject') {\n return { type: 'object' };\n }\n const bidiValue = deepSerializedValue.value;\n if (bidiValue === undefined) {\n return deepSerializedValue;\n }\n // Recursively update the nested values.\n if (['array', 'set', 'htmlcollection', 'nodelist'].includes(deepSerializedValue.type)) {\n for (const i in bidiValue) {\n bidiValue[i] = this.serializeForBiDi(bidiValue[i], internalIdMap);\n }\n }\n if (['object', 'map'].includes(deepSerializedValue.type)) {\n for (const i in bidiValue) {\n bidiValue[i] = [\n this.serializeForBiDi(bidiValue[i][0], internalIdMap),\n this.serializeForBiDi(bidiValue[i][1], internalIdMap),\n ];\n }\n }\n return deepSerializedValue;\n }\n get realmId() {\n return this.#realmId;\n }\n get executionContextId() {\n return this.#executionContextId;\n }\n get origin() {\n return this.#origin;\n }\n get source() {\n return {\n realm: this.realmId,\n };\n }\n get cdpClient() {\n return this.#cdpClient;\n }\n get baseInfo() {\n return {\n realm: this.realmId,\n origin: this.origin,\n };\n }\n async evaluate(expression, awaitPromise, resultOwnership = \"none\" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false, includeCommandLineApi = false) {\n const cdpEvaluateResult = await this.cdpClient.sendCommand('Runtime.evaluate', {\n contextId: this.executionContextId,\n expression,\n awaitPromise,\n serializationOptions: Realm.#getSerializationOptions(\"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),\n userGesture: userActivation,\n includeCommandLineAPI: includeCommandLineApi,\n });\n if (cdpEvaluateResult.exceptionDetails) {\n return await this.#getExceptionResult(cdpEvaluateResult.exceptionDetails, 0, resultOwnership);\n }\n return {\n realm: this.realmId,\n result: this.cdpToBidiValue(cdpEvaluateResult, resultOwnership),\n type: 'success',\n };\n }\n #registerEvent(event) {\n if (this.associatedBrowsingContexts.length === 0) {\n this.#eventManager.registerGlobalEvent(event);\n }\n else {\n for (const browsingContext of this.associatedBrowsingContexts) {\n this.#eventManager.registerEvent(event, browsingContext.id);\n }\n }\n }\n initialize() {\n if (!this.isHidden()) {\n // Report only not-hidden realms.\n this.#registerEvent({\n type: 'event',\n method: ChromiumBidi.Script.EventNames.RealmCreated,\n params: this.realmInfo,\n });\n }\n }\n /**\n * Serializes a given CDP object into BiDi, keeping references in the\n * target's `globalThis`.\n */\n async serializeCdpObject(cdpRemoteObject, resultOwnership) {\n // TODO: if the object is a primitive, return it directly without CDP roundtrip.\n const argument = Realm.#cdpRemoteObjectToCallArgument(cdpRemoteObject);\n const cdpValue = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((remoteObject) => remoteObject),\n awaitPromise: false,\n arguments: [argument],\n serializationOptions: {\n serialization: \"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,\n },\n executionContextId: this.executionContextId,\n });\n return this.cdpToBidiValue(cdpValue, resultOwnership);\n }\n static #cdpRemoteObjectToCallArgument(cdpRemoteObject) {\n if (cdpRemoteObject.objectId !== undefined) {\n return { objectId: cdpRemoteObject.objectId };\n }\n if (cdpRemoteObject.unserializableValue !== undefined) {\n return { unserializableValue: cdpRemoteObject.unserializableValue };\n }\n return { value: cdpRemoteObject.value };\n }\n /**\n * Gets the string representation of an object. This is equivalent to\n * calling `toString()` on the object value.\n */\n async stringifyObject(cdpRemoteObject) {\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((remoteObject) => String(remoteObject)),\n awaitPromise: false,\n arguments: [cdpRemoteObject],\n returnByValue: true,\n executionContextId: this.executionContextId,\n });\n return result.value;\n }\n async #flattenKeyValuePairs(mappingLocalValue) {\n const keyValueArray = await Promise.all(mappingLocalValue.map(async ([key, value]) => {\n let keyArg;\n if (typeof key === 'string') {\n // Key is a string.\n keyArg = { value: key };\n }\n else {\n // Key is a serialized value.\n keyArg = await this.deserializeForCdp(key);\n }\n const valueArg = await this.deserializeForCdp(value);\n return [keyArg, valueArg];\n }));\n return keyValueArray.flat();\n }\n async #flattenValueList(listLocalValue) {\n return await Promise.all(listLocalValue.map((localValue) => this.deserializeForCdp(localValue)));\n }\n async #serializeCdpExceptionDetails(cdpExceptionDetails, lineOffset, resultOwnership) {\n const callFrames = cdpExceptionDetails.stackTrace?.callFrames.map((frame) => ({\n url: frame.url,\n functionName: frame.functionName,\n lineNumber: frame.lineNumber - lineOffset,\n columnNumber: frame.columnNumber,\n })) ?? [];\n // Exception should always be there.\n const exception = cdpExceptionDetails.exception;\n return {\n exception: await this.serializeCdpObject(exception, resultOwnership),\n columnNumber: cdpExceptionDetails.columnNumber,\n lineNumber: cdpExceptionDetails.lineNumber - lineOffset,\n stackTrace: {\n callFrames,\n },\n text: (await this.stringifyObject(exception)) || cdpExceptionDetails.text,\n };\n }\n async callFunction(functionDeclaration, awaitPromise, thisLocalValue = {\n type: 'undefined',\n }, argumentsLocalValues = [], resultOwnership = \"none\" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false) {\n const callFunctionAndSerializeScript = `(...args) => {\n function callFunction(f, args) {\n const deserializedThis = args.shift();\n const deserializedArgs = args;\n return f.apply(deserializedThis, deserializedArgs);\n }\n return callFunction((\n ${functionDeclaration}\n ), args);\n }`;\n const thisAndArgumentsList = [\n await this.deserializeForCdp(thisLocalValue),\n ...(await Promise.all(argumentsLocalValues.map(async (argumentLocalValue) => await this.deserializeForCdp(argumentLocalValue)))),\n ];\n let cdpCallFunctionResult;\n try {\n cdpCallFunctionResult = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: callFunctionAndSerializeScript,\n awaitPromise,\n arguments: thisAndArgumentsList,\n serializationOptions: Realm.#getSerializationOptions(\"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),\n executionContextId: this.executionContextId,\n userGesture: userActivation,\n });\n }\n catch (error) {\n // Heuristic to determine if the problem is in the argument.\n // The check can be done on the `deserialization` step, but this approach\n // helps to save round-trips.\n if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n [\n 'Could not find object with given id',\n 'Argument should belong to the same JavaScript world as target object',\n 'Invalid remote object id',\n ].includes(error.message)) {\n throw new NoSuchHandleException('Handle was not found.');\n }\n throw error;\n }\n if (cdpCallFunctionResult.exceptionDetails) {\n return await this.#getExceptionResult(cdpCallFunctionResult.exceptionDetails, 1, resultOwnership);\n }\n return {\n type: 'success',\n result: this.cdpToBidiValue(cdpCallFunctionResult, resultOwnership),\n realm: this.realmId,\n };\n }\n async deserializeForCdp(localValue) {\n if ('handle' in localValue && localValue.handle) {\n return { objectId: localValue.handle };\n // We tried to find a handle value but failed\n // This allows us to have exhaustive switch on `localValue.type`\n }\n else if ('handle' in localValue || 'sharedId' in localValue) {\n throw new NoSuchHandleException('Handle was not found.');\n }\n switch (localValue.type) {\n case 'undefined':\n return { unserializableValue: 'undefined' };\n case 'null':\n return { unserializableValue: 'null' };\n case 'string':\n return { value: localValue.value };\n case 'number':\n if (localValue.value === 'NaN') {\n return { unserializableValue: 'NaN' };\n }\n else if (localValue.value === '-0') {\n return { unserializableValue: '-0' };\n }\n else if (localValue.value === 'Infinity') {\n return { unserializableValue: 'Infinity' };\n }\n else if (localValue.value === '-Infinity') {\n return { unserializableValue: '-Infinity' };\n }\n return {\n value: localValue.value,\n };\n case 'boolean':\n return { value: Boolean(localValue.value) };\n case 'bigint':\n return {\n unserializableValue: `BigInt(${JSON.stringify(localValue.value)})`,\n };\n case 'date':\n return {\n unserializableValue: `new Date(Date.parse(${JSON.stringify(localValue.value)}))`,\n };\n case 'regexp':\n return {\n unserializableValue: `new RegExp(${JSON.stringify(localValue.value.pattern)}, ${JSON.stringify(localValue.value.flags)})`,\n };\n case 'map': {\n // TODO: If none of the nested keys and values has a remote\n // reference, serialize to `unserializableValue` without CDP roundtrip.\n const keyValueArray = await this.#flattenKeyValuePairs(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => {\n const result = new Map();\n for (let i = 0; i < args.length; i += 2) {\n result.set(args[i], args[i + 1]);\n }\n return result;\n }),\n awaitPromise: false,\n arguments: keyValueArray,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'object': {\n // TODO: If none of the nested keys and values has a remote\n // reference, serialize to `unserializableValue` without CDP roundtrip.\n const keyValueArray = await this.#flattenKeyValuePairs(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => {\n const result = {};\n for (let i = 0; i < args.length; i += 2) {\n // Key should be either `string`, `number`, or `symbol`.\n const key = args[i];\n result[key] = args[i + 1];\n }\n return result;\n }),\n awaitPromise: false,\n arguments: keyValueArray,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'array': {\n // TODO: If none of the nested items has a remote reference,\n // serialize to `unserializableValue` without CDP roundtrip.\n const args = await this.#flattenValueList(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => args),\n awaitPromise: false,\n arguments: args,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'set': {\n // TODO: if none of the nested items has a remote reference,\n // serialize to `unserializableValue` without CDP roundtrip.\n const args = await this.#flattenValueList(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => new Set(args)),\n awaitPromise: false,\n arguments: args,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'channel': {\n const channelProxy = new ChannelProxy(localValue.value, this.#logger);\n const channelProxySendMessageHandle = await channelProxy.init(this, this.#eventManager);\n return { objectId: channelProxySendMessageHandle };\n }\n // TODO(#375): Dispose of nested objects.\n }\n // Intentionally outside to handle unknown types\n throw new Error(`Value ${JSON.stringify(localValue)} is not deserializable.`);\n }\n async #getExceptionResult(exceptionDetails, lineOffset, resultOwnership) {\n return {\n exceptionDetails: await this.#serializeCdpExceptionDetails(exceptionDetails, lineOffset, resultOwnership),\n realm: this.realmId,\n type: 'exception',\n };\n }\n static #getSerializationOptions(serialization, serializationOptions) {\n return {\n serialization,\n additionalParameters: Realm.#getAdditionalSerializationParameters(serializationOptions),\n ...Realm.#getMaxObjectDepth(serializationOptions),\n };\n }\n static #getAdditionalSerializationParameters(serializationOptions) {\n const additionalParameters = {};\n if (serializationOptions.maxDomDepth !== undefined) {\n additionalParameters['maxNodeDepth'] =\n serializationOptions.maxDomDepth === null\n ? 1000\n : serializationOptions.maxDomDepth;\n }\n if (serializationOptions.includeShadowTree !== undefined) {\n additionalParameters['includeShadowTree'] =\n serializationOptions.includeShadowTree;\n }\n return additionalParameters;\n }\n static #getMaxObjectDepth(serializationOptions) {\n return serializationOptions.maxObjectDepth === undefined ||\n serializationOptions.maxObjectDepth === null\n ? {}\n : { maxDepth: serializationOptions.maxObjectDepth };\n }\n async #releaseObject(handle) {\n try {\n await this.cdpClient.sendCommand('Runtime.releaseObject', {\n objectId: handle,\n });\n }\n catch (error) {\n // Heuristic to determine if the problem is in the unknown handler.\n // Ignore the error if so.\n if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'Invalid remote object id')) {\n throw error;\n }\n }\n }\n async disown(handle) {\n // Disowning an object from different realm does nothing.\n if (this.realmStorage.knownHandlesToRealmMap.get(handle) !== this.realmId) {\n return;\n }\n await this.#releaseObject(handle);\n this.realmStorage.knownHandlesToRealmMap.delete(handle);\n }\n dispose() {\n if (!this.isHidden()) {\n this.#registerEvent({\n type: 'event',\n method: ChromiumBidi.Script.EventNames.RealmDestroyed,\n params: {\n realm: this.realmId,\n },\n });\n }\n }\n}\n//# sourceMappingURL=Realm.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoSuchNodeException, UnknownErrorException, } from '../../../protocol/protocol.js';\nimport { Realm } from './Realm.js';\nimport { getSharedId, parseSharedId } from './SharedId.js';\nexport class WindowRealm extends Realm {\n #browsingContextId;\n #browsingContextStorage;\n sandbox;\n constructor(browsingContextId, browsingContextStorage, cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage, sandbox) {\n super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage);\n this.#browsingContextId = browsingContextId;\n this.#browsingContextStorage = browsingContextStorage;\n this.sandbox = sandbox;\n this.initialize();\n }\n #getBrowsingContextId(navigableId) {\n const maybeBrowsingContext = this.#browsingContextStorage\n .getAllContexts()\n .find((context) => context.navigableId === navigableId);\n return maybeBrowsingContext?.id ?? 'UNKNOWN';\n }\n get browsingContext() {\n return this.#browsingContextStorage.getContext(this.#browsingContextId);\n }\n /**\n * Do not expose to user hidden realms.\n */\n isHidden() {\n return this.realmStorage.hiddenSandboxes.has(this.sandbox);\n }\n get associatedBrowsingContexts() {\n return [this.browsingContext];\n }\n get realmType() {\n return 'window';\n }\n get realmInfo() {\n return {\n ...this.baseInfo,\n type: this.realmType,\n context: this.#browsingContextId,\n sandbox: this.sandbox,\n };\n }\n get source() {\n return {\n realm: this.realmId,\n context: this.browsingContext.id,\n };\n }\n serializeForBiDi(deepSerializedValue, internalIdMap) {\n const bidiValue = deepSerializedValue.value;\n if (deepSerializedValue.type === 'node' && bidiValue !== undefined) {\n if (Object.hasOwn(bidiValue, 'backendNodeId')) {\n let navigableId = this.browsingContext.navigableId ?? 'UNKNOWN';\n if (Object.hasOwn(bidiValue, 'loaderId')) {\n // `loaderId` should be always there after ~2024-03-05, when\n // https://crrev.com/c/5116240 reaches stable.\n // TODO: remove the check after the date.\n navigableId = bidiValue.loaderId;\n delete bidiValue['loaderId'];\n }\n deepSerializedValue.sharedId =\n getSharedId(this.#getBrowsingContextId(navigableId), navigableId, bidiValue.backendNodeId);\n delete bidiValue['backendNodeId'];\n }\n if (Object.hasOwn(bidiValue, 'children')) {\n for (const i in bidiValue.children) {\n bidiValue.children[i] = this.serializeForBiDi(bidiValue.children[i], internalIdMap);\n }\n }\n if (Object.hasOwn(bidiValue, 'shadowRoot') &&\n bidiValue.shadowRoot !== null) {\n bidiValue.shadowRoot = this.serializeForBiDi(bidiValue.shadowRoot, internalIdMap);\n }\n // `namespaceURI` can be is either `null` or non-empty string.\n if (bidiValue.namespaceURI === '') {\n bidiValue.namespaceURI = null;\n }\n }\n return super.serializeForBiDi(deepSerializedValue, internalIdMap);\n }\n async deserializeForCdp(localValue) {\n if ('sharedId' in localValue && localValue.sharedId) {\n const parsedSharedId = parseSharedId(localValue.sharedId);\n if (parsedSharedId === null) {\n throw new NoSuchNodeException(`SharedId \"${localValue.sharedId}\" was not found.`);\n }\n const { documentId, backendNodeId } = parsedSharedId;\n // TODO: add proper validation if the element is accessible from the current realm.\n if (this.browsingContext.navigableId !== documentId) {\n throw new NoSuchNodeException(`SharedId \"${localValue.sharedId}\" belongs to different document. Current document is ${this.browsingContext.navigableId}.`);\n }\n try {\n const { object } = await this.cdpClient.sendCommand('DOM.resolveNode', {\n backendNodeId,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `obj.object.objectId` after using.\n return { objectId: object.objectId };\n }\n catch (error) {\n // Heuristic to detect \"no such node\" exception. Based on the specific\n // CDP implementation.\n if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'No node with given id found') {\n throw new NoSuchNodeException(`SharedId \"${localValue.sharedId}\" was not found.`);\n }\n throw new UnknownErrorException(error.message, error.stack);\n }\n }\n return await super.deserializeForCdp(localValue);\n }\n async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi) {\n await this.#browsingContextStorage\n .getContext(this.#browsingContextId)\n .targetUnblockedOrThrow();\n return await super.evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi);\n }\n async callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation) {\n await this.#browsingContextStorage\n .getContext(this.#browsingContextId)\n .targetUnblockedOrThrow();\n return await super.callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation);\n }\n}\n//# sourceMappingURL=WindowRealm.js.map","/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/**\n * A URL matches about:blank if its scheme is \"about\", its path contains a single string\n * \"blank\", its username and password are the empty string, and its host is null.\n * https://html.spec.whatwg.org/multipage/urls-and-fetching.html#matches-about:blank\n * @param {string} url\n * @return {boolean}\n */\nexport function urlMatchesAboutBlank(url) {\n // An empty string is a special case, and considered to be about:blank.\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window-open-steps\n if (url === '') {\n return true;\n }\n try {\n const parsedUrl = new URL(url);\n const schema = parsedUrl.protocol.replace(/:$/, '');\n return (schema.toLowerCase() === 'about' &&\n parsedUrl.pathname.toLowerCase() === 'blank' &&\n parsedUrl.username === '' &&\n parsedUrl.password === '' &&\n parsedUrl.host === '');\n }\n catch (err) {\n // Wrong URL considered do not match about:blank.\n if (err instanceof TypeError) {\n return false;\n }\n // Re-throw other unexpected errors.\n throw err;\n }\n}\n//# sourceMappingURL=urlHelpers.js.map","/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { ChromiumBidi, } from '../../../protocol/protocol.js';\nimport { Deferred } from '../../../utils/Deferred.js';\nimport { LogType } from '../../../utils/log.js';\nimport { getTimestamp } from '../../../utils/time.js';\nimport { urlMatchesAboutBlank } from '../../../utils/urlHelpers.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\nexport class NavigationResult {\n eventName;\n message;\n constructor(eventName, message) {\n this.eventName = eventName;\n this.message = message;\n }\n}\nexport class NavigationState {\n navigationId = uuidv4();\n #browsingContextId;\n #started = false;\n #finished = new Deferred();\n url;\n loaderId;\n #isInitial;\n #eventManager;\n committed = new Deferred();\n isFragmentNavigation;\n get finished() {\n return this.#finished;\n }\n constructor(url, browsingContextId, isInitial, eventManager) {\n this.#browsingContextId = browsingContextId;\n this.url = url;\n this.#isInitial = isInitial;\n this.#eventManager = eventManager;\n }\n navigationInfo() {\n return {\n context: this.#browsingContextId,\n navigation: this.navigationId,\n timestamp: getTimestamp(),\n url: this.url,\n };\n }\n start() {\n if (\n // Initial navigation should not be reported.\n !this.#isInitial &&\n // No need in reporting started navigation twice.\n !this.#started &&\n // No need for reporting fragment navigations. Step 13 vs step 16 of the spec:\n // https://html.spec.whatwg.org/#beginning-navigation:webdriver-bidi-navigation-started\n !this.isFragmentNavigation) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n this.#started = true;\n }\n #finish(navigationResult) {\n this.#started = true;\n if (!this.#isInitial &&\n !this.#finished.isFinished &&\n navigationResult.eventName !== \"browsingContext.load\" /* NavigationEventName.Load */) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: navigationResult.eventName,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n this.#finished.resolve(navigationResult);\n }\n frameNavigated() {\n this.committed.resolve();\n if (!this.#isInitial) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.NavigationCommitted,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n }\n fragmentNavigated() {\n this.committed.resolve();\n this.#finish(new NavigationResult(\"browsingContext.fragmentNavigated\" /* NavigationEventName.FragmentNavigated */));\n }\n load() {\n this.#finish(new NavigationResult(\"browsingContext.load\" /* NavigationEventName.Load */));\n }\n fail(message) {\n this.#finish(new NavigationResult(this.committed.isFinished\n ? \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */\n : \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */, message));\n }\n}\n/**\n * Keeps track of navigations. Details: http://go/webdriver:bidi-navigation\n */\nexport class NavigationTracker {\n #eventManager;\n #logger;\n #loaderIdToNavigationsMap = new Map();\n #browsingContextId;\n /**\n * Last committed navigation is committed, but is not guaranteed to be finished, as it\n * can still wait for `load` or `DOMContentLoaded` events.\n */\n #lastCommittedNavigation;\n /**\n * Pending navigation is a navigation that is started but not yet committed.\n */\n #pendingNavigation;\n // Flags if the initial navigation to `about:blank` is in progress.\n #isInitialNavigation = true;\n constructor(url, browsingContextId, eventManager, logger) {\n this.#browsingContextId = browsingContextId;\n this.#eventManager = eventManager;\n this.#logger = logger;\n this.#isInitialNavigation = true;\n // The initial navigation is always committed.\n this.#lastCommittedNavigation = new NavigationState(url, browsingContextId, urlMatchesAboutBlank(url), this.#eventManager);\n }\n /**\n * Returns current started ongoing navigation. It can be either a started pending\n * navigation, or one is already navigated.\n */\n get currentNavigationId() {\n if (this.#pendingNavigation?.isFragmentNavigation === false) {\n // Use pending navigation if it is started and it is not a fragment navigation.\n return this.#pendingNavigation.navigationId;\n }\n // If the pending navigation is a fragment one, or if it is not exists, the last\n // committed navigation should be used.\n return this.#lastCommittedNavigation.navigationId;\n }\n /**\n * Flags if the current navigation relates to the initial to `about:blank` navigation.\n */\n get isInitialNavigation() {\n return this.#isInitialNavigation;\n }\n /**\n * Url of the last navigated navigation.\n */\n get url() {\n return this.#lastCommittedNavigation.url;\n }\n /**\n * Creates a pending navigation e.g. when navigation command is called. Required to\n * provide navigation id before the actual navigation is started. It will be used when\n * navigation started. Can be aborted, failed, fragment navigated, or became a current\n * navigation.\n */\n createPendingNavigation(url, canBeInitialNavigation = false) {\n this.#logger?.(LogType.debug, 'createCommandNavigation');\n this.#isInitialNavigation =\n canBeInitialNavigation &&\n this.#isInitialNavigation &&\n urlMatchesAboutBlank(url);\n this.#pendingNavigation?.fail('navigation canceled by concurrent navigation');\n const navigation = new NavigationState(url, this.#browsingContextId, this.#isInitialNavigation, this.#eventManager);\n this.#pendingNavigation = navigation;\n return navigation;\n }\n dispose() {\n this.#pendingNavigation?.fail('navigation canceled by context disposal');\n this.#lastCommittedNavigation.fail('navigation canceled by context disposal');\n }\n // Update the current url.\n onTargetInfoChanged(url) {\n this.#logger?.(LogType.debug, `onTargetInfoChanged ${url}`);\n this.#lastCommittedNavigation.url = url;\n }\n #getNavigationForFrameNavigated(url, loaderId) {\n if (this.#loaderIdToNavigationsMap.has(loaderId)) {\n return this.#loaderIdToNavigationsMap.get(loaderId);\n }\n if (this.#pendingNavigation !== undefined &&\n this.#pendingNavigation.loaderId === undefined) {\n // This can be a pending navigation to `about:blank` created by a command. Use the\n // pending navigation in this case.\n return this.#pendingNavigation;\n }\n // Create a new pending navigation.\n return this.createPendingNavigation(url, true);\n }\n /**\n * @param {string} unreachableUrl indicated the navigation is actually failed.\n */\n frameNavigated(url, loaderId, unreachableUrl) {\n this.#logger?.(LogType.debug, `frameNavigated ${url}`);\n if (unreachableUrl !== undefined) {\n // The navigation failed.\n const navigation = this.#loaderIdToNavigationsMap.get(loaderId) ??\n this.#pendingNavigation ??\n this.createPendingNavigation(unreachableUrl, true);\n navigation.url = unreachableUrl;\n navigation.start();\n navigation.fail('the requested url is unreachable');\n return;\n }\n const navigation = this.#getNavigationForFrameNavigated(url, loaderId);\n if (navigation !== this.#lastCommittedNavigation) {\n // Even though the `lastCommittedNavigation` is navigated, it still can be waiting\n // for `load` or `DOMContentLoaded` events.\n this.#lastCommittedNavigation.fail('navigation canceled by concurrent navigation');\n }\n navigation.url = url;\n navigation.loaderId = loaderId;\n this.#loaderIdToNavigationsMap.set(loaderId, navigation);\n navigation.start();\n navigation.frameNavigated();\n this.#lastCommittedNavigation = navigation;\n if (this.#pendingNavigation === navigation) {\n this.#pendingNavigation = undefined;\n }\n }\n navigatedWithinDocument(url, navigationType) {\n this.#logger?.(LogType.debug, `navigatedWithinDocument ${url}, ${navigationType}`);\n // Current navigation URL should be updated.\n this.#lastCommittedNavigation.url = url;\n if (navigationType !== 'fragment') {\n // TODO: check for other navigation types, like `javascript`.\n return;\n }\n // There is no way to map `navigatedWithinDocument` to a specific navigation. Consider\n // it is the pending navigation, if it is a fragment one.\n const fragmentNavigation = this.#pendingNavigation?.isFragmentNavigation === true\n ? this.#pendingNavigation\n : new NavigationState(url, this.#browsingContextId, false, this.#eventManager);\n // Finish ongoing navigation.\n fragmentNavigation.fragmentNavigated();\n if (fragmentNavigation === this.#pendingNavigation) {\n this.#pendingNavigation = undefined;\n }\n }\n /**\n * Required to mark navigation as fully complete.\n * TODO: navigation should be complete when it became the current one on\n * `Page.frameNavigated` or on navigating command finished with a new loader Id.\n */\n loadPageEvent(loaderId) {\n this.#logger?.(LogType.debug, 'loadPageEvent');\n // Even if it was an initial navigation, it is finished.\n this.#isInitialNavigation = false;\n this.#loaderIdToNavigationsMap.get(loaderId)?.load();\n }\n /**\n * Fail navigation due to navigation command failed.\n */\n failNavigation(navigation, errorText) {\n this.#logger?.(LogType.debug, 'failCommandNavigation');\n navigation.fail(errorText);\n }\n /**\n * Updates the navigation's `loaderId` and sets it as current one, if it is a\n * cross-document navigation.\n */\n navigationCommandFinished(navigation, loaderId) {\n this.#logger?.(LogType.debug, `finishCommandNavigation ${navigation.navigationId}, ${loaderId}`);\n if (loaderId !== undefined) {\n navigation.loaderId = loaderId;\n this.#loaderIdToNavigationsMap.set(loaderId, navigation);\n }\n navigation.isFragmentNavigation = loaderId === undefined;\n }\n frameStartedNavigating(url, loaderId, navigationType) {\n this.#logger?.(LogType.debug, `frameStartedNavigating ${url}, ${loaderId}`);\n if (this.#pendingNavigation &&\n this.#pendingNavigation?.loaderId !== undefined &&\n this.#pendingNavigation?.loaderId !== loaderId) {\n // If there is a pending navigation with loader id set, but not equal to the new\n // loader id, cancel pending navigation.\n this.#pendingNavigation?.fail('navigation canceled by concurrent navigation');\n this.#pendingNavigation = undefined;\n }\n if (this.#loaderIdToNavigationsMap.has(loaderId)) {\n const existingNavigation = this.#loaderIdToNavigationsMap.get(loaderId);\n // Navigation can be changed from `sameDocument` to `differentDocument`.\n existingNavigation.isFragmentNavigation =\n NavigationTracker.#isFragmentNavigation(navigationType);\n this.#pendingNavigation = existingNavigation;\n return;\n }\n const pendingNavigation = this.#pendingNavigation ?? this.createPendingNavigation(url, true);\n this.#loaderIdToNavigationsMap.set(loaderId, pendingNavigation);\n pendingNavigation.isFragmentNavigation =\n NavigationTracker.#isFragmentNavigation(navigationType);\n pendingNavigation.url = url;\n pendingNavigation.loaderId = loaderId;\n pendingNavigation.start();\n }\n static #isFragmentNavigation(navigationType) {\n // Page.frameStartedNavigating.navigationType can be one of the following values:\n // reload, reloadBypassingCache, restore, restoreWithPost, historySameDocument,\n // historyDifferentDocument, sameDocument, differentDocument.\n // https://chromedevtools.github.io/devtools-protocol/tot/Page/#event-frameStartedNavigating\n return ['historySameDocument', 'sameDocument'].includes(navigationType);\n }\n /**\n * If there is a navigation with the loaderId equals to the network request id, it means\n * that the navigation failed.\n */\n networkLoadingFailed(loaderId, errorText) {\n this.#loaderIdToNavigationsMap.get(loaderId)?.fail(errorText);\n }\n}\n//# sourceMappingURL=NavigationTracker.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nimport { ChromiumBidi, InvalidArgumentException, InvalidSelectorException, NoSuchElementException, NoSuchFrameException, NoSuchHistoryEntryException, NoSuchNodeException, UnableToCaptureScreenException, UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nimport { assert } from '../../../utils/assert.js';\nimport { Deferred } from '../../../utils/Deferred.js';\nimport { LogType } from '../../../utils/log.js';\nimport { getTimestamp } from '../../../utils/time.js';\nimport { inchesFromCm } from '../../../utils/unitConversions.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\nimport { getSharedId, parseSharedId } from '../script/SharedId.js';\nimport { WindowRealm } from '../script/WindowRealm.js';\nimport { NavigationResult, NavigationTracker, } from './NavigationTracker.js';\nexport class BrowsingContextImpl {\n static LOGGER_PREFIX = `${LogType.debug}:browsingContext`;\n /** Direct children browsing contexts. */\n #children = new Set();\n /** The ID of this browsing context. */\n #id;\n userContext;\n // Used for running helper scripts.\n #hiddenSandbox = uuidv4();\n #downloadIdToUrlMap = new Map();\n /**\n * The ID of the parent browsing context.\n * If null, this is a top-level context.\n */\n #loaderId;\n #parentId = null;\n #originalOpener;\n #lifecycle = {\n DOMContentLoaded: new Deferred(),\n load: new Deferred(),\n };\n #cdpTarget;\n #defaultRealmDeferred = new Deferred();\n #browsingContextStorage;\n #eventManager;\n #logger;\n #navigationTracker;\n #realmStorage;\n #configStorage;\n // Set when the user prompt is opened. Required to provide the type in closing event.\n #lastUserPromptType;\n constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) {\n this.#cdpTarget = cdpTarget;\n this.#id = id;\n this.#parentId = parentId;\n this.userContext = userContext;\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#configStorage = configStorage;\n this.#logger = logger;\n this.#originalOpener = originalOpener;\n // Register helper realm as hidden, so that it will not be reported to the user.\n this.#realmStorage.hiddenSandboxes.add(this.#hiddenSandbox);\n this.#navigationTracker = new NavigationTracker(url, id, eventManager, logger);\n }\n static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) {\n const context = new _a(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger);\n context.#initListeners();\n browsingContextStorage.addContext(context);\n if (!context.isTopLevelContext()) {\n context.parent.addChild(context.id);\n }\n // Hold on the `contextCreated` event until the target is unblocked. This is required,\n // as the parent of the context can be set later in case of reconnecting to an\n // existing browser instance + OOPiF.\n eventManager.registerPromiseEvent(context.targetUnblockedOrThrow().then(() => {\n return {\n kind: 'success',\n value: {\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.ContextCreated,\n params: {\n ...context.serializeToBidiValue(),\n // Hack to provide the initial URL of the context, as it can be changed\n // between the page target is attached and unblocked, as the page is not\n // fully paused in MPArch session (https://crbug.com/372842894).\n // TODO: remove once https://crbug.com/372842894 is addressed.\n url,\n },\n },\n };\n }, (error) => {\n return {\n kind: 'error',\n error,\n };\n }), context.id, ChromiumBidi.BrowsingContext.EventNames.ContextCreated);\n return context;\n }\n /**\n * @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable\n */\n get navigableId() {\n return this.#loaderId;\n }\n get navigationId() {\n return this.#navigationTracker.currentNavigationId;\n }\n dispose(emitContextDestroyed) {\n this.#navigationTracker.dispose();\n this.#realmStorage.deleteRealms({\n browsingContextId: this.id,\n });\n // Delete context from the parent.\n if (!this.isTopLevelContext()) {\n this.parent.#children.delete(this.id);\n }\n // Fail all ongoing navigations.\n this.#failLifecycleIfNotFinished();\n if (emitContextDestroyed) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.ContextDestroyed,\n params: this.serializeToBidiValue(null),\n }, this.id);\n }\n // Dispose children after the events are emitted.\n this.#deleteAllChildren();\n this.#eventManager.clearBufferedEvents(this.id);\n this.#browsingContextStorage.deleteContextById(this.id);\n }\n /** Returns the ID of this context. */\n get id() {\n return this.#id;\n }\n /** Returns the parent context ID. */\n get parentId() {\n return this.#parentId;\n }\n /** Sets the parent context ID and updates parent's children. */\n set parentId(parentId) {\n if (this.#parentId !== null) {\n this.#logger?.(LogType.debugError, 'Parent context already set');\n // Cannot do anything except logging, as throwing will stop event processing. So\n // just return,\n return;\n }\n this.#parentId = parentId;\n if (!this.isTopLevelContext()) {\n this.parent.addChild(this.id);\n }\n }\n /** Returns the parent context. */\n get parent() {\n if (this.parentId === null) {\n return null;\n }\n return this.#browsingContextStorage.getContext(this.parentId);\n }\n /** Returns all direct children contexts. */\n get directChildren() {\n return [...this.#children].map((id) => this.#browsingContextStorage.getContext(id));\n }\n /** Returns all children contexts, flattened. */\n get allChildren() {\n const children = this.directChildren;\n return children.concat(...children.map((child) => child.allChildren));\n }\n /**\n * Returns true if this is a top-level context.\n * This is the case whenever the parent context ID is null.\n */\n isTopLevelContext() {\n return this.#parentId === null;\n }\n get top() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let topContext = this;\n let parent = topContext.parent;\n while (parent) {\n topContext = parent;\n parent = topContext.parent;\n }\n return topContext;\n }\n addChild(childId) {\n this.#children.add(childId);\n }\n #deleteAllChildren(emitContextDestroyed = false) {\n this.directChildren.map((child) => child.dispose(emitContextDestroyed));\n }\n get cdpTarget() {\n return this.#cdpTarget;\n }\n updateCdpTarget(cdpTarget) {\n this.#cdpTarget = cdpTarget;\n this.#initListeners();\n }\n get url() {\n return this.#navigationTracker.url;\n }\n async lifecycleLoaded() {\n await this.#lifecycle.load;\n }\n async targetUnblockedOrThrow() {\n const result = await this.#cdpTarget.unblocked;\n if (result.kind === 'error') {\n throw result.error;\n }\n }\n /** Returns a sandbox for internal helper scripts which is not exposed to the user.*/\n async getOrCreateHiddenSandbox() {\n return await this.#getOrCreateSandboxInternal(this.#hiddenSandbox);\n }\n /** Returns a sandbox which is exposed to user. */\n async getOrCreateUserSandbox(sandbox) {\n const realm = await this.#getOrCreateSandboxInternal(sandbox);\n if (realm.isHidden()) {\n throw new NoSuchFrameException(`Realm \"${sandbox}\" not found`);\n }\n return realm;\n }\n async #getOrCreateSandboxInternal(sandbox) {\n if (sandbox === undefined || sandbox === '') {\n // Default realm is not guaranteed to be created at this point, so return a deferred.\n return await this.#defaultRealmDeferred;\n }\n let maybeSandboxes = this.#realmStorage.findRealms({\n browsingContextId: this.id,\n sandbox,\n });\n if (maybeSandboxes.length === 0) {\n await this.#cdpTarget.cdpClient.sendCommand('Page.createIsolatedWorld', {\n frameId: this.id,\n worldName: sandbox,\n });\n // `Runtime.executionContextCreated` should be emitted by the time the\n // previous command is done.\n maybeSandboxes = this.#realmStorage.findRealms({\n browsingContextId: this.id,\n sandbox,\n });\n assert(maybeSandboxes.length !== 0);\n }\n // It's possible for more than one sandbox to be created due to provisional\n // frames. In this case, it's always the first one (i.e. the oldest one)\n // that is more relevant since the user may have set that one up already\n // through evaluation.\n return maybeSandboxes[0];\n }\n /**\n * Implements https://w3c.github.io/webdriver-bidi/#get-the-navigable-info.\n */\n serializeToBidiValue(maxDepth = 0, addParentField = true) {\n return {\n context: this.#id,\n url: this.url,\n userContext: this.userContext,\n originalOpener: this.#originalOpener ?? null,\n clientWindow: `${this.cdpTarget.windowId}`,\n children: maxDepth === null || maxDepth > 0\n ? this.directChildren.map((c) => c.serializeToBidiValue(maxDepth === null ? maxDepth : maxDepth - 1, false))\n : null,\n ...(addParentField ? { parent: this.#parentId } : {}),\n };\n }\n onTargetInfoChanged(params) {\n this.#navigationTracker.onTargetInfoChanged(params.targetInfo.url);\n }\n #initListeners() {\n this.#cdpTarget.cdpClient.on('Network.loadingFailed', (params) => {\n // Detect navigation errors like `net::ERR_BLOCKED_BY_RESPONSE`.\n // Network related to navigation has request id equals to navigation's loader id.\n this.#navigationTracker.networkLoadingFailed(params.requestId, params.errorText);\n });\n this.#cdpTarget.cdpClient.on('Page.fileChooserOpened', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n if (this.#loaderId === undefined) {\n this.#logger?.(LogType.debugError, 'LoaderId should be defined when file upload is shown', params);\n return;\n }\n const element = params.backendNodeId === undefined\n ? undefined\n : {\n sharedId: getSharedId(this.id, this.#loaderId, params.backendNodeId),\n };\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.Input.EventNames.FileDialogOpened,\n params: {\n context: this.id,\n multiple: params.mode === 'selectMultiple',\n element,\n },\n }, this.id);\n });\n this.#cdpTarget.cdpClient.on('Page.frameNavigated', (params) => {\n if (this.id !== params.frame.id) {\n return;\n }\n this.#navigationTracker.frameNavigated(params.frame.url + (params.frame.urlFragment ?? ''), params.frame.loaderId, \n // `unreachableUrl` indicates if the navigation failed.\n params.frame.unreachableUrl);\n // At the point the page is initialized, all the nested iframes from the\n // previous page are detached and realms are destroyed.\n // Delete children from context.\n this.#deleteAllChildren();\n this.#documentChanged(params.frame.loaderId);\n });\n this.#cdpTarget.cdpClient.on('Page.frameStartedNavigating', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#navigationTracker.frameStartedNavigating(params.url, params.loaderId, params.navigationType);\n });\n this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#navigationTracker.navigatedWithinDocument(params.url, params.navigationType);\n if (params.navigationType === 'historyApi') {\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'browsingContext.historyUpdated',\n params: {\n context: this.id,\n timestamp: getTimestamp(),\n url: this.#navigationTracker.url,\n },\n }, this.id);\n return;\n }\n });\n this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n if (params.name === 'init') {\n this.#documentChanged(params.loaderId);\n return;\n }\n if (params.name === 'commit') {\n this.#loaderId = params.loaderId;\n return;\n }\n // If mapper attached to the page late, it might miss init and\n // commit events. In that case, save the first loaderId for this\n // frameId.\n if (!this.#loaderId) {\n this.#loaderId = params.loaderId;\n }\n // Ignore event from not current navigation.\n if (params.loaderId !== this.#loaderId) {\n return;\n }\n switch (params.name) {\n case 'DOMContentLoaded':\n if (!this.#navigationTracker.isInitialNavigation) {\n // Do not emit for the initial navigation.\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded,\n params: {\n context: this.id,\n navigation: this.#navigationTracker.currentNavigationId,\n timestamp: getTimestamp(),\n url: this.#navigationTracker.url,\n },\n }, this.id);\n }\n this.#lifecycle.DOMContentLoaded.resolve();\n break;\n case 'load':\n if (!this.#navigationTracker.isInitialNavigation) {\n // Do not emit for the initial navigation.\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.Load,\n params: {\n context: this.id,\n navigation: this.#navigationTracker.currentNavigationId,\n timestamp: getTimestamp(),\n url: this.#navigationTracker.url,\n },\n }, this.id);\n }\n // The initial navigation is finished.\n this.#navigationTracker.loadPageEvent(params.loaderId);\n this.#lifecycle.load.resolve();\n break;\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => {\n const { auxData, name, uniqueId, id } = params.context;\n if (!auxData || auxData.frameId !== this.id) {\n return;\n }\n if (auxData.type === 'isolated' && name === '') {\n // This is an internal isolated realm and it is not expected to be exposed to\n // WebDriver BiDi users. Ignore it.\n return;\n }\n let origin;\n let sandbox;\n // Only these execution contexts are supported for now.\n switch (auxData.type) {\n case 'isolated':\n sandbox = name;\n // Sandbox should have the same origin as the context itself, but in CDP\n // it has an empty one.\n if (!this.#defaultRealmDeferred.isFinished) {\n this.#logger?.(LogType.debugError, 'Unexpectedly, isolated realm created before the default one');\n }\n origin = this.#defaultRealmDeferred.isFinished\n ? this.#defaultRealmDeferred.result.origin\n : // This fallback is not expected to be ever reached.\n '';\n break;\n case 'default':\n origin = serializeOrigin(params.context.origin);\n break;\n default:\n return;\n }\n const realm = new WindowRealm(this.id, this.#browsingContextStorage, this.#cdpTarget.cdpClient, this.#eventManager, id, this.#logger, origin, uniqueId, this.#realmStorage, sandbox);\n if (auxData.isDefault) {\n this.#defaultRealmDeferred.resolve(realm);\n // Initialize ChannelProxy listeners for all the channels of all the\n // preload scripts related to this BrowsingContext.\n // TODO: extend for not default realms by the sandbox name.\n void Promise.all(this.#cdpTarget\n .getChannels()\n .map((channel) => channel.startListenerFromWindow(realm, this.#eventManager)));\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextDestroyed', (params) => {\n if (this.#defaultRealmDeferred.isFinished &&\n this.#defaultRealmDeferred.result.executionContextId ===\n params.executionContextId) {\n this.#defaultRealmDeferred = new Deferred();\n }\n this.#realmStorage.deleteRealms({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.executionContextId,\n });\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextsCleared', () => {\n if (!this.#defaultRealmDeferred.isFinished) {\n this.#defaultRealmDeferred.reject(new UnknownErrorException('execution contexts cleared'));\n }\n this.#defaultRealmDeferred = new Deferred();\n this.#realmStorage.deleteRealms({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n });\n });\n this.#cdpTarget.cdpClient.on('Page.javascriptDialogClosed', (params) => {\n // Checking for `params.frameId` for comptaibility with Chrome\n // versions that do not have a frameId. TODO: remove once\n // https://crrev.com/c/6487891 is in stable.\n if (params.frameId && this.id !== params.frameId) {\n return;\n }\n if (!params.frameId &&\n this.#parentId &&\n this.#cdpTarget.cdpClient !==\n this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget\n .cdpClient) {\n // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this\n // heuristic emits the event only for top-level per-cdp target context, ignoring\n // the event for same-process iframes. So the event will be emitted only once per\n // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable.\n return;\n }\n const accepted = params.result;\n if (this.#lastUserPromptType === undefined) {\n this.#logger?.(LogType.debugError, 'Unexpectedly no opening prompt event before closing one');\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.UserPromptClosed,\n params: {\n context: this.id,\n accepted,\n // `lastUserPromptType` should never be undefined here, so fallback to\n // `UNKNOWN`. The fallback is required to prevent tests from hanging while\n // waiting for the closing event. The cast is required, as the `UNKNOWN` value\n // is not standard.\n type: this.#lastUserPromptType ??\n 'UNKNOWN',\n userText: accepted && params.userInput ? params.userInput : undefined,\n },\n }, this.id);\n this.#lastUserPromptType = undefined;\n });\n this.#cdpTarget.cdpClient.on('Page.javascriptDialogOpening', (params) => {\n // Checking for `params.frameId` for comptaibility with Chrome\n // versions that do not have a frameId. TODO: remove once\n // https://crrev.com/c/6487891 is in stable.\n if (params.frameId && this.id !== params.frameId) {\n return;\n }\n if (!params.frameId &&\n this.#parentId &&\n this.#cdpTarget.cdpClient !==\n this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget\n .cdpClient) {\n // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this\n // heuristic emits the event only for top-level per-cdp target context, ignoring\n // the event for same-process iframes. So the event will be emitted only once per\n // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable.\n return;\n }\n const promptType = _a.#getPromptType(params.type);\n // Set the last prompt type to provide it in closing event.\n this.#lastUserPromptType = promptType;\n const promptHandler = this.#getPromptHandler(promptType);\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.UserPromptOpened,\n params: {\n context: this.id,\n handler: promptHandler,\n type: promptType,\n message: params.message,\n ...(params.type === 'prompt'\n ? { defaultValue: params.defaultPrompt }\n : {}),\n },\n }, this.id);\n switch (promptHandler) {\n // Based on `unhandledPromptBehavior`, check if the prompt should be handled\n // automatically (`accept`, `dismiss`) or wait for the user to do it.\n case \"accept\" /* Session.UserPromptHandlerType.Accept */:\n void this.handleUserPrompt(true);\n break;\n case \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */:\n void this.handleUserPrompt(false);\n break;\n case \"ignore\" /* Session.UserPromptHandlerType.Ignore */:\n break;\n }\n });\n this.#cdpTarget.browserCdpClient.on('Browser.downloadWillBegin', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#downloadIdToUrlMap.set(params.guid, params.url);\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.DownloadWillBegin,\n params: {\n context: this.id,\n suggestedFilename: params.suggestedFilename,\n navigation: params.guid,\n timestamp: getTimestamp(),\n url: params.url,\n },\n }, this.id);\n });\n this.#cdpTarget.browserCdpClient.on('Browser.downloadProgress', (params) => {\n if (!this.#downloadIdToUrlMap.has(params.guid)) {\n // The event is not related to this browsing context.\n return;\n }\n if (params.state === 'inProgress') {\n // No need in reporting progress.\n return;\n }\n const url = this.#downloadIdToUrlMap.get(params.guid);\n switch (params.state) {\n case 'canceled':\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.DownloadEnd,\n params: {\n status: 'canceled',\n context: this.id,\n navigation: params.guid,\n timestamp: getTimestamp(),\n url,\n },\n }, this.id);\n break;\n case 'completed':\n this.#eventManager.registerEvent({\n type: 'event',\n method: ChromiumBidi.BrowsingContext.EventNames.DownloadEnd,\n params: {\n filepath: params.filePath ?? null,\n status: 'complete',\n context: this.id,\n navigation: params.guid,\n timestamp: getTimestamp(),\n url,\n },\n }, this.id);\n break;\n default:\n // Unreachable.\n throw new UnknownErrorException(`Unknown download state: ${params.state}`);\n }\n });\n }\n static #getPromptType(cdpType) {\n switch (cdpType) {\n case 'alert':\n return \"alert\" /* BrowsingContext.UserPromptType.Alert */;\n case 'beforeunload':\n return \"beforeunload\" /* BrowsingContext.UserPromptType.Beforeunload */;\n case 'confirm':\n return \"confirm\" /* BrowsingContext.UserPromptType.Confirm */;\n case 'prompt':\n return \"prompt\" /* BrowsingContext.UserPromptType.Prompt */;\n }\n }\n /**\n * Returns either custom UserContext's prompt handler, global or default one.\n */\n #getPromptHandler(promptType) {\n const defaultPromptHandler = \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */;\n const contextConfig = this.#configStorage.getActiveConfig(this.top.id, this.userContext);\n switch (promptType) {\n case \"alert\" /* BrowsingContext.UserPromptType.Alert */:\n return (contextConfig.userPromptHandler?.alert ??\n contextConfig.userPromptHandler?.default ??\n defaultPromptHandler);\n case \"beforeunload\" /* BrowsingContext.UserPromptType.Beforeunload */:\n return (contextConfig.userPromptHandler?.beforeUnload ??\n contextConfig.userPromptHandler?.default ??\n \"accept\" /* Session.UserPromptHandlerType.Accept */);\n case \"confirm\" /* BrowsingContext.UserPromptType.Confirm */:\n return (contextConfig.userPromptHandler?.confirm ??\n contextConfig.userPromptHandler?.default ??\n defaultPromptHandler);\n case \"prompt\" /* BrowsingContext.UserPromptType.Prompt */:\n return (contextConfig.userPromptHandler?.prompt ??\n contextConfig.userPromptHandler?.default ??\n defaultPromptHandler);\n }\n }\n #documentChanged(loaderId) {\n if (loaderId === undefined || this.#loaderId === loaderId) {\n return;\n }\n // Document changed.\n this.#resetLifecycleIfFinished();\n this.#loaderId = loaderId;\n // Delete all child iframes and notify about top level destruction.\n this.#deleteAllChildren(true);\n }\n #resetLifecycleIfFinished() {\n if (this.#lifecycle.DOMContentLoaded.isFinished) {\n this.#lifecycle.DOMContentLoaded = new Deferred();\n }\n else {\n this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (DOMContentLoaded)');\n }\n if (this.#lifecycle.load.isFinished) {\n this.#lifecycle.load = new Deferred();\n }\n else {\n this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (load)');\n }\n }\n #failLifecycleIfNotFinished() {\n if (!this.#lifecycle.DOMContentLoaded.isFinished) {\n this.#lifecycle.DOMContentLoaded.reject(new UnknownErrorException('navigation canceled'));\n }\n if (!this.#lifecycle.load.isFinished) {\n this.#lifecycle.load.reject(new UnknownErrorException('navigation canceled'));\n }\n }\n async navigate(url, wait) {\n try {\n new URL(url);\n }\n catch {\n throw new InvalidArgumentException(`Invalid URL: ${url}`);\n }\n const navigationState = this.#navigationTracker.createPendingNavigation(url);\n // Navigate and wait for the result. If the navigation fails, the error event is\n // emitted and the promise is rejected.\n const cdpNavigatePromise = (async () => {\n const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', {\n url,\n frameId: this.id,\n });\n if (cdpNavigateResult.errorText) {\n // If navigation failed, no pending navigation is left.\n this.#navigationTracker.failNavigation(navigationState, cdpNavigateResult.errorText);\n throw new UnknownErrorException(cdpNavigateResult.errorText);\n }\n this.#navigationTracker.navigationCommandFinished(navigationState, cdpNavigateResult.loaderId);\n this.#documentChanged(cdpNavigateResult.loaderId);\n })();\n // Wait for either the navigation is finished or canceled by another navigation.\n const result = await Promise.race([\n // No `loaderId` means same-document navigation.\n this.#waitNavigation(wait, cdpNavigatePromise, navigationState),\n // Throw an error if the navigation is canceled.\n navigationState.finished,\n ]);\n if (result instanceof NavigationResult) {\n if (\n // TODO: check after decision on the spec is done:\n // https://github.com/w3c/webdriver-bidi/issues/799.\n result.eventName === \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */ ||\n result.eventName === \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */) {\n throw new UnknownErrorException(result.message ?? 'unknown exception');\n }\n }\n return {\n navigation: navigationState.navigationId,\n // Url can change due to redirects. Get the one from commandNavigation.\n url: navigationState.url,\n };\n }\n async #waitNavigation(wait, cdpCommandPromise, navigationState) {\n await Promise.all([navigationState.committed, cdpCommandPromise]);\n if (wait === \"none\" /* BrowsingContext.ReadinessState.None */) {\n return;\n }\n if (navigationState.isFragmentNavigation === true) {\n // After the cdp command is finished, the `fragmentNavigation` should be already\n // settled. If it's the fragment navigation, wait for the `navigationStatus` to be\n // finished, which happens after the fragment navigation happened. No need to wait for\n // DOM events.\n await navigationState.finished;\n return;\n }\n if (wait === \"interactive\" /* BrowsingContext.ReadinessState.Interactive */) {\n await this.#lifecycle.DOMContentLoaded;\n return;\n }\n if (wait === \"complete\" /* BrowsingContext.ReadinessState.Complete */) {\n await this.#lifecycle.load;\n return;\n }\n throw new InvalidArgumentException(`Wait condition ${wait} is not supported`);\n }\n // TODO: support concurrent navigations analogous to `navigate`.\n async reload(ignoreCache, wait) {\n await this.targetUnblockedOrThrow();\n this.#resetLifecycleIfFinished();\n const navigationState = this.#navigationTracker.createPendingNavigation(this.#navigationTracker.url);\n const cdpReloadPromise = this.#cdpTarget.cdpClient.sendCommand('Page.reload', {\n ignoreCache,\n });\n // Wait for either the navigation is finished or canceled by another navigation.\n const result = await Promise.race([\n // No `loaderId` means same-document navigation.\n this.#waitNavigation(wait, cdpReloadPromise, navigationState),\n // Throw an error if the navigation is canceled.\n navigationState.finished,\n ]);\n if (result instanceof NavigationResult) {\n if (result.eventName === \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */ ||\n result.eventName === \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */) {\n throw new UnknownErrorException(result.message ?? 'unknown exception');\n }\n }\n return {\n navigation: navigationState.navigationId,\n // Url can change due to redirects. Get the one from commandNavigation.\n url: navigationState.url,\n };\n }\n async setViewport(viewport, devicePixelRatio, screenOrientation) {\n // Set the target's viewport.\n const config = this.#configStorage.getActiveConfig(this.id, this.userContext);\n await this.cdpTarget.setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, config.screenArea ?? null, config.scrollbarType ?? null);\n }\n async handleUserPrompt(accept, userText) {\n await this.top.#cdpTarget.cdpClient.sendCommand('Page.handleJavaScriptDialog', {\n accept: accept ?? true,\n promptText: userText,\n });\n }\n async activate() {\n await this.#cdpTarget.cdpClient.sendCommand('Page.bringToFront');\n }\n async captureScreenshot(params) {\n if (!this.isTopLevelContext()) {\n throw new UnsupportedOperationException(`Non-top-level 'context' (${params.context}) is currently not supported`);\n }\n const formatParameters = getImageFormatParameters(params);\n let captureBeyondViewport = false;\n let script;\n params.origin ??= 'viewport';\n switch (params.origin) {\n case 'document': {\n script = String(() => {\n const element = document.documentElement;\n return {\n x: 0,\n y: 0,\n width: element.scrollWidth,\n height: element.scrollHeight,\n };\n });\n captureBeyondViewport = true;\n break;\n }\n case 'viewport': {\n script = String(() => {\n const viewport = window.visualViewport;\n return {\n x: viewport.pageLeft,\n y: viewport.pageTop,\n width: viewport.width,\n height: viewport.height,\n };\n });\n break;\n }\n }\n const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox();\n const originResult = await hiddenSandboxRealm.callFunction(script, false);\n assert(originResult.type === 'success');\n const origin = deserializeDOMRect(originResult.result);\n assert(origin);\n let rect = origin;\n if (params.clip) {\n const clip = params.clip;\n if (params.origin === 'viewport' && clip.type === 'box') {\n // For viewport origin, the clip is relative to the viewport, while the CDP\n // screenshot is relative to the document. So correction for the viewport position\n // is required.\n clip.x += origin.x;\n clip.y += origin.y;\n }\n rect = getIntersectionRect(await this.#parseRect(clip), origin);\n }\n if (rect.width === 0 || rect.height === 0) {\n throw new UnableToCaptureScreenException(`Unable to capture screenshot with zero dimensions: width=${rect.width}, height=${rect.height}`);\n }\n return await this.#cdpTarget.cdpClient.sendCommand('Page.captureScreenshot', {\n clip: { ...rect, scale: 1.0 },\n ...formatParameters,\n captureBeyondViewport,\n });\n }\n async print(params) {\n if (!this.isTopLevelContext()) {\n throw new UnsupportedOperationException('Printing of non-top level contexts is not supported');\n }\n const cdpParams = {};\n if (params.background !== undefined) {\n cdpParams.printBackground = params.background;\n }\n if (params.margin?.bottom !== undefined) {\n cdpParams.marginBottom = inchesFromCm(params.margin.bottom);\n }\n if (params.margin?.left !== undefined) {\n cdpParams.marginLeft = inchesFromCm(params.margin.left);\n }\n if (params.margin?.right !== undefined) {\n cdpParams.marginRight = inchesFromCm(params.margin.right);\n }\n if (params.margin?.top !== undefined) {\n cdpParams.marginTop = inchesFromCm(params.margin.top);\n }\n if (params.orientation !== undefined) {\n cdpParams.landscape = params.orientation === 'landscape';\n }\n if (params.page?.height !== undefined) {\n cdpParams.paperHeight = inchesFromCm(params.page.height);\n }\n if (params.page?.width !== undefined) {\n cdpParams.paperWidth = inchesFromCm(params.page.width);\n }\n if (params.pageRanges !== undefined) {\n for (const range of params.pageRanges) {\n if (typeof range === 'number') {\n continue;\n }\n const rangeParts = range.split('-');\n if (rangeParts.length < 1 || rangeParts.length > 2) {\n throw new InvalidArgumentException(`Invalid page range: ${range} is not a valid integer range.`);\n }\n if (rangeParts.length === 1) {\n void parseInteger(rangeParts[0] ?? '');\n continue;\n }\n let lowerBound;\n let upperBound;\n const [rangeLowerPart = '', rangeUpperPart = ''] = rangeParts;\n if (rangeLowerPart === '') {\n lowerBound = 1;\n }\n else {\n lowerBound = parseInteger(rangeLowerPart);\n }\n if (rangeUpperPart === '') {\n upperBound = Number.MAX_SAFE_INTEGER;\n }\n else {\n upperBound = parseInteger(rangeUpperPart);\n }\n if (lowerBound > upperBound) {\n throw new InvalidArgumentException(`Invalid page range: ${rangeLowerPart} > ${rangeUpperPart}`);\n }\n }\n cdpParams.pageRanges = params.pageRanges.join(',');\n }\n if (params.scale !== undefined) {\n cdpParams.scale = params.scale;\n }\n if (params.shrinkToFit !== undefined) {\n cdpParams.preferCSSPageSize = !params.shrinkToFit;\n }\n try {\n const result = await this.#cdpTarget.cdpClient.sendCommand('Page.printToPDF', cdpParams);\n return {\n data: result.data,\n };\n }\n catch (error) {\n // Effectively zero dimensions.\n if (error.message ===\n 'invalid print parameters: content area is empty') {\n throw new UnsupportedOperationException(error.message);\n }\n throw error;\n }\n }\n /**\n * See\n * https://w3c.github.io/webdriver-bidi/#:~:text=If%20command%20parameters%20contains%20%22clip%22%3A\n */\n async #parseRect(clip) {\n switch (clip.type) {\n case 'box':\n return { x: clip.x, y: clip.y, width: clip.width, height: clip.height };\n case 'element': {\n const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox();\n const result = await hiddenSandboxRealm.callFunction(String((element) => {\n return element instanceof Element;\n }), false, { type: 'undefined' }, [clip.element]);\n if (result.type === 'exception') {\n throw new NoSuchElementException(`Element '${clip.element.sharedId}' was not found`);\n }\n assert(result.result.type === 'boolean');\n if (!result.result.value) {\n throw new NoSuchElementException(`Node '${clip.element.sharedId}' is not an Element`);\n }\n {\n const result = await hiddenSandboxRealm.callFunction(String((element) => {\n const rect = element.getBoundingClientRect();\n return {\n x: rect.x,\n y: rect.y,\n height: rect.height,\n width: rect.width,\n };\n }), false, { type: 'undefined' }, [clip.element]);\n assert(result.type === 'success');\n const rect = deserializeDOMRect(result.result);\n if (!rect) {\n throw new UnableToCaptureScreenException(`Could not get bounding box for Element '${clip.element.sharedId}'`);\n }\n return rect;\n }\n }\n }\n }\n async close() {\n await this.#cdpTarget.cdpClient.sendCommand('Page.close');\n }\n async traverseHistory(delta) {\n if (delta === 0) {\n return;\n }\n const history = await this.#cdpTarget.cdpClient.sendCommand('Page.getNavigationHistory');\n const entry = history.entries[history.currentIndex + delta];\n if (!entry) {\n throw new NoSuchHistoryEntryException(`No history entry at delta ${delta}`);\n }\n await this.#cdpTarget.cdpClient.sendCommand('Page.navigateToHistoryEntry', {\n entryId: entry.id,\n });\n }\n async toggleModulesIfNeeded() {\n await Promise.all([\n this.#cdpTarget.toggleNetworkIfNeeded(),\n this.#cdpTarget.toggleDeviceAccessIfNeeded(),\n this.#cdpTarget.togglePreloadIfNeeded(),\n ]);\n }\n async locateNodes(params) {\n // TODO: create a dedicated sandbox instead of `#defaultRealm`.\n return await this.#locateNodesByLocator(await this.#defaultRealmDeferred, params.locator, params.startNodes ?? [], params.maxNodeCount, params.serializationOptions);\n }\n #getLocatorDelegate(locator, maxNodeCount, startNodes) {\n switch (locator.type) {\n case 'context':\n case 'accessibility':\n throw new Error('Unreachable');\n case 'css':\n return {\n functionDeclaration: String((cssSelector, maxNodeCount, ...startNodes) => {\n const locateNodesUsingCss = (element) => {\n if (!(element instanceof HTMLElement ||\n element instanceof Document ||\n element instanceof DocumentFragment ||\n element instanceof SVGElement)) {\n throw new Error('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment');\n }\n return [...element.querySelectorAll(cssSelector)];\n };\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingCss(startNode))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `cssSelector`\n { type: 'string', value: locator.value },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `startNodes`\n ...startNodes,\n ],\n };\n case 'xpath':\n return {\n functionDeclaration: String((xPathSelector, maxNodeCount, ...startNodes) => {\n // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-xpath\n const evaluator = new XPathEvaluator();\n const expression = evaluator.createExpression(xPathSelector);\n const locateNodesUsingXpath = (element) => {\n const xPathResult = expression.evaluate(element, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n const returnedNodes = [];\n for (let i = 0; i < xPathResult.snapshotLength; i++) {\n returnedNodes.push(xPathResult.snapshotItem(i));\n }\n return returnedNodes;\n };\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingXpath(startNode))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `xPathSelector`\n { type: 'string', value: locator.value },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `startNodes`\n ...startNodes,\n ],\n };\n case 'innerText':\n // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-inner-text\n if (locator.value === '') {\n throw new InvalidSelectorException('innerText locator cannot be empty');\n }\n return {\n functionDeclaration: String((innerTextSelector, fullMatch, ignoreCase, maxNodeCount, maxDepth, ...startNodes) => {\n const searchText = ignoreCase\n ? innerTextSelector.toUpperCase()\n : innerTextSelector;\n const locateNodesUsingInnerText = (node, currentMaxDepth) => {\n const returnedNodes = [];\n if (node instanceof DocumentFragment ||\n node instanceof Document) {\n const children = [...node.children];\n children.forEach((child) => \n // `currentMaxDepth` is not decremented intentionally according to\n // https://github.com/w3c/webdriver-bidi/pull/713.\n returnedNodes.push(...locateNodesUsingInnerText(child, currentMaxDepth)));\n return returnedNodes;\n }\n if (!(node instanceof HTMLElement)) {\n return [];\n }\n const element = node;\n const nodeInnerText = ignoreCase\n ? element.innerText?.toUpperCase()\n : element.innerText;\n if (!nodeInnerText.includes(searchText)) {\n return [];\n }\n const childNodes = [];\n for (const child of element.children) {\n if (child instanceof HTMLElement) {\n childNodes.push(child);\n }\n }\n if (childNodes.length === 0) {\n if (fullMatch && nodeInnerText === searchText) {\n returnedNodes.push(element);\n }\n else {\n if (!fullMatch) {\n // Note: `nodeInnerText.includes(searchText)` is already checked\n returnedNodes.push(element);\n }\n }\n }\n else {\n const childNodeMatches = \n // Don't search deeper if `maxDepth` is reached.\n currentMaxDepth <= 0\n ? []\n : childNodes\n .map((child) => locateNodesUsingInnerText(child, currentMaxDepth - 1))\n .flat(1);\n if (childNodeMatches.length === 0) {\n // Note: `nodeInnerText.includes(searchText)` is already checked\n if (!fullMatch || nodeInnerText === searchText) {\n returnedNodes.push(element);\n }\n }\n else {\n returnedNodes.push(...childNodeMatches);\n }\n }\n // TODO: stop search early if `maxNodeCount` is reached.\n return returnedNodes;\n };\n // TODO: stop search early if `maxNodeCount` is reached.\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingInnerText(startNode, maxDepth))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `innerTextSelector`\n { type: 'string', value: locator.value },\n // `fullMatch` with default `true`.\n { type: 'boolean', value: locator.matchType !== 'partial' },\n // `ignoreCase` with default `false`.\n { type: 'boolean', value: locator.ignoreCase === true },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `maxDepth` with default `1000` (same as default full serialization depth).\n { type: 'number', value: locator.maxDepth ?? 1000 },\n // `startNodes`\n ...startNodes,\n ],\n };\n }\n }\n async #locateNodesByLocator(realm, locator, startNodes, maxNodeCount, serializationOptions) {\n if (locator.type === 'context') {\n return await this.#locateNodesByContextLocator(locator, startNodes, realm, serializationOptions);\n }\n if (locator.type === 'accessibility') {\n return await this.#locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm);\n }\n // Select by injecting a script into the realm.\n const locatorDelegate = this.#getLocatorDelegate(locator, maxNodeCount, startNodes);\n serializationOptions = {\n ...serializationOptions,\n // The returned object is an array of nodes, so no need in deeper JS serialization.\n maxObjectDepth: 1,\n };\n const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, false, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, \"none\" /* Script.ResultOwnership.None */, serializationOptions);\n if (locatorResult.type !== 'success') {\n this.#logger?.(_a.LOGGER_PREFIX, 'Failed locateNodesByLocator', locatorResult);\n // Heuristic to detect invalid selector for different types of selectors.\n if (\n // CSS selector.\n locatorResult.exceptionDetails.text?.endsWith('is not a valid selector.') ||\n // XPath selector.\n locatorResult.exceptionDetails.text?.endsWith('is not a valid XPath expression.')) {\n throw new InvalidSelectorException(`Not valid selector ${typeof locator.value === 'string' ? locator.value : JSON.stringify(locator.value)}`);\n }\n // Heuristic to detect if the `startNode` is not an `HTMLElement` in css selector.\n if (locatorResult.exceptionDetails.text ===\n 'Error: startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment') {\n throw new InvalidArgumentException('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment');\n }\n throw new UnknownErrorException(`Unexpected error in selector script: ${locatorResult.exceptionDetails.text}`);\n }\n if (locatorResult.result.type !== 'array') {\n throw new UnknownErrorException(`Unexpected selector script result type: ${locatorResult.result.type}`);\n }\n // Check there are no non-node elements in the result.\n const nodes = locatorResult.result.value.map((value) => {\n if (value.type !== 'node') {\n throw new UnknownErrorException(`Unexpected selector script result element: ${value.type}`);\n }\n return value;\n });\n return { nodes };\n }\n async #locateNodesByContextLocator(locator, startNodes, realm, serializationOptions) {\n if (startNodes.length !== 0) {\n throw new InvalidArgumentException('Start nodes are not supported');\n }\n const contextId = locator.value.context;\n if (!contextId) {\n throw new InvalidSelectorException('Invalid context');\n }\n const context = this.#browsingContextStorage.getContext(contextId);\n const parent = context.parent;\n if (!parent) {\n throw new InvalidArgumentException('This context has no container');\n }\n try {\n const { backendNodeId } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', {\n frameId: contextId,\n });\n const { object } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', {\n backendNodeId,\n });\n const locatorResult = await realm.callFunction(`function () { return this; }`, false, { handle: object.objectId }, [], \"none\" /* Script.ResultOwnership.None */, serializationOptions);\n if (locatorResult.type === 'exception') {\n throw new Error('Unknown exception');\n }\n return { nodes: [locatorResult.result] };\n }\n catch {\n throw new InvalidArgumentException('Context does not exist');\n }\n }\n async #locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm) {\n if (!locator.value.name && !locator.value.role) {\n throw new InvalidSelectorException('Either name or role has to be specified');\n }\n await this.#cdpTarget.cdpClient.sendCommand('Accessibility.enable');\n const startBackendNodeIds = [];\n if (startNodes.length === 0) {\n const { root: documentRoot } = await this.#cdpTarget.cdpClient.sendCommand('DOM.getDocument');\n startBackendNodeIds.push(documentRoot.backendNodeId);\n }\n else {\n for (const node of startNodes) {\n if (node.sharedId) {\n const parsed = parseSharedId(node.sharedId);\n if (!parsed) {\n throw new NoSuchNodeException(`Invalid sharedId: ${node.sharedId}`);\n }\n startBackendNodeIds.push(parsed.backendNodeId);\n }\n else {\n if (node.handle) {\n const { nodeId } = await this.#cdpTarget.cdpClient.sendCommand('DOM.requestNode', {\n objectId: node.handle,\n });\n const { node: describedNode } = await this.#cdpTarget.cdpClient.sendCommand('DOM.describeNode', {\n nodeId,\n });\n startBackendNodeIds.push(describedNode.backendNodeId);\n }\n else {\n throw new NoSuchNodeException('Start node must have sharedId or handle');\n }\n }\n }\n }\n const matchedBackendNodeIds = new Set();\n for (const backendNodeId of startBackendNodeIds) {\n const { nodes } = await this.#cdpTarget.cdpClient.sendCommand('Accessibility.queryAXTree', {\n backendNodeId,\n accessibleName: locator.value.name,\n role: locator.value.role,\n });\n for (const node of nodes) {\n if (node.backendDOMNodeId && node.role?.type === 'role') {\n matchedBackendNodeIds.add(node.backendDOMNodeId);\n if (maxNodeCount !== undefined &&\n maxNodeCount > 0 &&\n matchedBackendNodeIds.size >= maxNodeCount) {\n break;\n }\n }\n }\n }\n const resultNodes = await Promise.all(Array.from(matchedBackendNodeIds).map(async (backendNodeId) => {\n const { object } = await this.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', {\n backendNodeId,\n });\n // We need to use `serializeCdpObject` to convert it to BiDi format.\n // We use `Script.ResultOwnership.None` as `locateNodes` returns weak references (nodes).\n return await realm.serializeCdpObject(object, \"none\" /* Script.ResultOwnership.None */);\n }));\n return {\n nodes: resultNodes.filter((result) => result.type === 'node'),\n };\n }\n #getAllRelatedCdpTargets() {\n const targets = new Set();\n targets.add(this.cdpTarget);\n this.allChildren.forEach((c) => targets.add(c.cdpTarget));\n return Array.from(targets);\n }\n async setTimezoneOverride(timezone) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTimezoneOverride(timezone)));\n }\n async setLocaleOverride(locale) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setLocaleOverride(locale)));\n }\n async setGeolocationOverride(geolocation) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setGeolocationOverride(geolocation)));\n }\n async setScriptingEnabled(scriptingEnabled) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setScriptingEnabled(scriptingEnabled)));\n }\n async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints)));\n }\n async setEmulatedNetworkConditions(networkConditions) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setEmulatedNetworkConditions(networkConditions)));\n }\n async setTouchOverride(maxTouchPoints) {\n await Promise.allSettled(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTouchOverride(maxTouchPoints)));\n }\n async setExtraHeaders(cdpExtraHeaders) {\n await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setExtraHeaders(cdpExtraHeaders)));\n }\n async setScrollbarTypeOverride(scrollbarType) {\n const config = this.#configStorage.getActiveConfig(this.id, this.userContext);\n await this.cdpTarget.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, scrollbarType);\n }\n}\n_a = BrowsingContextImpl;\nexport function serializeOrigin(origin) {\n // https://html.spec.whatwg.org/multipage/origin.html#ascii-serialisation-of-an-origin\n if (['://', ''].includes(origin)) {\n origin = 'null';\n }\n return origin;\n}\nfunction getImageFormatParameters(params) {\n const { quality, type } = params.format ?? {\n type: 'image/png',\n };\n switch (type) {\n case 'image/png': {\n return { format: 'png' };\n }\n case 'image/jpeg': {\n return {\n format: 'jpeg',\n ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }),\n };\n }\n case 'image/webp': {\n return {\n format: 'webp',\n ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }),\n };\n }\n }\n throw new InvalidArgumentException(`Image format '${type}' is not a supported format`);\n}\nfunction deserializeDOMRect(result) {\n if (result.type !== 'object' || result.value === undefined) {\n return;\n }\n const x = result.value.find(([key]) => {\n return key === 'x';\n })?.[1];\n const y = result.value.find(([key]) => {\n return key === 'y';\n })?.[1];\n const height = result.value.find(([key]) => {\n return key === 'height';\n })?.[1];\n const width = result.value.find(([key]) => {\n return key === 'width';\n })?.[1];\n if (x?.type !== 'number' ||\n y?.type !== 'number' ||\n height?.type !== 'number' ||\n width?.type !== 'number') {\n return;\n }\n return {\n x: x.value,\n y: y.value,\n width: width.value,\n height: height.value,\n };\n}\n/** @see https://w3c.github.io/webdriver-bidi/#normalize-rect */\nfunction normalizeRect(box) {\n return {\n ...(box.width < 0\n ? {\n x: box.x + box.width,\n width: -box.width,\n }\n : {\n x: box.x,\n width: box.width,\n }),\n ...(box.height < 0\n ? {\n y: box.y + box.height,\n height: -box.height,\n }\n : {\n y: box.y,\n height: box.height,\n }),\n };\n}\n/** @see https://w3c.github.io/webdriver-bidi/#rectangle-intersection */\nfunction getIntersectionRect(first, second) {\n first = normalizeRect(first);\n second = normalizeRect(second);\n const x = Math.max(first.x, second.x);\n const y = Math.max(first.y, second.y);\n return {\n x,\n y,\n width: Math.max(Math.min(first.x + first.width, second.x + second.width) - x, 0),\n height: Math.max(Math.min(first.y + first.height, second.y + second.height) - y, 0),\n };\n}\nfunction parseInteger(value) {\n value = value.trim();\n if (!/^[0-9]+$/.test(value)) {\n throw new InvalidArgumentException(`Invalid integer: ${value}`);\n }\n return parseInt(value);\n}\n//# sourceMappingURL=BrowsingContextImpl.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Realm } from './Realm.js';\nexport class WorkerRealm extends Realm {\n #realmType;\n #ownerRealms;\n constructor(cdpClient, eventManager, executionContextId, logger, origin, ownerRealms, realmId, realmStorage, realmType) {\n super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage);\n this.#ownerRealms = ownerRealms;\n this.#realmType = realmType;\n this.initialize();\n }\n get associatedBrowsingContexts() {\n return this.#ownerRealms.flatMap((realm) => realm.associatedBrowsingContexts);\n }\n get realmType() {\n return this.#realmType;\n }\n get source() {\n return {\n realm: this.realmId,\n // This is a hack to make Puppeteer able to track workers.\n // TODO: remove after Puppeteer tracks workers by owners and use the base version.\n context: this.associatedBrowsingContexts[0]?.id,\n };\n }\n get realmInfo() {\n const owners = this.#ownerRealms.map((realm) => realm.realmId);\n const { realmType } = this;\n switch (realmType) {\n case 'dedicated-worker': {\n const owner = owners[0];\n if (owner === undefined || owners.length !== 1) {\n throw new Error('Dedicated worker must have exactly one owner');\n }\n return {\n ...this.baseInfo,\n type: realmType,\n owners: [owner],\n };\n }\n case 'service-worker':\n case 'shared-worker': {\n return {\n ...this.baseInfo,\n type: realmType,\n };\n }\n }\n }\n}\n//# sourceMappingURL=WorkerRealm.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { assert } from '../../../utils/assert.js';\nconst specifiers = ['%s', '%d', '%i', '%f', '%o', '%O', '%c'];\nfunction isFormatSpecifier(str) {\n return specifiers.some((spec) => str.includes(spec));\n}\n/**\n * @param args input remote values to be format printed\n * @return parsed text of the remote values in specific format\n */\nexport function logMessageFormatter(args) {\n let output = '';\n const argFormat = args[0].value.toString();\n const argValues = args.slice(1, undefined);\n const tokens = argFormat.split(new RegExp(specifiers.map((spec) => `(${spec})`).join('|'), 'g'));\n for (const token of tokens) {\n if (token === undefined || token === '') {\n continue;\n }\n if (isFormatSpecifier(token)) {\n const arg = argValues.shift();\n // raise an exception when less value is provided\n assert(arg, `Less value is provided: \"${getRemoteValuesText(args, false)}\"`);\n if (token === '%s') {\n output += stringFromArg(arg);\n }\n else if (token === '%d' || token === '%i') {\n if (arg.type === 'bigint' ||\n arg.type === 'number' ||\n arg.type === 'string') {\n output += parseInt(arg.value.toString(), 10);\n }\n else {\n output += 'NaN';\n }\n }\n else if (token === '%f') {\n if (arg.type === 'bigint' ||\n arg.type === 'number' ||\n arg.type === 'string') {\n output += parseFloat(arg.value.toString());\n }\n else {\n output += 'NaN';\n }\n }\n else {\n // %o, %O, %c\n output += toJson(arg);\n }\n }\n else {\n output += token;\n }\n }\n // raise an exception when more value is provided\n if (argValues.length > 0) {\n throw new Error(`More value is provided: \"${getRemoteValuesText(args, false)}\"`);\n }\n return output;\n}\n/**\n * @param arg input remote value to be parsed\n * @return parsed text of the remote value\n *\n * input: {\"type\": \"number\", \"value\": 1}\n * output: 1\n *\n * input: {\"type\": \"string\", \"value\": \"abc\"}\n * output: \"abc\"\n *\n * input: {\"type\": \"object\", \"value\": [[\"id\", {\"type\": \"number\", \"value\": 1}]]}\n * output: '{\"id\": 1}'\n *\n * input: {\"type\": \"object\", \"value\": [[\"font-size\", {\"type\": \"string\", \"value\": \"20px\"}]]}\n * output: '{\"font-size\": \"20px\"}'\n */\nfunction toJson(arg) {\n // arg type validation\n if (arg.type !== 'array' &&\n arg.type !== 'bigint' &&\n arg.type !== 'date' &&\n arg.type !== 'number' &&\n arg.type !== 'object' &&\n arg.type !== 'string') {\n return stringFromArg(arg);\n }\n if (arg.type === 'bigint') {\n return `${arg.value.toString()}n`;\n }\n if (arg.type === 'number') {\n return arg.value.toString();\n }\n if (['date', 'string'].includes(arg.type)) {\n return JSON.stringify(arg.value);\n }\n if (arg.type === 'object') {\n return `{${arg.value\n .map((pair) => {\n return `${JSON.stringify(pair[0])}:${toJson(pair[1])}`;\n })\n .join(',')}}`;\n }\n if (arg.type === 'array') {\n return `[${arg.value?.map((val) => toJson(val)).join(',') ?? ''}]`;\n }\n throw Error(`Invalid value type: ${arg}`);\n}\nfunction stringFromArg(arg) {\n if (!Object.hasOwn(arg, 'value')) {\n return arg.type;\n }\n switch (arg.type) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'bigint':\n return String(arg.value);\n case 'regexp':\n return `/${arg.value.pattern}/${arg.value.flags ?? ''}`;\n case 'date':\n return new Date(arg.value).toString();\n case 'object':\n return `Object(${arg.value?.length ?? ''})`;\n case 'array':\n return `Array(${arg.value?.length ?? ''})`;\n case 'map':\n return `Map(${arg.value?.length})`;\n case 'set':\n return `Set(${arg.value?.length})`;\n default:\n return arg.type;\n }\n}\nexport function getRemoteValuesText(args, formatText) {\n const arg = args[0];\n if (!arg) {\n return '';\n }\n // if args[0] is a format specifier, format the args as output\n if (arg.type === 'string' &&\n isFormatSpecifier(arg.value.toString()) &&\n formatText) {\n return logMessageFormatter(args);\n }\n // if args[0] is not a format specifier, just join the args with \\u0020 (unicode 'SPACE')\n return args\n .map((arg) => {\n return stringFromArg(arg);\n })\n .join('\\u0020');\n}\n//# sourceMappingURL=logHelper.js.map","var _a;\nimport { ChromiumBidi } from '../../../protocol/protocol.js';\nimport { LogType } from '../../../utils/log.js';\nimport { getRemoteValuesText } from './logHelper.js';\n/** Converts CDP StackTrace object to BiDi StackTrace object. */\nfunction getBidiStackTrace(cdpStackTrace) {\n const stackFrames = cdpStackTrace?.callFrames.map((callFrame) => {\n return {\n columnNumber: callFrame.columnNumber,\n functionName: callFrame.functionName,\n lineNumber: callFrame.lineNumber,\n url: callFrame.url,\n };\n });\n return stackFrames ? { callFrames: stackFrames } : undefined;\n}\nfunction getLogLevel(consoleApiType) {\n if ([\"error\" /* Log.Level.Error */, 'assert'].includes(consoleApiType)) {\n return \"error\" /* Log.Level.Error */;\n }\n if ([\"debug\" /* Log.Level.Debug */, 'trace'].includes(consoleApiType)) {\n return \"debug\" /* Log.Level.Debug */;\n }\n if ([\"warn\" /* Log.Level.Warn */, 'warning'].includes(consoleApiType)) {\n return \"warn\" /* Log.Level.Warn */;\n }\n return \"info\" /* Log.Level.Info */;\n}\nfunction getLogMethod(consoleApiType) {\n switch (consoleApiType) {\n case 'warning':\n return 'warn';\n case 'startGroup':\n return 'group';\n case 'startGroupCollapsed':\n return 'groupCollapsed';\n case 'endGroup':\n return 'groupEnd';\n }\n return consoleApiType;\n}\nexport class LogManager {\n #eventManager;\n #realmStorage;\n #cdpTarget;\n #logger;\n constructor(cdpTarget, realmStorage, eventManager, logger) {\n this.#cdpTarget = cdpTarget;\n this.#realmStorage = realmStorage;\n this.#eventManager = eventManager;\n this.#logger = logger;\n }\n static create(cdpTarget, realmStorage, eventManager, logger) {\n const logManager = new _a(cdpTarget, realmStorage, eventManager, logger);\n logManager.#initializeEntryAddedEventListener();\n return logManager;\n }\n /**\n * Heuristic serialization of CDP remote object. If possible, return the BiDi value\n * without deep serialization.\n */\n async #heuristicSerializeArg(arg, realm) {\n switch (arg.type) {\n // TODO: Implement regexp, array, object, map and set heuristics base on\n // preview.\n case 'undefined':\n return { type: 'undefined' };\n case 'boolean':\n return { type: 'boolean', value: arg.value };\n case 'string':\n return { type: 'string', value: arg.value };\n case 'number':\n // The value can be either a number or a string like `Infinity` or `-0`.\n return { type: 'number', value: arg.unserializableValue ?? arg.value };\n case 'bigint':\n if (arg.unserializableValue !== undefined &&\n arg.unserializableValue[arg.unserializableValue.length - 1] === 'n') {\n return {\n type: arg.type,\n value: arg.unserializableValue.slice(0, -1),\n };\n }\n // Unexpected bigint value, fall back to CDP deep serialization.\n break;\n case 'object':\n if (arg.subtype === 'null') {\n return { type: 'null' };\n }\n // Fall back to CDP deep serialization.\n break;\n default:\n // Fall back to CDP deep serialization.\n break;\n }\n // Fall back to CDP deep serialization.\n return await realm.serializeCdpObject(arg, \"none\" /* Script.ResultOwnership.None */);\n }\n #initializeEntryAddedEventListener() {\n this.#cdpTarget.cdpClient.on('Runtime.consoleAPICalled', (params) => {\n // Try to find realm by `cdpSessionId` and `executionContextId`,\n // if provided.\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.executionContextId,\n });\n if (realm === undefined) {\n // Ignore exceptions not attached to any realm.\n this.#logger?.(LogType.cdp, params);\n return;\n }\n const argsPromise = Promise.all(params.args.map((arg) => this.#heuristicSerializeArg(arg, realm)));\n for (const browsingContext of realm.associatedBrowsingContexts) {\n this.#eventManager.registerPromiseEvent(argsPromise.then((args) => ({\n kind: 'success',\n value: {\n type: 'event',\n method: ChromiumBidi.Log.EventNames.LogEntryAdded,\n params: {\n level: getLogLevel(params.type),\n source: realm.source,\n text: getRemoteValuesText(args, true),\n timestamp: Math.round(params.timestamp),\n stackTrace: getBidiStackTrace(params.stackTrace),\n type: 'console',\n method: getLogMethod(params.type),\n args,\n },\n },\n }), (error) => ({\n kind: 'error',\n error,\n })), browsingContext.id, ChromiumBidi.Log.EventNames.LogEntryAdded);\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.exceptionThrown', (params) => {\n // Try to find realm by `cdpSessionId` and `executionContextId`,\n // if provided.\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.exceptionDetails.executionContextId,\n });\n if (realm === undefined) {\n // Ignore exceptions not attached to any realm.\n this.#logger?.(LogType.cdp, params);\n return;\n }\n for (const browsingContext of realm.associatedBrowsingContexts) {\n this.#eventManager.registerPromiseEvent(_a.#getExceptionText(params, realm).then((text) => ({\n kind: 'success',\n value: {\n type: 'event',\n method: ChromiumBidi.Log.EventNames.LogEntryAdded,\n params: {\n level: \"error\" /* Log.Level.Error */,\n source: realm.source,\n text,\n timestamp: Math.round(params.timestamp),\n stackTrace: getBidiStackTrace(params.exceptionDetails.stackTrace),\n type: 'javascript',\n },\n },\n }), (error) => ({\n kind: 'error',\n error,\n })), browsingContext.id, ChromiumBidi.Log.EventNames.LogEntryAdded);\n }\n });\n }\n /**\n * Try the best to get the exception text.\n */\n static async #getExceptionText(params, realm) {\n if (!params.exceptionDetails.exception) {\n return params.exceptionDetails.text;\n }\n if (realm === undefined) {\n return JSON.stringify(params.exceptionDetails.exception);\n }\n return await realm.stringifyObject(params.exceptionDetails.exception);\n }\n}\n_a = LogManager;\n//# sourceMappingURL=LogManager.js.map","/*\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { InvalidArgumentException, NoSuchNetworkCollectorException, UnsupportedOperationException, } from '../../../protocol/ErrorResponse.js';\nimport { LogType } from '../../../utils/log.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\nexport class CollectorsStorage {\n #collectors = new Map();\n #responseCollectors = new Map();\n #requestBodyCollectors = new Map();\n #maxEncodedDataSize;\n #logger;\n constructor(maxEncodedDataSize, logger) {\n this.#maxEncodedDataSize = maxEncodedDataSize;\n this.#logger = logger;\n }\n addDataCollector(params) {\n if (params.maxEncodedDataSize < 1 ||\n params.maxEncodedDataSize > this.#maxEncodedDataSize) {\n // 200 MB is the default limit in CDP:\n // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/inspector_network_agent.cc;drc=da1f749634c9a401cc756f36c2e6ce233e1c9b4d;l=133\n throw new InvalidArgumentException(`Max encoded data size should be between 1 and ${this.#maxEncodedDataSize}`);\n }\n const collectorId = uuidv4();\n this.#collectors.set(collectorId, params);\n return collectorId;\n }\n isCollected(requestId, dataType, collectorId) {\n if (collectorId !== undefined && !this.#collectors.has(collectorId)) {\n throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`);\n }\n if (dataType === undefined) {\n return (this.isCollected(requestId, \"response\" /* Network.DataType.Response */, collectorId) ||\n this.isCollected(requestId, \"request\" /* Network.DataType.Request */, collectorId));\n }\n const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType).get(requestId);\n if (requestToCollectorsMap === undefined ||\n requestToCollectorsMap.size === 0) {\n return false;\n }\n if (collectorId === undefined) {\n // There is at least 1 collector for the data.\n return true;\n }\n if (!requestToCollectorsMap.has(collectorId)) {\n return false;\n }\n return true;\n }\n #getRequestToCollectorMap(dataType) {\n switch (dataType) {\n case \"response\" /* Network.DataType.Response */:\n return this.#responseCollectors;\n case \"request\" /* Network.DataType.Request */:\n return this.#requestBodyCollectors;\n default:\n throw new UnsupportedOperationException(`Unsupported data type ${dataType}`);\n }\n }\n disownData(requestId, dataType, collectorId) {\n const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType);\n if (collectorId !== undefined) {\n requestToCollectorsMap.get(requestId)?.delete(collectorId);\n }\n if (collectorId === undefined ||\n requestToCollectorsMap.get(requestId)?.size === 0) {\n requestToCollectorsMap.delete(requestId);\n }\n }\n #shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext) {\n const collector = this.#collectors.get(collectorId);\n if (collector === undefined) {\n throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`);\n }\n if (collector.userContexts &&\n !collector.userContexts.includes(userContext)) {\n // Collector is aimed for a different user context.\n return false;\n }\n if (collector.contexts &&\n !collector.contexts.includes(topLevelBrowsingContext)) {\n // Collector is aimed for a different top-level browsing context.\n return false;\n }\n if (!collector.dataTypes.includes(dataType)) {\n // Collector is aimed for a different data type.\n return false;\n }\n if (dataType === \"request\" /* Network.DataType.Request */ &&\n request.bodySize > collector.maxEncodedDataSize) {\n this.#logger?.(LogType.debug, `Request's ${request.id} body size is too big for the collector ${collectorId}`);\n return false;\n }\n if (dataType === \"response\" /* Network.DataType.Response */ &&\n request.encodedResponseBodySize > collector.maxEncodedDataSize) {\n this.#logger?.(LogType.debug, `Request's ${request.id} response is too big for the collector ${collectorId}`);\n return false;\n }\n this.#logger?.(LogType.debug, `Collector ${collectorId} collected ${dataType} of ${request.id}`);\n return true;\n }\n collectIfNeeded(request, dataType, topLevelBrowsingContext, userContext) {\n const collectorIds = [...this.#collectors.keys()].filter((collectorId) => this.#shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext));\n if (collectorIds.length > 0) {\n this.#getRequestToCollectorMap(dataType).set(request.id, new Set(collectorIds));\n }\n }\n removeDataCollector(collectorId) {\n if (!this.#collectors.has(collectorId)) {\n throw new NoSuchNetworkCollectorException(`Collector ${collectorId} does not exist`);\n }\n this.#collectors.delete(collectorId);\n const affectedRequests = [];\n // Clean up collected responses.\n for (const [requestId, collectorIds] of this.#responseCollectors) {\n if (collectorIds.has(collectorId)) {\n collectorIds.delete(collectorId);\n if (collectorIds.size === 0) {\n this.#responseCollectors.delete(requestId);\n affectedRequests.push(requestId);\n }\n }\n }\n for (const [requestId, collectorIds] of this.#requestBodyCollectors) {\n if (collectorIds.has(collectorId)) {\n collectorIds.delete(collectorId);\n if (collectorIds.size === 0) {\n this.#requestBodyCollectors.delete(requestId);\n affectedRequests.push(requestId);\n }\n }\n }\n return affectedRequests;\n }\n}\n//# sourceMappingURL=CollectorsStorage.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A subclass of Map whose functionality is almost the same as its parent\n * except for the fact that DefaultMap never returns undefined. It provides a\n * default value for keys that do not exist.\n */\nexport class DefaultMap extends Map {\n /** The default value to return whenever a key is not present in the map. */\n #getDefaultValue;\n constructor(getDefaultValue, entries) {\n super(entries);\n this.#getDefaultValue = getDefaultValue;\n }\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.#getDefaultValue(key));\n }\n return super.get(key);\n }\n}\n//# sourceMappingURL=DefaultMap.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nvar _a;\nimport { ChromiumBidi, } from '../../../protocol/protocol.js';\nimport { assert } from '../../../utils/assert.js';\nimport { DefaultMap } from '../../../utils/DefaultMap.js';\nimport { Deferred } from '../../../utils/Deferred.js';\nimport { LogType } from '../../../utils/log.js';\nimport { bidiBodySizeFromCdpPostDataEntries, bidiNetworkHeadersFromCdpNetworkHeaders, cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction, cdpFetchHeadersFromBidiNetworkHeaders, cdpToBiDiCookie, computeHeadersSize, getTiming, networkHeaderFromCookieHeaders, stringToBase64, } from './NetworkUtils.js';\nconst REALM_REGEX = /(?<=realm=\").*(?=\")/;\n/** Abstracts one individual network request. */\nexport class NetworkRequest {\n static unknownParameter = 'UNKNOWN';\n /**\n * Each network request has an associated request id, which is a string\n * uniquely identifying that request.\n *\n * The identifier for a request resulting from a redirect matches that of the\n * request that initiated it.\n */\n #id;\n #fetchId;\n /**\n * Indicates the network intercept phase, if the request is currently blocked.\n * Undefined necessarily implies that the request is not blocked.\n */\n #interceptPhase;\n #servedFromCache = false;\n #redirectCount;\n #request = {};\n #requestOverrides;\n #responseOverrides;\n #response = {\n decodedSize: 0,\n encodedSize: 0,\n };\n #eventManager;\n #networkStorage;\n #cdpTarget;\n #logger;\n #emittedEvents = {\n [ChromiumBidi.Network.EventNames.AuthRequired]: false,\n [ChromiumBidi.Network.EventNames.BeforeRequestSent]: false,\n [ChromiumBidi.Network.EventNames.FetchError]: false,\n [ChromiumBidi.Network.EventNames.ResponseCompleted]: false,\n [ChromiumBidi.Network.EventNames.ResponseStarted]: false,\n };\n waitNextPhase = new Deferred();\n constructor(id, eventManager, networkStorage, cdpTarget, redirectCount = 0, logger) {\n this.#id = id;\n this.#eventManager = eventManager;\n this.#networkStorage = networkStorage;\n this.#cdpTarget = cdpTarget;\n this.#redirectCount = redirectCount;\n this.#logger = logger;\n }\n get id() {\n return this.#id;\n }\n get fetchId() {\n return this.#fetchId;\n }\n /**\n * When blocked returns the phase for it\n */\n get interceptPhase() {\n return this.#interceptPhase;\n }\n get url() {\n const fragment = this.#request.info?.request.urlFragment ??\n this.#request.paused?.request.urlFragment ??\n '';\n const url = this.#response.paused?.request.url ??\n this.#requestOverrides?.url ??\n this.#response.info?.url ??\n this.#request.auth?.request.url ??\n this.#request.info?.request.url ??\n this.#request.paused?.request.url ??\n _a.unknownParameter;\n return `${url}${fragment}`;\n }\n get redirectCount() {\n return this.#redirectCount;\n }\n get cdpTarget() {\n return this.#cdpTarget;\n }\n /** CdpTarget can be changed when frame is moving out of process. */\n updateCdpTarget(cdpTarget) {\n if (cdpTarget !== this.#cdpTarget) {\n this.#logger?.(LogType.debugInfo, `Request ${this.id} was moved from ${this.#cdpTarget.id} to ${cdpTarget.id}`);\n this.#cdpTarget = cdpTarget;\n }\n }\n get cdpClient() {\n return this.#cdpTarget.cdpClient;\n }\n isRedirecting() {\n return Boolean(this.#request.info);\n }\n #isDataUrl() {\n return this.url.startsWith('data:');\n }\n #isNonInterceptable() {\n return (\n // We can't intercept data urls from CDP\n this.#isDataUrl() ||\n // Cached requests never hit the network\n this.#servedFromCache);\n }\n get #method() {\n return (this.#requestOverrides?.method ??\n this.#request.info?.request.method ??\n this.#request.paused?.request.method ??\n this.#request.auth?.request.method ??\n this.#response.paused?.request.method);\n }\n get #navigationId() {\n // Heuristic to determine if this is a navigation request, and if not return null.\n if (!this.#request.info ||\n !this.#request.info.loaderId ||\n // When we navigate all CDP network events have `loaderId`\n // CDP's `loaderId` and `requestId` match when\n // that request triggered the loading\n this.#request.info.loaderId !== this.#request.info.requestId) {\n return null;\n }\n // Get virtual navigation ID from the browsing context.\n return this.#networkStorage.getNavigationId(this.#context ?? undefined);\n }\n get #cookies() {\n let cookies = [];\n if (this.#request.extraInfo) {\n cookies = this.#request.extraInfo.associatedCookies\n .filter(({ blockedReasons }) => {\n return !Array.isArray(blockedReasons) || blockedReasons.length === 0;\n })\n .map(({ cookie }) => cdpToBiDiCookie(cookie));\n }\n return cookies;\n }\n #getBodySizeFromHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n if (headers['Content-Length'] !== undefined) {\n const bodySize = Number.parseInt(headers['Content-Length']);\n if (Number.isInteger(bodySize)) {\n return bodySize;\n }\n this.#logger?.(LogType.debugError, \"Unexpected non-integer 'Content-Length' header\");\n }\n // TODO: process `Transfer-Encoding: chunked` case properly.\n return undefined;\n }\n get bodySize() {\n if (typeof this.#requestOverrides?.bodySize === 'number') {\n return this.#requestOverrides.bodySize;\n }\n if (this.#request.info?.request.postDataEntries !== undefined) {\n return bidiBodySizeFromCdpPostDataEntries(this.#request.info?.request.postDataEntries);\n }\n // Try to guess the body size based on the `Content-Length` header.\n return (this.#getBodySizeFromHeaders(this.#request.info?.request.headers) ??\n this.#getBodySizeFromHeaders(this.#request.extraInfo?.headers) ??\n 0);\n }\n get #context() {\n const result = this.#response.paused?.frameId ??\n this.#request.info?.frameId ??\n this.#request.paused?.frameId ??\n this.#request.auth?.frameId;\n if (result !== undefined) {\n return result;\n }\n // Heuristic for associating a preflight request with context via it's initiator\n // request. Useful for preflight requests.\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/3570\n if (this.#request?.info?.initiator.type === 'preflight' &&\n this.#request?.info?.initiator.requestId !== undefined) {\n const maybeInitiator = this.#networkStorage.getRequestById(this.#request?.info?.initiator.requestId);\n if (maybeInitiator !== undefined) {\n return maybeInitiator.#request.info?.frameId ?? null;\n }\n }\n return null;\n }\n /** Returns the HTTP status code associated with this request if any. */\n get #statusCode() {\n return (this.#responseOverrides?.statusCode ??\n this.#response.paused?.responseStatusCode ??\n this.#response.extraInfo?.statusCode ??\n this.#response.info?.status);\n }\n get #requestHeaders() {\n let headers = [];\n if (this.#requestOverrides?.headers) {\n const headerMap = new DefaultMap(() => []);\n for (const header of this.#requestOverrides.headers) {\n headerMap.get(header.name).push(header.value.value);\n }\n for (const [name, value] of headerMap.entries()) {\n headers.push({\n name,\n value: {\n type: 'string',\n value: value.join('\\n').trimEnd(),\n },\n });\n }\n }\n else {\n headers = [\n ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.info?.request.headers),\n ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.extraInfo?.headers),\n ];\n }\n return headers;\n }\n get #authChallenges() {\n // TODO: get headers from Fetch.requestPaused\n if (!this.#response.info) {\n return;\n }\n if (!(this.#statusCode === 401 || this.#statusCode === 407)) {\n return undefined;\n }\n const headerName = this.#statusCode === 401 ? 'WWW-Authenticate' : 'Proxy-Authenticate';\n const authChallenges = [];\n for (const [header, value] of Object.entries(this.#response.info.headers)) {\n // TODO: Do a proper match based on https://httpwg.org/specs/rfc9110.html#credentials\n // Or verify this works\n if (header.localeCompare(headerName, undefined, { sensitivity: 'base' }) === 0) {\n authChallenges.push({\n scheme: value.split(' ').at(0) ?? '',\n realm: value.match(REALM_REGEX)?.at(0) ?? '',\n });\n }\n }\n return authChallenges;\n }\n get #timings() {\n // The timing in the CDP events are provided relative to the event's baseline.\n // However, the baseline can be different for different events, and the events have to\n // be normalized throughout resource events. Normalize events timestamps by the\n // request.\n // TODO: Verify this is correct.\n const responseTimeOffset = getTiming(getTiming(this.#response.info?.timing?.requestTime) -\n getTiming(this.#request.info?.timestamp));\n return {\n // TODO: Verify this is correct\n timeOrigin: Math.round(getTiming(this.#request.info?.wallTime) * 1000),\n // Timing baseline.\n // TODO: Verify this is correct.\n requestTime: 0,\n // TODO: set if redirect detected.\n redirectStart: 0,\n // TODO: set if redirect detected.\n redirectEnd: 0,\n // TODO: Verify this is correct\n // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=145\n fetchStart: getTiming(this.#response.info?.timing?.workerFetchStart, responseTimeOffset),\n // fetchStart: 0,\n dnsStart: getTiming(this.#response.info?.timing?.dnsStart, responseTimeOffset),\n dnsEnd: getTiming(this.#response.info?.timing?.dnsEnd, responseTimeOffset),\n connectStart: getTiming(this.#response.info?.timing?.connectStart, responseTimeOffset),\n connectEnd: getTiming(this.#response.info?.timing?.connectEnd, responseTimeOffset),\n tlsStart: getTiming(this.#response.info?.timing?.sslStart, responseTimeOffset),\n requestStart: getTiming(this.#response.info?.timing?.sendStart, responseTimeOffset),\n // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=196\n responseStart: getTiming(this.#response.info?.timing?.receiveHeadersStart, responseTimeOffset),\n responseEnd: getTiming(this.#response.info?.timing?.receiveHeadersEnd, responseTimeOffset),\n };\n }\n #phaseChanged() {\n this.waitNextPhase.resolve();\n this.waitNextPhase = new Deferred();\n }\n #interceptsInPhase(phase) {\n if (this.#isNonInterceptable() ||\n !this.#cdpTarget.isSubscribedTo(`network.${phase}`)) {\n return new Set();\n }\n return this.#networkStorage.getInterceptsForPhase(this, phase);\n }\n #isBlockedInPhase(phase) {\n return this.#interceptsInPhase(phase).size > 0;\n }\n handleRedirect(event) {\n // TODO: use event.redirectResponse;\n // Temporary workaround to emit ResponseCompleted event for redirects\n this.#response.hasExtraInfo = false;\n this.#response.decodedSize = 0;\n this.#response.encodedSize = 0;\n this.#response.info = event.redirectResponse;\n this.#emitEventsIfReady({\n wasRedirected: true,\n });\n }\n #emitEventsIfReady(options = {}) {\n const requestExtraInfoCompleted = \n // Flush redirects\n options.wasRedirected ||\n Boolean(this.#response.loadingFailed) ||\n this.#isDataUrl() ||\n Boolean(this.#request.extraInfo) ||\n // If the request is intercepted during the `authRequired` phase, there\n // will be no `Network.requestWillBeSentExtraInfo` CDP events.\n this.#isBlockedInPhase(\"authRequired\" /* Network.InterceptPhase.AuthRequired */) ||\n // Requests from cache don't have extra info\n this.#servedFromCache ||\n // Sometimes there is no extra info and the response\n // is the only place we can find out\n Boolean(this.#response.info && !this.#response.hasExtraInfo);\n const noInterceptionExpected = this.#isNonInterceptable();\n const requestInterceptionExpected = !noInterceptionExpected &&\n this.#isBlockedInPhase(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */);\n const requestInterceptionCompleted = !requestInterceptionExpected ||\n (requestInterceptionExpected && Boolean(this.#request.paused));\n if (Boolean(this.#request.info) &&\n (requestInterceptionExpected\n ? requestInterceptionCompleted\n : requestExtraInfoCompleted)) {\n this.#emitEvent(this.#getBeforeRequestEvent.bind(this));\n }\n const responseExtraInfoCompleted = Boolean(this.#response.extraInfo) ||\n // Response from cache don't have extra info\n this.#servedFromCache ||\n // Don't expect extra info if the flag is false\n Boolean(this.#response.info && !this.#response.hasExtraInfo);\n const responseInterceptionExpected = !noInterceptionExpected &&\n this.#isBlockedInPhase(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */);\n if (this.#response.info ||\n (responseInterceptionExpected && Boolean(this.#response.paused))) {\n this.#emitEvent(this.#getResponseStartedEvent.bind(this));\n }\n const responseInterceptionCompleted = !responseInterceptionExpected ||\n (responseInterceptionExpected && Boolean(this.#response.paused));\n const loadingFinished = Boolean(this.#response.loadingFailed) ||\n Boolean(this.#response.loadingFinished);\n if (Boolean(this.#response.info) &&\n responseExtraInfoCompleted &&\n responseInterceptionCompleted &&\n (loadingFinished || options.wasRedirected)) {\n this.#emitEvent(this.#getResponseReceivedEvent.bind(this));\n this.#networkStorage.disposeRequest(this.id);\n }\n }\n onRequestWillBeSentEvent(event) {\n this.#request.info = event;\n this.#networkStorage.collectIfNeeded(this, \"request\" /* Network.DataType.Request */);\n this.#emitEventsIfReady();\n }\n onRequestWillBeSentExtraInfoEvent(event) {\n this.#request.extraInfo = event;\n this.#emitEventsIfReady();\n }\n onResponseReceivedExtraInfoEvent(event) {\n if (event.statusCode >= 300 &&\n event.statusCode <= 399 &&\n this.#request.info &&\n event.headers['location'] === this.#request.info.request.url) {\n // We received the Response Extra info for the redirect\n // Too late so we need to skip it as it will\n // fire wrongly for the last one\n return;\n }\n this.#response.extraInfo = event;\n this.#emitEventsIfReady();\n }\n onResponseReceivedEvent(event) {\n this.#response.hasExtraInfo = event.hasExtraInfo;\n this.#response.info = event.response;\n this.#networkStorage.collectIfNeeded(this, \"response\" /* Network.DataType.Response */);\n this.#emitEventsIfReady();\n }\n onServedFromCache() {\n this.#servedFromCache = true;\n this.#emitEventsIfReady();\n }\n onLoadingFinishedEvent(event) {\n this.#response.loadingFinished = event;\n this.#emitEventsIfReady();\n }\n onDataReceivedEvent(event) {\n this.#response.decodedSize += event.dataLength;\n this.#response.encodedSize += event.encodedDataLength;\n }\n onLoadingFailedEvent(event) {\n this.#response.loadingFailed = event;\n this.#emitEventsIfReady();\n this.#emitEvent(() => {\n return {\n method: ChromiumBidi.Network.EventNames.FetchError,\n params: {\n ...this.#getBaseEventParams(),\n errorText: event.errorText,\n },\n };\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-failRequest */\n async failRequest(errorReason) {\n assert(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.failRequest', {\n requestId: this.#fetchId,\n errorReason,\n });\n this.#interceptPhase = undefined;\n }\n onRequestPaused(event) {\n this.#fetchId = event.requestId;\n // CDP https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#event-requestPaused\n if (event.responseStatusCode || event.responseErrorReason) {\n this.#response.paused = event;\n if (this.#isBlockedInPhase(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */) &&\n // CDP may emit multiple events for a single request\n !this.#emittedEvents[ChromiumBidi.Network.EventNames.ResponseStarted] &&\n // Continue all response that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */;\n }\n else {\n void this.#continueResponse();\n }\n }\n else {\n this.#request.paused = event;\n if (this.#isBlockedInPhase(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */) &&\n // CDP may emit multiple events for a single request\n !this.#emittedEvents[ChromiumBidi.Network.EventNames.BeforeRequestSent] &&\n // Continue all requests that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */;\n }\n else {\n void this.#continueRequest();\n }\n }\n this.#emitEventsIfReady();\n }\n onAuthRequired(event) {\n this.#fetchId = event.requestId;\n this.#request.auth = event;\n if (this.#isBlockedInPhase(\"authRequired\" /* Network.InterceptPhase.AuthRequired */) &&\n // Continue all auth requests that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"authRequired\" /* Network.InterceptPhase.AuthRequired */;\n // Make sure the `network.beforeRequestSent` is emitted before\n // `network.authRequired`.\n this.#emitEventsIfReady();\n }\n else {\n void this.#continueWithAuth({\n response: 'Default',\n });\n }\n this.#emitEvent(() => {\n return {\n method: ChromiumBidi.Network.EventNames.AuthRequired,\n params: {\n ...this.#getBaseEventParams(\"authRequired\" /* Network.InterceptPhase.AuthRequired */),\n response: this.#getResponseEventParams(),\n },\n };\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueRequest */\n async continueRequest(overrides = {}) {\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const headers = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders);\n const postData = getCdpBodyFromBiDiBytesValue(overrides.body);\n await this.#continueRequest({\n url: overrides.url,\n method: overrides.method,\n headers,\n postData,\n });\n this.#requestOverrides = {\n url: overrides.url,\n method: overrides.method,\n headers: overrides.headers,\n cookies: overrides.cookies,\n bodySize: getSizeFromBiDiBytesValue(overrides.body),\n };\n }\n async #continueRequest(overrides = {}) {\n assert(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueRequest', {\n requestId: this.#fetchId,\n url: overrides.url,\n method: overrides.method,\n headers: overrides.headers,\n postData: overrides.postData,\n });\n this.#interceptPhase = undefined;\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueResponse */\n async continueResponse(overrides = {}) {\n if (this.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n if (overrides.credentials) {\n await Promise.all([\n this.waitNextPhase,\n await this.#continueWithAuth({\n response: 'ProvideCredentials',\n username: overrides.credentials.username,\n password: overrides.credentials.password,\n }),\n ]);\n }\n else {\n // We need to use `ProvideCredentials`\n // As `Default` may cancel the request\n return await this.#continueWithAuth({\n response: 'ProvideCredentials',\n });\n }\n }\n if (this.#interceptPhase === \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */) {\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders);\n await this.#continueResponse({\n responseCode: overrides.statusCode ?? this.#response.paused?.responseStatusCode,\n responsePhrase: overrides.reasonPhrase ?? this.#response.paused?.responseStatusText,\n responseHeaders: responseHeaders ?? this.#response.paused?.responseHeaders,\n });\n this.#responseOverrides = {\n statusCode: overrides.statusCode,\n headers: overrideHeaders,\n };\n }\n }\n async #continueResponse({ responseCode, responsePhrase, responseHeaders, } = {}) {\n assert(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueResponse', {\n requestId: this.#fetchId,\n responseCode,\n responsePhrase,\n responseHeaders,\n });\n this.#interceptPhase = undefined;\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueWithAuth */\n async continueWithAuth(authChallenge) {\n let username;\n let password;\n if (authChallenge.action === 'provideCredentials') {\n const { credentials } = authChallenge;\n username = credentials.username;\n password = credentials.password;\n }\n const response = cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(authChallenge.action);\n await this.#continueWithAuth({\n response,\n username,\n password,\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-provideResponse */\n async provideResponse(overrides) {\n assert(this.#fetchId, 'Network Interception not set-up.');\n // We need to pass through if the request is already in\n // AuthRequired phase\n if (this.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n // We need to use `ProvideCredentials`\n // As `Default` may cancel the request\n return await this.#continueWithAuth({\n response: 'ProvideCredentials',\n });\n }\n // If we don't modify the response\n // just continue the request\n if (!overrides.body && !overrides.headers) {\n return await this.#continueRequest();\n }\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders);\n const responseCode = overrides.statusCode ?? this.#statusCode ?? 200;\n await this.cdpClient.sendCommand('Fetch.fulfillRequest', {\n requestId: this.#fetchId,\n responseCode,\n responsePhrase: overrides.reasonPhrase,\n responseHeaders,\n body: getCdpBodyFromBiDiBytesValue(overrides.body),\n });\n this.#interceptPhase = undefined;\n }\n dispose() {\n this.waitNextPhase.reject(new Error('waitNextPhase disposed'));\n }\n async #continueWithAuth(authChallengeResponse) {\n assert(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueWithAuth', {\n requestId: this.#fetchId,\n authChallengeResponse,\n });\n this.#interceptPhase = undefined;\n }\n #emitEvent(getEvent) {\n let event;\n try {\n event = getEvent();\n }\n catch (error) {\n this.#logger?.(LogType.debugError, error);\n return;\n }\n if (this.#isIgnoredEvent() ||\n (this.#emittedEvents[event.method] &&\n // Special case this event can be emitted multiple times\n event.method !== ChromiumBidi.Network.EventNames.AuthRequired)) {\n return;\n }\n this.#phaseChanged();\n this.#emittedEvents[event.method] = true;\n if (this.#context) {\n this.#eventManager.registerEvent(Object.assign(event, {\n type: 'event',\n }), this.#context);\n }\n else {\n this.#eventManager.registerGlobalEvent(Object.assign(event, {\n type: 'event',\n }));\n }\n }\n #getBaseEventParams(phase) {\n const interceptProps = {\n isBlocked: false,\n };\n if (phase) {\n const blockedBy = this.#interceptsInPhase(phase);\n interceptProps.isBlocked = blockedBy.size > 0;\n if (interceptProps.isBlocked) {\n interceptProps.intercepts = [...blockedBy];\n }\n }\n return {\n context: this.#context,\n navigation: this.#navigationId,\n redirectCount: this.#redirectCount,\n request: this.#getRequestData(),\n // Timestamp should be in milliseconds, while CDP provides it in seconds.\n timestamp: Math.round(getTiming(this.#request.info?.wallTime) * 1000),\n // Contains isBlocked and intercepts\n ...interceptProps,\n };\n }\n #getResponseEventParams() {\n // Chromium sends wrong extraInfo events for responses served from cache.\n // See https://github.com/puppeteer/puppeteer/issues/9965 and\n // https://crbug.com/1340398.\n if (this.#response.info?.fromDiskCache) {\n this.#response.extraInfo = undefined;\n }\n // TODO: Also this.#response.paused?.responseHeaders have to be merged here.\n const cdpHeaders = this.#response.info?.headers ?? {};\n const cdpRawHeaders = this.#response.extraInfo?.headers ?? {};\n for (const [key, value] of Object.entries(cdpRawHeaders)) {\n cdpHeaders[key] = value;\n }\n const headers = bidiNetworkHeadersFromCdpNetworkHeaders(cdpHeaders);\n const authChallenges = this.#authChallenges;\n const response = {\n url: this.url,\n protocol: this.#response.info?.protocol ?? '',\n status: this.#statusCode ?? -1, // TODO: Throw an exception or use some other status code?\n statusText: this.#response.info?.statusText ||\n this.#response.paused?.responseStatusText ||\n '',\n fromCache: this.#response.info?.fromDiskCache ||\n this.#response.info?.fromPrefetchCache ||\n this.#servedFromCache,\n headers: this.#responseOverrides?.headers ?? headers,\n mimeType: this.#response.info?.mimeType || '',\n // TODO: this should be the size for the entire HTTP response.\n bytesReceived: this.encodedResponseBodySize,\n headersSize: computeHeadersSize(headers),\n bodySize: this.encodedResponseBodySize,\n content: {\n size: this.#response.decodedSize ?? 0,\n },\n ...(authChallenges ? { authChallenges } : {}),\n };\n return {\n ...response,\n 'goog:securityDetails': this.#response.info?.securityDetails,\n };\n }\n get encodedResponseBodySize() {\n return (this.#response.loadingFinished?.encodedDataLength ??\n this.#response.info?.encodedDataLength ??\n this.#response.encodedSize ??\n 0);\n }\n #getRequestData() {\n const headers = this.#requestHeaders;\n const request = {\n request: this.#id,\n url: this.url,\n method: this.#method ?? _a.unknownParameter,\n headers,\n cookies: this.#cookies,\n headersSize: computeHeadersSize(headers),\n bodySize: this.bodySize,\n // TODO: populate\n destination: this.#getDestination(),\n // TODO: populate\n initiatorType: this.#getInitiatorType(),\n timings: this.#timings,\n };\n return {\n ...request,\n 'goog:postData': this.#request.info?.request?.postData,\n 'goog:hasPostData': this.#request.info?.request?.hasPostData,\n 'goog:resourceType': this.#request.info?.type,\n 'goog:resourceInitiator': this.#request.info?.initiator,\n };\n }\n /**\n * Heuristic trying to guess the destination.\n * Specification: https://fetch.spec.whatwg.org/#concept-request-destination.\n * Specified values: \"audio\", \"audioworklet\", \"document\", \"embed\", \"font\", \"frame\",\n * \"iframe\", \"image\", \"json\", \"manifest\", \"object\", \"paintworklet\", \"report\", \"script\",\n * \"serviceworker\", \"sharedworker\", \"style\", \"track\", \"video\", \"webidentity\", \"worker\",\n * \"xslt\".\n */\n #getDestination() {\n switch (this.#request.info?.type) {\n case 'Script':\n return 'script';\n case 'Stylesheet':\n return 'style';\n case 'Image':\n return 'image';\n case 'Document':\n // If request to document is initiated by parser, assume it is expected to\n // arrive in an iframe. Otherwise, consider it is a navigation and the request\n // result will end up in the document.\n return this.#request.info?.initiator.type === 'parser'\n ? 'iframe'\n : 'document';\n default:\n return '';\n }\n }\n /**\n * Heuristic trying to guess the initiator type.\n * Specification: https://fetch.spec.whatwg.org/#request-initiator-type.\n * Specified values: \"audio\", \"beacon\", \"body\", \"css\", \"early-hints\", \"embed\", \"fetch\",\n * \"font\", \"frame\", \"iframe\", \"image\", \"img\", \"input\", \"link\", \"object\", \"ping\",\n * \"script\", \"track\", \"video\", \"xmlhttprequest\", \"other\".\n */\n #getInitiatorType() {\n if (this.#request.info?.initiator.type === 'parser') {\n switch (this.#request.info?.type) {\n case 'Document':\n // The request to document is initiated by the parser. Assuming it's an iframe.\n return 'iframe';\n case 'Font':\n // If the document's url is not the parser's url, assume the resource is loaded\n // from css. Otherwise, it's a `font` element.\n return this.#request.info?.initiator?.url ===\n this.#request.info?.documentURL\n ? 'font'\n : 'css';\n case 'Image':\n // If the document's url is not the parser's url, assume the resource is loaded\n // from css. Otherwise, it's a `img` element.\n return this.#request.info?.initiator?.url ===\n this.#request.info?.documentURL\n ? 'img'\n : 'css';\n case 'Script':\n return 'script';\n case 'Stylesheet':\n return 'link';\n default:\n return null;\n }\n }\n if (this.#request?.info?.type === 'Fetch') {\n return 'fetch';\n }\n return null;\n }\n #getBeforeRequestEvent() {\n assert(this.#request.info, 'RequestWillBeSentEvent is not set');\n return {\n method: ChromiumBidi.Network.EventNames.BeforeRequestSent,\n params: {\n ...this.#getBaseEventParams(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */),\n initiator: {\n type: _a.#getInitiator(this.#request.info.initiator.type),\n columnNumber: this.#request.info.initiator.columnNumber,\n lineNumber: this.#request.info.initiator.lineNumber,\n stackTrace: this.#request.info.initiator.stack,\n request: this.#request.info.initiator.requestId,\n },\n },\n };\n }\n #getResponseStartedEvent() {\n return {\n method: ChromiumBidi.Network.EventNames.ResponseStarted,\n params: {\n ...this.#getBaseEventParams(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */),\n response: this.#getResponseEventParams(),\n },\n };\n }\n #getResponseReceivedEvent() {\n return {\n method: ChromiumBidi.Network.EventNames.ResponseCompleted,\n params: {\n ...this.#getBaseEventParams(),\n response: this.#getResponseEventParams(),\n },\n };\n }\n #isIgnoredEvent() {\n const faviconUrl = '/favicon.ico';\n return (this.#request.paused?.request.url.endsWith(faviconUrl) ??\n this.#request.info?.request.url.endsWith(faviconUrl) ??\n false);\n }\n #getOverrideHeader(headers, cookies) {\n if (!headers && !cookies) {\n return undefined;\n }\n let overrideHeaders = headers;\n const cookieHeader = networkHeaderFromCookieHeaders(cookies);\n if (cookieHeader && !overrideHeaders) {\n overrideHeaders = this.#requestHeaders;\n }\n if (cookieHeader && overrideHeaders) {\n overrideHeaders.filter((header) => header.name.localeCompare('cookie', undefined, {\n sensitivity: 'base',\n }) !== 0);\n overrideHeaders.push(cookieHeader);\n }\n return overrideHeaders;\n }\n static #getInitiator(initiatorType) {\n switch (initiatorType) {\n case 'parser':\n case 'script':\n case 'preflight':\n return initiatorType;\n default:\n return 'other';\n }\n }\n}\n_a = NetworkRequest;\nfunction getCdpBodyFromBiDiBytesValue(body) {\n let parsedBody;\n if (body?.type === 'string') {\n parsedBody = stringToBase64(body.value);\n }\n else if (body?.type === 'base64') {\n parsedBody = body.value;\n }\n return parsedBody;\n}\nfunction getSizeFromBiDiBytesValue(body) {\n if (body?.type === 'string') {\n return body.value.length;\n }\n else if (body?.type === 'base64') {\n return atob(body.value).length;\n }\n return 0;\n}\n//# sourceMappingURL=NetworkRequest.js.map","import { InvalidArgumentException, NoSuchInterceptException, NoSuchNetworkDataException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\nimport { CollectorsStorage } from './CollectorsStorage.js';\nimport { NetworkRequest } from './NetworkRequest.js';\nimport { matchUrlPattern } from './NetworkUtils.js';\n// The default total data size limit in CDP.\n// https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/inspector_network_agent.cc;drc=da1f749634c9a401cc756f36c2e6ce233e1c9b4d;l=133\nexport const MAX_TOTAL_COLLECTED_SIZE = 200_000_000;\n/** Stores network and intercept maps. */\nexport class NetworkStorage {\n #browsingContextStorage;\n #eventManager;\n #collectorsStorage;\n #logger;\n /**\n * A map from network request ID to Network Request objects.\n * Needed as long as information about requests comes from different events.\n */\n #requests = new Map();\n /** A map from intercept ID to track active network intercepts. */\n #intercepts = new Map();\n #defaultCacheBehavior = 'default';\n constructor(eventManager, browsingContextStorage, browserClient, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#eventManager = eventManager;\n this.#collectorsStorage = new CollectorsStorage(MAX_TOTAL_COLLECTED_SIZE, logger);\n browserClient.on('Target.detachedFromTarget', ({ sessionId }) => {\n this.disposeRequestMap(sessionId);\n });\n this.#logger = logger;\n }\n /**\n * Gets the network request with the given ID, if any.\n * Otherwise, creates a new network request with the given ID and cdp target.\n */\n #getOrCreateNetworkRequest(id, cdpTarget, redirectCount) {\n let request = this.getRequestById(id);\n if (redirectCount === undefined && request) {\n // Force re-creating requests for redirects.\n return request;\n }\n request = new NetworkRequest(id, this.#eventManager, this, cdpTarget, redirectCount, this.#logger);\n this.addRequest(request);\n return request;\n }\n onCdpTargetCreated(cdpTarget) {\n const cdpClient = cdpTarget.cdpClient;\n // TODO: Wrap into object\n const listeners = [\n [\n 'Network.requestWillBeSent',\n (params) => {\n const request = this.getRequestById(params.requestId);\n request?.updateCdpTarget(cdpTarget);\n if (request && request.isRedirecting()) {\n request.handleRedirect(params);\n this.disposeRequest(params.requestId);\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget, request.redirectCount + 1).onRequestWillBeSentEvent(params);\n }\n else {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onRequestWillBeSentEvent(params);\n }\n },\n ],\n [\n 'Network.requestWillBeSentExtraInfo',\n (params) => {\n const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onRequestWillBeSentExtraInfoEvent(params);\n },\n ],\n [\n 'Network.responseReceived',\n (params) => {\n const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onResponseReceivedEvent(params);\n },\n ],\n [\n 'Network.responseReceivedExtraInfo',\n (params) => {\n const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onResponseReceivedExtraInfoEvent(params);\n },\n ],\n [\n 'Network.requestServedFromCache',\n (params) => {\n const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onServedFromCache();\n },\n ],\n [\n 'Fetch.requestPaused',\n (event) => {\n const request = this.#getOrCreateNetworkRequest(\n // CDP quirk if the Network domain is not present this is undefined\n event.networkId ?? event.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onRequestPaused(event);\n },\n ],\n [\n 'Fetch.authRequired',\n (event) => {\n let request = this.getRequestByFetchId(event.requestId);\n if (!request) {\n request = this.#getOrCreateNetworkRequest(event.requestId, cdpTarget);\n }\n request.updateCdpTarget(cdpTarget);\n request.onAuthRequired(event);\n },\n ],\n [\n 'Network.dataReceived',\n (params) => {\n const request = this.getRequestById(params.requestId);\n request?.updateCdpTarget(cdpTarget);\n request?.onDataReceivedEvent(params);\n },\n ],\n [\n 'Network.loadingFailed',\n (params) => {\n const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget);\n request.updateCdpTarget(cdpTarget);\n request.onLoadingFailedEvent(params);\n },\n ],\n [\n 'Network.loadingFinished',\n (params) => {\n const request = this.getRequestById(params.requestId);\n request?.updateCdpTarget(cdpTarget);\n request?.onLoadingFinishedEvent(params);\n },\n ],\n ];\n for (const [event, listener] of listeners) {\n cdpClient.on(event, listener);\n }\n }\n async getCollectedData(params) {\n if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) {\n throw new NoSuchNetworkDataException(params.collector === undefined\n ? `No collected ${params.dataType} data`\n : `Collector ${params.collector} didn't collect ${params.dataType} data`);\n }\n if (params.disown && params.collector === undefined) {\n throw new InvalidArgumentException('Cannot disown collected data without collector ID');\n }\n const request = this.getRequestById(params.request);\n if (request === undefined) {\n throw new NoSuchNetworkDataException(`No data for ${params.request}`);\n }\n let result = undefined;\n switch (params.dataType) {\n case \"response\" /* Network.DataType.Response */:\n result = await this.#getCollectedResponseData(request);\n break;\n case \"request\" /* Network.DataType.Request */:\n result = await this.#getCollectedRequestData(request);\n break;\n default:\n throw new UnsupportedOperationException(`Unsupported data type ${params.dataType}`);\n }\n if (params.disown && params.collector !== undefined) {\n this.#collectorsStorage.disownData(request.id, params.dataType, params.collector);\n // `disposeRequest` disposes request only if no other collectors for it are left.\n this.disposeRequest(request.id);\n }\n return result;\n }\n async #getCollectedResponseData(request) {\n try {\n const responseBody = await request.cdpClient.sendCommand('Network.getResponseBody', { requestId: request.id });\n return {\n bytes: {\n type: responseBody.base64Encoded ? 'base64' : 'string',\n value: responseBody.body,\n },\n };\n }\n catch (error) {\n if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'No resource with given identifier found') {\n // The data has be gone for whatever reason.\n throw new NoSuchNetworkDataException(`Response data was disposed`);\n }\n if (error.code === -32001 /* CdpErrorConstants.CONNECTION_CLOSED */) {\n // The request's CDP session is gone. http://b/450771615.\n throw new NoSuchNetworkDataException(`Response data is disposed after the related page`);\n }\n throw error;\n }\n }\n async #getCollectedRequestData(request) {\n // TODO: handle CDP error in case of the renderer is gone.\n const requestPostData = await request.cdpClient.sendCommand('Network.getRequestPostData', { requestId: request.id });\n return {\n bytes: {\n type: 'string',\n value: requestPostData.postData,\n },\n };\n }\n collectIfNeeded(request, dataType) {\n this.#collectorsStorage.collectIfNeeded(request, dataType, request.cdpTarget.topLevelId, request.cdpTarget.userContext);\n }\n getInterceptionStages(browsingContextId) {\n const stages = {\n request: false,\n response: false,\n auth: false,\n };\n for (const intercept of this.#intercepts.values()) {\n if (intercept.contexts &&\n !intercept.contexts.includes(browsingContextId)) {\n continue;\n }\n stages.request ||= intercept.phases.includes(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */);\n stages.response ||= intercept.phases.includes(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */);\n stages.auth ||= intercept.phases.includes(\"authRequired\" /* Network.InterceptPhase.AuthRequired */);\n }\n return stages;\n }\n getInterceptsForPhase(request, phase) {\n if (request.url === NetworkRequest.unknownParameter) {\n return new Set();\n }\n const intercepts = new Set();\n for (const [interceptId, intercept] of this.#intercepts.entries()) {\n if (!intercept.phases.includes(phase) ||\n (intercept.contexts &&\n !intercept.contexts.includes(request.cdpTarget.topLevelId))) {\n continue;\n }\n if (intercept.urlPatterns.length === 0) {\n intercepts.add(interceptId);\n continue;\n }\n for (const pattern of intercept.urlPatterns) {\n if (matchUrlPattern(pattern, request.url)) {\n intercepts.add(interceptId);\n break;\n }\n }\n }\n return intercepts;\n }\n disposeRequestMap(sessionId) {\n for (const request of this.#requests.values()) {\n if (request.cdpClient.sessionId === sessionId) {\n this.#requests.delete(request.id);\n request.dispose();\n }\n }\n }\n /**\n * Adds the given entry to the intercept map.\n * URL patterns are assumed to be parsed.\n *\n * @return The intercept ID.\n */\n addIntercept(value) {\n const interceptId = uuidv4();\n this.#intercepts.set(interceptId, value);\n return interceptId;\n }\n /**\n * Removes the given intercept from the intercept map.\n * Throws NoSuchInterceptException if the intercept does not exist.\n */\n removeIntercept(intercept) {\n if (!this.#intercepts.has(intercept)) {\n throw new NoSuchInterceptException(`Intercept '${intercept}' does not exist.`);\n }\n this.#intercepts.delete(intercept);\n }\n getRequestsByTarget(target) {\n const requests = [];\n for (const request of this.#requests.values()) {\n if (request.cdpTarget === target) {\n requests.push(request);\n }\n }\n return requests;\n }\n getRequestById(id) {\n return this.#requests.get(id);\n }\n getRequestByFetchId(fetchId) {\n for (const request of this.#requests.values()) {\n if (request.fetchId === fetchId) {\n return request;\n }\n }\n return;\n }\n addRequest(request) {\n this.#requests.set(request.id, request);\n }\n /**\n * Disposes the given request, if no collectors targeting it are left.\n */\n disposeRequest(id) {\n if (this.#collectorsStorage.isCollected(id)) {\n // Keep request, as it's data can be accessed later.\n return;\n }\n // TODO: dispose Network data from Chromium once there is a CDP command for that.\n this.#requests.delete(id);\n }\n /**\n * Gets the virtual navigation ID for the given navigable ID.\n */\n getNavigationId(contextId) {\n if (contextId === undefined) {\n return null;\n }\n return (this.#browsingContextStorage.findContext(contextId)?.navigationId ?? null);\n }\n set defaultCacheBehavior(behavior) {\n this.#defaultCacheBehavior = behavior;\n }\n get defaultCacheBehavior() {\n return this.#defaultCacheBehavior;\n }\n addDataCollector(params) {\n return this.#collectorsStorage.addDataCollector(params);\n }\n removeDataCollector(params) {\n const releasedRequests = this.#collectorsStorage.removeDataCollector(params.collector);\n releasedRequests.map((request) => this.disposeRequest(request));\n }\n disownData(params) {\n if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) {\n throw new NoSuchNetworkDataException(`Collector ${params.collector} didn't collect ${params.dataType} data`);\n }\n this.#collectorsStorage.disownData(params.request, params.dataType, params.collector);\n // `disposeRequest` disposes request only if no other collectors for it are left.\n this.disposeRequest(params.request);\n }\n}\n//# sourceMappingURL=NetworkStorage.js.map","import { Bluetooth, Speculation } from '../../../protocol/chromium-bidi.js';\nimport { UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js';\nimport { Deferred } from '../../../utils/Deferred.js';\nimport { LogType } from '../../../utils/log.js';\nimport { BrowsingContextImpl } from '../context/BrowsingContextImpl.js';\nimport { LogManager } from '../log/LogManager.js';\nimport { MAX_TOTAL_COLLECTED_SIZE, } from '../network/NetworkStorage.js';\nexport class CdpTarget {\n #id;\n userContext;\n #cdpClient;\n #browserCdpClient;\n #parentCdpClient;\n #realmStorage;\n #eventManager;\n #preloadScriptStorage;\n #browsingContextStorage;\n #networkStorage;\n contextConfigStorage;\n #unblocked = new Deferred();\n // Default user agent for the target. Required, as emulating client hints without user\n // agent is not possible. Cache it to avoid round trips to the browser for every target override.\n #defaultUserAgent;\n #logger;\n /**\n * Target's window id. Is filled when the CDP target is created and do not reflect\n * moving targets from one window to another. The actual values\n * will be set during `#unblock`.\n * */\n #windowId;\n #deviceAccessEnabled = false;\n #cacheDisableState = false;\n #preloadEnabled = false;\n #fetchDomainStages = {\n request: false,\n response: false,\n auth: false,\n };\n static create(targetId, cdpClient, browserCdpClient, parentCdpClient, realmStorage, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, configStorage, userContext, defaultUserAgent, logger) {\n const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger);\n LogManager.create(cdpTarget, realmStorage, eventManager, logger);\n cdpTarget.#setEventListeners();\n // No need to await.\n // Deferred will be resolved when the target is unblocked.\n void cdpTarget.#unblock();\n return cdpTarget;\n }\n constructor(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger) {\n this.#defaultUserAgent = defaultUserAgent;\n this.userContext = userContext;\n this.#id = targetId;\n this.#cdpClient = cdpClient;\n this.#browserCdpClient = browserCdpClient;\n this.#parentCdpClient = parentCdpClient;\n this.#eventManager = eventManager;\n this.#realmStorage = realmStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#networkStorage = networkStorage;\n this.#browsingContextStorage = browsingContextStorage;\n this.contextConfigStorage = configStorage;\n this.#logger = logger;\n }\n /** Returns a deferred that resolves when the target is unblocked. */\n get unblocked() {\n return this.#unblocked;\n }\n get id() {\n return this.#id;\n }\n get cdpClient() {\n return this.#cdpClient;\n }\n get parentCdpClient() {\n return this.#parentCdpClient;\n }\n get browserCdpClient() {\n return this.#browserCdpClient;\n }\n /** Needed for CDP escape path. */\n get cdpSessionId() {\n // SAFETY we got the client by it's id for creating\n return this.#cdpClient.sessionId;\n }\n /**\n * Window id the target belongs to. If not known, returns 0.\n */\n get windowId() {\n if (this.#windowId === undefined) {\n this.#logger?.(LogType.debugError, 'Getting windowId before it was set, returning 0');\n }\n return this.#windowId ?? 0;\n }\n /**\n * Enables all the required CDP domains and unblocks the target.\n */\n async #unblock() {\n const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext);\n const results = await Promise.allSettled([\n this.#cdpClient.sendCommand('Page.enable', {\n enableFileChooserOpenedEvent: true,\n }),\n ...(this.#ignoreFileDialog()\n ? []\n : [\n this.#cdpClient.sendCommand('Page.setInterceptFileChooserDialog', {\n enabled: true,\n // The intercepted dialog should be canceled.\n cancel: true,\n }),\n ]),\n // There can be some existing frames in the target, if reconnecting to an\n // existing browser instance, e.g. via Puppeteer. Need to restore the browsing\n // contexts for the frames to correctly handle further events, like\n // `Runtime.executionContextCreated`.\n // It's important to schedule this task together with enabling domains commands to\n // prepare the tree before the events (e.g. Runtime.executionContextCreated) start\n // coming.\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2282\n this.#cdpClient\n .sendCommand('Page.getFrameTree')\n .then((frameTree) => this.#restoreFrameTreeState(frameTree.frameTree)),\n this.#cdpClient.sendCommand('Runtime.enable'),\n this.#cdpClient.sendCommand('Page.setLifecycleEventsEnabled', {\n enabled: true,\n }),\n // Enabling CDP Network domain is required for navigation detection:\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2856.\n this.#cdpClient\n .sendCommand('Network.enable', {\n // If `googDisableNetworkDurableMessages` flag is set, do not enable durable\n // messages.\n enableDurableMessages: config.disableNetworkDurableMessages !== true,\n maxTotalBufferSize: MAX_TOTAL_COLLECTED_SIZE,\n })\n .then(() => this.toggleNetworkIfNeeded()),\n this.#cdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n }),\n this.#updateWindowId(),\n this.#setUserContextConfig(config),\n this.#initAndEvaluatePreloadScripts(),\n this.#cdpClient.sendCommand('Runtime.runIfWaitingForDebugger'),\n // Resume tab execution as well if it was paused by the debugger.\n this.#parentCdpClient.sendCommand('Runtime.runIfWaitingForDebugger'),\n this.toggleDeviceAccessIfNeeded(),\n this.togglePreloadIfNeeded(),\n ]);\n for (const result of results) {\n if (result instanceof Error) {\n // Ignore errors during configuring targets, just log them.\n this.#logger?.(LogType.debugError, 'Error happened when configuring a new target', result);\n }\n }\n this.#unblocked.resolve({\n kind: 'success',\n value: undefined,\n });\n }\n #restoreFrameTreeState(frameTree) {\n const frame = frameTree.frame;\n const maybeContext = this.#browsingContextStorage.findContext(frame.id);\n if (maybeContext !== undefined) {\n // Restoring parent of already known browsing context. This means the target is\n // OOPiF and the BiDi session was connected to already existing browser instance.\n if (maybeContext.parentId === null &&\n frame.parentId !== null &&\n frame.parentId !== undefined) {\n maybeContext.parentId = frame.parentId;\n }\n }\n if (maybeContext === undefined && frame.parentId !== undefined) {\n // Restore not yet known nested frames. The top-level frame is created when the\n // target is attached.\n const parentBrowsingContext = this.#browsingContextStorage.getContext(frame.parentId);\n BrowsingContextImpl.create(frame.id, frame.parentId, this.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.contextConfigStorage, frame.url, undefined, this.#logger);\n }\n frameTree.childFrames?.map((frameTree) => this.#restoreFrameTreeState(frameTree));\n }\n async toggleFetchIfNeeded() {\n const stages = this.#networkStorage.getInterceptionStages(this.topLevelId);\n if (this.#fetchDomainStages.request === stages.request &&\n this.#fetchDomainStages.response === stages.response &&\n this.#fetchDomainStages.auth === stages.auth) {\n return;\n }\n const patterns = [];\n this.#fetchDomainStages = stages;\n if (stages.request || stages.auth) {\n // CDP quirk we need request interception when we intercept auth\n patterns.push({\n urlPattern: '*',\n requestStage: 'Request',\n });\n }\n if (stages.response) {\n patterns.push({\n urlPattern: '*',\n requestStage: 'Response',\n });\n }\n if (patterns.length) {\n await this.#cdpClient.sendCommand('Fetch.enable', {\n patterns,\n handleAuthRequests: stages.auth,\n });\n }\n else {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n void Promise.allSettled(blockedRequest.map((request) => request.waitNextPhase))\n .then(async () => {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n if (blockedRequest.length) {\n return await this.toggleFetchIfNeeded();\n }\n return await this.#cdpClient.sendCommand('Fetch.disable');\n })\n .catch((error) => {\n this.#logger?.(LogType.bidi, 'Disable failed', error);\n });\n }\n }\n /**\n * Toggles CDP \"Fetch\" domain and enable/disable network cache.\n */\n async toggleNetworkIfNeeded() {\n // Although the Network domain remains active, Fetch domain activation and caching\n // settings should be managed dynamically.\n try {\n await Promise.all([\n this.toggleSetCacheDisabled(),\n this.toggleFetchIfNeeded(),\n ]);\n }\n catch (err) {\n this.#logger?.(LogType.debugError, err);\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n async toggleSetCacheDisabled(disable) {\n const defaultCacheDisabled = this.#networkStorage.defaultCacheBehavior === 'bypass';\n const cacheDisabled = disable ?? defaultCacheDisabled;\n if (this.#cacheDisableState === cacheDisabled) {\n return;\n }\n this.#cacheDisableState = cacheDisabled;\n try {\n await this.#cdpClient.sendCommand('Network.setCacheDisabled', {\n cacheDisabled,\n });\n }\n catch (err) {\n this.#logger?.(LogType.debugError, err);\n this.#cacheDisableState = !cacheDisabled;\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n async toggleDeviceAccessIfNeeded() {\n const enabled = this.isSubscribedTo(Bluetooth.EventNames.RequestDevicePromptUpdated);\n if (this.#deviceAccessEnabled === enabled) {\n return;\n }\n this.#deviceAccessEnabled = enabled;\n try {\n await this.#cdpClient.sendCommand(enabled ? 'DeviceAccess.enable' : 'DeviceAccess.disable');\n }\n catch (err) {\n this.#logger?.(LogType.debugError, err);\n this.#deviceAccessEnabled = !enabled;\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n async togglePreloadIfNeeded() {\n const enabled = this.isSubscribedTo(Speculation.EventNames.PrefetchStatusUpdated);\n if (this.#preloadEnabled === enabled) {\n return;\n }\n this.#preloadEnabled = enabled;\n try {\n await this.#cdpClient.sendCommand(enabled ? 'Preload.enable' : 'Preload.disable');\n }\n catch (err) {\n this.#logger?.(LogType.debugError, err);\n this.#preloadEnabled = !enabled;\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n /**\n * Heuristic checking if the error is due to the session being closed. If so, ignore the\n * error.\n */\n #isExpectedError(err) {\n const error = err;\n return ((error.code === -32001 &&\n error.message === 'Session with given id not found.') ||\n this.#cdpClient.isCloseError(err));\n }\n #setEventListeners() {\n this.#cdpClient.on('*', (event, params) => {\n // We may encounter uses for EventEmitter other than CDP events,\n // which we want to skip.\n if (typeof event !== 'string') {\n return;\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: `goog:cdp.${event}`,\n params: {\n event,\n params,\n session: this.cdpSessionId,\n },\n }, this.id);\n });\n }\n async #enableFetch(stages) {\n const patterns = [];\n if (stages.request || stages.auth) {\n // CDP quirk we need request interception when we intercept auth\n patterns.push({\n urlPattern: '*',\n requestStage: 'Request',\n });\n }\n if (stages.response) {\n patterns.push({\n urlPattern: '*',\n requestStage: 'Response',\n });\n }\n if (patterns.length) {\n const oldStages = this.#fetchDomainStages;\n this.#fetchDomainStages = stages;\n try {\n await this.#cdpClient.sendCommand('Fetch.enable', {\n patterns,\n handleAuthRequests: stages.auth,\n });\n }\n catch {\n this.#fetchDomainStages = oldStages;\n }\n }\n }\n async #disableFetch() {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n if (blockedRequest.length === 0) {\n this.#fetchDomainStages = {\n request: false,\n response: false,\n auth: false,\n };\n await this.#cdpClient.sendCommand('Fetch.disable');\n }\n }\n async toggleNetwork() {\n // TODO: respect the data collectors once CDP Network domain is enabled on-demand:\n // const networkEnable = this.#networkStorage.getCollectorsForBrowsingContext(this.topLevelId).length > 0;\n const stages = this.#networkStorage.getInterceptionStages(this.topLevelId);\n const fetchEnable = Object.values(stages).some((value) => value);\n const fetchChanged = this.#fetchDomainStages.request !== stages.request ||\n this.#fetchDomainStages.response !== stages.response ||\n this.#fetchDomainStages.auth !== stages.auth;\n this.#logger?.(LogType.debugInfo, 'Toggle Network', `Fetch (${fetchEnable}) ${fetchChanged}`);\n if (fetchEnable && fetchChanged) {\n await this.#enableFetch(stages);\n }\n if (!fetchEnable && fetchChanged) {\n await this.#disableFetch();\n }\n }\n /**\n * All the ProxyChannels from all the preload scripts of the given\n * BrowsingContext.\n */\n getChannels() {\n return this.#preloadScriptStorage\n .find()\n .flatMap((script) => script.channels);\n }\n async #updateWindowId() {\n const { windowId } = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId: this.id });\n this.#windowId = windowId;\n }\n /** Loads all top-level preload scripts. */\n async #initAndEvaluatePreloadScripts() {\n await Promise.all(this.#preloadScriptStorage\n .find({\n // Needed for OOPIF\n targetId: this.topLevelId,\n })\n .map((script) => {\n return script.initInTarget(this, true);\n }));\n }\n async setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, screenArea, scrollbarType = null) {\n if (viewport === null &&\n devicePixelRatio === null &&\n screenOrientation === null &&\n screenArea === null &&\n scrollbarType === null) {\n await this.cdpClient.sendCommand('Emulation.clearDeviceMetricsOverride');\n return;\n }\n const metricsOverride = {\n width: viewport?.width ?? 0,\n height: viewport?.height ?? 0,\n deviceScaleFactor: devicePixelRatio ?? 0,\n screenOrientation: this.#toCdpScreenOrientationAngle(screenOrientation) ?? undefined,\n mobile: false,\n screenWidth: screenArea?.width,\n screenHeight: screenArea?.height,\n scrollbarType: scrollbarType === 'overlay' ? 'overlay' : 'default',\n };\n await this.cdpClient.sendCommand('Emulation.setDeviceMetricsOverride', metricsOverride);\n }\n /**\n * Immediately schedules all the required commands to configure user context\n * configuration and waits for them to finish. It's important to schedule them\n * in parallel, so that they are enqueued before any page's scripts.\n */\n async #setUserContextConfig(config) {\n const promises = [];\n promises.push(this.#cdpClient\n .sendCommand('Page.setPrerenderingAllowed', {\n isAllowed: !config.prerenderingDisabled,\n })\n .catch(() => {\n // Ignore CDP errors, as the command is not supported by iframe targets or\n // prerendered pages. Generic catch, as the error can vary between CdpClient\n // implementations: Tab vs Puppeteer.\n }));\n if (config.viewport !== undefined ||\n config.devicePixelRatio !== undefined ||\n config.screenOrientation !== undefined ||\n config.screenArea !== undefined) {\n promises.push(this.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, config.scrollbarType ?? null).catch(() => {\n // Ignore CDP errors, as the command is not supported by iframe targets. Generic\n // catch, as the error can vary between CdpClient implementations: Tab vs\n // Puppeteer.\n }));\n }\n if (config.geolocation !== undefined && config.geolocation !== null) {\n promises.push(this.setGeolocationOverride(config.geolocation));\n }\n if (config.locale !== undefined) {\n promises.push(this.setLocaleOverride(config.locale));\n }\n if (config.timezone !== undefined) {\n promises.push(this.setTimezoneOverride(config.timezone));\n }\n if (config.extraHeaders !== undefined) {\n promises.push(this.setExtraHeaders(config.extraHeaders));\n }\n if (config.userAgent !== undefined ||\n config.locale !== undefined ||\n config.clientHints !== undefined) {\n promises.push(this.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints));\n }\n if (config.scriptingEnabled !== undefined) {\n promises.push(this.setScriptingEnabled(config.scriptingEnabled));\n }\n if (config.acceptInsecureCerts !== undefined) {\n promises.push(this.cdpClient.sendCommand('Security.setIgnoreCertificateErrors', {\n ignore: config.acceptInsecureCerts,\n }));\n }\n if (config.emulatedNetworkConditions !== undefined) {\n promises.push(this.setEmulatedNetworkConditions(config.emulatedNetworkConditions));\n }\n if (config.maxTouchPoints !== undefined) {\n promises.push(this.setTouchOverride(config.maxTouchPoints));\n }\n await Promise.all(promises);\n }\n get topLevelId() {\n return (this.#browsingContextStorage.findTopLevelContextId(this.id) ?? this.id);\n }\n isSubscribedTo(moduleOrEvent) {\n return this.#eventManager.subscriptionManager.isSubscribedTo(moduleOrEvent, this.topLevelId);\n }\n #ignoreFileDialog() {\n const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext);\n return ((config.userPromptHandler?.file ??\n config.userPromptHandler?.default ??\n \"ignore\" /* Session.UserPromptHandlerType.Ignore */) ===\n \"ignore\" /* Session.UserPromptHandlerType.Ignore */);\n }\n async setGeolocationOverride(geolocation) {\n if (geolocation === null) {\n await this.cdpClient.sendCommand('Emulation.clearGeolocationOverride');\n }\n else if ('type' in geolocation) {\n if (geolocation.type !== 'positionUnavailable') {\n // Unreachable. Handled by params parser.\n throw new UnknownErrorException(`Unknown geolocation error ${geolocation.type}`);\n }\n // Omitting latitude, longitude or accuracy emulates position unavailable.\n await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {});\n }\n else if ('latitude' in geolocation) {\n await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {\n latitude: geolocation.latitude,\n longitude: geolocation.longitude,\n accuracy: geolocation.accuracy ?? 1,\n // `null` value is treated as \"missing\".\n altitude: geolocation.altitude ?? undefined,\n altitudeAccuracy: geolocation.altitudeAccuracy ?? undefined,\n heading: geolocation.heading ?? undefined,\n speed: geolocation.speed ?? undefined,\n });\n }\n else {\n // Unreachable. Handled by params parser.\n throw new UnknownErrorException('Unexpected geolocation coordinates value');\n }\n }\n async setTouchOverride(maxTouchPoints) {\n const touchEmulationParams = {\n enabled: maxTouchPoints !== null,\n };\n if (maxTouchPoints !== null) {\n touchEmulationParams.maxTouchPoints = maxTouchPoints;\n }\n await this.cdpClient.sendCommand('Emulation.setTouchEmulationEnabled', touchEmulationParams);\n }\n #toCdpScreenOrientationAngle(orientation) {\n if (orientation === null) {\n return null;\n }\n // https://w3c.github.io/screen-orientation/#the-current-screen-orientation-type-and-angle\n if (orientation.natural === \"portrait\" /* Emulation.ScreenOrientationNatural.Portrait */) {\n switch (orientation.type) {\n case 'portrait-primary':\n return {\n angle: 0,\n type: 'portraitPrimary',\n };\n case 'landscape-primary':\n return {\n angle: 90,\n type: 'landscapePrimary',\n };\n case 'portrait-secondary':\n return {\n angle: 180,\n type: 'portraitSecondary',\n };\n case 'landscape-secondary':\n return {\n angle: 270,\n type: 'landscapeSecondary',\n };\n default:\n // Unreachable.\n throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`);\n }\n }\n if (orientation.natural === \"landscape\" /* Emulation.ScreenOrientationNatural.Landscape */) {\n switch (orientation.type) {\n case 'landscape-primary':\n return {\n angle: 0,\n type: 'landscapePrimary',\n };\n case 'portrait-primary':\n return {\n angle: 90,\n type: 'portraitPrimary',\n };\n case 'landscape-secondary':\n return {\n angle: 180,\n type: 'landscapeSecondary',\n };\n case 'portrait-secondary':\n return {\n angle: 270,\n type: 'portraitSecondary',\n };\n default:\n // Unreachable.\n throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`);\n }\n }\n // Unreachable.\n throw new UnknownErrorException(`Unexpected orientation natural ${orientation.natural}`);\n }\n async setLocaleOverride(locale) {\n if (locale === null) {\n await this.cdpClient.sendCommand('Emulation.setLocaleOverride', {});\n }\n else {\n await this.cdpClient.sendCommand('Emulation.setLocaleOverride', {\n locale,\n });\n }\n }\n async setScriptingEnabled(scriptingEnabled) {\n await this.cdpClient.sendCommand('Emulation.setScriptExecutionDisabled', {\n value: scriptingEnabled === false,\n });\n }\n async setTimezoneOverride(timezone) {\n if (timezone === null) {\n await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', {\n // If empty, disables the override and restores default host system timezone.\n timezoneId: '',\n });\n }\n else {\n await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', {\n timezoneId: timezone,\n });\n }\n }\n async setExtraHeaders(headers) {\n await this.cdpClient.sendCommand('Network.setExtraHTTPHeaders', {\n headers,\n });\n }\n async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) {\n const userAgentMetadata = clientHints\n ? {\n brands: clientHints.brands?.map((b) => ({\n brand: b.brand,\n version: b.version,\n })),\n fullVersionList: clientHints.fullVersionList,\n platform: clientHints.platform ?? '',\n platformVersion: clientHints.platformVersion ?? '',\n architecture: clientHints.architecture ?? '',\n model: clientHints.model ?? '',\n mobile: clientHints.mobile ?? false,\n bitness: clientHints.bitness ?? undefined,\n wow64: clientHints.wow64 ?? undefined,\n formFactors: clientHints.formFactors ?? undefined,\n }\n : undefined;\n await this.cdpClient.sendCommand('Emulation.setUserAgentOverride', {\n // `userAgent` is required if `userAgentMetadata` is provided.\n userAgent: userAgent || (userAgentMetadata ? this.#defaultUserAgent : ''),\n acceptLanguage: acceptLanguage ?? undefined,\n // We need to provide the platform to enable platform emulation.\n // Note that the value might be different from the one expected by the\n // legacy `navigator.platform` (e.g. `Win32` vs `Windows`).\n // https://github.com/w3c/webdriver-bidi/issues/1065\n platform: clientHints?.platform ?? undefined,\n userAgentMetadata,\n });\n }\n async setEmulatedNetworkConditions(networkConditions) {\n if (networkConditions !== null && networkConditions.type !== 'offline') {\n throw new UnsupportedOperationException(`Unsupported network conditions ${networkConditions.type}`);\n }\n await Promise.all([\n this.cdpClient.sendCommand('Network.emulateNetworkConditionsByRule', {\n offline: networkConditions?.type === 'offline',\n matchedNetworkConditions: [\n {\n urlPattern: '',\n latency: 0,\n downloadThroughput: -1,\n uploadThroughput: -1,\n },\n ],\n }),\n this.cdpClient.sendCommand('Network.overrideNetworkState', {\n offline: networkConditions?.type === 'offline',\n // TODO: restore the original `latency` value when emulation is removed.\n latency: 0,\n downloadThroughput: -1,\n uploadThroughput: -1,\n }),\n ]);\n }\n}\n//# sourceMappingURL=CdpTarget.js.map","import { LogType } from '../../../utils/log.js';\nimport { BrowsingContextImpl, serializeOrigin, } from '../context/BrowsingContextImpl.js';\nimport { WorkerRealm } from '../script/WorkerRealm.js';\nimport { CdpTarget } from './CdpTarget.js';\nconst cdpToBidiTargetTypes = {\n service_worker: 'service-worker',\n shared_worker: 'shared-worker',\n worker: 'dedicated-worker',\n};\nexport class CdpTargetManager {\n #browserCdpClient;\n #cdpConnection;\n #targetKeysToBeIgnoredByAutoAttach = new Set();\n #selfTargetId;\n #eventManager;\n #browsingContextStorage;\n #networkStorage;\n #bluetoothProcessor;\n #preloadScriptStorage;\n #realmStorage;\n #configStorage;\n #speculationProcessor;\n #defaultUserContextId;\n #defaultUserAgent;\n #logger;\n constructor(cdpConnection, browserCdpClient, selfTargetId, eventManager, browsingContextStorage, realmStorage, networkStorage, configStorage, bluetoothProcessor, speculationProcessor, preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger) {\n this.#cdpConnection = cdpConnection;\n this.#browserCdpClient = browserCdpClient;\n this.#targetKeysToBeIgnoredByAutoAttach.add(selfTargetId);\n this.#selfTargetId = selfTargetId;\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#networkStorage = networkStorage;\n this.#configStorage = configStorage;\n this.#bluetoothProcessor = bluetoothProcessor;\n this.#speculationProcessor = speculationProcessor;\n this.#realmStorage = realmStorage;\n this.#defaultUserContextId = defaultUserContextId;\n this.#defaultUserAgent = defaultUserAgent;\n this.#logger = logger;\n this.#setEventListeners(browserCdpClient);\n }\n /**\n * This method is called for each CDP session, since this class is responsible\n * for creating and destroying all targets and browsing contexts.\n */\n #setEventListeners(cdpClient) {\n cdpClient.on('Target.attachedToTarget', (params) => {\n this.#handleAttachedToTargetEvent(params, cdpClient);\n });\n cdpClient.on('Target.detachedFromTarget', this.#handleDetachedFromTargetEvent.bind(this));\n cdpClient.on('Target.targetInfoChanged', this.#handleTargetInfoChangedEvent.bind(this));\n cdpClient.on('Inspector.targetCrashed', () => {\n this.#handleTargetCrashedEvent(cdpClient);\n });\n cdpClient.on('Page.frameAttached', this.#handleFrameAttachedEvent.bind(this));\n cdpClient.on('Page.frameSubtreeWillBeDetached', this.#handleFrameSubtreeWillBeDetached.bind(this));\n }\n #handleFrameAttachedEvent(params) {\n const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId);\n if (parentBrowsingContext !== undefined) {\n BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, \n // At this point, we don't know the URL of the frame yet, so it will be updated\n // later.\n 'about:blank', undefined, this.#logger);\n }\n }\n #handleFrameSubtreeWillBeDetached(params) {\n this.#browsingContextStorage.findContext(params.frameId)?.dispose(true);\n }\n #handleAttachedToTargetEvent(params, parentSessionCdpClient) {\n const { sessionId, targetInfo } = params;\n const targetCdpClient = this.#cdpConnection.getCdpClient(sessionId);\n const detach = async () => {\n // Detaches and resumes the target suppressing errors.\n await targetCdpClient\n .sendCommand('Runtime.runIfWaitingForDebugger')\n .then(() => parentSessionCdpClient.sendCommand('Target.detachFromTarget', params))\n .catch((error) => this.#logger?.(LogType.debugError, error));\n };\n // Do not attach to the Mapper target.\n if (this.#selfTargetId === targetInfo.targetId) {\n void detach();\n return;\n }\n // Service workers are special case because they attach to the\n // browser target and the page target (so twice per worker) during\n // the regular auto-attach and might hang if the CDP session on\n // the browser level is not detached. The logic to detach the\n // right session is handled in the switch below.\n const targetKey = targetInfo.type === 'service_worker'\n ? `${parentSessionCdpClient.sessionId}_${targetInfo.targetId}`\n : targetInfo.targetId;\n // Mapper generally only needs one session per target. If we\n // receive additional auto-attached sessions, that is very likely\n // coming from custom CDP sessions.\n if (this.#targetKeysToBeIgnoredByAutoAttach.has(targetKey)) {\n // Return to leave the session untouched.\n return;\n }\n this.#targetKeysToBeIgnoredByAutoAttach.add(targetKey);\n const userContext = targetInfo.browserContextId &&\n targetInfo.browserContextId !== this.#defaultUserContextId\n ? targetInfo.browserContextId\n : 'default';\n switch (targetInfo.type) {\n case 'tab': {\n // Tab targets are required only to handle page targets beneath them.\n this.#setEventListeners(targetCdpClient);\n // Auto-attach to the page target. No need in resuming tab target debugger, as it\n // should preserve the page target debugger state, and will be resumed by the page\n // target.\n void (async () => {\n await targetCdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n });\n })();\n return;\n }\n case 'page':\n case 'iframe': {\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n const maybeContext = this.#browsingContextStorage.findContext(targetInfo.targetId);\n if (maybeContext && targetInfo.type === 'iframe') {\n // OOPiF.\n maybeContext.updateCdpTarget(cdpTarget);\n }\n else {\n // If attaching to existing browser instance, there could be OOPiF targets. This\n // case is handled by the `findFrameParentId` method.\n const parentId = this.#findFrameParentId(targetInfo, parentSessionCdpClient.sessionId);\n // New context.\n BrowsingContextImpl.create(targetInfo.targetId, parentId, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, \n // Hack: when a new target created, CDP emits targetInfoChanged with an empty\n // url, and navigates it to about:blank later. When the event is emitted for\n // an existing target (reconnect), the url is already known, and navigation\n // events will not be emitted anymore. Replacing empty url with `about:blank`\n // allows to handle both cases in the same way.\n // \"7.3.2.1 Creating browsing contexts\".\n // https://html.spec.whatwg.org/multipage/document-sequences.html#creating-browsing-contexts\n // TODO: check who to deal with non-null creator and its `creatorOrigin`.\n targetInfo.url === '' ? 'about:blank' : targetInfo.url, targetInfo.openerFrameId ?? targetInfo.openerId, this.#logger);\n }\n return;\n }\n case 'service_worker':\n case 'worker': {\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: parentSessionCdpClient.sessionId,\n sandbox: null, // Non-sandboxed realms.\n });\n // If there is no browsing context, this worker is already terminated.\n if (!realm) {\n void detach();\n return;\n }\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget, realm);\n return;\n }\n // In CDP, we only emit shared workers on the browser and not the set of\n // frames that use the shared worker. If we change this in the future to\n // behave like service workers (emits on both browser and frame targets),\n // we can remove this block and merge service workers with the above one.\n case 'shared_worker': {\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget);\n return;\n }\n }\n // DevTools or some other not supported by BiDi target. Just release\n // debugger and ignore them.\n void detach();\n }\n /** Try to find the parent browsing context ID for the given attached target. */\n #findFrameParentId(targetInfo, parentSessionId) {\n if (targetInfo.type !== 'iframe') {\n return null;\n }\n const parentId = targetInfo.openerFrameId ?? targetInfo.openerId;\n if (parentId !== undefined) {\n return parentId;\n }\n if (parentSessionId !== undefined) {\n return (this.#browsingContextStorage.findContextBySession(parentSessionId)\n ?.id ?? null);\n }\n return null;\n }\n #createCdpTarget(targetCdpClient, parentCdpClient, targetInfo, userContext) {\n this.#setEventListeners(targetCdpClient);\n this.#preloadScriptStorage.onCdpTargetCreated(targetInfo.targetId, userContext);\n const target = CdpTarget.create(targetInfo.targetId, targetCdpClient, this.#browserCdpClient, parentCdpClient, this.#realmStorage, this.#eventManager, this.#preloadScriptStorage, this.#browsingContextStorage, this.#networkStorage, this.#configStorage, userContext, \n // Pass the cached default User Agent to the new target.\n this.#defaultUserAgent, this.#logger);\n this.#networkStorage.onCdpTargetCreated(target);\n this.#bluetoothProcessor.onCdpTargetCreated(target);\n this.#speculationProcessor.onCdpTargetCreated(target);\n return target;\n }\n #workers = new Map();\n #handleWorkerTarget(realmType, cdpTarget, ownerRealm) {\n cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => {\n const { uniqueId, id, origin } = params.context;\n const workerRealm = new WorkerRealm(cdpTarget.cdpClient, this.#eventManager, id, this.#logger, serializeOrigin(origin), ownerRealm ? [ownerRealm] : [], uniqueId, this.#realmStorage, realmType);\n this.#workers.set(cdpTarget.cdpSessionId, workerRealm);\n });\n }\n #handleDetachedFromTargetEvent({ sessionId, targetId, }) {\n if (targetId) {\n this.#preloadScriptStorage.find({ targetId }).map((preloadScript) => {\n preloadScript.dispose(targetId);\n });\n }\n const context = this.#browsingContextStorage.findContextBySession(sessionId);\n if (context) {\n context.dispose(true);\n return;\n }\n const worker = this.#workers.get(sessionId);\n if (worker) {\n this.#realmStorage.deleteRealms({\n cdpSessionId: worker.cdpClient.sessionId,\n });\n }\n }\n #handleTargetInfoChangedEvent(params) {\n const context = this.#browsingContextStorage.findContext(params.targetInfo.targetId);\n if (context) {\n context.onTargetInfoChanged(params);\n }\n }\n #handleTargetCrashedEvent(cdpClient) {\n // This is primarily used for service and shared workers. CDP tends to not\n // signal they closed gracefully and instead says they crashed to signal\n // they are closed.\n const realms = this.#realmStorage.findRealms({\n cdpSessionId: cdpClient.sessionId,\n });\n for (const realm of realms) {\n realm.dispose();\n }\n }\n}\n//# sourceMappingURL=CdpTargetManager.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoSuchFrameException, InvalidArgumentException, } from '../../../protocol/protocol.js';\nimport { EventEmitter } from '../../../utils/EventEmitter.js';\n/** Container class for browsing contexts. */\nexport class BrowsingContextStorage {\n /** Map from context ID to context implementation. */\n #contexts = new Map();\n /** Event emitter for browsing context storage eventsis not expected to be exposed to\n * the outside world. */\n #eventEmitter = new EventEmitter();\n /** Gets all top-level contexts, i.e. those with no parent. */\n getTopLevelContexts() {\n return this.getAllContexts().filter((context) => context.isTopLevelContext());\n }\n /** Gets all contexts. */\n getAllContexts() {\n return Array.from(this.#contexts.values());\n }\n /** Deletes the context with the given ID. */\n deleteContextById(id) {\n this.#contexts.delete(id);\n }\n /** Deletes the given context. */\n deleteContext(context) {\n this.#contexts.delete(context.id);\n }\n /** Tracks the given context. */\n addContext(context) {\n this.#contexts.set(context.id, context);\n this.#eventEmitter.emit(\"added\" /* BrowsingContextStorageEvents.Added */, {\n browsingContext: context,\n });\n }\n /**\n * Waits for a context with the given ID to be added and returns it.\n */\n waitForContext(browsingContextId) {\n if (this.#contexts.has(browsingContextId)) {\n return Promise.resolve(this.getContext(browsingContextId));\n }\n return new Promise((resolve) => {\n const listener = (event) => {\n if (event.browsingContext.id === browsingContextId) {\n this.#eventEmitter.off(\"added\" /* BrowsingContextStorageEvents.Added */, listener);\n resolve(event.browsingContext);\n }\n };\n this.#eventEmitter.on(\"added\" /* BrowsingContextStorageEvents.Added */, listener);\n });\n }\n /** Returns true whether there is an existing context with the given ID. */\n hasContext(id) {\n return this.#contexts.has(id);\n }\n /** Gets the context with the given ID, if any. */\n findContext(id) {\n return this.#contexts.get(id);\n }\n /** Returns the top-level context ID of the given context, if any. */\n findTopLevelContextId(id) {\n if (id === null) {\n return null;\n }\n const maybeContext = this.findContext(id);\n if (!maybeContext) {\n return null;\n }\n const parentId = maybeContext.parentId ?? null;\n if (parentId === null) {\n return id;\n }\n return this.findTopLevelContextId(parentId);\n }\n findContextBySession(sessionId) {\n for (const context of this.#contexts.values()) {\n if (context.cdpTarget.cdpSessionId === sessionId) {\n return context;\n }\n }\n return;\n }\n /** Gets the context with the given ID, if any, otherwise throws. */\n getContext(id) {\n const result = this.findContext(id);\n if (result === undefined) {\n throw new NoSuchFrameException(`Context ${id} not found`);\n }\n return result;\n }\n verifyTopLevelContextsList(contexts) {\n const foundContexts = new Set();\n if (!contexts) {\n return foundContexts;\n }\n for (const contextId of contexts) {\n const context = this.getContext(contextId);\n if (context.isTopLevelContext()) {\n foundContexts.add(context);\n }\n else {\n throw new InvalidArgumentException(`Non top-level context '${contextId}' given.`);\n }\n }\n return foundContexts;\n }\n verifyContextsList(contexts) {\n if (!contexts.length) {\n return;\n }\n for (const contextId of contexts) {\n this.getContext(contextId);\n }\n }\n}\n//# sourceMappingURL=BrowsingContextStorage.js.map","/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NoSuchScriptException } from '../../../protocol/ErrorResponse.js';\n/**\n * Container class for preload scripts.\n */\nexport class PreloadScriptStorage {\n /** Tracks all BiDi preload scripts. */\n #scripts = new Set();\n /**\n * Finds all entries that match the given filter (OR logic).\n */\n find(filter) {\n if (!filter) {\n return [...this.#scripts];\n }\n return [...this.#scripts].filter((script) => {\n // Global scripts have no contexts or userContext\n if (script.contexts === undefined && script.userContexts === undefined) {\n return true;\n }\n if (filter.targetId !== undefined &&\n script.targetIds.has(filter.targetId)) {\n return true;\n }\n return false;\n });\n }\n add(preloadScript) {\n this.#scripts.add(preloadScript);\n }\n /** Deletes all BiDi preload script entries that match the given filter. */\n remove(id) {\n const script = [...this.#scripts].find((script) => script.id === id);\n if (script === undefined) {\n throw new NoSuchScriptException(`No preload script with id '${id}'`);\n }\n this.#scripts.delete(script);\n }\n /** Gets the preload script with the given ID, if any, otherwise throws. */\n getPreloadScript(id) {\n const script = [...this.#scripts].find((script) => script.id === id);\n if (script === undefined) {\n throw new NoSuchScriptException(`No preload script with id '${id}'`);\n }\n return script;\n }\n onCdpTargetCreated(targetId, userContext) {\n const scriptInUserContext = [...this.#scripts].filter((script) => {\n // Global scripts\n if (!script.userContexts && !script.contexts) {\n return true;\n }\n return script.userContexts?.includes(userContext);\n });\n for (const script of scriptInUserContext) {\n script.targetIds.add(targetId);\n }\n }\n}\n//# sourceMappingURL=PreloadScriptStorage.js.map","import { NoSuchFrameException, } from '../../../protocol/protocol.js';\nimport { WindowRealm } from './WindowRealm.js';\n/** Container class for browsing realms. */\nexport class RealmStorage {\n /** Tracks handles and their realms sent to the client. */\n #knownHandlesToRealmMap = new Map();\n /** Map from realm ID to Realm. */\n #realmMap = new Map();\n /** List of the internal sandboxed realms which should not be reported to the user. */\n hiddenSandboxes = new Set();\n get knownHandlesToRealmMap() {\n return this.#knownHandlesToRealmMap;\n }\n addRealm(realm) {\n this.#realmMap.set(realm.realmId, realm);\n }\n /** Finds all realms that match the given filter. */\n findRealms(filter) {\n const sandboxFilterValue = filter.sandbox === null ? undefined : filter.sandbox;\n return Array.from(this.#realmMap.values()).filter((realm) => {\n if (filter.realmId !== undefined && filter.realmId !== realm.realmId) {\n return false;\n }\n if (filter.browsingContextId !== undefined &&\n !realm.associatedBrowsingContexts\n .map((browsingContext) => browsingContext.id)\n .includes(filter.browsingContextId)) {\n return false;\n }\n if (filter.sandbox !== undefined &&\n (!(realm instanceof WindowRealm) ||\n sandboxFilterValue !== realm.sandbox)) {\n return false;\n }\n if (filter.executionContextId !== undefined &&\n filter.executionContextId !== realm.executionContextId) {\n return false;\n }\n if (filter.origin !== undefined && filter.origin !== realm.origin) {\n return false;\n }\n if (filter.type !== undefined && filter.type !== realm.realmType) {\n return false;\n }\n if (filter.cdpSessionId !== undefined &&\n filter.cdpSessionId !== realm.cdpClient.sessionId) {\n return false;\n }\n if (filter.isHidden !== undefined &&\n filter.isHidden !== realm.isHidden()) {\n return false;\n }\n return true;\n });\n }\n findRealm(filter) {\n return this.findRealms(filter)[0];\n }\n /** Gets the only realm that matches the given filter, if any, otherwise throws. */\n getRealm(filter) {\n const maybeRealm = this.findRealm(filter);\n if (maybeRealm === undefined) {\n throw new NoSuchFrameException(`Realm ${JSON.stringify(filter)} not found`);\n }\n return maybeRealm;\n }\n /** Deletes all realms that match the given filter. */\n deleteRealms(filter) {\n this.findRealms(filter).map((realm) => {\n realm.dispose();\n this.#realmMap.delete(realm.realmId);\n Array.from(this.knownHandlesToRealmMap.entries())\n .filter(([, r]) => r === realm.realmId)\n .map(([handle]) => this.knownHandlesToRealmMap.delete(handle));\n });\n }\n}\n//# sourceMappingURL=RealmStorage.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Implements a FIFO buffer with a fixed size. */\nexport class Buffer {\n #capacity;\n #entries = [];\n #onItemRemoved;\n /**\n * @param capacity The buffer capacity.\n * @param onItemRemoved Delegate called for each removed element.\n */\n constructor(capacity, onItemRemoved) {\n this.#capacity = capacity;\n this.#onItemRemoved = onItemRemoved;\n }\n get() {\n return this.#entries;\n }\n add(value) {\n this.#entries.push(value);\n while (this.#entries.length > this.#capacity) {\n const item = this.#entries.shift();\n if (item !== undefined) {\n this.#onItemRemoved?.(item);\n }\n }\n }\n}\n//# sourceMappingURL=Buffer.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates an object with a positive unique incrementing id.\n */\nexport class IdWrapper {\n static #counter = 0;\n #id;\n constructor() {\n this.#id = ++IdWrapper.#counter;\n }\n get id() {\n return this.#id;\n }\n}\n//# sourceMappingURL=IdWrapper.js.map","/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js';\n/**\n * Returns true if the given event is a CDP event.\n * @see https://chromedevtools.github.io/devtools-protocol/\n */\nexport function isCdpEvent(name) {\n return (name.split('.').at(0)?.startsWith(ChromiumBidi.BiDiModule.Cdp) ?? false);\n}\n/**\n * Asserts that the given event is known to BiDi or BiDi+, or throws otherwise.\n */\nexport function assertSupportedEvent(name) {\n if (!ChromiumBidi.EVENT_NAMES.has(name) && !isCdpEvent(name)) {\n throw new InvalidArgumentException(`Unknown event: ${name}`);\n }\n}\n//# sourceMappingURL=events.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChromiumBidi, InvalidArgumentException, NoSuchFrameException, } from '../../../protocol/protocol.js';\nimport { uuidv4 } from '../../../utils/uuid.js';\n/**\n * Returns the cartesian product of the given arrays.\n *\n * Example:\n * cartesian([1, 2], ['a', 'b']); => [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n */\nexport function cartesianProduct(...a) {\n return a.reduce((a, b) => a.flatMap((d) => b.map((e) => [d, e].flat())));\n}\n/** Expands \"AllEvents\" events into atomic events. */\nexport function unrollEvents(events) {\n const allEvents = new Set();\n function addEvents(events) {\n for (const event of events) {\n allEvents.add(event);\n }\n }\n for (const event of events) {\n switch (event) {\n case ChromiumBidi.BiDiModule.Bluetooth:\n addEvents(Object.values(ChromiumBidi.Bluetooth.EventNames));\n break;\n case ChromiumBidi.BiDiModule.BrowsingContext:\n addEvents(Object.values(ChromiumBidi.BrowsingContext.EventNames));\n break;\n case ChromiumBidi.BiDiModule.Input:\n addEvents(Object.values(ChromiumBidi.Input.EventNames));\n break;\n case ChromiumBidi.BiDiModule.Log:\n addEvents(Object.values(ChromiumBidi.Log.EventNames));\n break;\n case ChromiumBidi.BiDiModule.Network:\n addEvents(Object.values(ChromiumBidi.Network.EventNames));\n break;\n case ChromiumBidi.BiDiModule.Script:\n addEvents(Object.values(ChromiumBidi.Script.EventNames));\n break;\n case ChromiumBidi.BiDiModule.Speculation:\n addEvents(Object.values(ChromiumBidi.Speculation.EventNames));\n break;\n default:\n allEvents.add(event);\n }\n }\n return allEvents.values();\n}\nexport class SubscriptionManager {\n #subscriptions = [];\n #knownSubscriptionIds = new Set();\n #browsingContextStorage;\n constructor(browsingContextStorage) {\n this.#browsingContextStorage = browsingContextStorage;\n }\n getGoogChannelsSubscribedToEvent(eventName, contextId) {\n const googChannels = new Set();\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, eventName, contextId)) {\n googChannels.add(subscription.googChannel);\n }\n }\n return Array.from(googChannels);\n }\n getGoogChannelsSubscribedToEventGlobally(eventName) {\n const googChannels = new Set();\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, eventName)) {\n googChannels.add(subscription.googChannel);\n }\n }\n return Array.from(googChannels);\n }\n #isSubscribedTo(subscription, moduleOrEvent, browsingContextId) {\n let includesEvent = false;\n for (const eventName of subscription.eventNames) {\n // This also covers the `goog:cdp` case where\n // we don't unroll the event names\n if (\n // Event explicitly subscribed\n eventName === moduleOrEvent ||\n // Event subscribed via module\n eventName === moduleOrEvent.split('.').at(0) ||\n // Event explicitly subscribed compared to module\n eventName.split('.').at(0) === moduleOrEvent) {\n includesEvent = true;\n break;\n }\n }\n if (!includesEvent) {\n return false;\n }\n // user context subscription.\n if (subscription.userContextIds.size !== 0) {\n if (!browsingContextId) {\n return false;\n }\n const context = this.#browsingContextStorage.findContext(browsingContextId);\n if (!context) {\n return false;\n }\n return subscription.userContextIds.has(context.userContext);\n }\n // context subscription.\n if (subscription.topLevelTraversableIds.size !== 0) {\n if (!browsingContextId) {\n return false;\n }\n const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(browsingContextId);\n return (topLevelContext !== null &&\n subscription.topLevelTraversableIds.has(topLevelContext));\n }\n // global subscription.\n return true;\n }\n isSubscribedTo(moduleOrEvent, contextId) {\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, moduleOrEvent, contextId)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Subscribes to event in the given context and goog:channel.\n * @return {SubscriptionItem[]} List of\n * subscriptions. If the event is a whole module, it will return all the specific\n * events. If the contextId is null, it will return all the top-level contexts which were\n * not subscribed before the command.\n */\n subscribe(eventNames, contextIds, userContextIds, googChannel) {\n // All the subscriptions are handled on the top-level contexts.\n const subscription = {\n id: uuidv4(),\n eventNames: new Set(unrollEvents(eventNames)),\n topLevelTraversableIds: new Set(contextIds.map((contextId) => {\n const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(contextId);\n if (!topLevelContext) {\n throw new NoSuchFrameException(`Top-level navigable not found for context id ${contextId}`);\n }\n return topLevelContext;\n })),\n userContextIds: new Set(userContextIds),\n googChannel,\n };\n this.#subscriptions.push(subscription);\n this.#knownSubscriptionIds.add(subscription.id);\n return subscription;\n }\n /**\n * Unsubscribes atomically from all events in the given contexts and channel.\n *\n * This is a legacy spec branch to unsubscribe by attributes.\n */\n unsubscribe(inputEventNames, googChannel) {\n const eventNames = new Set(unrollEvents(inputEventNames));\n const newSubscriptions = [];\n const eventsMatched = new Set();\n for (const subscription of this.#subscriptions) {\n if (subscription.googChannel !== googChannel) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Skip user context subscriptions.\n if (subscription.userContextIds.size !== 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Skip subscriptions when none of the event names match.\n if (intersection(subscription.eventNames, eventNames).size === 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Skip non-global subscriptions.\n if (subscription.topLevelTraversableIds.size !== 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n const subscriptionEventNames = new Set(subscription.eventNames);\n for (const eventName of eventNames) {\n if (subscriptionEventNames.has(eventName)) {\n eventsMatched.add(eventName);\n subscriptionEventNames.delete(eventName);\n }\n }\n if (subscriptionEventNames.size !== 0) {\n newSubscriptions.push({\n ...subscription,\n eventNames: subscriptionEventNames,\n });\n }\n }\n // If some events did not match, it is an invalid request.\n if (!equal(eventsMatched, eventNames)) {\n throw new InvalidArgumentException('No subscription found');\n }\n // Committing the new subscriptions.\n this.#subscriptions = newSubscriptions;\n }\n /**\n * Unsubscribes by subscriptionId.\n */\n unsubscribeById(subscriptionIds) {\n const subscriptionIdsSet = new Set(subscriptionIds);\n const unknownIds = difference(subscriptionIdsSet, this.#knownSubscriptionIds);\n if (unknownIds.size !== 0) {\n throw new InvalidArgumentException('No subscription found');\n }\n this.#subscriptions = this.#subscriptions.filter((subscription) => {\n return !subscriptionIdsSet.has(subscription.id);\n });\n this.#knownSubscriptionIds = difference(this.#knownSubscriptionIds, subscriptionIdsSet);\n }\n}\n/**\n * Replace with Set.prototype.intersection once Node 20 is dropped.\n */\nfunction intersection(setA, setB) {\n const result = new Set();\n for (const a of setA) {\n if (setB.has(a)) {\n result.add(a);\n }\n }\n return result;\n}\n/**\n * Replace with Set.prototype.difference once Node 20 is dropped.\n */\nexport function difference(setA, setB) {\n const result = new Set();\n for (const a of setA) {\n if (!setB.has(a)) {\n result.add(a);\n }\n }\n return result;\n}\nfunction equal(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n for (const a of setA) {\n if (!setB.has(a)) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=SubscriptionManager.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nimport { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js';\nimport { Buffer } from '../../../utils/Buffer.js';\nimport { DefaultMap } from '../../../utils/DefaultMap.js';\nimport { EventEmitter } from '../../../utils/EventEmitter.js';\nimport { IdWrapper } from '../../../utils/IdWrapper.js';\nimport { OutgoingMessage } from '../../OutgoingMessage.js';\nimport { assertSupportedEvent } from './events.js';\nimport { difference, SubscriptionManager, unrollEvents, } from './SubscriptionManager.js';\nclass EventWrapper {\n #idWrapper = new IdWrapper();\n #contextId;\n #event;\n constructor(event, contextId) {\n this.#event = event;\n this.#contextId = contextId;\n }\n get id() {\n return this.#idWrapper.id;\n }\n get contextId() {\n return this.#contextId;\n }\n get event() {\n return this.#event;\n }\n}\n/**\n * Maps event name to a desired buffer length.\n */\nconst eventBufferLength = new Map([[ChromiumBidi.Log.EventNames.LogEntryAdded, 100]]);\nexport class EventManager extends EventEmitter {\n /**\n * Maps event name to a set of contexts where this event already happened.\n * Needed for getting buffered events from all the contexts in case of\n * subscripting to all contexts.\n */\n #eventToContextsMap = new DefaultMap(() => new Set());\n /**\n * Maps `eventName` + `browsingContext` to buffer. Used to get buffered events\n * during subscription. Channel-agnostic.\n */\n #eventBuffers = new Map();\n /**\n * Maps `eventName` + `browsingContext` to Map of goog:channel to last id.\n * Used to avoid sending duplicated events when user\n * subscribes -> unsubscribes -> subscribes.\n */\n #lastMessageSent = new Map();\n #subscriptionManager;\n #browsingContextStorage;\n /**\n * Map of event name to hooks to be called when client is subscribed to the event.\n */\n #subscribeHooks;\n #userContextStorage;\n constructor(browsingContextStorage, userContextStorage) {\n super();\n this.#browsingContextStorage = browsingContextStorage;\n this.#userContextStorage = userContextStorage;\n this.#subscriptionManager = new SubscriptionManager(browsingContextStorage);\n this.#subscribeHooks = new DefaultMap(() => []);\n }\n get subscriptionManager() {\n return this.#subscriptionManager;\n }\n /**\n * Returns consistent key to be used to access value maps.\n */\n static #getMapKey(eventName, browsingContext) {\n return JSON.stringify({ eventName, browsingContext });\n }\n addSubscribeHook(event, hook) {\n this.#subscribeHooks.get(event).push(hook);\n }\n registerEvent(event, contextId) {\n this.registerPromiseEvent(Promise.resolve({\n kind: 'success',\n value: event,\n }), contextId, event.method);\n }\n registerGlobalEvent(event) {\n this.registerGlobalPromiseEvent(Promise.resolve({\n kind: 'success',\n value: event,\n }), event.method);\n }\n registerPromiseEvent(event, contextId, eventName) {\n const eventWrapper = new EventWrapper(event, contextId);\n const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEvent(eventName, contextId);\n this.#bufferEvent(eventWrapper, eventName);\n // Send events to channels in the subscription priority.\n for (const googChannel of sortedGoogChannels) {\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage.createFromPromise(event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n registerGlobalPromiseEvent(event, eventName) {\n const eventWrapper = new EventWrapper(event, null);\n const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEventGlobally(eventName);\n this.#bufferEvent(eventWrapper, eventName);\n // Send events to goog:channels in the subscription priority.\n for (const googChannel of sortedGoogChannels) {\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage.createFromPromise(event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n async subscribe(eventNames, contextIds, userContextIds, googChannel) {\n for (const name of eventNames) {\n assertSupportedEvent(name);\n }\n if (userContextIds.length && contextIds.length) {\n throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.');\n }\n // First check if all the contexts are known.\n this.#browsingContextStorage.verifyContextsList(contextIds);\n // Validate user contexts.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n const unrolledEventNames = new Set(unrollEvents(eventNames));\n const subscribeStepEvents = new Map();\n const subscriptionNavigableIds = new Set(contextIds.length\n ? contextIds.map((contextId) => {\n const id = this.#browsingContextStorage.findTopLevelContextId(contextId);\n if (!id) {\n throw new InvalidArgumentException('Invalid context id');\n }\n return id;\n })\n : this.#browsingContextStorage.getTopLevelContexts().map((c) => c.id));\n for (const eventName of unrolledEventNames) {\n const subscribedNavigableIds = new Set(this.#browsingContextStorage\n .getTopLevelContexts()\n .map((c) => c.id)\n .filter((id) => {\n return this.#subscriptionManager.isSubscribedTo(eventName, id);\n }));\n subscribeStepEvents.set(eventName, difference(subscriptionNavigableIds, subscribedNavigableIds));\n }\n const subscription = this.#subscriptionManager.subscribe(eventNames, contextIds, userContextIds, googChannel);\n for (const eventName of subscription.eventNames) {\n for (const contextId of subscriptionNavigableIds) {\n for (const eventWrapper of this.#getBufferedEvents(eventName, contextId, googChannel)) {\n // The order of the events is important.\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage.createFromPromise(eventWrapper.event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n }\n for (const [eventName, contextIds] of subscribeStepEvents) {\n for (const contextId of contextIds) {\n this.#subscribeHooks.get(eventName).forEach((hook) => hook(contextId));\n }\n }\n await this.toggleModulesIfNeeded();\n return subscription.id;\n }\n async unsubscribe(eventNames, googChannel) {\n for (const name of eventNames) {\n assertSupportedEvent(name);\n }\n this.#subscriptionManager.unsubscribe(eventNames, googChannel);\n await this.toggleModulesIfNeeded();\n }\n async unsubscribeByIds(subscriptionIds) {\n this.#subscriptionManager.unsubscribeById(subscriptionIds);\n await this.toggleModulesIfNeeded();\n }\n async toggleModulesIfNeeded() {\n // TODO(1): Only update changed subscribers\n // TODO(2): Enable for Worker Targets\n await Promise.all(this.#browsingContextStorage.getAllContexts().map(async (context) => {\n return await context.toggleModulesIfNeeded();\n }));\n }\n clearBufferedEvents(contextId) {\n for (const eventName of eventBufferLength.keys()) {\n const bufferMapKey = _a.#getMapKey(eventName, contextId);\n this.#eventBuffers.delete(bufferMapKey);\n }\n }\n /**\n * If the event is buffer-able, put it in the buffer.\n */\n #bufferEvent(eventWrapper, eventName) {\n if (!eventBufferLength.has(eventName)) {\n // Do nothing if the event is no buffer-able.\n return;\n }\n const bufferMapKey = _a.#getMapKey(eventName, eventWrapper.contextId);\n if (!this.#eventBuffers.has(bufferMapKey)) {\n this.#eventBuffers.set(bufferMapKey, new Buffer(eventBufferLength.get(eventName)));\n }\n this.#eventBuffers.get(bufferMapKey).add(eventWrapper);\n // Add the context to the list of contexts having `eventName` events.\n this.#eventToContextsMap.get(eventName).add(eventWrapper.contextId);\n }\n /**\n * If the event is buffer-able, mark it as sent to the given contextId and goog:channel.\n */\n #markEventSent(eventWrapper, googChannel, eventName) {\n if (!eventBufferLength.has(eventName)) {\n // Do nothing if the event is no buffer-able.\n return;\n }\n const lastSentMapKey = _a.#getMapKey(eventName, eventWrapper.contextId);\n const lastId = Math.max(this.#lastMessageSent.get(lastSentMapKey)?.get(googChannel) ?? 0, eventWrapper.id);\n const googChannelMap = this.#lastMessageSent.get(lastSentMapKey);\n if (googChannelMap) {\n googChannelMap.set(googChannel, lastId);\n }\n else {\n this.#lastMessageSent.set(lastSentMapKey, new Map([[googChannel, lastId]]));\n }\n }\n /**\n * Returns events which are buffered and not yet sent to the given goog:channel events.\n */\n #getBufferedEvents(eventName, contextId, googChannel) {\n const bufferMapKey = _a.#getMapKey(eventName, contextId);\n const lastSentMessageId = this.#lastMessageSent.get(bufferMapKey)?.get(googChannel) ?? -Infinity;\n const result = this.#eventBuffers\n .get(bufferMapKey)\n ?.get()\n .filter((wrapper) => wrapper.id > lastSentMessageId) ?? [];\n if (contextId === null) {\n // For global subscriptions, events buffered in each context should be sent back.\n Array.from(this.#eventToContextsMap.get(eventName).keys())\n .filter((_contextId) => \n // Events without context are already in the result.\n _contextId !== null &&\n // Events from deleted contexts should not be sent.\n this.#browsingContextStorage.hasContext(_contextId))\n .map((_contextId) => this.#getBufferedEvents(eventName, _contextId, googChannel))\n .forEach((events) => result.push(...events));\n }\n return result.sort((e1, e2) => e1.id - e2.id);\n }\n}\n_a = EventManager;\n//# sourceMappingURL=EventManager.js.map","/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LogType } from '../../../utils/log.js';\nexport class SpeculationProcessor {\n #eventManager;\n #logger;\n constructor(eventManager, logger) {\n this.#eventManager = eventManager;\n this.#logger = logger;\n }\n onCdpTargetCreated(cdpTarget) {\n cdpTarget.cdpClient.on('Preload.prefetchStatusUpdated', (event) => {\n let prefetchStatus;\n switch (event.status) {\n case 'Running':\n prefetchStatus = \"pending\" /* Speculation.PreloadingStatus.Pending */;\n break;\n case 'Ready':\n prefetchStatus = \"ready\" /* Speculation.PreloadingStatus.Ready */;\n break;\n case 'Success':\n prefetchStatus = \"success\" /* Speculation.PreloadingStatus.Success */;\n break;\n case 'Failure':\n prefetchStatus = \"failure\" /* Speculation.PreloadingStatus.Failure */;\n break;\n default:\n // If status is not recognized, skip the event\n this.#logger?.(LogType.debugWarn, `Unknown prefetch status: ${event.status}`);\n return;\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'speculation.prefetchStatusUpdated',\n params: {\n context: event.initiatingFrameId,\n url: event.prefetchUrl,\n status: prefetchStatus,\n },\n }, cdpTarget.id);\n });\n }\n}\n//# sourceMappingURL=SpeculationProcessor.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { EventEmitter } from '../utils/EventEmitter.js';\nimport { LogType } from '../utils/log.js';\nimport { ProcessingQueue } from '../utils/ProcessingQueue.js';\nimport { CommandProcessor } from './CommandProcessor.js';\nimport { BluetoothProcessor } from './modules/bluetooth/BluetoothProcessor.js';\nimport { ContextConfigStorage } from './modules/browser/ContextConfigStorage.js';\nimport { UserContextStorage } from './modules/browser/UserContextStorage.js';\nimport { CdpTargetManager } from './modules/cdp/CdpTargetManager.js';\nimport { BrowsingContextStorage } from './modules/context/BrowsingContextStorage.js';\nimport { NetworkStorage } from './modules/network/NetworkStorage.js';\nimport { PreloadScriptStorage } from './modules/script/PreloadScriptStorage.js';\nimport { RealmStorage } from './modules/script/RealmStorage.js';\nimport { EventManager, } from './modules/session/EventManager.js';\nimport { SpeculationProcessor } from './modules/speculation/SpeculationProcessor.js';\nexport class BidiServer extends EventEmitter {\n #messageQueue;\n #transport;\n #commandProcessor;\n #eventManager;\n #browsingContextStorage = new BrowsingContextStorage();\n #realmStorage = new RealmStorage();\n #preloadScriptStorage = new PreloadScriptStorage();\n #bluetoothProcessor;\n #speculationProcessor;\n #logger;\n #handleIncomingMessage = (message) => {\n void this.#commandProcessor.processCommand(message).catch((error) => {\n this.#logger?.(LogType.debugError, error);\n });\n };\n #processOutgoingMessage = async (messageEntry) => {\n const message = messageEntry.message;\n if (messageEntry.googChannel !== null) {\n message['goog:channel'] = messageEntry.googChannel;\n }\n await this.#transport.sendMessage(message);\n };\n constructor(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, defaultUserAgent, parser, logger) {\n super();\n this.#logger = logger;\n this.#messageQueue = new ProcessingQueue(this.#processOutgoingMessage, this.#logger);\n this.#transport = bidiTransport;\n this.#transport.setOnMessage(this.#handleIncomingMessage);\n const contextConfigStorage = new ContextConfigStorage();\n const userContextStorage = new UserContextStorage(browserCdpClient);\n this.#eventManager = new EventManager(this.#browsingContextStorage, userContextStorage);\n const networkStorage = new NetworkStorage(this.#eventManager, this.#browsingContextStorage, browserCdpClient, logger);\n this.#bluetoothProcessor = new BluetoothProcessor(this.#eventManager, this.#browsingContextStorage);\n this.#speculationProcessor = new SpeculationProcessor(this.#eventManager, this.#logger);\n this.#commandProcessor = new CommandProcessor(cdpConnection, browserCdpClient, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#preloadScriptStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, userContextStorage, parser, async (options) => {\n // This is required to ignore certificate errors when service worker is fetched.\n await browserCdpClient.sendCommand('Security.setIgnoreCertificateErrors', {\n ignore: options.acceptInsecureCerts ?? false,\n });\n contextConfigStorage.updateGlobalConfig({\n acceptInsecureCerts: options.acceptInsecureCerts ?? false,\n userPromptHandler: options.unhandledPromptBehavior,\n prerenderingDisabled: options?.['goog:prerenderingDisabled'] ?? false,\n disableNetworkDurableMessages: options?.['goog:disableNetworkDurableMessages'],\n });\n new CdpTargetManager(cdpConnection, browserCdpClient, selfTargetId, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, this.#speculationProcessor, this.#preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger);\n // Needed to get events about new targets.\n await browserCdpClient.sendCommand('Target.setDiscoverTargets', {\n discover: true,\n });\n // Needed to automatically attach to new targets.\n await browserCdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n // Browser session should attach to tab instead of the page, so that\n // prerendering is not blocked.\n filter: [\n {\n type: 'page',\n exclude: true,\n },\n {},\n ],\n });\n await this.#topLevelContextsLoaded();\n }, this.#logger);\n this.#eventManager.on(\"event\" /* EventManagerEvents.Event */, ({ message, event }) => {\n this.emitOutgoingMessage(message, event);\n });\n this.#commandProcessor.on(\"response\" /* CommandProcessorEvents.Response */, ({ message, event }) => {\n this.emitOutgoingMessage(message, event);\n });\n }\n /**\n * Creates and starts BiDi Mapper instance.\n */\n static async createAndStart(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, parser, logger) {\n const [defaultUserContextId, version] = await Promise.all([\n this.#getDefaultUserContextId(browserCdpClient),\n // Fetch the default User Agent to be used in `CdpTarget`. This allows to avoid\n // round trips to the browser for every target override.\n browserCdpClient.sendCommand('Browser.getVersion'),\n // Required for `Browser.downloadWillBegin` events.\n browserCdpClient.sendCommand('Browser.setDownloadBehavior', {\n behavior: 'default',\n eventsEnabled: true,\n }),\n ]);\n const server = new BidiServer(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, version.userAgent, parser, logger);\n return server;\n }\n static async #getDefaultUserContextId(browserCdpClient) {\n // In chromium before `145.0.7578.0`, the default context is not exposed in\n // `Target.getBrowserContexts`, but can be observed via `Target.getTargets`.\n // If so, try to determine the default browser context by checking which one\n // is mentioned in `Target.getTargets` and not in\n // `Target.getBrowserContexts`.\n // TODO(after 2026-02-24): rely only on `defaultBrowserContextId` from\n // `Target.getBrowserContexts` after Chromium 145 reaches stable.\n const [{ defaultBrowserContextId, browserContextIds }, { targetInfos }] = await Promise.all([\n browserCdpClient.sendCommand('Target.getBrowserContexts'),\n browserCdpClient.sendCommand('Target.getTargets'),\n ]);\n if (defaultBrowserContextId) {\n return defaultBrowserContextId;\n }\n for (const info of targetInfos) {\n if (info.browserContextId &&\n !browserContextIds.includes(info.browserContextId)) {\n // The target belongs to a browser context that is not mentioned in\n // `Target.getBrowserContexts`. This is the default browser context.\n return info.browserContextId;\n }\n }\n // The browser context is unknown.\n return 'default';\n }\n /**\n * Sends BiDi message.\n */\n emitOutgoingMessage(messageEntry, event) {\n this.#messageQueue.add(messageEntry, event);\n }\n close() {\n this.#transport.close();\n }\n async #topLevelContextsLoaded() {\n await Promise.all(this.#browsingContextStorage\n .getTopLevelContexts()\n .map((c) => c.lifecycleLoaded()));\n }\n}\n//# sourceMappingURL=BidiServer.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { EventEmitter } from '../utils/EventEmitter.js';\n/** An error that will be thrown if/when the connection is closed. */\nexport class CloseError extends Error {\n}\n/** Represents a high-level CDP connection to the browser. */\nexport class MapperCdpClient extends EventEmitter {\n #cdpConnection;\n #sessionId;\n constructor(cdpConnection, sessionId) {\n super();\n this.#cdpConnection = cdpConnection;\n this.#sessionId = sessionId;\n }\n get sessionId() {\n return this.#sessionId;\n }\n sendCommand(method, ...params) {\n return this.#cdpConnection.sendCommand(method, params[0], this.#sessionId);\n }\n isCloseError(error) {\n return error instanceof CloseError;\n }\n}\n//# sourceMappingURL=CdpClient.js.map","var _a;\nimport { LogType } from '../utils/log.js';\nimport { CloseError, MapperCdpClient } from './CdpClient.js';\n/**\n * Represents a high-level CDP connection to the browser backend.\n *\n * Manages all CdpClients (each backed by a Session ID) instance for each active\n * CDP session.\n */\nexport class MapperCdpConnection {\n static LOGGER_PREFIX_RECV = `${LogType.cdp}:RECV ◂`;\n static LOGGER_PREFIX_SEND = `${LogType.cdp}:SEND ▸`;\n #mainBrowserCdpClient;\n #transport;\n /** Map from session ID to CdpClient.\n * `undefined` points to the main browser session. */\n #sessionCdpClients = new Map();\n #commandCallbacks = new Map();\n #logger;\n #nextId = 0;\n constructor(transport, logger) {\n this.#transport = transport;\n this.#logger = logger;\n this.#transport.setOnMessage(this.#onMessage);\n // Create default Browser CDP Session.\n this.#mainBrowserCdpClient = this.#createCdpClient(undefined);\n }\n /** Closes the connection to the browser. */\n close() {\n this.#transport.close();\n for (const [, { reject, error }] of this.#commandCallbacks) {\n reject(error);\n }\n this.#commandCallbacks.clear();\n this.#sessionCdpClients.clear();\n }\n async createBrowserSession() {\n const { sessionId } = await this.#mainBrowserCdpClient.sendCommand('Target.attachToBrowserTarget');\n return this.#createCdpClient(sessionId);\n }\n /**\n * Gets a CdpClient instance attached to the given session ID,\n * or null if the session is not attached.\n */\n getCdpClient(sessionId) {\n const cdpClient = this.#sessionCdpClients.get(sessionId);\n if (!cdpClient) {\n throw new Error(`Unknown CDP session ID: ${sessionId}`);\n }\n return cdpClient;\n }\n sendCommand(method, params, sessionId) {\n return new Promise((resolve, reject) => {\n const id = this.#nextId++;\n this.#commandCallbacks.set(id, {\n sessionId,\n resolve,\n reject,\n error: new CloseError(`${method} ${JSON.stringify(params)} ${sessionId ?? ''} call rejected because the connection has been closed.`),\n });\n const cdpMessage = { id, method, params };\n if (sessionId) {\n cdpMessage.sessionId = sessionId;\n }\n void this.#transport\n .sendMessage(JSON.stringify(cdpMessage))\n ?.catch((error) => {\n this.#logger?.(LogType.debugError, error);\n this.#transport.close();\n });\n this.#logger?.(_a.LOGGER_PREFIX_SEND, cdpMessage);\n });\n }\n #onMessage = (json) => {\n const message = JSON.parse(json);\n this.#logger?.(_a.LOGGER_PREFIX_RECV, message);\n // Update client map if a session is attached\n // Listen for these events on every session.\n if (message.method === 'Target.attachedToTarget') {\n const { sessionId } = message.params;\n this.#createCdpClient(sessionId);\n }\n if (message.id !== undefined) {\n // Handle command response.\n const callbacks = this.#commandCallbacks.get(message.id);\n this.#commandCallbacks.delete(message.id);\n if (callbacks) {\n if (message.result) {\n callbacks.resolve(message.result);\n }\n else if (message.error) {\n callbacks.reject(message.error);\n }\n }\n }\n else if (message.method) {\n const client = this.#sessionCdpClients.get(message.sessionId ?? undefined);\n client?.emit(message.method, message.params || {});\n // Update client map if a session is detached\n // But emit on that session\n if (message.method === 'Target.detachedFromTarget') {\n const { sessionId } = message.params;\n const client = this.#sessionCdpClients.get(sessionId);\n if (client) {\n this.#sessionCdpClients.delete(sessionId);\n client.removeAllListeners();\n }\n // Reject all the pending commands for the detached session.\n for (const callback of this.#commandCallbacks.values()) {\n if (callback.sessionId === sessionId) {\n callback.reject(callback.error);\n }\n }\n }\n }\n };\n /**\n * Creates a new CdpClient instance for the given session ID.\n * @param sessionId either a string, or undefined for the main browser session.\n * The main browser session is used only to create new browser sessions.\n * @private\n */\n #createCdpClient(sessionId) {\n const cdpClient = new MapperCdpClient(this, sessionId);\n this.#sessionCdpClients.set(sessionId, cdpClient);\n return cdpClient;\n }\n}\n_a = MapperCdpConnection;\n//# sourceMappingURL=CdpConnection.js.map","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7.\n * Run `node tools/generate-bidi-types.mjs` to regenerate.\n * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck Some types may be circular.\nimport z from 'zod';\nexport var Bluetooth;\n(function (Bluetooth) {\n Bluetooth.BluetoothUuidSchema = z.lazy(() => z.string());\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.BluetoothManufacturerDataSchema = z.lazy(() => z.object({\n key: z.number().int().nonnegative(),\n data: z.string(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.CharacteristicPropertiesSchema = z.lazy(() => z.object({\n broadcast: z.boolean().optional(),\n read: z.boolean().optional(),\n writeWithoutResponse: z.boolean().optional(),\n write: z.boolean().optional(),\n notify: z.boolean().optional(),\n indicate: z.boolean().optional(),\n authenticatedSignedWrites: z.boolean().optional(),\n extendedProperties: z.boolean().optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.RequestDeviceSchema = z.lazy(() => z.string());\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.RequestDeviceInfoSchema = z.lazy(() => z.object({\n id: Bluetooth.RequestDeviceSchema,\n name: z.union([z.string(), z.null()]),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.RequestDevicePromptSchema = z.lazy(() => z.string());\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.ScanRecordSchema = z.lazy(() => z.object({\n name: z.string().optional(),\n uuids: z.array(Bluetooth.BluetoothUuidSchema).optional(),\n appearance: z.number().optional(),\n manufacturerData: z\n .array(Bluetooth.BluetoothManufacturerDataSchema)\n .optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\nexport const BluetoothCommandSchema = z.lazy(() => z.union([\n Bluetooth.HandleRequestDevicePromptSchema,\n Bluetooth.SimulateAdapterSchema,\n Bluetooth.DisableSimulationSchema,\n Bluetooth.SimulatePreconnectedPeripheralSchema,\n Bluetooth.SimulateAdvertisementSchema,\n Bluetooth.SimulateGattConnectionResponseSchema,\n Bluetooth.SimulateGattDisconnectionSchema,\n Bluetooth.SimulateServiceSchema,\n Bluetooth.SimulateCharacteristicSchema,\n Bluetooth.SimulateCharacteristicResponseSchema,\n Bluetooth.SimulateDescriptorSchema,\n Bluetooth.SimulateDescriptorResponseSchema,\n]));\n(function (Bluetooth) {\n Bluetooth.HandleRequestDevicePromptSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.handleRequestDevicePrompt'),\n params: Bluetooth.HandleRequestDevicePromptParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.HandleRequestDevicePromptParametersSchema = z.lazy(() => z\n .object({\n context: z.string(),\n prompt: Bluetooth.RequestDevicePromptSchema,\n })\n .and(z.union([\n Bluetooth.HandleRequestDevicePromptAcceptParametersSchema,\n Bluetooth.HandleRequestDevicePromptCancelParametersSchema,\n ])));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.HandleRequestDevicePromptAcceptParametersSchema = z.lazy(() => z.object({\n accept: z.literal(true),\n device: Bluetooth.RequestDeviceSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.HandleRequestDevicePromptCancelParametersSchema = z.lazy(() => z.object({\n accept: z.literal(false),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateAdapterSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateAdapter'),\n params: Bluetooth.SimulateAdapterParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateAdapterParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n leSupported: z.boolean().optional(),\n state: z.enum(['absent', 'powered-off', 'powered-on']),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.DisableSimulationSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.disableSimulation'),\n params: Bluetooth.DisableSimulationParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.DisableSimulationParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulatePreconnectedPeripheralSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulatePreconnectedPeripheral'),\n params: Bluetooth.SimulatePreconnectedPeripheralParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulatePreconnectedPeripheralParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n name: z.string(),\n manufacturerData: z.array(Bluetooth.BluetoothManufacturerDataSchema),\n knownServiceUuids: z.array(Bluetooth.BluetoothUuidSchema),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateAdvertisementSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateAdvertisement'),\n params: Bluetooth.SimulateAdvertisementParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateAdvertisementParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n scanEntry: Bluetooth.SimulateAdvertisementScanEntryParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateAdvertisementScanEntryParametersSchema = z.lazy(() => z.object({\n deviceAddress: z.string(),\n rssi: z.number(),\n scanRecord: Bluetooth.ScanRecordSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateGattConnectionResponseSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateGattConnectionResponse'),\n params: Bluetooth.SimulateGattConnectionResponseParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateGattConnectionResponseParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n code: z.number().int().nonnegative(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateGattDisconnectionSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateGattDisconnection'),\n params: Bluetooth.SimulateGattDisconnectionParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateGattDisconnectionParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateServiceSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateService'),\n params: Bluetooth.SimulateServiceParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateServiceParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n uuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum(['add', 'remove']),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateCharacteristicSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateCharacteristic'),\n params: Bluetooth.SimulateCharacteristicParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateCharacteristicParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n characteristicProperties: Bluetooth.CharacteristicPropertiesSchema.optional(),\n type: z.enum(['add', 'remove']),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateCharacteristicResponseSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateCharacteristicResponse'),\n params: Bluetooth.SimulateCharacteristicResponseParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateCharacteristicResponseParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum([\n 'read',\n 'write',\n 'subscribe-to-notifications',\n 'unsubscribe-from-notifications',\n ]),\n code: z.number().int().nonnegative(),\n data: z.array(z.number().int().nonnegative()).optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateDescriptorSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateDescriptor'),\n params: Bluetooth.SimulateDescriptorParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateDescriptorParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n descriptorUuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum(['add', 'remove']),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateDescriptorResponseSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.simulateDescriptorResponse'),\n params: Bluetooth.SimulateDescriptorResponseParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.SimulateDescriptorResponseParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n descriptorUuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum(['read', 'write']),\n code: z.number().int().nonnegative(),\n data: z.array(z.number().int().nonnegative()).optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\nexport const BluetoothEventSchema = z.lazy(() => z.union([\n Bluetooth.RequestDevicePromptUpdatedSchema,\n Bluetooth.GattConnectionAttemptedSchema,\n]));\n(function (Bluetooth) {\n Bluetooth.RequestDevicePromptUpdatedSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.requestDevicePromptUpdated'),\n params: Bluetooth.RequestDevicePromptUpdatedParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.RequestDevicePromptUpdatedParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n prompt: Bluetooth.RequestDevicePromptSchema,\n devices: z.array(Bluetooth.RequestDeviceInfoSchema),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.GattConnectionAttemptedSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.gattConnectionAttempted'),\n params: Bluetooth.GattConnectionAttemptedParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.GattConnectionAttemptedParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.CharacteristicEventGeneratedSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.characteristicEventGenerated'),\n params: Bluetooth.CharacteristicEventGeneratedParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.CharacteristicEventGeneratedParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum([\n 'read',\n 'write-with-response',\n 'write-without-response',\n 'subscribe-to-notifications',\n 'unsubscribe-from-notifications',\n ]),\n data: z.array(z.number().int().nonnegative()).optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.DescriptorEventGeneratedSchema = z.lazy(() => z.object({\n method: z.literal('bluetooth.descriptorEventGenerated'),\n params: Bluetooth.DescriptorEventGeneratedParametersSchema,\n }));\n})(Bluetooth || (Bluetooth = {}));\n(function (Bluetooth) {\n Bluetooth.DescriptorEventGeneratedParametersSchema = z.lazy(() => z.object({\n context: z.string(),\n address: z.string(),\n serviceUuid: Bluetooth.BluetoothUuidSchema,\n characteristicUuid: Bluetooth.BluetoothUuidSchema,\n descriptorUuid: Bluetooth.BluetoothUuidSchema,\n type: z.enum(['read', 'write']),\n data: z.array(z.number().int().nonnegative()).optional(),\n }));\n})(Bluetooth || (Bluetooth = {}));\n//# sourceMappingURL=webdriver-bidi-bluetooth.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7.\n * Run `node tools/generate-bidi-types.mjs` to regenerate.\n * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck Some types may be circular.\nimport z from 'zod';\nexport const PermissionsCommandSchema = z.lazy(() => Permissions.SetPermissionSchema);\nexport var Permissions;\n(function (Permissions) {\n Permissions.PermissionDescriptorSchema = z.lazy(() => z.object({\n name: z.string(),\n }));\n})(Permissions || (Permissions = {}));\n(function (Permissions) {\n Permissions.PermissionStateSchema = z.lazy(() => z.enum(['granted', 'denied', 'prompt']));\n})(Permissions || (Permissions = {}));\n(function (Permissions) {\n Permissions.SetPermissionSchema = z.lazy(() => z.object({\n method: z.literal('permissions.setPermission'),\n params: Permissions.SetPermissionParametersSchema,\n }));\n})(Permissions || (Permissions = {}));\n(function (Permissions) {\n Permissions.SetPermissionParametersSchema = z.lazy(() => z.object({\n descriptor: Permissions.PermissionDescriptorSchema,\n state: Permissions.PermissionStateSchema,\n origin: z.string(),\n embeddedOrigin: z.string().optional(),\n userContext: z.string().optional(),\n }));\n})(Permissions || (Permissions = {}));\n//# sourceMappingURL=webdriver-bidi-permissions.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7.\n * Run `node tools/generate-bidi-types.mjs` to regenerate.\n * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck Some types may be circular.\nimport z from 'zod';\nexport const UserAgentClientHintsCommandSchema = z.lazy(() => UserAgentClientHints.SetClientHintsOverrideCommandSchema);\nexport var UserAgentClientHints;\n(function (UserAgentClientHints) {\n UserAgentClientHints.SetClientHintsOverrideCommandSchema = z.lazy(() => z.object({\n method: z.literal('userAgentClientHints.setClientHintsOverride'),\n params: z.object({\n clientHints: z.union([\n UserAgentClientHints.ClientHintsMetadataSchema,\n z.null(),\n ]),\n contexts: z.array(z.string()).min(1).optional(),\n userContexts: z.array(z.string()).min(1).optional(),\n }),\n }));\n})(UserAgentClientHints || (UserAgentClientHints = {}));\n(function (UserAgentClientHints) {\n UserAgentClientHints.ClientHintsMetadataSchema = z.lazy(() => z.object({\n brands: z.array(UserAgentClientHints.BrandVersionSchema).optional(),\n fullVersionList: z\n .array(UserAgentClientHints.BrandVersionSchema)\n .optional(),\n platform: z.string().optional(),\n platformVersion: z.string().optional(),\n architecture: z.string().optional(),\n model: z.string().optional(),\n mobile: z.boolean().optional(),\n bitness: z.string().optional(),\n wow64: z.boolean().optional(),\n formFactors: z.array(z.string()).optional(),\n }));\n})(UserAgentClientHints || (UserAgentClientHints = {}));\n(function (UserAgentClientHints) {\n UserAgentClientHints.BrandVersionSchema = z.lazy(() => z.object({\n brand: z.string(),\n version: z.string(),\n }));\n})(UserAgentClientHints || (UserAgentClientHints = {}));\n(function (UserAgentClientHints) {\n UserAgentClientHints.SetClientHintsOverrideResultSchema = z.lazy(() => z.object({}));\n})(UserAgentClientHints || (UserAgentClientHints = {}));\n//# sourceMappingURL=webdriver-bidi-ua-client-hints.js.map","/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7.\n * Run `node tools/generate-bidi-types.mjs` to regenerate.\n * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck Some types may be circular.\nimport z from 'zod';\nexport const CommandSchema = z.lazy(() => z\n .object({\n id: JsUintSchema,\n})\n .and(CommandDataSchema)\n .and(ExtensibleSchema));\nexport const CommandDataSchema = z.lazy(() => z.union([\n BrowserCommandSchema,\n BrowsingContextCommandSchema,\n EmulationCommandSchema,\n InputCommandSchema,\n NetworkCommandSchema,\n ScriptCommandSchema,\n SessionCommandSchema,\n StorageCommandSchema,\n WebExtensionCommandSchema,\n]));\nexport const EmptyParamsSchema = z.lazy(() => ExtensibleSchema);\nexport const MessageSchema = z.lazy(() => z.union([CommandResponseSchema, ErrorResponseSchema, EventSchema]));\nexport const CommandResponseSchema = z.lazy(() => z\n .object({\n type: z.literal('success'),\n id: JsUintSchema,\n result: ResultDataSchema,\n})\n .and(ExtensibleSchema));\nexport const ErrorResponseSchema = z.lazy(() => z\n .object({\n type: z.literal('error'),\n id: z.union([JsUintSchema, z.null()]),\n error: ErrorCodeSchema,\n message: z.string(),\n stacktrace: z.string().optional(),\n})\n .and(ExtensibleSchema));\nexport const ResultDataSchema = z.lazy(() => z.union([\n BrowserResultSchema,\n BrowsingContextResultSchema,\n EmulationResultSchema,\n InputResultSchema,\n NetworkResultSchema,\n ScriptResultSchema,\n SessionResultSchema,\n StorageResultSchema,\n WebExtensionResultSchema,\n]));\nexport const EmptyResultSchema = z.lazy(() => ExtensibleSchema);\nexport const EventSchema = z.lazy(() => z\n .object({\n type: z.literal('event'),\n})\n .and(EventDataSchema)\n .and(ExtensibleSchema));\nexport const EventDataSchema = z.lazy(() => z.union([\n BrowsingContextEventSchema,\n InputEventSchema,\n LogEventSchema,\n NetworkEventSchema,\n ScriptEventSchema,\n]));\nexport const ExtensibleSchema = z.lazy(() => z.record(z.string(), z.any()));\nexport const JsIntSchema = z\n .number()\n .int()\n .gte(-9007199254740991)\n .lte(9007199254740991);\nexport const JsUintSchema = z\n .number()\n .int()\n .nonnegative()\n .gte(0)\n .lte(9007199254740991);\nexport const ErrorCodeSchema = z.lazy(() => z.enum([\n 'invalid argument',\n 'invalid selector',\n 'invalid session id',\n 'invalid web extension',\n 'move target out of bounds',\n 'no such alert',\n 'no such network collector',\n 'no such element',\n 'no such frame',\n 'no such handle',\n 'no such history entry',\n 'no such intercept',\n 'no such network data',\n 'no such node',\n 'no such request',\n 'no such script',\n 'no such storage partition',\n 'no such user context',\n 'no such web extension',\n 'session not created',\n 'unable to capture screen',\n 'unable to close browser',\n 'unable to set cookie',\n 'unable to set file input',\n 'unavailable network data',\n 'underspecified storage partition',\n 'unknown command',\n 'unknown error',\n 'unsupported operation',\n]));\nexport const SessionCommandSchema = z.lazy(() => z.union([\n Session.EndSchema,\n Session.NewSchema,\n Session.StatusSchema,\n Session.SubscribeSchema,\n Session.UnsubscribeSchema,\n]));\nexport const SessionResultSchema = z.lazy(() => z.union([\n Session.EndResultSchema,\n Session.NewResultSchema,\n Session.StatusResultSchema,\n Session.SubscribeResultSchema,\n Session.UnsubscribeResultSchema,\n]));\nexport var Session;\n(function (Session) {\n Session.CapabilitiesRequestSchema = z.lazy(() => z.object({\n alwaysMatch: Session.CapabilityRequestSchema.optional(),\n firstMatch: z.array(Session.CapabilityRequestSchema).optional(),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.CapabilityRequestSchema = z.lazy(() => z\n .object({\n acceptInsecureCerts: z.boolean().optional(),\n browserName: z.string().optional(),\n browserVersion: z.string().optional(),\n platformName: z.string().optional(),\n proxy: Session.ProxyConfigurationSchema.optional(),\n unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.ProxyConfigurationSchema = z.lazy(() => z.union([\n Session.AutodetectProxyConfigurationSchema,\n Session.DirectProxyConfigurationSchema,\n Session.ManualProxyConfigurationSchema,\n Session.PacProxyConfigurationSchema,\n Session.SystemProxyConfigurationSchema,\n ]));\n})(Session || (Session = {}));\n(function (Session) {\n Session.AutodetectProxyConfigurationSchema = z.lazy(() => z\n .object({\n proxyType: z.literal('autodetect'),\n })\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.DirectProxyConfigurationSchema = z.lazy(() => z\n .object({\n proxyType: z.literal('direct'),\n })\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.ManualProxyConfigurationSchema = z.lazy(() => z\n .object({\n proxyType: z.literal('manual'),\n httpProxy: z.string().optional(),\n sslProxy: z.string().optional(),\n })\n .and(Session.SocksProxyConfigurationSchema.or(z.object({})))\n .and(z.object({\n noProxy: z.array(z.string()).optional(),\n }))\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.SocksProxyConfigurationSchema = z.lazy(() => z.object({\n socksProxy: z.string(),\n socksVersion: z.number().int().nonnegative().gte(0).lte(255),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.PacProxyConfigurationSchema = z.lazy(() => z\n .object({\n proxyType: z.literal('pac'),\n proxyAutoconfigUrl: z.string(),\n })\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.SystemProxyConfigurationSchema = z.lazy(() => z\n .object({\n proxyType: z.literal('system'),\n })\n .and(ExtensibleSchema));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UserPromptHandlerSchema = z.lazy(() => z.object({\n alert: Session.UserPromptHandlerTypeSchema.optional(),\n beforeUnload: Session.UserPromptHandlerTypeSchema.optional(),\n confirm: Session.UserPromptHandlerTypeSchema.optional(),\n default: Session.UserPromptHandlerTypeSchema.optional(),\n file: Session.UserPromptHandlerTypeSchema.optional(),\n prompt: Session.UserPromptHandlerTypeSchema.optional(),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UserPromptHandlerTypeSchema = z.lazy(() => z.enum(['accept', 'dismiss', 'ignore']));\n})(Session || (Session = {}));\n(function (Session) {\n Session.SubscriptionSchema = z.lazy(() => z.string());\n})(Session || (Session = {}));\n(function (Session) {\n Session.SubscribeParametersSchema = z.lazy(() => z.object({\n events: z.array(z.string()).min(1),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UnsubscribeByIdRequestSchema = z.lazy(() => z.object({\n subscriptions: z.array(Session.SubscriptionSchema).min(1),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UnsubscribeByAttributesRequestSchema = z.lazy(() => z.object({\n events: z.array(z.string()).min(1),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.StatusSchema = z.lazy(() => z.object({\n method: z.literal('session.status'),\n params: EmptyParamsSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.StatusResultSchema = z.lazy(() => z.object({\n ready: z.boolean(),\n message: z.string(),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.NewSchema = z.lazy(() => z.object({\n method: z.literal('session.new'),\n params: Session.NewParametersSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.NewParametersSchema = z.lazy(() => z.object({\n capabilities: Session.CapabilitiesRequestSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.NewResultSchema = z.lazy(() => z.object({\n sessionId: z.string(),\n capabilities: z\n .object({\n acceptInsecureCerts: z.boolean(),\n browserName: z.string(),\n browserVersion: z.string(),\n platformName: z.string(),\n setWindowRect: z.boolean(),\n userAgent: z.string(),\n proxy: Session.ProxyConfigurationSchema.optional(),\n unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(),\n webSocketUrl: z.string().optional(),\n })\n .and(ExtensibleSchema),\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.EndSchema = z.lazy(() => z.object({\n method: z.literal('session.end'),\n params: EmptyParamsSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.EndResultSchema = z.lazy(() => EmptyResultSchema);\n})(Session || (Session = {}));\n(function (Session) {\n Session.SubscribeSchema = z.lazy(() => z.object({\n method: z.literal('session.subscribe'),\n params: Session.SubscribeParametersSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.SubscribeResultSchema = z.lazy(() => z.object({\n subscription: Session.SubscriptionSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UnsubscribeSchema = z.lazy(() => z.object({\n method: z.literal('session.unsubscribe'),\n params: Session.UnsubscribeParametersSchema,\n }));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UnsubscribeParametersSchema = z.lazy(() => z.union([\n Session.UnsubscribeByAttributesRequestSchema,\n Session.UnsubscribeByIdRequestSchema,\n ]));\n})(Session || (Session = {}));\n(function (Session) {\n Session.UnsubscribeResultSchema = z.lazy(() => EmptyResultSchema);\n})(Session || (Session = {}));\nexport const BrowserCommandSchema = z.lazy(() => z.union([\n Browser.CloseSchema,\n Browser.CreateUserContextSchema,\n Browser.GetClientWindowsSchema,\n Browser.GetUserContextsSchema,\n Browser.RemoveUserContextSchema,\n Browser.SetClientWindowStateSchema,\n Browser.SetDownloadBehaviorSchema,\n]));\nexport const BrowserResultSchema = z.lazy(() => z.union([\n Browser.CloseResultSchema,\n Browser.CreateUserContextResultSchema,\n Browser.GetClientWindowsResultSchema,\n Browser.GetUserContextsResultSchema,\n Browser.RemoveUserContextResultSchema,\n Browser.SetClientWindowStateResultSchema,\n Browser.SetDownloadBehaviorResultSchema,\n]));\nexport var Browser;\n(function (Browser) {\n Browser.ClientWindowSchema = z.lazy(() => z.string());\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.ClientWindowInfoSchema = z.lazy(() => z.object({\n active: z.boolean(),\n clientWindow: Browser.ClientWindowSchema,\n height: JsUintSchema,\n state: z.enum(['fullscreen', 'maximized', 'minimized', 'normal']),\n width: JsUintSchema,\n x: JsIntSchema,\n y: JsIntSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.UserContextSchema = z.lazy(() => z.string());\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.UserContextInfoSchema = z.lazy(() => z.object({\n userContext: Browser.UserContextSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.CloseSchema = z.lazy(() => z.object({\n method: z.literal('browser.close'),\n params: EmptyParamsSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.CloseResultSchema = z.lazy(() => EmptyResultSchema);\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.CreateUserContextSchema = z.lazy(() => z.object({\n method: z.literal('browser.createUserContext'),\n params: Browser.CreateUserContextParametersSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.CreateUserContextParametersSchema = z.lazy(() => z.object({\n acceptInsecureCerts: z.boolean().optional(),\n proxy: Session.ProxyConfigurationSchema.optional(),\n unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.CreateUserContextResultSchema = z.lazy(() => Browser.UserContextInfoSchema);\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.GetClientWindowsSchema = z.lazy(() => z.object({\n method: z.literal('browser.getClientWindows'),\n params: EmptyParamsSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.GetClientWindowsResultSchema = z.lazy(() => z.object({\n clientWindows: z.array(Browser.ClientWindowInfoSchema),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.GetUserContextsSchema = z.lazy(() => z.object({\n method: z.literal('browser.getUserContexts'),\n params: EmptyParamsSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.GetUserContextsResultSchema = z.lazy(() => z.object({\n userContexts: z.array(Browser.UserContextInfoSchema).min(1),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.RemoveUserContextSchema = z.lazy(() => z.object({\n method: z.literal('browser.removeUserContext'),\n params: Browser.RemoveUserContextParametersSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.RemoveUserContextParametersSchema = z.lazy(() => z.object({\n userContext: Browser.UserContextSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.RemoveUserContextResultSchema = z.lazy(() => EmptyResultSchema);\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetClientWindowStateSchema = z.lazy(() => z.object({\n method: z.literal('browser.setClientWindowState'),\n params: Browser.SetClientWindowStateParametersSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetClientWindowStateParametersSchema = z.lazy(() => z\n .object({\n clientWindow: Browser.ClientWindowSchema,\n })\n .and(z.union([\n Browser.ClientWindowNamedStateSchema,\n Browser.ClientWindowRectStateSchema,\n ])));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.ClientWindowNamedStateSchema = z.lazy(() => z.object({\n state: z.enum(['fullscreen', 'maximized', 'minimized']),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.ClientWindowRectStateSchema = z.lazy(() => z.object({\n state: z.literal('normal'),\n width: JsUintSchema.optional(),\n height: JsUintSchema.optional(),\n x: JsIntSchema.optional(),\n y: JsIntSchema.optional(),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetClientWindowStateResultSchema = z.lazy(() => Browser.ClientWindowInfoSchema);\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetDownloadBehaviorSchema = z.lazy(() => z.object({\n method: z.literal('browser.setDownloadBehavior'),\n params: Browser.SetDownloadBehaviorParametersSchema,\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetDownloadBehaviorParametersSchema = z.lazy(() => z.object({\n downloadBehavior: z.union([Browser.DownloadBehaviorSchema, z.null()]),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.DownloadBehaviorSchema = z.lazy(() => z.union([\n Browser.DownloadBehaviorAllowedSchema,\n Browser.DownloadBehaviorDeniedSchema,\n ]));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.DownloadBehaviorAllowedSchema = z.lazy(() => z.object({\n type: z.literal('allowed'),\n destinationFolder: z.string(),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.DownloadBehaviorDeniedSchema = z.lazy(() => z.object({\n type: z.literal('denied'),\n }));\n})(Browser || (Browser = {}));\n(function (Browser) {\n Browser.SetDownloadBehaviorResultSchema = z.lazy(() => EmptyResultSchema);\n})(Browser || (Browser = {}));\nexport const BrowsingContextCommandSchema = z.lazy(() => z.union([\n BrowsingContext.ActivateSchema,\n BrowsingContext.CaptureScreenshotSchema,\n BrowsingContext.CloseSchema,\n BrowsingContext.CreateSchema,\n BrowsingContext.GetTreeSchema,\n BrowsingContext.HandleUserPromptSchema,\n BrowsingContext.LocateNodesSchema,\n BrowsingContext.NavigateSchema,\n BrowsingContext.PrintSchema,\n BrowsingContext.ReloadSchema,\n BrowsingContext.SetBypassCspSchema,\n BrowsingContext.SetViewportSchema,\n BrowsingContext.TraverseHistorySchema,\n]));\nexport const BrowsingContextResultSchema = z.lazy(() => z.union([\n BrowsingContext.ActivateResultSchema,\n BrowsingContext.CaptureScreenshotResultSchema,\n BrowsingContext.CloseResultSchema,\n BrowsingContext.CreateResultSchema,\n BrowsingContext.GetTreeResultSchema,\n BrowsingContext.HandleUserPromptResultSchema,\n BrowsingContext.LocateNodesResultSchema,\n BrowsingContext.NavigateResultSchema,\n BrowsingContext.PrintResultSchema,\n BrowsingContext.ReloadResultSchema,\n BrowsingContext.SetBypassCspResultSchema,\n BrowsingContext.SetViewportResultSchema,\n BrowsingContext.TraverseHistoryResultSchema,\n]));\nexport const BrowsingContextEventSchema = z.lazy(() => z.union([\n BrowsingContext.ContextCreatedSchema,\n BrowsingContext.ContextDestroyedSchema,\n BrowsingContext.DomContentLoadedSchema,\n BrowsingContext.DownloadEndSchema,\n BrowsingContext.DownloadWillBeginSchema,\n BrowsingContext.FragmentNavigatedSchema,\n BrowsingContext.HistoryUpdatedSchema,\n BrowsingContext.LoadSchema,\n BrowsingContext.NavigationAbortedSchema,\n BrowsingContext.NavigationCommittedSchema,\n BrowsingContext.NavigationFailedSchema,\n BrowsingContext.NavigationStartedSchema,\n BrowsingContext.UserPromptClosedSchema,\n BrowsingContext.UserPromptOpenedSchema,\n]));\nexport var BrowsingContext;\n(function (BrowsingContext) {\n BrowsingContext.BrowsingContextSchema = z.lazy(() => z.string());\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.InfoListSchema = z.lazy(() => z.array(BrowsingContext.InfoSchema));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.InfoSchema = z.lazy(() => z.object({\n children: z.union([BrowsingContext.InfoListSchema, z.null()]),\n clientWindow: Browser.ClientWindowSchema,\n context: BrowsingContext.BrowsingContextSchema,\n originalOpener: z.union([\n BrowsingContext.BrowsingContextSchema,\n z.null(),\n ]),\n url: z.string(),\n userContext: Browser.UserContextSchema,\n parent: z\n .union([BrowsingContext.BrowsingContextSchema, z.null()])\n .optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.LocatorSchema = z.lazy(() => z.union([\n BrowsingContext.AccessibilityLocatorSchema,\n BrowsingContext.CssLocatorSchema,\n BrowsingContext.ContextLocatorSchema,\n BrowsingContext.InnerTextLocatorSchema,\n BrowsingContext.XPathLocatorSchema,\n ]));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.AccessibilityLocatorSchema = z.lazy(() => z.object({\n type: z.literal('accessibility'),\n value: z.object({\n name: z.string().optional(),\n role: z.string().optional(),\n }),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CssLocatorSchema = z.lazy(() => z.object({\n type: z.literal('css'),\n value: z.string(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ContextLocatorSchema = z.lazy(() => z.object({\n type: z.literal('context'),\n value: z.object({\n context: BrowsingContext.BrowsingContextSchema,\n }),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.InnerTextLocatorSchema = z.lazy(() => z.object({\n type: z.literal('innerText'),\n value: z.string(),\n ignoreCase: z.boolean().optional(),\n matchType: z.enum(['full', 'partial']).optional(),\n maxDepth: JsUintSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.XPathLocatorSchema = z.lazy(() => z.object({\n type: z.literal('xpath'),\n value: z.string(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationSchema = z.lazy(() => z.string());\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.BaseNavigationInfoSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n navigation: z.union([BrowsingContext.NavigationSchema, z.null()]),\n timestamp: JsUintSchema,\n url: z.string(),\n userContext: Browser.UserContextSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationInfoSchema = z.lazy(() => BrowsingContext.BaseNavigationInfoSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ReadinessStateSchema = z.lazy(() => z.enum(['none', 'interactive', 'complete']));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.UserPromptTypeSchema = z.lazy(() => z.enum(['alert', 'beforeunload', 'confirm', 'prompt']));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ActivateSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.activate'),\n params: BrowsingContext.ActivateParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ActivateParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ActivateResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CaptureScreenshotSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.captureScreenshot'),\n params: BrowsingContext.CaptureScreenshotParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CaptureScreenshotParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n origin: z.enum(['viewport', 'document']).default('viewport').optional(),\n format: BrowsingContext.ImageFormatSchema.optional(),\n clip: BrowsingContext.ClipRectangleSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ImageFormatSchema = z.lazy(() => z.object({\n type: z.string(),\n quality: z.number().gte(0).lte(1).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ClipRectangleSchema = z.lazy(() => z.union([\n BrowsingContext.BoxClipRectangleSchema,\n BrowsingContext.ElementClipRectangleSchema,\n ]));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ElementClipRectangleSchema = z.lazy(() => z.object({\n type: z.literal('element'),\n element: Script.SharedReferenceSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.BoxClipRectangleSchema = z.lazy(() => z.object({\n type: z.literal('box'),\n x: z.number(),\n y: z.number(),\n width: z.number(),\n height: z.number(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CaptureScreenshotResultSchema = z.lazy(() => z.object({\n data: z.string(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CloseSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.close'),\n params: BrowsingContext.CloseParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CloseParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n promptUnload: z.boolean().default(false).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CloseResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CreateSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.create'),\n params: BrowsingContext.CreateParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CreateTypeSchema = z.lazy(() => z.enum(['tab', 'window']));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CreateParametersSchema = z.lazy(() => z.object({\n type: BrowsingContext.CreateTypeSchema,\n referenceContext: BrowsingContext.BrowsingContextSchema.optional(),\n background: z.boolean().default(false).optional(),\n userContext: Browser.UserContextSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.CreateResultSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n userContext: Browser.UserContextSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.GetTreeSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.getTree'),\n params: BrowsingContext.GetTreeParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.GetTreeParametersSchema = z.lazy(() => z.object({\n maxDepth: JsUintSchema.optional(),\n root: BrowsingContext.BrowsingContextSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.GetTreeResultSchema = z.lazy(() => z.object({\n contexts: BrowsingContext.InfoListSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.HandleUserPromptSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.handleUserPrompt'),\n params: BrowsingContext.HandleUserPromptParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.HandleUserPromptParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n accept: z.boolean().optional(),\n userText: z.string().optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.HandleUserPromptResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.LocateNodesSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.locateNodes'),\n params: BrowsingContext.LocateNodesParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.LocateNodesParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n locator: BrowsingContext.LocatorSchema,\n maxNodeCount: JsUintSchema.gte(1).optional(),\n serializationOptions: Script.SerializationOptionsSchema.optional(),\n startNodes: z.array(Script.SharedReferenceSchema).min(1).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.LocateNodesResultSchema = z.lazy(() => z.object({\n nodes: z.array(Script.NodeRemoteValueSchema),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigateSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.navigate'),\n params: BrowsingContext.NavigateParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigateParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n url: z.string(),\n wait: BrowsingContext.ReadinessStateSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigateResultSchema = z.lazy(() => z.object({\n navigation: z.union([BrowsingContext.NavigationSchema, z.null()]),\n url: z.string(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.PrintSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.print'),\n params: BrowsingContext.PrintParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.PrintParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n background: z.boolean().default(false).optional(),\n margin: BrowsingContext.PrintMarginParametersSchema.optional(),\n orientation: z\n .enum(['portrait', 'landscape'])\n .default('portrait')\n .optional(),\n page: BrowsingContext.PrintPageParametersSchema.optional(),\n pageRanges: z.array(z.union([JsUintSchema, z.string()])).optional(),\n scale: z.number().gte(0.1).lte(2).default(1).optional(),\n shrinkToFit: z.boolean().default(true).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.PrintMarginParametersSchema = z.lazy(() => z.object({\n bottom: z.number().gte(0).default(1).optional(),\n left: z.number().gte(0).default(1).optional(),\n right: z.number().gte(0).default(1).optional(),\n top: z.number().gte(0).default(1).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.PrintPageParametersSchema = z.lazy(() => z.object({\n height: z.number().gte(0.0352).default(27.94).optional(),\n width: z.number().gte(0.0352).default(21.59).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.PrintResultSchema = z.lazy(() => z.object({\n data: z.string(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ReloadSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.reload'),\n params: BrowsingContext.ReloadParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ReloadParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n ignoreCache: z.boolean().optional(),\n wait: BrowsingContext.ReadinessStateSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ReloadResultSchema = z.lazy(() => BrowsingContext.NavigateResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetBypassCspSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.setBypassCSP'),\n params: BrowsingContext.SetBypassCspParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetBypassCspParametersSchema = z.lazy(() => z.object({\n bypass: z.union([z.literal(true), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetBypassCspResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetViewportSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.setViewport'),\n params: BrowsingContext.SetViewportParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetViewportParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema.optional(),\n viewport: z.union([BrowsingContext.ViewportSchema, z.null()]).optional(),\n devicePixelRatio: z.union([z.number().gt(0), z.null()]).optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ViewportSchema = z.lazy(() => z.object({\n width: JsUintSchema,\n height: JsUintSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.SetViewportResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.TraverseHistorySchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.traverseHistory'),\n params: BrowsingContext.TraverseHistoryParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.TraverseHistoryParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n delta: JsIntSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.TraverseHistoryResultSchema = z.lazy(() => EmptyResultSchema);\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ContextCreatedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.contextCreated'),\n params: BrowsingContext.InfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.ContextDestroyedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.contextDestroyed'),\n params: BrowsingContext.InfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationStartedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.navigationStarted'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.FragmentNavigatedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.fragmentNavigated'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.HistoryUpdatedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.historyUpdated'),\n params: BrowsingContext.HistoryUpdatedParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.HistoryUpdatedParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n timestamp: JsUintSchema,\n url: z.string(),\n userContext: Browser.UserContextSchema.optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DomContentLoadedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.domContentLoaded'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.LoadSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.load'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadWillBeginSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.downloadWillBegin'),\n params: BrowsingContext.DownloadWillBeginParamsSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadWillBeginParamsSchema = z.lazy(() => z\n .object({\n suggestedFilename: z.string(),\n })\n .and(BrowsingContext.BaseNavigationInfoSchema));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadEndSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.downloadEnd'),\n params: BrowsingContext.DownloadEndParamsSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadEndParamsSchema = z.lazy(() => z.union([\n BrowsingContext.DownloadCanceledParamsSchema,\n BrowsingContext.DownloadCompleteParamsSchema,\n ]));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadCanceledParamsSchema = z.lazy(() => z\n .object({\n status: z.literal('canceled'),\n })\n .and(BrowsingContext.BaseNavigationInfoSchema));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.DownloadCompleteParamsSchema = z.lazy(() => z\n .object({\n status: z.literal('complete'),\n filepath: z.union([z.string(), z.null()]),\n })\n .and(BrowsingContext.BaseNavigationInfoSchema));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationAbortedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.navigationAborted'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationCommittedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.navigationCommitted'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.NavigationFailedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.navigationFailed'),\n params: BrowsingContext.NavigationInfoSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.UserPromptClosedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.userPromptClosed'),\n params: BrowsingContext.UserPromptClosedParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.UserPromptClosedParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n accepted: z.boolean(),\n type: BrowsingContext.UserPromptTypeSchema,\n userContext: Browser.UserContextSchema.optional(),\n userText: z.string().optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.UserPromptOpenedSchema = z.lazy(() => z.object({\n method: z.literal('browsingContext.userPromptOpened'),\n params: BrowsingContext.UserPromptOpenedParametersSchema,\n }));\n})(BrowsingContext || (BrowsingContext = {}));\n(function (BrowsingContext) {\n BrowsingContext.UserPromptOpenedParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n handler: Session.UserPromptHandlerTypeSchema,\n message: z.string(),\n type: BrowsingContext.UserPromptTypeSchema,\n userContext: Browser.UserContextSchema.optional(),\n defaultValue: z.string().optional(),\n }));\n})(BrowsingContext || (BrowsingContext = {}));\nexport const EmulationCommandSchema = z.lazy(() => z.union([\n Emulation.SetForcedColorsModeThemeOverrideSchema,\n Emulation.SetGeolocationOverrideSchema,\n Emulation.SetLocaleOverrideSchema,\n Emulation.SetNetworkConditionsSchema,\n Emulation.SetScreenOrientationOverrideSchema,\n Emulation.SetScreenSettingsOverrideSchema,\n Emulation.SetScriptingEnabledSchema,\n Emulation.SetScrollbarTypeOverrideSchema,\n Emulation.SetTimezoneOverrideSchema,\n Emulation.SetTouchOverrideSchema,\n Emulation.SetUserAgentOverrideSchema,\n]));\nexport const EmulationResultSchema = z.lazy(() => z.union([\n Emulation.SetForcedColorsModeThemeOverrideResultSchema,\n Emulation.SetGeolocationOverrideResultSchema,\n Emulation.SetLocaleOverrideResultSchema,\n Emulation.SetScreenOrientationOverrideResultSchema,\n Emulation.SetScriptingEnabledResultSchema,\n Emulation.SetScrollbarTypeOverrideResultSchema,\n Emulation.SetTimezoneOverrideResultSchema,\n Emulation.SetTouchOverrideResultSchema,\n Emulation.SetUserAgentOverrideResultSchema,\n]));\nexport var Emulation;\n(function (Emulation) {\n Emulation.SetForcedColorsModeThemeOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setForcedColorsModeThemeOverride'),\n params: Emulation.SetForcedColorsModeThemeOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetForcedColorsModeThemeOverrideParametersSchema = z.lazy(() => z.object({\n theme: z.union([Emulation.ForcedColorsModeThemeSchema, z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.ForcedColorsModeThemeSchema = z.lazy(() => z.enum(['light', 'dark']));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetForcedColorsModeThemeOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetGeolocationOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setGeolocationOverride'),\n params: Emulation.SetGeolocationOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetGeolocationOverrideParametersSchema = z.lazy(() => z\n .union([\n z.object({\n coordinates: z.union([\n Emulation.GeolocationCoordinatesSchema,\n z.null(),\n ]),\n }),\n z.object({\n error: Emulation.GeolocationPositionErrorSchema,\n }),\n ])\n .and(z.object({\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n })));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.GeolocationCoordinatesSchema = z.lazy(() => z.object({\n latitude: z.number().gte(-90).lte(90),\n longitude: z.number().gte(-180).lte(180),\n accuracy: z.number().gte(0).default(1).optional(),\n altitude: z.union([z.number(), z.null().default(null)]).optional(),\n altitudeAccuracy: z\n .union([z.number().gte(0), z.null().default(null)])\n .optional(),\n heading: z\n .union([z.number().gt(0).lt(360), z.null().default(null)])\n .optional(),\n speed: z.union([z.number().gte(0), z.null().default(null)]).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.GeolocationPositionErrorSchema = z.lazy(() => z.object({\n type: z.literal('positionUnavailable'),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetGeolocationOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetLocaleOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setLocaleOverride'),\n params: Emulation.SetLocaleOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetLocaleOverrideParametersSchema = z.lazy(() => z.object({\n locale: z.union([z.string(), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetLocaleOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetNetworkConditionsSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setNetworkConditions'),\n params: Emulation.SetNetworkConditionsParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetNetworkConditionsParametersSchema = z.lazy(() => z.object({\n networkConditions: z.union([Emulation.NetworkConditionsSchema, z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.NetworkConditionsSchema = z.lazy(() => Emulation.NetworkConditionsOfflineSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.NetworkConditionsOfflineSchema = z.lazy(() => z.object({\n type: z.literal('offline'),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetNetworkConditionsResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenSettingsOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setScreenSettingsOverride'),\n params: Emulation.SetScreenSettingsOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.ScreenAreaSchema = z.lazy(() => z.object({\n width: JsUintSchema,\n height: JsUintSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenSettingsOverrideParametersSchema = z.lazy(() => z.object({\n screenArea: z.union([Emulation.ScreenAreaSchema, z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenSettingsOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenOrientationOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setScreenOrientationOverride'),\n params: Emulation.SetScreenOrientationOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.ScreenOrientationNaturalSchema = z.lazy(() => z.enum(['portrait', 'landscape']));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.ScreenOrientationTypeSchema = z.lazy(() => z.enum([\n 'portrait-primary',\n 'portrait-secondary',\n 'landscape-primary',\n 'landscape-secondary',\n ]));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.ScreenOrientationSchema = z.lazy(() => z.object({\n natural: Emulation.ScreenOrientationNaturalSchema,\n type: Emulation.ScreenOrientationTypeSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenOrientationOverrideParametersSchema = z.lazy(() => z.object({\n screenOrientation: z.union([Emulation.ScreenOrientationSchema, z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScreenOrientationOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetUserAgentOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setUserAgentOverride'),\n params: Emulation.SetUserAgentOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetUserAgentOverrideParametersSchema = z.lazy(() => z.object({\n userAgent: z.union([z.string(), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetUserAgentOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScriptingEnabledSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setScriptingEnabled'),\n params: Emulation.SetScriptingEnabledParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScriptingEnabledParametersSchema = z.lazy(() => z.object({\n enabled: z.union([z.literal(false), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScriptingEnabledResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScrollbarTypeOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setScrollbarTypeOverride'),\n params: Emulation.SetScrollbarTypeOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScrollbarTypeOverrideParametersSchema = z.lazy(() => z.object({\n scrollbarType: z.union([\n z.literal('classic'),\n z.literal('overlay'),\n z.null(),\n ]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetScrollbarTypeOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTimezoneOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setTimezoneOverride'),\n params: Emulation.SetTimezoneOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTimezoneOverrideParametersSchema = z.lazy(() => z.object({\n timezone: z.union([z.string(), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTimezoneOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTouchOverrideSchema = z.lazy(() => z.object({\n method: z.literal('emulation.setTouchOverride'),\n params: Emulation.SetTouchOverrideParametersSchema,\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTouchOverrideParametersSchema = z.lazy(() => z.object({\n maxTouchPoints: z.union([JsUintSchema.gte(1), z.null()]),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Emulation || (Emulation = {}));\n(function (Emulation) {\n Emulation.SetTouchOverrideResultSchema = z.lazy(() => EmptyResultSchema);\n})(Emulation || (Emulation = {}));\nexport const NetworkCommandSchema = z.lazy(() => z.union([\n Network.AddDataCollectorSchema,\n Network.AddInterceptSchema,\n Network.ContinueRequestSchema,\n Network.ContinueResponseSchema,\n Network.ContinueWithAuthSchema,\n Network.DisownDataSchema,\n Network.FailRequestSchema,\n Network.GetDataSchema,\n Network.ProvideResponseSchema,\n Network.RemoveDataCollectorSchema,\n Network.RemoveInterceptSchema,\n Network.SetCacheBehaviorSchema,\n Network.SetExtraHeadersSchema,\n]));\nexport const NetworkResultSchema = z.lazy(() => z.union([\n Network.AddDataCollectorResultSchema,\n Network.AddInterceptResultSchema,\n Network.ContinueRequestResultSchema,\n Network.ContinueResponseResultSchema,\n Network.ContinueWithAuthResultSchema,\n Network.DisownDataResultSchema,\n Network.FailRequestResultSchema,\n Network.GetDataResultSchema,\n Network.ProvideResponseResultSchema,\n Network.RemoveDataCollectorResultSchema,\n Network.RemoveInterceptResultSchema,\n Network.SetCacheBehaviorResultSchema,\n Network.SetExtraHeadersResultSchema,\n]));\nexport const NetworkEventSchema = z.lazy(() => z.union([\n Network.AuthRequiredSchema,\n Network.BeforeRequestSentSchema,\n Network.FetchErrorSchema,\n Network.ResponseCompletedSchema,\n Network.ResponseStartedSchema,\n]));\nexport var Network;\n(function (Network) {\n Network.AuthChallengeSchema = z.lazy(() => z.object({\n scheme: z.string(),\n realm: z.string(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AuthCredentialsSchema = z.lazy(() => z.object({\n type: z.literal('password'),\n username: z.string(),\n password: z.string(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.BaseParametersSchema = z.lazy(() => z.object({\n context: z.union([BrowsingContext.BrowsingContextSchema, z.null()]),\n isBlocked: z.boolean(),\n navigation: z.union([BrowsingContext.NavigationSchema, z.null()]),\n redirectCount: JsUintSchema,\n request: Network.RequestDataSchema,\n timestamp: JsUintSchema,\n userContext: z.union([Browser.UserContextSchema, z.null()]).optional(),\n intercepts: z.array(Network.InterceptSchema).min(1).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.BytesValueSchema = z.lazy(() => z.union([Network.StringValueSchema, Network.Base64ValueSchema]));\n})(Network || (Network = {}));\n(function (Network) {\n Network.StringValueSchema = z.lazy(() => z.object({\n type: z.literal('string'),\n value: z.string(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.Base64ValueSchema = z.lazy(() => z.object({\n type: z.literal('base64'),\n value: z.string(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.CollectorSchema = z.lazy(() => z.string());\n})(Network || (Network = {}));\n(function (Network) {\n Network.CollectorTypeSchema = z.literal('blob');\n})(Network || (Network = {}));\n(function (Network) {\n Network.SameSiteSchema = z.lazy(() => z.enum(['strict', 'lax', 'none', 'default']));\n})(Network || (Network = {}));\n(function (Network) {\n Network.CookieSchema = z.lazy(() => z\n .object({\n name: z.string(),\n value: Network.BytesValueSchema,\n domain: z.string(),\n path: z.string(),\n size: JsUintSchema,\n httpOnly: z.boolean(),\n secure: z.boolean(),\n sameSite: Network.SameSiteSchema,\n expiry: JsUintSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Network || (Network = {}));\n(function (Network) {\n Network.CookieHeaderSchema = z.lazy(() => z.object({\n name: z.string(),\n value: Network.BytesValueSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.DataTypeSchema = z.lazy(() => z.enum(['request', 'response']));\n})(Network || (Network = {}));\n(function (Network) {\n Network.FetchTimingInfoSchema = z.lazy(() => z.object({\n timeOrigin: z.number(),\n requestTime: z.number(),\n redirectStart: z.number(),\n redirectEnd: z.number(),\n fetchStart: z.number(),\n dnsStart: z.number(),\n dnsEnd: z.number(),\n connectStart: z.number(),\n connectEnd: z.number(),\n tlsStart: z.number(),\n requestStart: z.number(),\n responseStart: z.number(),\n responseEnd: z.number(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.HeaderSchema = z.lazy(() => z.object({\n name: z.string(),\n value: Network.BytesValueSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.InitiatorSchema = z.lazy(() => z.object({\n columnNumber: JsUintSchema.optional(),\n lineNumber: JsUintSchema.optional(),\n request: Network.RequestSchema.optional(),\n stackTrace: Script.StackTraceSchema.optional(),\n type: z.enum(['parser', 'script', 'preflight', 'other']).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.InterceptSchema = z.lazy(() => z.string());\n})(Network || (Network = {}));\n(function (Network) {\n Network.RequestSchema = z.lazy(() => z.string());\n})(Network || (Network = {}));\n(function (Network) {\n Network.RequestDataSchema = z.lazy(() => z.object({\n request: Network.RequestSchema,\n url: z.string(),\n method: z.string(),\n headers: z.array(Network.HeaderSchema),\n cookies: z.array(Network.CookieSchema),\n headersSize: JsUintSchema,\n bodySize: z.union([JsUintSchema, z.null()]),\n destination: z.string(),\n initiatorType: z.union([z.string(), z.null()]),\n timings: Network.FetchTimingInfoSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseContentSchema = z.lazy(() => z.object({\n size: JsUintSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseDataSchema = z.lazy(() => z.object({\n url: z.string(),\n protocol: z.string(),\n status: JsUintSchema,\n statusText: z.string(),\n fromCache: z.boolean(),\n headers: z.array(Network.HeaderSchema),\n mimeType: z.string(),\n bytesReceived: JsUintSchema,\n headersSize: z.union([JsUintSchema, z.null()]),\n bodySize: z.union([JsUintSchema, z.null()]),\n content: Network.ResponseContentSchema,\n authChallenges: z.array(Network.AuthChallengeSchema).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetCookieHeaderSchema = z.lazy(() => z.object({\n name: z.string(),\n value: Network.BytesValueSchema,\n domain: z.string().optional(),\n httpOnly: z.boolean().optional(),\n expiry: z.string().optional(),\n maxAge: JsIntSchema.optional(),\n path: z.string().optional(),\n sameSite: Network.SameSiteSchema.optional(),\n secure: z.boolean().optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.UrlPatternSchema = z.lazy(() => z.union([Network.UrlPatternPatternSchema, Network.UrlPatternStringSchema]));\n})(Network || (Network = {}));\n(function (Network) {\n Network.UrlPatternPatternSchema = z.lazy(() => z.object({\n type: z.literal('pattern'),\n protocol: z.string().optional(),\n hostname: z.string().optional(),\n port: z.string().optional(),\n pathname: z.string().optional(),\n search: z.string().optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.UrlPatternStringSchema = z.lazy(() => z.object({\n type: z.literal('string'),\n pattern: z.string(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddDataCollectorSchema = z.lazy(() => z.object({\n method: z.literal('network.addDataCollector'),\n params: Network.AddDataCollectorParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddDataCollectorParametersSchema = z.lazy(() => z.object({\n dataTypes: z.array(Network.DataTypeSchema).min(1),\n maxEncodedDataSize: JsUintSchema,\n collectorType: Network.CollectorTypeSchema.default('blob').optional(),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddDataCollectorResultSchema = z.lazy(() => z.object({\n collector: Network.CollectorSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddInterceptSchema = z.lazy(() => z.object({\n method: z.literal('network.addIntercept'),\n params: Network.AddInterceptParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddInterceptParametersSchema = z.lazy(() => z.object({\n phases: z.array(Network.InterceptPhaseSchema).min(1),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n urlPatterns: z.array(Network.UrlPatternSchema).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.InterceptPhaseSchema = z.lazy(() => z.enum(['beforeRequestSent', 'responseStarted', 'authRequired']));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AddInterceptResultSchema = z.lazy(() => z.object({\n intercept: Network.InterceptSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueRequestSchema = z.lazy(() => z.object({\n method: z.literal('network.continueRequest'),\n params: Network.ContinueRequestParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueRequestParametersSchema = z.lazy(() => z.object({\n request: Network.RequestSchema,\n body: Network.BytesValueSchema.optional(),\n cookies: z.array(Network.CookieHeaderSchema).optional(),\n headers: z.array(Network.HeaderSchema).optional(),\n method: z.string().optional(),\n url: z.string().optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueRequestResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueResponseSchema = z.lazy(() => z.object({\n method: z.literal('network.continueResponse'),\n params: Network.ContinueResponseParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueResponseParametersSchema = z.lazy(() => z.object({\n request: Network.RequestSchema,\n cookies: z.array(Network.SetCookieHeaderSchema).optional(),\n credentials: Network.AuthCredentialsSchema.optional(),\n headers: z.array(Network.HeaderSchema).optional(),\n reasonPhrase: z.string().optional(),\n statusCode: JsUintSchema.optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueResponseResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueWithAuthSchema = z.lazy(() => z.object({\n method: z.literal('network.continueWithAuth'),\n params: Network.ContinueWithAuthParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueWithAuthParametersSchema = z.lazy(() => z\n .object({\n request: Network.RequestSchema,\n })\n .and(z.union([\n Network.ContinueWithAuthCredentialsSchema,\n Network.ContinueWithAuthNoCredentialsSchema,\n ])));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueWithAuthCredentialsSchema = z.lazy(() => z.object({\n action: z.literal('provideCredentials'),\n credentials: Network.AuthCredentialsSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueWithAuthNoCredentialsSchema = z.lazy(() => z.object({\n action: z.enum(['default', 'cancel']),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ContinueWithAuthResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.DisownDataSchema = z.lazy(() => z.object({\n method: z.literal('network.disownData'),\n params: Network.DisownDataParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.DisownDataParametersSchema = z.lazy(() => z.object({\n dataType: Network.DataTypeSchema,\n collector: Network.CollectorSchema,\n request: Network.RequestSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.DisownDataResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.FailRequestSchema = z.lazy(() => z.object({\n method: z.literal('network.failRequest'),\n params: Network.FailRequestParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.FailRequestParametersSchema = z.lazy(() => z.object({\n request: Network.RequestSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.FailRequestResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.GetDataSchema = z.lazy(() => z.object({\n method: z.literal('network.getData'),\n params: Network.GetDataParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.GetDataParametersSchema = z.lazy(() => z.object({\n dataType: Network.DataTypeSchema,\n collector: Network.CollectorSchema.optional(),\n disown: z.boolean().default(false).optional(),\n request: Network.RequestSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.GetDataResultSchema = z.lazy(() => z.object({\n bytes: Network.BytesValueSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ProvideResponseSchema = z.lazy(() => z.object({\n method: z.literal('network.provideResponse'),\n params: Network.ProvideResponseParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ProvideResponseParametersSchema = z.lazy(() => z.object({\n request: Network.RequestSchema,\n body: Network.BytesValueSchema.optional(),\n cookies: z.array(Network.SetCookieHeaderSchema).optional(),\n headers: z.array(Network.HeaderSchema).optional(),\n reasonPhrase: z.string().optional(),\n statusCode: JsUintSchema.optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ProvideResponseResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveDataCollectorSchema = z.lazy(() => z.object({\n method: z.literal('network.removeDataCollector'),\n params: Network.RemoveDataCollectorParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveDataCollectorParametersSchema = z.lazy(() => z.object({\n collector: Network.CollectorSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveDataCollectorResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveInterceptSchema = z.lazy(() => z.object({\n method: z.literal('network.removeIntercept'),\n params: Network.RemoveInterceptParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveInterceptParametersSchema = z.lazy(() => z.object({\n intercept: Network.InterceptSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.RemoveInterceptResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetCacheBehaviorSchema = z.lazy(() => z.object({\n method: z.literal('network.setCacheBehavior'),\n params: Network.SetCacheBehaviorParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetCacheBehaviorParametersSchema = z.lazy(() => z.object({\n cacheBehavior: z.enum(['default', 'bypass']),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetCacheBehaviorResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetExtraHeadersSchema = z.lazy(() => z.object({\n method: z.literal('network.setExtraHeaders'),\n params: Network.SetExtraHeadersParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetExtraHeadersParametersSchema = z.lazy(() => z.object({\n headers: z.array(Network.HeaderSchema),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.SetExtraHeadersResultSchema = z.lazy(() => EmptyResultSchema);\n})(Network || (Network = {}));\n(function (Network) {\n Network.AuthRequiredSchema = z.lazy(() => z.object({\n method: z.literal('network.authRequired'),\n params: Network.AuthRequiredParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.AuthRequiredParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({\n response: Network.ResponseDataSchema,\n })));\n})(Network || (Network = {}));\n(function (Network) {\n Network.BeforeRequestSentSchema = z.lazy(() => z.object({\n method: z.literal('network.beforeRequestSent'),\n params: Network.BeforeRequestSentParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.BeforeRequestSentParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({\n initiator: Network.InitiatorSchema.optional(),\n })));\n})(Network || (Network = {}));\n(function (Network) {\n Network.FetchErrorSchema = z.lazy(() => z.object({\n method: z.literal('network.fetchError'),\n params: Network.FetchErrorParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.FetchErrorParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({\n errorText: z.string(),\n })));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseCompletedSchema = z.lazy(() => z.object({\n method: z.literal('network.responseCompleted'),\n params: Network.ResponseCompletedParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseCompletedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({\n response: Network.ResponseDataSchema,\n })));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseStartedSchema = z.lazy(() => z.object({\n method: z.literal('network.responseStarted'),\n params: Network.ResponseStartedParametersSchema,\n }));\n})(Network || (Network = {}));\n(function (Network) {\n Network.ResponseStartedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({\n response: Network.ResponseDataSchema,\n })));\n})(Network || (Network = {}));\nexport const ScriptCommandSchema = z.lazy(() => z.union([\n Script.AddPreloadScriptSchema,\n Script.CallFunctionSchema,\n Script.DisownSchema,\n Script.EvaluateSchema,\n Script.GetRealmsSchema,\n Script.RemovePreloadScriptSchema,\n]));\nexport const ScriptResultSchema = z.lazy(() => z.union([\n Script.AddPreloadScriptResultSchema,\n Script.CallFunctionResultSchema,\n Script.DisownResultSchema,\n Script.EvaluateResultSchema,\n Script.GetRealmsResultSchema,\n Script.RemovePreloadScriptResultSchema,\n]));\nexport const ScriptEventSchema = z.lazy(() => z.union([\n Script.MessageSchema,\n Script.RealmCreatedSchema,\n Script.RealmDestroyedSchema,\n]));\nexport var Script;\n(function (Script) {\n Script.ChannelSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.ChannelValueSchema = z.lazy(() => z.object({\n type: z.literal('channel'),\n value: Script.ChannelPropertiesSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ChannelPropertiesSchema = z.lazy(() => z.object({\n channel: Script.ChannelSchema,\n serializationOptions: Script.SerializationOptionsSchema.optional(),\n ownership: Script.ResultOwnershipSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.EvaluateResultSchema = z.lazy(() => z.union([\n Script.EvaluateResultSuccessSchema,\n Script.EvaluateResultExceptionSchema,\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.EvaluateResultSuccessSchema = z.lazy(() => z.object({\n type: z.literal('success'),\n result: Script.RemoteValueSchema,\n realm: Script.RealmSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.EvaluateResultExceptionSchema = z.lazy(() => z.object({\n type: z.literal('exception'),\n exceptionDetails: Script.ExceptionDetailsSchema,\n realm: Script.RealmSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ExceptionDetailsSchema = z.lazy(() => z.object({\n columnNumber: JsUintSchema,\n exception: Script.RemoteValueSchema,\n lineNumber: JsUintSchema,\n stackTrace: Script.StackTraceSchema,\n text: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.HandleSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.InternalIdSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.LocalValueSchema = z.lazy(() => z.union([\n Script.RemoteReferenceSchema,\n Script.PrimitiveProtocolValueSchema,\n Script.ChannelValueSchema,\n Script.ArrayLocalValueSchema,\n Script.DateLocalValueSchema,\n Script.MapLocalValueSchema,\n Script.ObjectLocalValueSchema,\n Script.RegExpLocalValueSchema,\n Script.SetLocalValueSchema,\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ListLocalValueSchema = z.lazy(() => z.array(Script.LocalValueSchema));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ArrayLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('array'),\n value: Script.ListLocalValueSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DateLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('date'),\n value: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.MappingLocalValueSchema = z.lazy(() => z.array(z.tuple([\n z.union([Script.LocalValueSchema, z.string()]),\n Script.LocalValueSchema,\n ])));\n})(Script || (Script = {}));\n(function (Script) {\n Script.MapLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('map'),\n value: Script.MappingLocalValueSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ObjectLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('object'),\n value: Script.MappingLocalValueSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RegExpValueSchema = z.lazy(() => z.object({\n pattern: z.string(),\n flags: z.string().optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RegExpLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('regexp'),\n value: Script.RegExpValueSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SetLocalValueSchema = z.lazy(() => z.object({\n type: z.literal('set'),\n value: Script.ListLocalValueSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.PreloadScriptSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.PrimitiveProtocolValueSchema = z.lazy(() => z.union([\n Script.UndefinedValueSchema,\n Script.NullValueSchema,\n Script.StringValueSchema,\n Script.NumberValueSchema,\n Script.BooleanValueSchema,\n Script.BigIntValueSchema,\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.UndefinedValueSchema = z.lazy(() => z.object({\n type: z.literal('undefined'),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.NullValueSchema = z.lazy(() => z.object({\n type: z.literal('null'),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.StringValueSchema = z.lazy(() => z.object({\n type: z.literal('string'),\n value: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SpecialNumberSchema = z.lazy(() => z.enum(['NaN', '-0', 'Infinity', '-Infinity']));\n})(Script || (Script = {}));\n(function (Script) {\n Script.NumberValueSchema = z.lazy(() => z.object({\n type: z.literal('number'),\n value: z.union([z.number(), Script.SpecialNumberSchema]),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.BooleanValueSchema = z.lazy(() => z.object({\n type: z.literal('boolean'),\n value: z.boolean(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.BigIntValueSchema = z.lazy(() => z.object({\n type: z.literal('bigint'),\n value: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmInfoSchema = z.lazy(() => z.union([\n Script.WindowRealmInfoSchema,\n Script.DedicatedWorkerRealmInfoSchema,\n Script.SharedWorkerRealmInfoSchema,\n Script.ServiceWorkerRealmInfoSchema,\n Script.WorkerRealmInfoSchema,\n Script.PaintWorkletRealmInfoSchema,\n Script.AudioWorkletRealmInfoSchema,\n Script.WorkletRealmInfoSchema,\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.BaseRealmInfoSchema = z.lazy(() => z.object({\n realm: Script.RealmSchema,\n origin: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WindowRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('window'),\n context: BrowsingContext.BrowsingContextSchema,\n userContext: Browser.UserContextSchema.optional(),\n sandbox: z.string().optional(),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DedicatedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('dedicated-worker'),\n owners: z.tuple([Script.RealmSchema]),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SharedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('shared-worker'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ServiceWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('service-worker'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('worker'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.PaintWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('paint-worklet'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.AudioWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('audio-worklet'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({\n type: z.literal('worklet'),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmTypeSchema = z.lazy(() => z.enum([\n 'window',\n 'dedicated-worker',\n 'shared-worker',\n 'service-worker',\n 'worker',\n 'paint-worklet',\n 'audio-worklet',\n 'worklet',\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemoteReferenceSchema = z.lazy(() => z.union([Script.SharedReferenceSchema, Script.RemoteObjectReferenceSchema]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SharedReferenceSchema = z.lazy(() => z\n .object({\n sharedId: Script.SharedIdSchema,\n handle: Script.HandleSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemoteObjectReferenceSchema = z.lazy(() => z\n .object({\n handle: Script.HandleSchema,\n sharedId: Script.SharedIdSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemoteValueSchema = z.lazy(() => z.union([\n Script.PrimitiveProtocolValueSchema,\n Script.SymbolRemoteValueSchema,\n Script.ArrayRemoteValueSchema,\n Script.ObjectRemoteValueSchema,\n Script.FunctionRemoteValueSchema,\n Script.RegExpRemoteValueSchema,\n Script.DateRemoteValueSchema,\n Script.MapRemoteValueSchema,\n Script.SetRemoteValueSchema,\n Script.WeakMapRemoteValueSchema,\n Script.WeakSetRemoteValueSchema,\n Script.GeneratorRemoteValueSchema,\n Script.ErrorRemoteValueSchema,\n Script.ProxyRemoteValueSchema,\n Script.PromiseRemoteValueSchema,\n Script.TypedArrayRemoteValueSchema,\n Script.ArrayBufferRemoteValueSchema,\n Script.NodeListRemoteValueSchema,\n Script.HtmlCollectionRemoteValueSchema,\n Script.NodeRemoteValueSchema,\n Script.WindowProxyRemoteValueSchema,\n ]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ListRemoteValueSchema = z.lazy(() => z.array(Script.RemoteValueSchema));\n})(Script || (Script = {}));\n(function (Script) {\n Script.MappingRemoteValueSchema = z.lazy(() => z.array(z.tuple([\n z.union([Script.RemoteValueSchema, z.string()]),\n Script.RemoteValueSchema,\n ])));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SymbolRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('symbol'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ArrayRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('array'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.ListRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ObjectRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('object'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.MappingRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.FunctionRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('function'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RegExpRemoteValueSchema = z.lazy(() => Script.RegExpLocalValueSchema.and(z.object({\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DateRemoteValueSchema = z.lazy(() => Script.DateLocalValueSchema.and(z.object({\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n })));\n})(Script || (Script = {}));\n(function (Script) {\n Script.MapRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('map'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.MappingRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SetRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('set'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.ListRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WeakMapRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('weakmap'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WeakSetRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('weakset'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.GeneratorRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('generator'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ErrorRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('error'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ProxyRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('proxy'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.PromiseRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('promise'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.TypedArrayRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('typedarray'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ArrayBufferRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('arraybuffer'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.NodeListRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('nodelist'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.ListRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.HtmlCollectionRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('htmlcollection'),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.ListRemoteValueSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.NodeRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('node'),\n sharedId: Script.SharedIdSchema.optional(),\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n value: Script.NodePropertiesSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.NodePropertiesSchema = z.lazy(() => z.object({\n nodeType: JsUintSchema,\n childNodeCount: JsUintSchema,\n attributes: z.record(z.string(), z.string()).optional(),\n children: z.array(Script.NodeRemoteValueSchema).optional(),\n localName: z.string().optional(),\n mode: z.enum(['open', 'closed']).optional(),\n namespaceURI: z.string().optional(),\n nodeValue: z.string().optional(),\n shadowRoot: z.union([Script.NodeRemoteValueSchema, z.null()]).optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WindowProxyRemoteValueSchema = z.lazy(() => z.object({\n type: z.literal('window'),\n value: Script.WindowProxyPropertiesSchema,\n handle: Script.HandleSchema.optional(),\n internalId: Script.InternalIdSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.WindowProxyPropertiesSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ResultOwnershipSchema = z.lazy(() => z.enum(['root', 'none']));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SerializationOptionsSchema = z.lazy(() => z.object({\n maxDomDepth: z.union([JsUintSchema, z.null()]).default(0).optional(),\n maxObjectDepth: z\n .union([JsUintSchema, z.null()])\n .default(null)\n .optional(),\n includeShadowTree: z\n .enum(['none', 'open', 'all'])\n .default('none')\n .optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SharedIdSchema = z.lazy(() => z.string());\n})(Script || (Script = {}));\n(function (Script) {\n Script.StackFrameSchema = z.lazy(() => z.object({\n columnNumber: JsUintSchema,\n functionName: z.string(),\n lineNumber: JsUintSchema,\n url: z.string(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.StackTraceSchema = z.lazy(() => z.object({\n callFrames: z.array(Script.StackFrameSchema),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.SourceSchema = z.lazy(() => z.object({\n realm: Script.RealmSchema,\n context: BrowsingContext.BrowsingContextSchema.optional(),\n userContext: Browser.UserContextSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmTargetSchema = z.lazy(() => z.object({\n realm: Script.RealmSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.ContextTargetSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n sandbox: z.string().optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.TargetSchema = z.lazy(() => z.union([Script.ContextTargetSchema, Script.RealmTargetSchema]));\n})(Script || (Script = {}));\n(function (Script) {\n Script.AddPreloadScriptSchema = z.lazy(() => z.object({\n method: z.literal('script.addPreloadScript'),\n params: Script.AddPreloadScriptParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.AddPreloadScriptParametersSchema = z.lazy(() => z.object({\n functionDeclaration: z.string(),\n arguments: z.array(Script.ChannelValueSchema).optional(),\n contexts: z\n .array(BrowsingContext.BrowsingContextSchema)\n .min(1)\n .optional(),\n userContexts: z.array(Browser.UserContextSchema).min(1).optional(),\n sandbox: z.string().optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.AddPreloadScriptResultSchema = z.lazy(() => z.object({\n script: Script.PreloadScriptSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DisownSchema = z.lazy(() => z.object({\n method: z.literal('script.disown'),\n params: Script.DisownParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DisownParametersSchema = z.lazy(() => z.object({\n handles: z.array(Script.HandleSchema),\n target: Script.TargetSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.DisownResultSchema = z.lazy(() => EmptyResultSchema);\n})(Script || (Script = {}));\n(function (Script) {\n Script.CallFunctionSchema = z.lazy(() => z.object({\n method: z.literal('script.callFunction'),\n params: Script.CallFunctionParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.CallFunctionParametersSchema = z.lazy(() => z.object({\n functionDeclaration: z.string(),\n awaitPromise: z.boolean(),\n target: Script.TargetSchema,\n arguments: z.array(Script.LocalValueSchema).optional(),\n resultOwnership: Script.ResultOwnershipSchema.optional(),\n serializationOptions: Script.SerializationOptionsSchema.optional(),\n this: Script.LocalValueSchema.optional(),\n userActivation: z.boolean().default(false).optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.CallFunctionResultSchema = z.lazy(() => Script.EvaluateResultSchema);\n})(Script || (Script = {}));\n(function (Script) {\n Script.EvaluateSchema = z.lazy(() => z.object({\n method: z.literal('script.evaluate'),\n params: Script.EvaluateParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.EvaluateParametersSchema = z.lazy(() => z.object({\n expression: z.string(),\n target: Script.TargetSchema,\n awaitPromise: z.boolean(),\n resultOwnership: Script.ResultOwnershipSchema.optional(),\n serializationOptions: Script.SerializationOptionsSchema.optional(),\n userActivation: z.boolean().default(false).optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.GetRealmsSchema = z.lazy(() => z.object({\n method: z.literal('script.getRealms'),\n params: Script.GetRealmsParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.GetRealmsParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema.optional(),\n type: Script.RealmTypeSchema.optional(),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.GetRealmsResultSchema = z.lazy(() => z.object({\n realms: z.array(Script.RealmInfoSchema),\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemovePreloadScriptSchema = z.lazy(() => z.object({\n method: z.literal('script.removePreloadScript'),\n params: Script.RemovePreloadScriptParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemovePreloadScriptParametersSchema = z.lazy(() => z.object({\n script: Script.PreloadScriptSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RemovePreloadScriptResultSchema = z.lazy(() => EmptyResultSchema);\n})(Script || (Script = {}));\n(function (Script) {\n Script.MessageSchema = z.lazy(() => z.object({\n method: z.literal('script.message'),\n params: Script.MessageParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.MessageParametersSchema = z.lazy(() => z.object({\n channel: Script.ChannelSchema,\n data: Script.RemoteValueSchema,\n source: Script.SourceSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmCreatedSchema = z.lazy(() => z.object({\n method: z.literal('script.realmCreated'),\n params: Script.RealmInfoSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmDestroyedSchema = z.lazy(() => z.object({\n method: z.literal('script.realmDestroyed'),\n params: Script.RealmDestroyedParametersSchema,\n }));\n})(Script || (Script = {}));\n(function (Script) {\n Script.RealmDestroyedParametersSchema = z.lazy(() => z.object({\n realm: Script.RealmSchema,\n }));\n})(Script || (Script = {}));\nexport const StorageCommandSchema = z.lazy(() => z.union([\n Storage.DeleteCookiesSchema,\n Storage.GetCookiesSchema,\n Storage.SetCookieSchema,\n]));\nexport const StorageResultSchema = z.lazy(() => z.union([\n Storage.DeleteCookiesResultSchema,\n Storage.GetCookiesResultSchema,\n Storage.SetCookieResultSchema,\n]));\nexport var Storage;\n(function (Storage) {\n Storage.PartitionKeySchema = z.lazy(() => z\n .object({\n userContext: z.string().optional(),\n sourceOrigin: z.string().optional(),\n })\n .and(ExtensibleSchema));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.GetCookiesSchema = z.lazy(() => z.object({\n method: z.literal('storage.getCookies'),\n params: Storage.GetCookiesParametersSchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.CookieFilterSchema = z.lazy(() => z\n .object({\n name: z.string().optional(),\n value: Network.BytesValueSchema.optional(),\n domain: z.string().optional(),\n path: z.string().optional(),\n size: JsUintSchema.optional(),\n httpOnly: z.boolean().optional(),\n secure: z.boolean().optional(),\n sameSite: Network.SameSiteSchema.optional(),\n expiry: JsUintSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.BrowsingContextPartitionDescriptorSchema = z.lazy(() => z.object({\n type: z.literal('context'),\n context: BrowsingContext.BrowsingContextSchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.StorageKeyPartitionDescriptorSchema = z.lazy(() => z\n .object({\n type: z.literal('storageKey'),\n userContext: z.string().optional(),\n sourceOrigin: z.string().optional(),\n })\n .and(ExtensibleSchema));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.PartitionDescriptorSchema = z.lazy(() => z.union([\n Storage.BrowsingContextPartitionDescriptorSchema,\n Storage.StorageKeyPartitionDescriptorSchema,\n ]));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.GetCookiesParametersSchema = z.lazy(() => z.object({\n filter: Storage.CookieFilterSchema.optional(),\n partition: Storage.PartitionDescriptorSchema.optional(),\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.GetCookiesResultSchema = z.lazy(() => z.object({\n cookies: z.array(Network.CookieSchema),\n partitionKey: Storage.PartitionKeySchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.SetCookieSchema = z.lazy(() => z.object({\n method: z.literal('storage.setCookie'),\n params: Storage.SetCookieParametersSchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.PartialCookieSchema = z.lazy(() => z\n .object({\n name: z.string(),\n value: Network.BytesValueSchema,\n domain: z.string(),\n path: z.string().optional(),\n httpOnly: z.boolean().optional(),\n secure: z.boolean().optional(),\n sameSite: Network.SameSiteSchema.optional(),\n expiry: JsUintSchema.optional(),\n })\n .and(ExtensibleSchema));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.SetCookieParametersSchema = z.lazy(() => z.object({\n cookie: Storage.PartialCookieSchema,\n partition: Storage.PartitionDescriptorSchema.optional(),\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.SetCookieResultSchema = z.lazy(() => z.object({\n partitionKey: Storage.PartitionKeySchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.DeleteCookiesSchema = z.lazy(() => z.object({\n method: z.literal('storage.deleteCookies'),\n params: Storage.DeleteCookiesParametersSchema,\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.DeleteCookiesParametersSchema = z.lazy(() => z.object({\n filter: Storage.CookieFilterSchema.optional(),\n partition: Storage.PartitionDescriptorSchema.optional(),\n }));\n})(Storage || (Storage = {}));\n(function (Storage) {\n Storage.DeleteCookiesResultSchema = z.lazy(() => z.object({\n partitionKey: Storage.PartitionKeySchema,\n }));\n})(Storage || (Storage = {}));\nexport const LogEventSchema = z.lazy(() => Log.EntryAddedSchema);\nexport var Log;\n(function (Log) {\n Log.LevelSchema = z.lazy(() => z.enum(['debug', 'info', 'warn', 'error']));\n})(Log || (Log = {}));\n(function (Log) {\n Log.EntrySchema = z.lazy(() => z.union([\n Log.GenericLogEntrySchema,\n Log.ConsoleLogEntrySchema,\n Log.JavascriptLogEntrySchema,\n ]));\n})(Log || (Log = {}));\n(function (Log) {\n Log.BaseLogEntrySchema = z.lazy(() => z.object({\n level: Log.LevelSchema,\n source: Script.SourceSchema,\n text: z.union([z.string(), z.null()]),\n timestamp: JsUintSchema,\n stackTrace: Script.StackTraceSchema.optional(),\n }));\n})(Log || (Log = {}));\n(function (Log) {\n Log.GenericLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({\n type: z.string(),\n })));\n})(Log || (Log = {}));\n(function (Log) {\n Log.ConsoleLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({\n type: z.literal('console'),\n method: z.string(),\n args: z.array(Script.RemoteValueSchema),\n })));\n})(Log || (Log = {}));\n(function (Log) {\n Log.JavascriptLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({\n type: z.literal('javascript'),\n })));\n})(Log || (Log = {}));\n(function (Log) {\n Log.EntryAddedSchema = z.lazy(() => z.object({\n method: z.literal('log.entryAdded'),\n params: Log.EntrySchema,\n }));\n})(Log || (Log = {}));\nexport const InputCommandSchema = z.lazy(() => z.union([\n Input.PerformActionsSchema,\n Input.ReleaseActionsSchema,\n Input.SetFilesSchema,\n]));\nexport const InputResultSchema = z.lazy(() => z.union([\n Input.PerformActionsResultSchema,\n Input.ReleaseActionsResultSchema,\n Input.SetFilesResultSchema,\n]));\nexport const InputEventSchema = z.lazy(() => Input.FileDialogOpenedSchema);\nexport var Input;\n(function (Input) {\n Input.ElementOriginSchema = z.lazy(() => z.object({\n type: z.literal('element'),\n element: Script.SharedReferenceSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PerformActionsSchema = z.lazy(() => z.object({\n method: z.literal('input.performActions'),\n params: Input.PerformActionsParametersSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PerformActionsParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n actions: z.array(Input.SourceActionsSchema),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.SourceActionsSchema = z.lazy(() => z.union([\n Input.NoneSourceActionsSchema,\n Input.KeySourceActionsSchema,\n Input.PointerSourceActionsSchema,\n Input.WheelSourceActionsSchema,\n ]));\n})(Input || (Input = {}));\n(function (Input) {\n Input.NoneSourceActionsSchema = z.lazy(() => z.object({\n type: z.literal('none'),\n id: z.string(),\n actions: z.array(Input.NoneSourceActionSchema),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.NoneSourceActionSchema = z.lazy(() => Input.PauseActionSchema);\n})(Input || (Input = {}));\n(function (Input) {\n Input.KeySourceActionsSchema = z.lazy(() => z.object({\n type: z.literal('key'),\n id: z.string(),\n actions: z.array(Input.KeySourceActionSchema),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.KeySourceActionSchema = z.lazy(() => z.union([\n Input.PauseActionSchema,\n Input.KeyDownActionSchema,\n Input.KeyUpActionSchema,\n ]));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerSourceActionsSchema = z.lazy(() => z.object({\n type: z.literal('pointer'),\n id: z.string(),\n parameters: Input.PointerParametersSchema.optional(),\n actions: z.array(Input.PointerSourceActionSchema),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerTypeSchema = z.lazy(() => z.enum(['mouse', 'pen', 'touch']));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerParametersSchema = z.lazy(() => z.object({\n pointerType: Input.PointerTypeSchema.default('mouse').optional(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerSourceActionSchema = z.lazy(() => z.union([\n Input.PauseActionSchema,\n Input.PointerDownActionSchema,\n Input.PointerUpActionSchema,\n Input.PointerMoveActionSchema,\n ]));\n})(Input || (Input = {}));\n(function (Input) {\n Input.WheelSourceActionsSchema = z.lazy(() => z.object({\n type: z.literal('wheel'),\n id: z.string(),\n actions: z.array(Input.WheelSourceActionSchema),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.WheelSourceActionSchema = z.lazy(() => z.union([Input.PauseActionSchema, Input.WheelScrollActionSchema]));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PauseActionSchema = z.lazy(() => z.object({\n type: z.literal('pause'),\n duration: JsUintSchema.optional(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.KeyDownActionSchema = z.lazy(() => z.object({\n type: z.literal('keyDown'),\n value: z.string(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.KeyUpActionSchema = z.lazy(() => z.object({\n type: z.literal('keyUp'),\n value: z.string(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerUpActionSchema = z.lazy(() => z.object({\n type: z.literal('pointerUp'),\n button: JsUintSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerDownActionSchema = z.lazy(() => z\n .object({\n type: z.literal('pointerDown'),\n button: JsUintSchema,\n })\n .and(Input.PointerCommonPropertiesSchema));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerMoveActionSchema = z.lazy(() => z\n .object({\n type: z.literal('pointerMove'),\n x: z.number(),\n y: z.number(),\n duration: JsUintSchema.optional(),\n origin: Input.OriginSchema.optional(),\n })\n .and(Input.PointerCommonPropertiesSchema));\n})(Input || (Input = {}));\n(function (Input) {\n Input.WheelScrollActionSchema = z.lazy(() => z.object({\n type: z.literal('scroll'),\n x: JsIntSchema,\n y: JsIntSchema,\n deltaX: JsIntSchema,\n deltaY: JsIntSchema,\n duration: JsUintSchema.optional(),\n origin: Input.OriginSchema.default('viewport').optional(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PointerCommonPropertiesSchema = z.lazy(() => z.object({\n width: JsUintSchema.optional(),\n height: JsUintSchema.optional(),\n pressure: z.number().gte(0).lte(1).optional(),\n tangentialPressure: z.number().gte(-1).lte(1).optional(),\n twist: z.number().int().nonnegative().gte(0).lte(359).optional(),\n altitudeAngle: z.number().gte(0).lte(1.5707963267948966).optional(),\n azimuthAngle: z.number().gte(0).lte(6.283185307179586).optional(),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.OriginSchema = z.lazy(() => z.union([\n z.literal('viewport'),\n z.literal('pointer'),\n Input.ElementOriginSchema,\n ]));\n})(Input || (Input = {}));\n(function (Input) {\n Input.PerformActionsResultSchema = z.lazy(() => EmptyResultSchema);\n})(Input || (Input = {}));\n(function (Input) {\n Input.ReleaseActionsSchema = z.lazy(() => z.object({\n method: z.literal('input.releaseActions'),\n params: Input.ReleaseActionsParametersSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.ReleaseActionsParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.ReleaseActionsResultSchema = z.lazy(() => EmptyResultSchema);\n})(Input || (Input = {}));\n(function (Input) {\n Input.SetFilesSchema = z.lazy(() => z.object({\n method: z.literal('input.setFiles'),\n params: Input.SetFilesParametersSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.SetFilesParametersSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n element: Script.SharedReferenceSchema,\n files: z.array(z.string()),\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.SetFilesResultSchema = z.lazy(() => EmptyResultSchema);\n})(Input || (Input = {}));\n(function (Input) {\n Input.FileDialogOpenedSchema = z.lazy(() => z.object({\n method: z.literal('input.fileDialogOpened'),\n params: Input.FileDialogInfoSchema,\n }));\n})(Input || (Input = {}));\n(function (Input) {\n Input.FileDialogInfoSchema = z.lazy(() => z.object({\n context: BrowsingContext.BrowsingContextSchema,\n userContext: Browser.UserContextSchema.optional(),\n element: Script.SharedReferenceSchema.optional(),\n multiple: z.boolean(),\n }));\n})(Input || (Input = {}));\nexport const WebExtensionCommandSchema = z.lazy(() => z.union([WebExtension.InstallSchema, WebExtension.UninstallSchema]));\nexport const WebExtensionResultSchema = z.lazy(() => z.union([\n WebExtension.InstallResultSchema,\n WebExtension.UninstallResultSchema,\n]));\nexport var WebExtension;\n(function (WebExtension) {\n WebExtension.ExtensionSchema = z.lazy(() => z.string());\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.InstallSchema = z.lazy(() => z.object({\n method: z.literal('webExtension.install'),\n params: WebExtension.InstallParametersSchema,\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.InstallParametersSchema = z.lazy(() => z.object({\n extensionData: WebExtension.ExtensionDataSchema,\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.ExtensionDataSchema = z.lazy(() => z.union([\n WebExtension.ExtensionArchivePathSchema,\n WebExtension.ExtensionBase64EncodedSchema,\n WebExtension.ExtensionPathSchema,\n ]));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.ExtensionPathSchema = z.lazy(() => z.object({\n type: z.literal('path'),\n path: z.string(),\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.ExtensionArchivePathSchema = z.lazy(() => z.object({\n type: z.literal('archivePath'),\n path: z.string(),\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.ExtensionBase64EncodedSchema = z.lazy(() => z.object({\n type: z.literal('base64'),\n value: z.string(),\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.InstallResultSchema = z.lazy(() => z.object({\n extension: WebExtension.ExtensionSchema,\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.UninstallSchema = z.lazy(() => z.object({\n method: z.literal('webExtension.uninstall'),\n params: WebExtension.UninstallParametersSchema,\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.UninstallParametersSchema = z.lazy(() => z.object({\n extension: WebExtension.ExtensionSchema,\n }));\n})(WebExtension || (WebExtension = {}));\n(function (WebExtension) {\n WebExtension.UninstallResultSchema = z.lazy(() => EmptyResultSchema);\n})(WebExtension || (WebExtension = {}));\n//# sourceMappingURL=webdriver-bidi.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @fileoverview Provides parsing and validator for WebDriver BiDi protocol.\n * Parser types should match the `../protocol` types.\n */\nimport { z } from 'zod';\nimport { InvalidArgumentException } from '../protocol/protocol.js';\nimport * as WebDriverBidiBluetooth from './generated/webdriver-bidi-bluetooth.js';\nimport * as WebDriverBidiPermissions from './generated/webdriver-bidi-permissions.js';\nimport * as WebDriverBidiUAClientHints from './generated/webdriver-bidi-ua-client-hints.js';\nimport * as WebDriverBidi from './generated/webdriver-bidi.js';\nexport function parseObject(obj, schema) {\n const parseResult = schema.safeParse(obj);\n if (parseResult.success) {\n return parseResult.data;\n }\n const errorMessage = parseResult.error.errors\n .map((e) => `${e.message} in ` +\n `${e.path.map((p) => JSON.stringify(p)).join('/')}.`)\n .join(' ');\n throw new InvalidArgumentException(errorMessage);\n}\n/** @see https://w3c.github.io/webdriver-bidi/#module-browser */\nexport var Browser;\n(function (Browser) {\n // keep-sorted start block=yes\n function parseCreateUserContextParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Browser.CreateUserContextParametersSchema);\n }\n Browser.parseCreateUserContextParameters = parseCreateUserContextParameters;\n function parseRemoveUserContextParameters(params) {\n return parseObject(params, WebDriverBidi.Browser.RemoveUserContextParametersSchema);\n }\n Browser.parseRemoveUserContextParameters = parseRemoveUserContextParameters;\n function parseSetClientWindowStateParameters(params) {\n return parseObject(params, WebDriverBidi.Browser.SetClientWindowStateParametersSchema);\n }\n Browser.parseSetClientWindowStateParameters = parseSetClientWindowStateParameters;\n function parseSetDownloadBehaviorParameters(params) {\n return parseObject(params, WebDriverBidi.Browser.SetDownloadBehaviorParametersSchema);\n }\n Browser.parseSetDownloadBehaviorParameters = parseSetDownloadBehaviorParameters;\n // keep-sorted end\n})(Browser || (Browser = {}));\n/** @see https://w3c.github.io/webdriver-bidi/#module-network */\nexport var Network;\n(function (Network) {\n // keep-sorted start block=yes\n function parseAddDataCollectorParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Network.AddDataCollectorParametersSchema);\n }\n Network.parseAddDataCollectorParameters = parseAddDataCollectorParameters;\n function parseAddInterceptParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Network.AddInterceptParametersSchema);\n }\n Network.parseAddInterceptParameters = parseAddInterceptParameters;\n function parseContinueRequestParameters(params) {\n return parseObject(params, WebDriverBidi.Network.ContinueRequestParametersSchema);\n }\n Network.parseContinueRequestParameters = parseContinueRequestParameters;\n function parseContinueResponseParameters(params) {\n // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed.\n return parseObject(params, WebDriverBidi.Network.ContinueResponseParametersSchema);\n }\n Network.parseContinueResponseParameters = parseContinueResponseParameters;\n function parseContinueWithAuthParameters(params) {\n return parseObject(params, WebDriverBidi.Network.ContinueWithAuthParametersSchema);\n }\n Network.parseContinueWithAuthParameters = parseContinueWithAuthParameters;\n function parseDisownDataParameters(params) {\n return parseObject(params, WebDriverBidi.Network.DisownDataParametersSchema);\n }\n Network.parseDisownDataParameters = parseDisownDataParameters;\n function parseFailRequestParameters(params) {\n return parseObject(params, WebDriverBidi.Network.FailRequestParametersSchema);\n }\n Network.parseFailRequestParameters = parseFailRequestParameters;\n function parseGetDataParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Network.GetDataParametersSchema);\n }\n Network.parseGetDataParameters = parseGetDataParameters;\n function parseProvideResponseParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Network.ProvideResponseParametersSchema);\n }\n Network.parseProvideResponseParameters = parseProvideResponseParameters;\n function parseRemoveDataCollectorParameters(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n return parseObject(params, WebDriverBidi.Network.RemoveDataCollectorParametersSchema);\n }\n Network.parseRemoveDataCollectorParameters = parseRemoveDataCollectorParameters;\n function parseRemoveInterceptParameters(params) {\n return parseObject(params, WebDriverBidi.Network.RemoveInterceptParametersSchema);\n }\n Network.parseRemoveInterceptParameters = parseRemoveInterceptParameters;\n function parseSetCacheBehaviorParameters(params) {\n return parseObject(params, WebDriverBidi.Network.SetCacheBehaviorParametersSchema);\n }\n Network.parseSetCacheBehaviorParameters = parseSetCacheBehaviorParameters;\n function parseSetExtraHeadersParameters(params) {\n return parseObject(params, WebDriverBidi.Network.SetExtraHeadersParametersSchema);\n }\n Network.parseSetExtraHeadersParameters = parseSetExtraHeadersParameters;\n // keep-sorted end\n})(Network || (Network = {}));\n/** @see https://w3c.github.io/webdriver-bidi/#module-script */\nexport var Script;\n(function (Script) {\n // keep-sorted start block=yes\n function parseAddPreloadScriptParams(params) {\n return parseObject(params, WebDriverBidi.Script.AddPreloadScriptParametersSchema);\n }\n Script.parseAddPreloadScriptParams = parseAddPreloadScriptParams;\n function parseCallFunctionParams(params) {\n return parseObject(params, WebDriverBidi.Script.CallFunctionParametersSchema);\n }\n Script.parseCallFunctionParams = parseCallFunctionParams;\n function parseDisownParams(params) {\n return parseObject(params, WebDriverBidi.Script.DisownParametersSchema);\n }\n Script.parseDisownParams = parseDisownParams;\n function parseEvaluateParams(params) {\n return parseObject(params, WebDriverBidi.Script.EvaluateParametersSchema);\n }\n Script.parseEvaluateParams = parseEvaluateParams;\n function parseGetRealmsParams(params) {\n return parseObject(params, WebDriverBidi.Script.GetRealmsParametersSchema);\n }\n Script.parseGetRealmsParams = parseGetRealmsParams;\n function parseRemovePreloadScriptParams(params) {\n return parseObject(params, WebDriverBidi.Script.RemovePreloadScriptParametersSchema);\n }\n Script.parseRemovePreloadScriptParams = parseRemovePreloadScriptParams;\n // keep-sorted end\n})(Script || (Script = {}));\n/** @see https://w3c.github.io/webdriver-bidi/#module-browsingContext */\nexport var BrowsingContext;\n(function (BrowsingContext) {\n // keep-sorted start block=yes\n function parseActivateParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.ActivateParametersSchema);\n }\n BrowsingContext.parseActivateParams = parseActivateParams;\n function parseCaptureScreenshotParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.CaptureScreenshotParametersSchema);\n }\n BrowsingContext.parseCaptureScreenshotParams = parseCaptureScreenshotParams;\n function parseCloseParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.CloseParametersSchema);\n }\n BrowsingContext.parseCloseParams = parseCloseParams;\n function parseCreateParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.CreateParametersSchema);\n }\n BrowsingContext.parseCreateParams = parseCreateParams;\n function parseGetTreeParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.GetTreeParametersSchema);\n }\n BrowsingContext.parseGetTreeParams = parseGetTreeParams;\n function parseHandleUserPromptParameters(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.HandleUserPromptParametersSchema);\n }\n BrowsingContext.parseHandleUserPromptParameters = parseHandleUserPromptParameters;\n function parseLocateNodesParams(params) {\n // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed.\n return parseObject(params, WebDriverBidi.BrowsingContext.LocateNodesParametersSchema);\n }\n BrowsingContext.parseLocateNodesParams = parseLocateNodesParams;\n function parseNavigateParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.NavigateParametersSchema);\n }\n BrowsingContext.parseNavigateParams = parseNavigateParams;\n function parsePrintParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.PrintParametersSchema);\n }\n BrowsingContext.parsePrintParams = parsePrintParams;\n function parseReloadParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.ReloadParametersSchema);\n }\n BrowsingContext.parseReloadParams = parseReloadParams;\n function parseSetBypassCspParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.SetBypassCspParametersSchema);\n }\n BrowsingContext.parseSetBypassCspParams = parseSetBypassCspParams;\n function parseSetViewportParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.SetViewportParametersSchema);\n }\n BrowsingContext.parseSetViewportParams = parseSetViewportParams;\n function parseTraverseHistoryParams(params) {\n return parseObject(params, WebDriverBidi.BrowsingContext.TraverseHistoryParametersSchema);\n }\n BrowsingContext.parseTraverseHistoryParams = parseTraverseHistoryParams;\n // keep-sorted end\n})(BrowsingContext || (BrowsingContext = {}));\n/** @see https://w3c.github.io/webdriver-bidi/#module-session */\nexport var Session;\n(function (Session) {\n // keep-sorted start block=yes\n function parseSubscribeParams(params) {\n return parseObject(params, WebDriverBidi.Session.SubscribeParametersSchema);\n }\n Session.parseSubscribeParams = parseSubscribeParams;\n function parseUnsubscribeParams(params) {\n if (params && typeof params === 'object' && 'subscriptions' in params) {\n return parseObject(params, WebDriverBidi.Session.UnsubscribeByIdRequestSchema);\n }\n return parseObject(params, WebDriverBidi.Session.UnsubscribeParametersSchema);\n }\n Session.parseUnsubscribeParams = parseUnsubscribeParams;\n // keep-sorted end\n})(Session || (Session = {}));\nexport var Emulation;\n(function (Emulation) {\n // keep-sorted start block=yes\n function parseSetClientHintsOverrideParams(params) {\n const SetClientHintsOverrideParametersSchema = z.object({\n clientHints: z.union([\n WebDriverBidiUAClientHints.UserAgentClientHints\n .ClientHintsMetadataSchema,\n z.null(),\n ]),\n contexts: z.array(z.string()).min(1).optional(),\n userContexts: z.array(z.string()).min(1).optional(),\n });\n return parseObject(params, SetClientHintsOverrideParametersSchema);\n }\n Emulation.parseSetClientHintsOverrideParams = parseSetClientHintsOverrideParams;\n function parseSetForcedColorsModeThemeOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetForcedColorsModeThemeOverrideParametersSchema);\n }\n Emulation.parseSetForcedColorsModeThemeOverrideParams = parseSetForcedColorsModeThemeOverrideParams;\n function parseSetGeolocationOverrideParams(params) {\n if ('coordinates' in params && 'error' in params) {\n // Zod picks the first matching parameter omitting the other. In this case, the\n // `parseObject` will remove `error` from the params. However, specification\n // requires to throw an exception.\n throw new InvalidArgumentException('Coordinates and error cannot be set at the same time');\n }\n return parseObject(params, WebDriverBidi.Emulation.SetGeolocationOverrideParametersSchema);\n }\n Emulation.parseSetGeolocationOverrideParams = parseSetGeolocationOverrideParams;\n function parseSetLocaleOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetLocaleOverrideParametersSchema);\n }\n Emulation.parseSetLocaleOverrideParams = parseSetLocaleOverrideParams;\n function parseSetNetworkConditionsParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetNetworkConditionsParametersSchema);\n }\n Emulation.parseSetNetworkConditionsParams = parseSetNetworkConditionsParams;\n function parseSetScreenOrientationOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetScreenOrientationOverrideParametersSchema);\n }\n Emulation.parseSetScreenOrientationOverrideParams = parseSetScreenOrientationOverrideParams;\n function parseSetScreenSettingsOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetScreenSettingsOverrideParametersSchema);\n }\n Emulation.parseSetScreenSettingsOverrideParams = parseSetScreenSettingsOverrideParams;\n function parseSetScriptingEnabledParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetScriptingEnabledParametersSchema);\n }\n Emulation.parseSetScriptingEnabledParams = parseSetScriptingEnabledParams;\n function parseSetScrollbarTypeOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetScrollbarTypeOverrideParametersSchema);\n }\n Emulation.parseSetScrollbarTypeOverrideParams = parseSetScrollbarTypeOverrideParams;\n function parseSetTimezoneOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetTimezoneOverrideParametersSchema);\n }\n Emulation.parseSetTimezoneOverrideParams = parseSetTimezoneOverrideParams;\n function parseSetTouchOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetTouchOverrideParametersSchema);\n }\n Emulation.parseSetTouchOverrideParams = parseSetTouchOverrideParams;\n function parseSetUserAgentOverrideParams(params) {\n return parseObject(params, WebDriverBidi.Emulation.SetUserAgentOverrideParametersSchema);\n }\n Emulation.parseSetUserAgentOverrideParams = parseSetUserAgentOverrideParams;\n // keep-sorted end\n})(Emulation || (Emulation = {}));\nexport var Input;\n(function (Input) {\n // keep-sorted start block=yes\n function parsePerformActionsParams(params) {\n return parseObject(params, WebDriverBidi.Input.PerformActionsParametersSchema);\n }\n Input.parsePerformActionsParams = parsePerformActionsParams;\n function parseReleaseActionsParams(params) {\n return parseObject(params, WebDriverBidi.Input.ReleaseActionsParametersSchema);\n }\n Input.parseReleaseActionsParams = parseReleaseActionsParams;\n function parseSetFilesParams(params) {\n return parseObject(params, WebDriverBidi.Input.SetFilesParametersSchema);\n }\n Input.parseSetFilesParams = parseSetFilesParams;\n // keep-sorted end\n})(Input || (Input = {}));\nexport var Storage;\n(function (Storage) {\n // keep-sorted start block=yes\n function parseDeleteCookiesParams(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is\n // of type `\"none\" | \"strict\" | \"lax\"` which is not assignable to generated enum\n // `SameSite` in `src/protocol/webdriver-bidi.ts`.\n // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed.\n return parseObject(params, WebDriverBidi.Storage.DeleteCookiesParametersSchema);\n }\n Storage.parseDeleteCookiesParams = parseDeleteCookiesParams;\n function parseGetCookiesParams(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is\n // of type `\"none\" | \"strict\" | \"lax\"` which is not assignable to generated enum\n // `SameSite` in `src/protocol/webdriver-bidi.ts`.\n // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed.\n return parseObject(params, WebDriverBidi.Storage.GetCookiesParametersSchema);\n }\n Storage.parseGetCookiesParams = parseGetCookiesParams;\n function parseSetCookieParams(params) {\n // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19.\n // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is\n // of type `\"none\" | \"strict\" | \"lax\"` which is not assignable to generated enum\n // `SameSite` in `src/protocol/webdriver-bidi.ts`.\n // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed.\n return parseObject(params, WebDriverBidi.Storage.SetCookieParametersSchema);\n }\n Storage.parseSetCookieParams = parseSetCookieParams;\n // keep-sorted end\n})(Storage || (Storage = {}));\nexport var Cdp;\n(function (Cdp) {\n // keep-sorted start block=yes\n const GetSessionRequestSchema = z.object({\n context: WebDriverBidi.BrowsingContext.BrowsingContextSchema,\n });\n const ResolveRealmRequestSchema = z.object({\n realm: WebDriverBidi.Script.RealmSchema,\n });\n const SendCommandRequestSchema = z.object({\n // Allowing any cdpMethod, and casting to proper type later on.\n method: z.string(),\n // `passthrough` allows object to have any fields.\n // https://github.com/colinhacks/zod#passthrough\n params: z.object({}).passthrough().optional(),\n session: z.string().optional(),\n });\n function parseGetSessionRequest(params) {\n return parseObject(params, GetSessionRequestSchema);\n }\n Cdp.parseGetSessionRequest = parseGetSessionRequest;\n function parseResolveRealmRequest(params) {\n return parseObject(params, ResolveRealmRequestSchema);\n }\n Cdp.parseResolveRealmRequest = parseResolveRealmRequest;\n function parseSendCommandRequest(params) {\n return parseObject(params, SendCommandRequestSchema);\n }\n Cdp.parseSendCommandRequest = parseSendCommandRequest;\n // keep-sorted end\n})(Cdp || (Cdp = {}));\nexport var Permissions;\n(function (Permissions) {\n // keep-sorted start block=yes\n function parseSetPermissionsParams(params) {\n return {\n // TODO: remove once \"goog:\" attributes are not needed.\n ...params,\n ...parseObject(params, WebDriverBidiPermissions.Permissions.SetPermissionParametersSchema),\n };\n }\n Permissions.parseSetPermissionsParams = parseSetPermissionsParams;\n // keep-sorted end\n})(Permissions || (Permissions = {}));\nexport var Bluetooth;\n(function (Bluetooth) {\n // keep-sorted start block=yes\n function parseDisableSimulationParameters(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.DisableSimulationParametersSchema);\n }\n Bluetooth.parseDisableSimulationParameters = parseDisableSimulationParameters;\n function parseHandleRequestDevicePromptParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .HandleRequestDevicePromptParametersSchema);\n }\n Bluetooth.parseHandleRequestDevicePromptParams = parseHandleRequestDevicePromptParams;\n function parseSimulateAdapterParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateAdapterParametersSchema);\n }\n Bluetooth.parseSimulateAdapterParams = parseSimulateAdapterParams;\n function parseSimulateAdvertisementParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateAdvertisementParametersSchema);\n }\n Bluetooth.parseSimulateAdvertisementParams = parseSimulateAdvertisementParams;\n function parseSimulateCharacteristicParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateCharacteristicParametersSchema);\n }\n Bluetooth.parseSimulateCharacteristicParams = parseSimulateCharacteristicParams;\n function parseSimulateCharacteristicResponseParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .SimulateCharacteristicResponseParametersSchema);\n }\n Bluetooth.parseSimulateCharacteristicResponseParams = parseSimulateCharacteristicResponseParams;\n function parseSimulateDescriptorParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateDescriptorParametersSchema);\n }\n Bluetooth.parseSimulateDescriptorParams = parseSimulateDescriptorParams;\n function parseSimulateDescriptorResponseParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .SimulateDescriptorResponseParametersSchema);\n }\n Bluetooth.parseSimulateDescriptorResponseParams = parseSimulateDescriptorResponseParams;\n function parseSimulateGattConnectionResponseParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .SimulateGattConnectionResponseParametersSchema);\n }\n Bluetooth.parseSimulateGattConnectionResponseParams = parseSimulateGattConnectionResponseParams;\n function parseSimulateGattDisconnectionParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .SimulateGattDisconnectionParametersSchema);\n }\n Bluetooth.parseSimulateGattDisconnectionParams = parseSimulateGattDisconnectionParams;\n function parseSimulatePreconnectedPeripheralParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth\n .SimulatePreconnectedPeripheralParametersSchema);\n }\n Bluetooth.parseSimulatePreconnectedPeripheralParams = parseSimulatePreconnectedPeripheralParams;\n function parseSimulateServiceParams(params) {\n return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateServiceParametersSchema);\n }\n Bluetooth.parseSimulateServiceParams = parseSimulateServiceParams;\n // keep-sorted end\n})(Bluetooth || (Bluetooth = {}));\n/** @see https://w3c.github.io/webdriver-bidi/#module-webExtension */\nexport var WebModule;\n(function (WebModule) {\n // keep-sorted start block=yes\n function parseInstallParams(params) {\n return parseObject(params, WebDriverBidi.WebExtension.InstallParametersSchema);\n }\n WebModule.parseInstallParams = parseInstallParams;\n function parseUninstallParams(params) {\n return parseObject(params, WebDriverBidi.WebExtension.UninstallParametersSchema);\n }\n WebModule.parseUninstallParams = parseUninstallParams;\n // keep-sorted end\n})(WebModule || (WebModule = {}));\n//# sourceMappingURL=protocol-parser.js.map","import * as Parser from '../protocol-parser/protocol-parser.js';\nexport class BidiParser {\n // Bluetooth module\n // keep-sorted start block=yes\n parseDisableSimulationParameters(params) {\n return Parser.Bluetooth.parseDisableSimulationParameters(params);\n }\n parseHandleRequestDevicePromptParams(params) {\n return Parser.Bluetooth.parseHandleRequestDevicePromptParams(params);\n }\n parseSimulateAdapterParameters(params) {\n return Parser.Bluetooth.parseSimulateAdapterParams(params);\n }\n parseSimulateAdvertisementParameters(params) {\n return Parser.Bluetooth.parseSimulateAdvertisementParams(params);\n }\n parseSimulateCharacteristicParameters(params) {\n return Parser.Bluetooth.parseSimulateCharacteristicParams(params);\n }\n parseSimulateCharacteristicResponseParameters(params) {\n return Parser.Bluetooth.parseSimulateCharacteristicResponseParams(params);\n }\n parseSimulateDescriptorParameters(params) {\n return Parser.Bluetooth.parseSimulateDescriptorParams(params);\n }\n parseSimulateDescriptorResponseParameters(params) {\n return Parser.Bluetooth.parseSimulateDescriptorResponseParams(params);\n }\n parseSimulateGattConnectionResponseParameters(params) {\n return Parser.Bluetooth.parseSimulateGattConnectionResponseParams(params);\n }\n parseSimulateGattDisconnectionParameters(params) {\n return Parser.Bluetooth.parseSimulateGattDisconnectionParams(params);\n }\n parseSimulatePreconnectedPeripheralParameters(params) {\n return Parser.Bluetooth.parseSimulatePreconnectedPeripheralParams(params);\n }\n parseSimulateServiceParameters(params) {\n return Parser.Bluetooth.parseSimulateServiceParams(params);\n }\n // keep-sorted end\n // Browser module\n // keep-sorted start block=yes\n parseCreateUserContextParameters(params) {\n // Validate the params, but return the original one, as there can be `goog:` options.\n Parser.Browser.parseCreateUserContextParameters(params);\n return params;\n }\n parseRemoveUserContextParameters(params) {\n return Parser.Browser.parseRemoveUserContextParameters(params);\n }\n parseSetClientWindowStateParameters(params) {\n return Parser.Browser.parseSetClientWindowStateParameters(params);\n }\n parseSetDownloadBehaviorParameters(params) {\n return Parser.Browser.parseSetDownloadBehaviorParameters(params);\n }\n // keep-sorted end\n // Browsing Context module\n // keep-sorted start block=yes\n parseActivateParams(params) {\n return Parser.BrowsingContext.parseActivateParams(params);\n }\n parseCaptureScreenshotParams(params) {\n return Parser.BrowsingContext.parseCaptureScreenshotParams(params);\n }\n parseCloseParams(params) {\n return Parser.BrowsingContext.parseCloseParams(params);\n }\n parseCreateParams(params) {\n return Parser.BrowsingContext.parseCreateParams(params);\n }\n parseGetTreeParams(params) {\n return Parser.BrowsingContext.parseGetTreeParams(params);\n }\n parseHandleUserPromptParams(params) {\n return Parser.BrowsingContext.parseHandleUserPromptParameters(params);\n }\n parseLocateNodesParams(params) {\n return Parser.BrowsingContext.parseLocateNodesParams(params);\n }\n parseNavigateParams(params) {\n return Parser.BrowsingContext.parseNavigateParams(params);\n }\n parsePrintParams(params) {\n return Parser.BrowsingContext.parsePrintParams(params);\n }\n parseReloadParams(params) {\n return Parser.BrowsingContext.parseReloadParams(params);\n }\n parseSetBypassCspParams(params) {\n return Parser.BrowsingContext.parseSetBypassCspParams(params);\n }\n parseSetViewportParams(params) {\n return Parser.BrowsingContext.parseSetViewportParams(params);\n }\n parseTraverseHistoryParams(params) {\n return Parser.BrowsingContext.parseTraverseHistoryParams(params);\n }\n // keep-sorted end\n // CDP module\n // keep-sorted start block=yes\n parseGetSessionParams(params) {\n return Parser.Cdp.parseGetSessionRequest(params);\n }\n parseResolveRealmParams(params) {\n return Parser.Cdp.parseResolveRealmRequest(params);\n }\n parseSendCommandParams(params) {\n return Parser.Cdp.parseSendCommandRequest(params);\n }\n // keep-sorted end\n // Emulation module\n // keep-sorted start block=yes\n parseSetClientHintsOverrideParams(params) {\n return Parser.Emulation.parseSetClientHintsOverrideParams(params);\n }\n parseSetForcedColorsModeThemeOverrideParams(params) {\n return Parser.Emulation.parseSetForcedColorsModeThemeOverrideParams(params);\n }\n parseSetGeolocationOverrideParams(params) {\n return Parser.Emulation.parseSetGeolocationOverrideParams(params);\n }\n parseSetLocaleOverrideParams(params) {\n return Parser.Emulation.parseSetLocaleOverrideParams(params);\n }\n parseSetNetworkConditionsParams(params) {\n return Parser.Emulation.parseSetNetworkConditionsParams(params);\n }\n parseSetScreenOrientationOverrideParams(params) {\n return Parser.Emulation.parseSetScreenOrientationOverrideParams(params);\n }\n parseSetScreenSettingsOverrideParams(params) {\n return Parser.Emulation.parseSetScreenSettingsOverrideParams(params);\n }\n parseSetScriptingEnabledParams(params) {\n return Parser.Emulation.parseSetScriptingEnabledParams(params);\n }\n parseSetScrollbarTypeOverrideParams(params) {\n return Parser.Emulation.parseSetScrollbarTypeOverrideParams(params);\n }\n parseSetTimezoneOverrideParams(params) {\n return Parser.Emulation.parseSetTimezoneOverrideParams(params);\n }\n parseSetTouchOverrideParams(params) {\n return Parser.Emulation.parseSetTouchOverrideParams(params);\n }\n parseSetUserAgentOverrideParams(params) {\n return Parser.Emulation.parseSetUserAgentOverrideParams(params);\n }\n // keep-sorted end\n // Input module\n // keep-sorted start block=yes\n parsePerformActionsParams(params) {\n return Parser.Input.parsePerformActionsParams(params);\n }\n parseReleaseActionsParams(params) {\n return Parser.Input.parseReleaseActionsParams(params);\n }\n parseSetFilesParams(params) {\n return Parser.Input.parseSetFilesParams(params);\n }\n // keep-sorted end\n // Network module\n // keep-sorted start block=yes\n parseAddDataCollectorParams(params) {\n return Parser.Network.parseAddDataCollectorParameters(params);\n }\n parseAddInterceptParams(params) {\n return Parser.Network.parseAddInterceptParameters(params);\n }\n parseContinueRequestParams(params) {\n return Parser.Network.parseContinueRequestParameters(params);\n }\n parseContinueResponseParams(params) {\n return Parser.Network.parseContinueResponseParameters(params);\n }\n parseContinueWithAuthParams(params) {\n return Parser.Network.parseContinueWithAuthParameters(params);\n }\n parseDisownDataParams(params) {\n return Parser.Network.parseDisownDataParameters(params);\n }\n parseFailRequestParams(params) {\n return Parser.Network.parseFailRequestParameters(params);\n }\n parseGetDataParams(params) {\n return Parser.Network.parseGetDataParameters(params);\n }\n parseProvideResponseParams(params) {\n return Parser.Network.parseProvideResponseParameters(params);\n }\n parseRemoveDataCollectorParams(params) {\n return Parser.Network.parseRemoveDataCollectorParameters(params);\n }\n parseRemoveInterceptParams(params) {\n return Parser.Network.parseRemoveInterceptParameters(params);\n }\n parseSetCacheBehaviorParams(params) {\n return Parser.Network.parseSetCacheBehaviorParameters(params);\n }\n parseSetExtraHeadersParams(params) {\n return Parser.Network.parseSetExtraHeadersParameters(params);\n }\n // keep-sorted end\n // Permissions module\n // keep-sorted start block=yes\n parseSetPermissionsParams(params) {\n return Parser.Permissions.parseSetPermissionsParams(params);\n }\n // keep-sorted end\n // Script module\n // keep-sorted start block=yes\n parseAddPreloadScriptParams(params) {\n return Parser.Script.parseAddPreloadScriptParams(params);\n }\n parseCallFunctionParams(params) {\n return Parser.Script.parseCallFunctionParams(params);\n }\n parseDisownParams(params) {\n return Parser.Script.parseDisownParams(params);\n }\n parseEvaluateParams(params) {\n return Parser.Script.parseEvaluateParams(params);\n }\n parseGetRealmsParams(params) {\n return Parser.Script.parseGetRealmsParams(params);\n }\n parseRemovePreloadScriptParams(params) {\n return Parser.Script.parseRemovePreloadScriptParams(params);\n }\n // keep-sorted end\n // Session module\n // keep-sorted start block=yes\n parseSubscribeParams(params) {\n return Parser.Session.parseSubscribeParams(params);\n }\n parseUnsubscribeParams(params) {\n return Parser.Session.parseUnsubscribeParams(params);\n }\n // keep-sorted end\n // Storage module\n // keep-sorted start block=yes\n parseDeleteCookiesParams(params) {\n return Parser.Storage.parseDeleteCookiesParams(params);\n }\n parseGetCookiesParams(params) {\n return Parser.Storage.parseGetCookiesParams(params);\n }\n parseSetCookieParams(params) {\n return Parser.Storage.parseSetCookieParams(params);\n }\n // keep-sorted end\n // WebExtenstion module\n // keep-sorted start block=yes\n parseInstallParams(params) {\n return Parser.WebModule.parseInstallParams(params);\n }\n parseUninstallParams(params) {\n return Parser.WebModule.parseUninstallParams(params);\n }\n}\n//# sourceMappingURL=BidiParser.js.map","/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { LogType } from '../utils/log.js';\n/** HTML source code for the user-facing Mapper tab. */\nconst mapperPageSource = 'BiDi-CDP Mapper

BiDi-CDP Mapper is controlling this tab

Closing or reloading it will stop the BiDi process. Details.

';\nexport function generatePage() {\n // If run not in browser (e.g. unit test), do nothing.\n if (!globalThis.document.documentElement) {\n return;\n }\n globalThis.document.documentElement.innerHTML = mapperPageSource;\n // Show a confirmation dialog when the user tries to leave the Mapper tab.\n globalThis.window.onbeforeunload = () => 'Closing or reloading this tab will stop the BiDi process. Are you sure you want to leave?';\n}\nfunction stringify(message) {\n if (typeof message === 'object') {\n return JSON.stringify(message, null, 2);\n }\n return message;\n}\nexport function log(logPrefix, ...messages) {\n // If run not in browser (e.g. unit test), do nothing.\n if (!globalThis.document.documentElement) {\n return;\n }\n // Skip sending BiDi logs as they are logged once by `bidi:server:*`\n if (!logPrefix.startsWith(LogType.bidi)) {\n // If `sendDebugMessage` is defined, send the log message there.\n globalThis.window?.sendDebugMessage?.(JSON.stringify({ logType: logPrefix, messages }, null, 2));\n }\n const debugContainer = document.getElementById('logs');\n if (!debugContainer) {\n return;\n }\n // This piece of HTML should be added:\n //
...log message...
\n const lineElement = document.createElement('div');\n lineElement.className = 'pre';\n lineElement.textContent = [logPrefix, ...messages].map(stringify).join(' ');\n debugContainer.appendChild(lineElement);\n if (debugContainer.childNodes.length > 400) {\n debugContainer.removeChild(debugContainer.childNodes[0]);\n }\n}\n//# sourceMappingURL=mapperTabPage.js.map","var _a;\nimport { LogType } from '../utils/log.js';\nimport { log } from './mapperTabPage.js';\nexport class WindowBidiTransport {\n static LOGGER_PREFIX_RECV = `${LogType.bidi}:RECV ◂`;\n static LOGGER_PREFIX_SEND = `${LogType.bidi}:SEND ▸`;\n static LOGGER_PREFIX_WARN = LogType.debugWarn;\n #onMessage = null;\n constructor() {\n window.onBidiMessage = (message) => {\n log(_a.LOGGER_PREFIX_RECV, message);\n try {\n const command = _a.#parseBidiMessage(message);\n this.#onMessage?.call(null, command);\n }\n catch (e) {\n const error = e instanceof Error ? e : new Error(e);\n // Transport-level error does not provide goog:channel.\n this.#respondWithError(message, \"invalid argument\" /* ErrorCode.InvalidArgument */, error, null);\n }\n };\n }\n setOnMessage(onMessage) {\n this.#onMessage = onMessage;\n }\n sendMessage(message) {\n log(_a.LOGGER_PREFIX_SEND, message);\n const json = JSON.stringify(message);\n window.sendBidiResponse(json);\n }\n close() {\n this.#onMessage = null;\n window.onBidiMessage = null;\n }\n #respondWithError(plainCommandData, errorCode, error, googChannel) {\n const errorResponse = _a.#getErrorResponse(plainCommandData, errorCode, error);\n if (googChannel) {\n this.sendMessage({\n ...errorResponse,\n 'goog:channel': googChannel,\n });\n }\n else {\n this.sendMessage(errorResponse);\n }\n }\n static #getJsonType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n }\n static #getErrorResponse(message, errorCode, error) {\n // XXX: this is bizarre per spec. We reparse the payload and\n // extract the ID, regardless of what kind of value it was.\n let messageId;\n try {\n const command = JSON.parse(message);\n if (_a.#getJsonType(command) === 'object' &&\n 'id' in command) {\n messageId = command.id;\n }\n }\n catch { }\n return {\n type: 'error',\n id: messageId,\n error: errorCode,\n message: error.message,\n };\n }\n static #parseBidiMessage(message) {\n let command;\n try {\n command = JSON.parse(message);\n }\n catch {\n throw new Error('Cannot parse data as JSON');\n }\n const type = _a.#getJsonType(command);\n if (type !== 'object') {\n throw new Error(`Expected JSON object but got ${type}`);\n }\n // Extract and validate id, method and params.\n const { id, method, params } = command;\n const idType = _a.#getJsonType(id);\n if (idType !== 'number' || !Number.isInteger(id) || id < 0) {\n // TODO: should uint64_t be the upper limit?\n // https://tools.ietf.org/html/rfc7049#section-2.1\n throw new Error(`Expected unsigned integer but got ${idType}`);\n }\n const methodType = _a.#getJsonType(method);\n if (methodType !== 'string') {\n throw new Error(`Expected string method but got ${methodType}`);\n }\n const paramsType = _a.#getJsonType(params);\n if (paramsType !== 'object') {\n throw new Error(`Expected object params but got ${paramsType}`);\n }\n let googChannel = command['goog:channel'];\n if (googChannel !== undefined) {\n const googChannelType = _a.#getJsonType(googChannel);\n if (googChannelType !== 'string') {\n throw new Error(`Expected string channel but got ${googChannelType}`);\n }\n // Empty string goog:channel is considered as no goog:channel provided.\n if (googChannel === '') {\n googChannel = undefined;\n }\n }\n return {\n id,\n method,\n params,\n 'goog:channel': googChannel,\n };\n }\n}\n_a = WindowBidiTransport;\nexport class WindowCdpTransport {\n #onMessage = null;\n #cdpSend;\n constructor() {\n this.#cdpSend = window.cdp.send;\n // @ts-expect-error removing cdp\n window.cdp.send = undefined;\n window.cdp.onmessage = (message) => {\n this.#onMessage?.call(null, message);\n };\n }\n setOnMessage(onMessage) {\n this.#onMessage = onMessage;\n }\n sendMessage(message) {\n this.#cdpSend(message);\n }\n close() {\n this.#onMessage = null;\n window.cdp.onmessage = null;\n }\n}\n//# sourceMappingURL=Transport.js.map","/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @license\n */\nimport { BidiServer } from '../bidiMapper/BidiMapper.js';\nimport { MapperCdpConnection } from '../cdp/CdpConnection.js';\nimport { LogType } from '../utils/log.js';\nimport { BidiParser } from './BidiParser.js';\nimport { generatePage, log } from './mapperTabPage.js';\nimport { WindowBidiTransport, WindowCdpTransport } from './Transport.js';\ngeneratePage();\nconst mapperTabToServerTransport = new WindowBidiTransport();\nconst cdpTransport = new WindowCdpTransport();\n/**\n * A CdpTransport implementation that uses the window.cdp bindings\n * injected by Target.exposeDevToolsProtocol.\n */\nconst cdpConnection = new MapperCdpConnection(cdpTransport, log);\n/**\n * Launches the BiDi mapper instance.\n * @param {string} selfTargetId\n * @param options Mapper options. E.g. `acceptInsecureCerts`.\n */\nasync function runMapperInstance(selfTargetId) {\n // eslint-disable-next-line no-console\n console.log('Launching Mapper instance with selfTargetId:', selfTargetId);\n const bidiServer = await BidiServer.createAndStart(mapperTabToServerTransport, cdpConnection, \n /**\n * Create a Browser CDP Session per Mapper instance.\n */\n await cdpConnection.createBrowserSession(), selfTargetId, new BidiParser(), log);\n log(LogType.debugInfo, 'Mapper instance has been launched');\n return bidiServer;\n}\n/**\n * Set `window.runMapper` to a function which launches the BiDi mapper instance.\n * @param selfTargetId Needed to filter out info related to BiDi target.\n */\nwindow.runMapperInstance = async (selfTargetId) => {\n await runMapperInstance(selfTargetId);\n};\n//# sourceMappingURL=bidiTab.js.map"],"names":["_a","Script","Log","BrowsingContext","Input","Network","Bluetooth","ChromiumBidi.BrowsingContext","ChromiumBidi.Script","ChromiumBidi.Input","ChromiumBidi.Log","ChromiumBidi.Network","ChromiumBidi.BiDiModule","ChromiumBidi.EVENT_NAMES","ChromiumBidi.Bluetooth","ChromiumBidi.Speculation","Buffer","defaultErrorMap","Permissions","Session","Browser","Emulation","Storage","WebDriverBidi.Browser","WebDriverBidi.Network","WebDriverBidi.Script","WebDriverBidi.BrowsingContext","WebDriverBidi.Session","z.object","z.union","WebDriverBidiUAClientHints.UserAgentClientHints","z.null","z.array","z.string","WebDriverBidi.Emulation","WebDriverBidi.Input","WebDriverBidi.Storage","WebDriverBidiPermissions.Permissions","WebDriverBidiBluetooth.Bluetooth","WebDriverBidi.WebExtension","Parser.Bluetooth","Parser.Browser","Parser.BrowsingContext","Parser.Cdp","Parser.Emulation","Parser.Input","Parser.Network","Parser.Permissions","Parser.Script","Parser.Session","Parser.Storage","Parser.WebModule"],"mappings":";;;AAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,GAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,KAAK,CAAA,CAAE,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAC,CAAC;;ACAzT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAA;AACAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;;AC7DpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AA,CAAA,CAAA;;AClRA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,gBAAgB,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAC;AACzD,CAAA,CAAA,CAAA,CAAA;;AC/RA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,OAAO,CAAA,CAAE;IAC3C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,4BAA4B,CAAC;IAChE,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;ACpBA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAKO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IAC/C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA;IAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAIxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAC;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAC;AACrD,CAAA,CAAA,CAAA,CAAA;;AChCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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AA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAG1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAG;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CA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ACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAC;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;;AC1eA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;A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CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAE;IAChB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAE;IACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAG;IACrB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,EAAE,CAAA,CAAA,CAAG;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAG;IAChB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAG;IACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,EAAE,CAAA,CAAA,CAAG;IACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,EAAE,CAAA,CAAA,CAAG;IACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAA,CAAA,CAAG;IACtB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,EAAE,CAAA,CAAA,CAAG;IAC3B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAA,CAAG;IACpB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAG;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAA,CAAG;IACpB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAG;IACrB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAC;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAE;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAE;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAE;IAClB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAE;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAG;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAG;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAG;IACb,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAG;IAChB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAE;IACX,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAE;IACT,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAA,CAAA,CAAG;IACV,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IACd,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAG;IACnB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAG;IACjB,CAAC;;AC7QD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAQA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAO;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC5C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAC,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC;IAChE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAE,CAAC;IACV,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC1D,CAAA,CAAA,CAAA,CAAA;IACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;IACpC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AAC5D,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;IAGxC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;IAC3B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,SAAS,CAAA,CAAE;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;IAC5D,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAC;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;AAC7B,CAAA,CAAA,CAAA,CAAA;IAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IACjE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,OAAO,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAA,CAAA,CAAA,CAAA;IAuCO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACxB,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAA,CAAA,CAAA,CAAA;IACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACxB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE;IACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAG;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAG;IAClB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAE,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAA,CAAK;AACL,CAAA,CAAA,CAAA,CAAA;IAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0D,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;IAMO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACxC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,QAAQ,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,OAAO,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACrF,CAAA,CAAA,CAAA,CAAA,CAAK;IAEL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC3C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IAC7C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACrD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACzD,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB;IACrE,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACjB,CAAA,CAAA,CAAA,CAAA;IAMO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,KAAK,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AACtB,CAAA,CAAA,CAAA,CAAA;AAMO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,YAAY,CAAA,CAAE;IACtD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;IACvE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAG;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAA,CAAA,CAAI;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,YAAY,CAAA,CAAE;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK;AAE3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAA,CAAA,CAAI;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAA,CAAA,CAAI;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAK;IAEL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IAC9C,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC;IACxD,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC;IAChE,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IAC5D,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACjB,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;IACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAG3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,yBAAyB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC;AAC9E,CAAA,CAAA,CAAA,CAAA;IASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;IAC1C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAE,CAAC,CAAC;AAC7F,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAE,CAAC;AACzC,CAAA,CAAA,CAAA,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,GAAG,CAAA,CAAE;AAG9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAG,CAAC,GAAG,CAAC;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,QAAQ,CAAA,CAAE;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,IAAI,CAAA,CAAE;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,QAAQ,CAAA,CAAE;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,MAAM,CAAA,CAAE;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAI;AACf,CAAA,CAAA,CAAA,CAAA;IACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC5D,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAE;IACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC9C,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAI;AACf,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE;IAC9C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAC;IAChB,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAC;IAChB,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC1B,CAAA,CAAA,CAAA,CAAA;;AC7SA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAA,CAAG,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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,iBAAiB,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAE,CAAA,CAAE,IAAI,CAAA,CAAE;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAE;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI;IACxB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;IAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,cAAc,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAE,CAAA,CAAE,IAAI,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;IAC5C,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;IAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,OAAO,CAAA,CAAE;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAE,CAAA,CAAE,IAAI,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC9B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;IAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAE,CAAA,CAAE,IAAI,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC5B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,eAAe,CAAC;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC9B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,kBAAkB,CAAC;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAEjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,sBAAsB,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB;IAC7D,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACrB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,WAAW,CAAA,CAAE;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC;IACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,kBAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IAC7H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACtB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,kBAAkB,CAAA,CAAE;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,eAAe,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;IAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,yBAAyB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC;IAC/K,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;IAC7B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,cAAc,CAAA,CAAE;IACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,WAAW,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;IACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,mCAAmC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,WAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC;IAC9O,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACzB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AAIxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8D,CAAC,CAAC;IAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAI/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,KAAK,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,KAAK,CAAA,CAAE;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,KAAK,CAAA,CAAE;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAE;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,WAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAI,CAAA,CAAA,CAAA,CAAI;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,KAAK,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,KAAK,CAAA,CAAE;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,KAAK,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,CAAA,CAAE;AAClH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAA,CAAE;AACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsF,CAAC,CAAC;IAChJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAE;AAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IAC9H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,sCAAsC,CAAA,CAAE;AAC9H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB;AACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,uBAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,OAAO,CAAC;IACjI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;IACtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;AACrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmG,CAAC,CAAC;IAC7J,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;IAClG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyC,CAAA,CAAE;AAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;IAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;IACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE,CAAC;AACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC;AACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;IAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4D,CAAA,CAAE;AAC3H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IACtH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,kCAAkC,CAAA,CAAE;AAC1H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,mBAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,cAAc,CAAC;IACxH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;IACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;IAC7F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAA,CAAE;AAC5G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;IAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;IACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE,CAAC;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC;AACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC;IACrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwD,CAAA,CAAE;AACvH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD,CAAA,CAAE;AACjH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8C,CAAA,CAAE;AAC7G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAC;IACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,+BAA+B,CAAA,CAAE;AACvH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;IAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;AAC/G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,gBAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC,CAAA,CAAE;AACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC;IAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAC;AACzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,aAAa,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAE;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;IACnG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,aAAa,CAAC;IACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,MAAM,CAAA,CAAE;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAC;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IAUhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,kDAAkD,CAAA,CAAE;AACrH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAG;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoD,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AACvG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAE;IAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAI;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,CAAA,CAAE;AAIxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,0BAA0B,CAAA,CAAE;IACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;IACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC;AAC7F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,aAAa,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,WAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAC,CAAC;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgD,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AACnG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAE;IACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;AACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,aAAa,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,cAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,kBAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAC,CAAC;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAE;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;IACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAE;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;ACrZA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACpC,CAAA,CAAA,CAAA,CAAA;;ACjEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,YAAY,CAAA,CAAA,CAAG;AAK/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,OAAO,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA;;ACtBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAE,CAAA,CAAE;IACjC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI;AACpB,CAAA,CAAA,CAAA,CAAA;;ACnBA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,cAAc,CAAC;IACvK,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC5IA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAQO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;AAG1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAE;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI;IACnB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAG,CAAC,GAAG,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAE,CAAC;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA;IACjC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAE;AAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC/CA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,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CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AChEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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SAAS,CAAC;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AChIA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAKO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,oBAAoB,CAAC;AAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;IAIxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,QAAQ,CAAC;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AAErD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAE;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,aAAa,CAAC;IACxC,CAAA,CAAA,CAAA,CAAI;IAEJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC;AAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAE,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC;IACpC,CAAA,CAAA,CAAA,CAAI;IAEJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAE,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC;AAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAE,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACrB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,WAAW,CAAA,CAAE;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;IAE1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,WAAW,CAAC;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,mBAAmB,CAAA,CAAE;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAC,QAAQ,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;ACtEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAC;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAEvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAEzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;IAC/B,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,sBAAsB,CAAA,CAAA,CAAG;IACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;IAC3C,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;IAChD,CAAA,CAAA,CAAA,CAAI;IAEJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,OAAO,CAAA,CAAE;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,GAAG,CAAC,CAAC,eAAe,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAE;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAE;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,kBAAkB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,kBAAkB,CAAA,CAAE;AACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,MAAM,CAAA,CAAE;AAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,SAAS,CAAA,CAAE;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAC;IACzC,CAAA,CAAA,CAAA,CAAI;IAEJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,UAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,MAAM,CAAC;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAC,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC;IACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACzB,CAAA,CAAA,CAAA,CAAI;IAEJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;IAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAC,sBAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC5EA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAC;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAA,CAAA,CAAG;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAG,GAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACvC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAG;IACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC5BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAMO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;IACjC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,CAAC,CAAA,CAAE,UAAU,CAACM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAC,CAAA,CAAA,CAAG,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACnF,CAAA,CAAA,CAAA,CAAA;IAIO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE;IAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAC,eAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC;IACpE,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC/BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAGO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA;IAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,SAAS,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAE;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACnC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,SAAS,CAAA,CAAA,CAAG;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IAC9B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAG,MAAM,CAAA,CAAE;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC;IAClF,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IAC1C,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;ACtCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAE;AASC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,mBAAmB,CAAC;IACjC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;IACvD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AAGd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACX,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,MAAM,CAAA,CAAE;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,YAAY,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;IAErD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAG,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACrE,CAAA,CAAA,CAAA,CAAI;AAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,KAAK,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,iBAAiB,CAAA,CAAE;IACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,KAAK,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,KAAK,CAAA,CAAE;IACvC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,oBAAoB,CAAA,CAAA,CAAG;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,8BAA8B,CAAC;AAC1G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,SAAS,CAAC;IAC/C,CAAA,CAAA,CAAA,CAAI;IAKJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,kBAAkB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,wBAAwB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC;IACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACxB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,SAAS,CAAA,CAAE;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,OAAO,CAAA,CAAE;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,EAAE,CAAA,CAAE;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsD,CAAC,CAAC;AACrJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,UAAU,CAAA,CAAA,CAAG,CAAA,CAAE,EAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,SAAS,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,WAAW,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,UAAU,CAAC;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,KAAK,CAAA,CAAE;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAGA,IAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAGA,IAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AAGtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,yBAAyB,CAAA,CAAE;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,SAAS,CAAC;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE,CAAC;IACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAE,CAAC;IACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,SAAS,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,MAAM,CAAC;IACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,KAAK,CAAC;IACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,SAAS,CAAC;AACtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,EAAE,CAAC;AAG9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,2BAA2B,CAAA,CAAE;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,kBAAkB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAE;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,SAAS,CAAC;IAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE;IAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAE;AACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,QAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,KAAK,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;IAOL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,eAAe,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACxB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AACAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;;AChIjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI;IACf,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,IAAI,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAE,CAAA,CAAE;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAE;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAG;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;IAC7F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,SAAS,CAAA,CAAE;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,QAAQ,CAAC;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;IACL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,GAAG,CAAC;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;IACT,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,GAAG,CAAA,CAAE;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;IACL,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,SAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,IAAI,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG;IAC7F,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,KAAK,CAAA,CAAE;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IAC/F,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IAChC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAE,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACL,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACrB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,UAAU,CAAA,CAAE;IACvB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACL,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,WAAW,CAAC;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AACT,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAC,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;IAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAI;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,IAAI,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;IAChH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAE;IACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAG;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAE;IACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAG;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;IACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAI;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAC;;ACnIM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,WAAW,CAAC;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AAChB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,KAAK,CAAC;IAC7C,CAAC;IACM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;IACpC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC1B,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAE;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;IACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE;AAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,WAAW,CAAC;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC5B,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,KAAK,CAAA,CAAE;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,EAAE,CAAA,CAAE;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,MAAM,CAAA,CAAE;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,eAAe,CAAA,CAAE;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAC,YAAY,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,qBAAqB,CAAA,CAAE;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,eAAe,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,mBAAmB,CAAA,CAAE;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,cAAc,CAAC;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAE;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;IAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,MAAM,CAAA,CAAE;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC;IACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,EAAE,CAAA,CAAE;IAQlE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,EAAE,CAAA,CAAE;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;IAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,EAAE,CAAC;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA,CAAE;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IAC1B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAE;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,gBAAgB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAG;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC3B,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAE,CAAC,CAAC;IACzE,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAC;IACvC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAE;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAE;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAA,CAAI,CAAC,MAAM,CAAA,CAAE;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,GAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;IACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,MAAM,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,WAAW,CAAA,CAAE;IAC1C,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,UAAU,CAAA,CAAA,CAAG;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAC7B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,MAAM,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAChB,CAAC;;AClID,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACf,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,SAAS,CAAA,CAAE;IAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,WAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG,CAAC,gCAAgC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,QAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAC,CAAC;IACrH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAA,CAAE,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC;IAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC;IAC/F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,EAAE,CAAA,CAAA,CAAA,CAAI,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC;IACpH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAC;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,UAAU,CAAA,CAAE;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC;IAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IAC7H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,UAAU,CAAA,CAAE;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAC;IAC/F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,UAAU,CAAA,CAAE;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC;IAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,UAAU,CAAC;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,CAAA,CAAE;IACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,WAAW,CAAC;AAClJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,aAAa,CAAC;AAChJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AACjK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AACjK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,WAAW,CAAC;AACjJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,aAAa,CAAC;AAChJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AAChJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC;AAChJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAE,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,OAAO,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAC,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAC;IAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC;IACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,KAAK,CAAC;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IACtB,CAAC;;IC1GD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAGiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe;IAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;IACjC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAG,CAAA,CAAA,CAAG;AAC1B,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAW,CAAA,CAAA,CAAG;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAC3B,CAAA,CAAA,CAAA,CAAA;;ACNO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK;IACrC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAC;IACzD,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACtB,CAAA,CAAA,CAAA,CAAA,CAAK;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAE;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAO,CAAA,CAAE;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAE;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAC,SAAS,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,YAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACnF,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAK;IACL,CAAC;IACM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAG,CAAA,CAAE;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,SAAS,CAAA,CAAE;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,SAAS,CAAA,CAAE;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB;IACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,WAAW,CAAA,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe;IACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;IACN,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;AACjC,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAW,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAW,CAAA,CAAA,CAAG;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC5B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAChC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IAClC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,OAAO,CAAA,CAAE;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAE;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAE;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,UAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;IAC1D,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,aAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,KAAK,CAAA,CAAE;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAE;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,SAAS,CAAC;IAC7D,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,KAAK,CAAA,CAAE;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAE;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAI;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAG,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAE;IACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE;IAC3D,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,MAAM,CAAC;IACrC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACrB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAC;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAC;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;;AC5G7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACpB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,SAAS,CAAA,CAAE;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAE;AAE/F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAC,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAC9F,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;;ACAjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,kBAAkB,CAAC;IACzB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,KAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAE;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAG;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,MAAM,CAAA,CAAE;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,KAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,KAAK,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IAC/B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,YAAY,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACpD,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,2CAA2C,CAAC;IACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;IACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAI;IACJ,CAAC;IACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACrC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,kBAAkB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwF,CAAC,CAAC;IACnH,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,WAAW,CAAA,CAAE;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,oBAAoB,CAAA,CAAE;IAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,OAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE;IAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAE;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE;IAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAG,CAAC,YAAY,CAAA,CAAE;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,WAAW,CAAA,CAAE;AAC/C,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAC;IACrB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,WAAW,CAAA,CAAA,CAAG;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IACpC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC;IACxC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,GAAG,CAAA,CAAE;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAI;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,UAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,cAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;IACT,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAE;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,UAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,IAAI,CAAC;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,cAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;IACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,KAAK,CAAC;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,wCAAwC,CAAC;IACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACrB,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE;IACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,KAAK,CAAC;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,MAAM,CAAC;IACtC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;IACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IAC1B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAA,CAAA,CAAG;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,KAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAE;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,cAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,IAAI,CAAC;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,IAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,EAAE,CAAC;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,MAAM,CAAC;IACxC,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAA,CAAA,CAAG;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;IACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,cAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,IAAI,CAAC;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA,CAAE;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAE,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,EAAE,CAAC;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;IACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAE;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAAA,CAAA,CAAI;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG;IAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAA,CAAI;IAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAE,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;IAChG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;IAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK;IAC1B,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAA,CAAA,CAAG;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAE;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAE;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,cAAc,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,IAAI,CAAC;IAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,gBAAgB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,EAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,IAAI,CAAA,CAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAA,CAAE,CAAA,CAAA,CAAG,EAAE,CAAC;AACnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC;AAC/G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,MAAM,CAAC;IACxC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,OAAO,CAAA,CAAE;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAG,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE;IAC/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAA,CAAE;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAC;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;IACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,GAAG,CAAC;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,MAAM,CAAA,CAAA,CAAG,CAAC,QAAQ,CAAC;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAG,CAAC;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAE;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,QAAQ,CAAA,CAAE;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;IACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,OAAO,CAAA,CAAA,CAAA,CAAI;IACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC;IAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,QAAQ,CAAA,CAAE;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,cAAc,CAAA,CAAE;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,cAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE,GAAG,CAAC,CAAA,CAAA,CAAG,cAAc,CAAC;AAC9G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,OAAO,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;IAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,UAAU,CAAA,CAAE;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,UAAU,CAAC;IAC3C,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;AAErB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG;IACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAG;IAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;IACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAK;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;IACT,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAG;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAClD,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAG;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAClD,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAI,CAAC,QAAQ,CAAA,CAAE,CAAC,QAAQ,CAAA,CAAE;IACzC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAC;IACpC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAG;IACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IACjD,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IACzD,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC;IAChE,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE;IACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,SAAS,CAAA,CAAE;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG;IAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAA,CAAA,CAAG;IACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAI;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAAE;IACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG;IAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,IAAI,CAAC;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAI;IAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;IACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC;IACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;IACV,CAAA,CAAA,CAAA,CAAI;IACJ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,MAAM,CAAC;IAC/C,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAQ,CAAA,CAAA,CAAG;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,IAAI,CAAC;IACvC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAU,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAChD,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAU,CAAA,CAAA,CAAG;IACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;IAC3C,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;IACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB;IAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;IAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B;IAG7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwF;IAC1G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;IACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD;IACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0S;IAahU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoF;AAIvG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoD,CAAC;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;IAEd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqH;IACvI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0I;IAGhK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAupB;IACzqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyrB;IAE/sB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AASwC,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW;IACtB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,WAAW,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAC,CAAC,MAAM,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAA,CAAA,CAAA,CAAA,CAAC,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAKA,aAAW,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;IACrC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,WAAW,CAAA,CAAE;IACxB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,QAAQ,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAC;AAC7F,CAAA,CAAA,CAAA,CAAA,CAAC,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAKA,aAAW,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;IACrC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,WAAW,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,2BAA2B,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAA,CAAA,CAAA,CAAA,CAAC,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAKA,aAAW,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;IACrC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,WAAW,CAAA,CAAE;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAC,CAAC,MAAM,CAAA,CAAE;IAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAC,CAAC,MAAM,CAAA,CAAE,CAAC,QAAQ,CAAA,CAAE;IAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC,CAAC,MAAM,CAAA,CAAE,CAAC,QAAQ,CAAA,CAAE;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACP,CAAA,CAAA,CAAA,CAAA,CAAC,EAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAKA,aAAW,CAAA,CAAA,CAAG,CAAA,CAAE,CAAC,CAAC;;AChDrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,C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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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A,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AM,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,GAAG,CAAA,CAAA,CAAA,CAAI;IACnC,CAAA,CAAA,CAAA,CAAI;AACJ,CAAA,CAAA,CAAA,CAAA;;AC/IA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAOA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAE;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAE;IAK7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,GAAG,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,GAAG,CAAC;IAMhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE;AAE/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8C,CAAA,CAAE,YAAY,CAAC;IAC7E,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa;AAIhG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAE,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA,CAAE,GAAG,CAAC;AACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,mCAAmC,CAAC;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AACrB,CAAA,CAAA,CAAA,CAAA;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,YAAY,CAAA,CAAA,CAAA,CAAA,CAAK;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC;IACzC,CAAC;;","x_google_ignoreList":[0,68,69,70,71,72,73,74]} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/index.d.ts b/node_modules/chromium-bidi/lib/index.d.ts deleted file mode 100644 index a59acd1..0000000 --- a/node_modules/chromium-bidi/lib/index.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * as BidiMapper from './bidiMapper/BidiMapper.js'; -export * as Protocol from './protocol/protocol.js'; diff --git a/node_modules/chromium-bidi/lib/index.js b/node_modules/chromium-bidi/lib/index.js deleted file mode 100644 index c6f3c09..0000000 --- a/node_modules/chromium-bidi/lib/index.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * as BidiMapper from './bidiMapper/BidiMapper.js'; -export * as Protocol from './protocol/protocol.js'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/index.js.map b/node_modules/chromium-bidi/lib/index.js.map deleted file mode 100644 index 8e74874..0000000 --- a/node_modules/chromium-bidi/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts deleted file mode 100644 index bd84a88..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.d.ts +++ /dev/null @@ -1,2216 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -import z from 'zod'; -export declare namespace Bluetooth { - const BluetoothUuidSchema: z.ZodLazy; -} -export declare namespace Bluetooth { - const BluetoothManufacturerDataSchema: z.ZodLazy>; -} -export declare namespace Bluetooth { - const CharacteristicPropertiesSchema: z.ZodLazy; - read: z.ZodOptional; - writeWithoutResponse: z.ZodOptional; - write: z.ZodOptional; - notify: z.ZodOptional; - indicate: z.ZodOptional; - authenticatedSignedWrites: z.ZodOptional; - extendedProperties: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }>>; -} -export declare namespace Bluetooth { - const RequestDeviceSchema: z.ZodLazy; -} -export declare namespace Bluetooth { - const RequestDeviceInfoSchema: z.ZodLazy; - name: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - name: string | null; - id: string; - }, { - name: string | null; - id: string; - }>>; -} -export declare namespace Bluetooth { - const RequestDevicePromptSchema: z.ZodLazy; -} -export declare namespace Bluetooth { - const ScanRecordSchema: z.ZodLazy; - uuids: z.ZodOptional, "many">>; - appearance: z.ZodOptional; - manufacturerData: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }>>; -} -export declare const BluetoothCommandSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - }, { - prompt: string; - context: string; - }>, z.ZodUnion<[z.ZodLazy; - device: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: true; - device: string; - }, { - accept: true; - device: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: false; - }, { - accept: false; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - prompt: string; - context: string; - } & ({ - accept: true; - device: string; - } | { - accept: false; - }); - method: "bluetooth.handleRequestDevicePrompt"; -}, { - params: { - prompt: string; - context: string; - } & ({ - accept: true; - device: string; - } | { - accept: false; - }); - method: "bluetooth.handleRequestDevicePrompt"; -}>>, z.ZodLazy; - params: z.ZodLazy; - state: z.ZodEnum<["absent", "powered-off", "powered-on"]>; - }, "strip", z.ZodTypeAny, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }; - method: "bluetooth.simulateAdapter"; -}, { - params: { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }; - method: "bluetooth.simulateAdapter"; -}>>, z.ZodLazy; - params: z.ZodLazy>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "bluetooth.disableSimulation"; -}, { - params: { - context: string; - }; - method: "bluetooth.disableSimulation"; -}>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - knownServiceUuids: z.ZodArray, "many">; - }, "strip", z.ZodTypeAny, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }; - method: "bluetooth.simulatePreconnectedPeripheral"; -}, { - params: { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }; - method: "bluetooth.simulatePreconnectedPeripheral"; -}>>, z.ZodLazy; - params: z.ZodLazy; - uuids: z.ZodOptional, "many">>; - appearance: z.ZodOptional; - manufacturerData: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }>>; - }, "strip", z.ZodTypeAny, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }; - method: "bluetooth.simulateAdvertisement"; -}, { - params: { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }; - method: "bluetooth.simulateAdvertisement"; -}>>, z.ZodLazy; - params: z.ZodLazy>; -}, "strip", z.ZodTypeAny, { - params: { - code: number; - context: string; - address: string; - }; - method: "bluetooth.simulateGattConnectionResponse"; -}, { - params: { - code: number; - context: string; - address: string; - }; - method: "bluetooth.simulateGattConnectionResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - address: string; - }; - method: "bluetooth.simulateGattDisconnection"; -}, { - params: { - context: string; - address: string; - }; - method: "bluetooth.simulateGattDisconnection"; -}>>, z.ZodLazy; - params: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }; - method: "bluetooth.simulateService"; -}, { - params: { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }; - method: "bluetooth.simulateService"; -}>>, z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - characteristicProperties: z.ZodOptional; - read: z.ZodOptional; - writeWithoutResponse: z.ZodOptional; - write: z.ZodOptional; - notify: z.ZodOptional; - indicate: z.ZodOptional; - authenticatedSignedWrites: z.ZodOptional; - extendedProperties: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }>>>; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }; - method: "bluetooth.simulateCharacteristic"; -}, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }; - method: "bluetooth.simulateCharacteristic"; -}>>, z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write", "subscribe-to-notifications", "unsubscribe-from-notifications"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateCharacteristicResponse"; -}, { - params: { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateCharacteristicResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }; - method: "bluetooth.simulateDescriptor"; -}, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }; - method: "bluetooth.simulateDescriptor"; -}>>, z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateDescriptorResponse"; -}, { - params: { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateDescriptorResponse"; -}>>]>>; -export declare namespace Bluetooth { - const HandleRequestDevicePromptSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - }, { - prompt: string; - context: string; - }>, z.ZodUnion<[z.ZodLazy; - device: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: true; - device: string; - }, { - accept: true; - device: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: false; - }, { - accept: false; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - params: { - prompt: string; - context: string; - } & ({ - accept: true; - device: string; - } | { - accept: false; - }); - method: "bluetooth.handleRequestDevicePrompt"; - }, { - params: { - prompt: string; - context: string; - } & ({ - accept: true; - device: string; - } | { - accept: false; - }); - method: "bluetooth.handleRequestDevicePrompt"; - }>>; -} -export declare namespace Bluetooth { - const HandleRequestDevicePromptParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - }, { - prompt: string; - context: string; - }>, z.ZodUnion<[z.ZodLazy; - device: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: true; - device: string; - }, { - accept: true; - device: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: false; - }, { - accept: false; - }>>]>>>; -} -export declare namespace Bluetooth { - const HandleRequestDevicePromptAcceptParametersSchema: z.ZodLazy; - device: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: true; - device: string; - }, { - accept: true; - device: string; - }>>; -} -export declare namespace Bluetooth { - const HandleRequestDevicePromptCancelParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - accept: false; - }, { - accept: false; - }>>; -} -export declare namespace Bluetooth { - const SimulateAdapterSchema: z.ZodLazy; - params: z.ZodLazy; - state: z.ZodEnum<["absent", "powered-off", "powered-on"]>; - }, "strip", z.ZodTypeAny, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }; - method: "bluetooth.simulateAdapter"; - }, { - params: { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }; - method: "bluetooth.simulateAdapter"; - }>>; -} -export declare namespace Bluetooth { - const SimulateAdapterParametersSchema: z.ZodLazy; - state: z.ZodEnum<["absent", "powered-off", "powered-on"]>; - }, "strip", z.ZodTypeAny, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }, { - context: string; - state: "absent" | "powered-off" | "powered-on"; - leSupported?: boolean | undefined; - }>>; -} -export declare namespace Bluetooth { - const DisableSimulationSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "bluetooth.disableSimulation"; - }, { - params: { - context: string; - }; - method: "bluetooth.disableSimulation"; - }>>; -} -export declare namespace Bluetooth { - const DisableSimulationParametersSchema: z.ZodLazy>; -} -export declare namespace Bluetooth { - const SimulatePreconnectedPeripheralSchema: z.ZodLazy; - params: z.ZodLazy>, "many">; - knownServiceUuids: z.ZodArray, "many">; - }, "strip", z.ZodTypeAny, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }; - method: "bluetooth.simulatePreconnectedPeripheral"; - }, { - params: { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }; - method: "bluetooth.simulatePreconnectedPeripheral"; - }>>; -} -export declare namespace Bluetooth { - const SimulatePreconnectedPeripheralParametersSchema: z.ZodLazy>, "many">; - knownServiceUuids: z.ZodArray, "many">; - }, "strip", z.ZodTypeAny, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }, { - context: string; - name: string; - manufacturerData: { - key: number; - data: string; - }[]; - address: string; - knownServiceUuids: string[]; - }>>; -} -export declare namespace Bluetooth { - const SimulateAdvertisementSchema: z.ZodLazy; - params: z.ZodLazy; - uuids: z.ZodOptional, "many">>; - appearance: z.ZodOptional; - manufacturerData: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }>>; - }, "strip", z.ZodTypeAny, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }; - method: "bluetooth.simulateAdvertisement"; - }, { - params: { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }; - method: "bluetooth.simulateAdvertisement"; - }>>; -} -export declare namespace Bluetooth { - const SimulateAdvertisementParametersSchema: z.ZodLazy; - uuids: z.ZodOptional, "many">>; - appearance: z.ZodOptional; - manufacturerData: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }>>; - }, "strip", z.ZodTypeAny, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }, { - context: string; - scanEntry: { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }; - }>>; -} -export declare namespace Bluetooth { - const SimulateAdvertisementScanEntryParametersSchema: z.ZodLazy; - uuids: z.ZodOptional, "many">>; - appearance: z.ZodOptional; - manufacturerData: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }, { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }, { - deviceAddress: string; - rssi: number; - scanRecord: { - name?: string | undefined; - uuids?: string[] | undefined; - appearance?: number | undefined; - manufacturerData?: { - key: number; - data: string; - }[] | undefined; - }; - }>>; -} -export declare namespace Bluetooth { - const SimulateGattConnectionResponseSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - params: { - code: number; - context: string; - address: string; - }; - method: "bluetooth.simulateGattConnectionResponse"; - }, { - params: { - code: number; - context: string; - address: string; - }; - method: "bluetooth.simulateGattConnectionResponse"; - }>>; -} -export declare namespace Bluetooth { - const SimulateGattConnectionResponseParametersSchema: z.ZodLazy>; -} -export declare namespace Bluetooth { - const SimulateGattDisconnectionSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - address: string; - }; - method: "bluetooth.simulateGattDisconnection"; - }, { - params: { - context: string; - address: string; - }; - method: "bluetooth.simulateGattDisconnection"; - }>>; -} -export declare namespace Bluetooth { - const SimulateGattDisconnectionParametersSchema: z.ZodLazy>; -} -export declare namespace Bluetooth { - const SimulateServiceSchema: z.ZodLazy; - params: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }; - method: "bluetooth.simulateService"; - }, { - params: { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }; - method: "bluetooth.simulateService"; - }>>; -} -export declare namespace Bluetooth { - const SimulateServiceParametersSchema: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }, { - uuid: string; - type: "remove" | "add"; - context: string; - address: string; - }>>; -} -export declare namespace Bluetooth { - const SimulateCharacteristicSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - characteristicProperties: z.ZodOptional; - read: z.ZodOptional; - writeWithoutResponse: z.ZodOptional; - write: z.ZodOptional; - notify: z.ZodOptional; - indicate: z.ZodOptional; - authenticatedSignedWrites: z.ZodOptional; - extendedProperties: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }>>>; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }; - method: "bluetooth.simulateCharacteristic"; - }, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }; - method: "bluetooth.simulateCharacteristic"; - }>>; -} -export declare namespace Bluetooth { - const SimulateCharacteristicParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - characteristicProperties: z.ZodOptional; - read: z.ZodOptional; - writeWithoutResponse: z.ZodOptional; - write: z.ZodOptional; - notify: z.ZodOptional; - indicate: z.ZodOptional; - authenticatedSignedWrites: z.ZodOptional; - extendedProperties: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }, { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - }>>>; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - characteristicProperties?: { - read?: boolean | undefined; - write?: boolean | undefined; - broadcast?: boolean | undefined; - writeWithoutResponse?: boolean | undefined; - notify?: boolean | undefined; - indicate?: boolean | undefined; - authenticatedSignedWrites?: boolean | undefined; - extendedProperties?: boolean | undefined; - } | undefined; - }>>; -} -export declare namespace Bluetooth { - const SimulateCharacteristicResponseSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write", "subscribe-to-notifications", "unsubscribe-from-notifications"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateCharacteristicResponse"; - }, { - params: { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateCharacteristicResponse"; - }>>; -} -export declare namespace Bluetooth { - const SimulateCharacteristicResponseParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write", "subscribe-to-notifications", "unsubscribe-from-notifications"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }>>; -} -export declare namespace Bluetooth { - const SimulateDescriptorSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }; - method: "bluetooth.simulateDescriptor"; - }, { - params: { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }; - method: "bluetooth.simulateDescriptor"; - }>>; -} -export declare namespace Bluetooth { - const SimulateDescriptorParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["add", "remove"]>; - }, "strip", z.ZodTypeAny, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }, { - type: "remove" | "add"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - }>>; -} -export declare namespace Bluetooth { - const SimulateDescriptorResponseSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateDescriptorResponse"; - }, { - params: { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.simulateDescriptorResponse"; - }>>; -} -export declare namespace Bluetooth { - const SimulateDescriptorResponseParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write"]>; - code: z.ZodNumber; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }, { - code: number; - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }>>; -} -export declare const BluetoothEventSchema: z.ZodLazy; - params: z.ZodLazy; - devices: z.ZodArray; - name: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - name: string | null; - id: string; - }, { - name: string | null; - id: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }; - method: "bluetooth.requestDevicePromptUpdated"; -}, { - params: { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }; - method: "bluetooth.requestDevicePromptUpdated"; -}>>, z.ZodLazy; - params: z.ZodLazy>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - address: string; - }; - method: "bluetooth.gattConnectionAttempted"; -}, { - params: { - context: string; - address: string; - }; - method: "bluetooth.gattConnectionAttempted"; -}>>]>>; -export declare namespace Bluetooth { - const RequestDevicePromptUpdatedSchema: z.ZodLazy; - params: z.ZodLazy; - devices: z.ZodArray; - name: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - name: string | null; - id: string; - }, { - name: string | null; - id: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }; - method: "bluetooth.requestDevicePromptUpdated"; - }, { - params: { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }; - method: "bluetooth.requestDevicePromptUpdated"; - }>>; -} -export declare namespace Bluetooth { - const RequestDevicePromptUpdatedParametersSchema: z.ZodLazy; - devices: z.ZodArray; - name: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - name: string | null; - id: string; - }, { - name: string | null; - id: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }, { - prompt: string; - context: string; - devices: { - name: string | null; - id: string; - }[]; - }>>; -} -export declare namespace Bluetooth { - const GattConnectionAttemptedSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - address: string; - }; - method: "bluetooth.gattConnectionAttempted"; - }, { - params: { - context: string; - address: string; - }; - method: "bluetooth.gattConnectionAttempted"; - }>>; -} -export declare namespace Bluetooth { - const GattConnectionAttemptedParametersSchema: z.ZodLazy>; -} -export declare namespace Bluetooth { - const CharacteristicEventGeneratedSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write-with-response", "write-without-response", "subscribe-to-notifications", "unsubscribe-from-notifications"]>; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }, { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.characteristicEventGenerated"; - }, { - params: { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.characteristicEventGenerated"; - }>>; -} -export declare namespace Bluetooth { - const CharacteristicEventGeneratedParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write-with-response", "write-without-response", "subscribe-to-notifications", "unsubscribe-from-notifications"]>; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }, { - type: "write-with-response" | "write-without-response" | "read" | "subscribe-to-notifications" | "unsubscribe-from-notifications"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - data?: number[] | undefined; - }>>; -} -export declare namespace Bluetooth { - const DescriptorEventGeneratedSchema: z.ZodLazy; - params: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write"]>; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }, { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.descriptorEventGenerated"; - }, { - params: { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }; - method: "bluetooth.descriptorEventGenerated"; - }>>; -} -export declare namespace Bluetooth { - const DescriptorEventGeneratedParametersSchema: z.ZodLazy; - characteristicUuid: z.ZodLazy; - descriptorUuid: z.ZodLazy; - type: z.ZodEnum<["read", "write"]>; - data: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }, { - type: "read" | "write"; - context: string; - address: string; - serviceUuid: string; - characteristicUuid: string; - descriptorUuid: string; - data?: number[] | undefined; - }>>; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js deleted file mode 100644 index 1367237..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js +++ /dev/null @@ -1,348 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck Some types may be circular. -import z from 'zod'; -export var Bluetooth; -(function (Bluetooth) { - Bluetooth.BluetoothUuidSchema = z.lazy(() => z.string()); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.BluetoothManufacturerDataSchema = z.lazy(() => z.object({ - key: z.number().int().nonnegative(), - data: z.string(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.CharacteristicPropertiesSchema = z.lazy(() => z.object({ - broadcast: z.boolean().optional(), - read: z.boolean().optional(), - writeWithoutResponse: z.boolean().optional(), - write: z.boolean().optional(), - notify: z.boolean().optional(), - indicate: z.boolean().optional(), - authenticatedSignedWrites: z.boolean().optional(), - extendedProperties: z.boolean().optional(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.RequestDeviceSchema = z.lazy(() => z.string()); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.RequestDeviceInfoSchema = z.lazy(() => z.object({ - id: Bluetooth.RequestDeviceSchema, - name: z.union([z.string(), z.null()]), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.RequestDevicePromptSchema = z.lazy(() => z.string()); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.ScanRecordSchema = z.lazy(() => z.object({ - name: z.string().optional(), - uuids: z.array(Bluetooth.BluetoothUuidSchema).optional(), - appearance: z.number().optional(), - manufacturerData: z - .array(Bluetooth.BluetoothManufacturerDataSchema) - .optional(), - })); -})(Bluetooth || (Bluetooth = {})); -export const BluetoothCommandSchema = z.lazy(() => z.union([ - Bluetooth.HandleRequestDevicePromptSchema, - Bluetooth.SimulateAdapterSchema, - Bluetooth.DisableSimulationSchema, - Bluetooth.SimulatePreconnectedPeripheralSchema, - Bluetooth.SimulateAdvertisementSchema, - Bluetooth.SimulateGattConnectionResponseSchema, - Bluetooth.SimulateGattDisconnectionSchema, - Bluetooth.SimulateServiceSchema, - Bluetooth.SimulateCharacteristicSchema, - Bluetooth.SimulateCharacteristicResponseSchema, - Bluetooth.SimulateDescriptorSchema, - Bluetooth.SimulateDescriptorResponseSchema, -])); -(function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.handleRequestDevicePrompt'), - params: Bluetooth.HandleRequestDevicePromptParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptParametersSchema = z.lazy(() => z - .object({ - context: z.string(), - prompt: Bluetooth.RequestDevicePromptSchema, - }) - .and(z.union([ - Bluetooth.HandleRequestDevicePromptAcceptParametersSchema, - Bluetooth.HandleRequestDevicePromptCancelParametersSchema, - ]))); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptAcceptParametersSchema = z.lazy(() => z.object({ - accept: z.literal(true), - device: Bluetooth.RequestDeviceSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.HandleRequestDevicePromptCancelParametersSchema = z.lazy(() => z.object({ - accept: z.literal(false), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateAdapterSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateAdapter'), - params: Bluetooth.SimulateAdapterParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateAdapterParametersSchema = z.lazy(() => z.object({ - context: z.string(), - leSupported: z.boolean().optional(), - state: z.enum(['absent', 'powered-off', 'powered-on']), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.DisableSimulationSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.disableSimulation'), - params: Bluetooth.DisableSimulationParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.DisableSimulationParametersSchema = z.lazy(() => z.object({ - context: z.string(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulatePreconnectedPeripheralSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulatePreconnectedPeripheral'), - params: Bluetooth.SimulatePreconnectedPeripheralParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulatePreconnectedPeripheralParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - name: z.string(), - manufacturerData: z.array(Bluetooth.BluetoothManufacturerDataSchema), - knownServiceUuids: z.array(Bluetooth.BluetoothUuidSchema), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateAdvertisementSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateAdvertisement'), - params: Bluetooth.SimulateAdvertisementParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateAdvertisementParametersSchema = z.lazy(() => z.object({ - context: z.string(), - scanEntry: Bluetooth.SimulateAdvertisementScanEntryParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateAdvertisementScanEntryParametersSchema = z.lazy(() => z.object({ - deviceAddress: z.string(), - rssi: z.number(), - scanRecord: Bluetooth.ScanRecordSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateGattConnectionResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateGattConnectionResponse'), - params: Bluetooth.SimulateGattConnectionResponseParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateGattConnectionResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - code: z.number().int().nonnegative(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateGattDisconnectionSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateGattDisconnection'), - params: Bluetooth.SimulateGattDisconnectionParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateGattDisconnectionParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateServiceSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateService'), - params: Bluetooth.SimulateServiceParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateServiceParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - uuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['add', 'remove']), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateCharacteristicSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateCharacteristic'), - params: Bluetooth.SimulateCharacteristicParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateCharacteristicParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - characteristicProperties: Bluetooth.CharacteristicPropertiesSchema.optional(), - type: z.enum(['add', 'remove']), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateCharacteristicResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateCharacteristicResponse'), - params: Bluetooth.SimulateCharacteristicResponseParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateCharacteristicResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum([ - 'read', - 'write', - 'subscribe-to-notifications', - 'unsubscribe-from-notifications', - ]), - code: z.number().int().nonnegative(), - data: z.array(z.number().int().nonnegative()).optional(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateDescriptorSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateDescriptor'), - params: Bluetooth.SimulateDescriptorParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateDescriptorParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['add', 'remove']), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateDescriptorResponseSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.simulateDescriptorResponse'), - params: Bluetooth.SimulateDescriptorResponseParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.SimulateDescriptorResponseParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['read', 'write']), - code: z.number().int().nonnegative(), - data: z.array(z.number().int().nonnegative()).optional(), - })); -})(Bluetooth || (Bluetooth = {})); -export const BluetoothEventSchema = z.lazy(() => z.union([ - Bluetooth.RequestDevicePromptUpdatedSchema, - Bluetooth.GattConnectionAttemptedSchema, -])); -(function (Bluetooth) { - Bluetooth.RequestDevicePromptUpdatedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.requestDevicePromptUpdated'), - params: Bluetooth.RequestDevicePromptUpdatedParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.RequestDevicePromptUpdatedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - prompt: Bluetooth.RequestDevicePromptSchema, - devices: z.array(Bluetooth.RequestDeviceInfoSchema), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.GattConnectionAttemptedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.gattConnectionAttempted'), - params: Bluetooth.GattConnectionAttemptedParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.GattConnectionAttemptedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.CharacteristicEventGeneratedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.characteristicEventGenerated'), - params: Bluetooth.CharacteristicEventGeneratedParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.CharacteristicEventGeneratedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum([ - 'read', - 'write-with-response', - 'write-without-response', - 'subscribe-to-notifications', - 'unsubscribe-from-notifications', - ]), - data: z.array(z.number().int().nonnegative()).optional(), - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.DescriptorEventGeneratedSchema = z.lazy(() => z.object({ - method: z.literal('bluetooth.descriptorEventGenerated'), - params: Bluetooth.DescriptorEventGeneratedParametersSchema, - })); -})(Bluetooth || (Bluetooth = {})); -(function (Bluetooth) { - Bluetooth.DescriptorEventGeneratedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - address: z.string(), - serviceUuid: Bluetooth.BluetoothUuidSchema, - characteristicUuid: Bluetooth.BluetoothUuidSchema, - descriptorUuid: Bluetooth.BluetoothUuidSchema, - type: z.enum(['read', 'write']), - data: z.array(z.number().int().nonnegative()).optional(), - })); -})(Bluetooth || (Bluetooth = {})); -//# sourceMappingURL=webdriver-bidi-bluetooth.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js.map b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js.map deleted file mode 100644 index c342a1e..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-bluetooth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-bluetooth.js","sourceRoot":"","sources":["../../../src/protocol-parser/generated/webdriver-bidi-bluetooth.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.d.ts deleted file mode 100644 index 7998b09..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.d.ts +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -import z from 'zod'; -export declare namespace Speculation { - const PreloadingStatusSchema: z.ZodLazy>; -} -export declare const SpeculationEventSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }; - method: "speculation.prefetchStatusUpdated"; -}, { - params: { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }; - method: "speculation.prefetchStatusUpdated"; -}>>>; -export declare namespace Speculation { - const PrefetchStatusUpdatedSchema: z.ZodLazy; - params: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }; - method: "speculation.prefetchStatusUpdated"; - }, { - params: { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }; - method: "speculation.prefetchStatusUpdated"; - }>>; -} -export declare namespace Speculation { - const PrefetchStatusUpdatedParametersSchema: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }, { - url: string; - status: "success" | "pending" | "ready" | "failure"; - context: string; - }>>; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js deleted file mode 100644 index 9e6a8aa..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck Some types may be circular. -import z from 'zod'; -export var Speculation; -(function (Speculation) { - Speculation.PreloadingStatusSchema = z.lazy(() => z.enum(['pending', 'ready', 'success', 'failure'])); -})(Speculation || (Speculation = {})); -export const SpeculationEventSchema = z.lazy(() => Speculation.PrefetchStatusUpdatedSchema); -(function (Speculation) { - Speculation.PrefetchStatusUpdatedSchema = z.lazy(() => z.object({ - method: z.literal('speculation.prefetchStatusUpdated'), - params: Speculation.PrefetchStatusUpdatedParametersSchema, - })); -})(Speculation || (Speculation = {})); -(function (Speculation) { - Speculation.PrefetchStatusUpdatedParametersSchema = z.lazy(() => z.object({ - context: z.string(), - url: z.string(), - status: Speculation.PreloadingStatusSchema, - })); -})(Speculation || (Speculation = {})); -//# sourceMappingURL=webdriver-bidi-nav-speculation.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js.map b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js.map deleted file mode 100644 index 2150119..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-nav-speculation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-nav-speculation.js","sourceRoot":"","sources":["../../../src/protocol-parser/generated/webdriver-bidi-nav-speculation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH,6DAA6D;AAC7D,0CAA0C;AAE1C,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,KAAW,WAAW,CAI3B;AAJD,WAAiB,WAAW;IACb,kCAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAChD,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CACnD,CAAC;AACJ,CAAC,EAJgB,WAAW,KAAX,WAAW,QAI3B;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAC1C,GAAG,EAAE,CAAC,WAAW,CAAC,2BAA2B,CAC9C,CAAC;AACF,WAAiB,WAAW;IACb,uCAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACrD,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC;QACtD,MAAM,EAAE,WAAW,CAAC,qCAAqC;KAC1D,CAAC,CACH,CAAC;AACJ,CAAC,EAPgB,WAAW,KAAX,WAAW,QAO3B;AACD,WAAiB,WAAW;IACb,iDAAqC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/D,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,WAAW,CAAC,sBAAsB;KAC3C,CAAC,CACH,CAAC;AACJ,CAAC,EARgB,WAAW,KAAX,WAAW,QAQ3B"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.d.ts deleted file mode 100644 index be6fead..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.d.ts +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -import z from 'zod'; -export declare const PermissionsCommandSchema: z.ZodLazy; - params: z.ZodLazy>; - state: z.ZodLazy>; - origin: z.ZodString; - embeddedOrigin: z.ZodOptional; - userContext: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }; - method: "permissions.setPermission"; -}, { - params: { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }; - method: "permissions.setPermission"; -}>>>; -export declare namespace Permissions { - const PermissionDescriptorSchema: z.ZodLazy>; -} -export declare namespace Permissions { - const PermissionStateSchema: z.ZodLazy>; -} -export declare namespace Permissions { - const SetPermissionSchema: z.ZodLazy; - params: z.ZodLazy>; - state: z.ZodLazy>; - origin: z.ZodString; - embeddedOrigin: z.ZodOptional; - userContext: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }; - method: "permissions.setPermission"; - }, { - params: { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }; - method: "permissions.setPermission"; - }>>; -} -export declare namespace Permissions { - const SetPermissionParametersSchema: z.ZodLazy>; - state: z.ZodLazy>; - origin: z.ZodString; - embeddedOrigin: z.ZodOptional; - userContext: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }, { - origin: string; - state: "granted" | "denied" | "prompt"; - descriptor: { - name: string; - }; - userContext?: string | undefined; - embeddedOrigin?: string | undefined; - }>>; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js deleted file mode 100644 index f4ffaea..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck Some types may be circular. -import z from 'zod'; -export const PermissionsCommandSchema = z.lazy(() => Permissions.SetPermissionSchema); -export var Permissions; -(function (Permissions) { - Permissions.PermissionDescriptorSchema = z.lazy(() => z.object({ - name: z.string(), - })); -})(Permissions || (Permissions = {})); -(function (Permissions) { - Permissions.PermissionStateSchema = z.lazy(() => z.enum(['granted', 'denied', 'prompt'])); -})(Permissions || (Permissions = {})); -(function (Permissions) { - Permissions.SetPermissionSchema = z.lazy(() => z.object({ - method: z.literal('permissions.setPermission'), - params: Permissions.SetPermissionParametersSchema, - })); -})(Permissions || (Permissions = {})); -(function (Permissions) { - Permissions.SetPermissionParametersSchema = z.lazy(() => z.object({ - descriptor: Permissions.PermissionDescriptorSchema, - state: Permissions.PermissionStateSchema, - origin: z.string(), - embeddedOrigin: z.string().optional(), - userContext: z.string().optional(), - })); -})(Permissions || (Permissions = {})); -//# sourceMappingURL=webdriver-bidi-permissions.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js.map b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js.map deleted file mode 100644 index 2b35650..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-permissions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-permissions.js","sourceRoot":"","sources":["../../../src/protocol-parser/generated/webdriver-bidi-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH,6DAA6D;AAC7D,0CAA0C;AAE1C,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAC5C,GAAG,EAAE,CAAC,WAAW,CAAC,mBAAmB,CACtC,CAAC;AACF,MAAM,KAAW,WAAW,CAM3B;AAND,WAAiB,WAAW;IACb,sCAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACpD,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC,CACH,CAAC;AACJ,CAAC,EANgB,WAAW,KAAX,WAAW,QAM3B;AACD,WAAiB,WAAW;IACb,iCAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC/C,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CACxC,CAAC;AACJ,CAAC,EAJgB,WAAW,KAAX,WAAW,QAI3B;AACD,WAAiB,WAAW;IACb,+BAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7C,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;QAC9C,MAAM,EAAE,WAAW,CAAC,6BAA6B;KAClD,CAAC,CACH,CAAC;AACJ,CAAC,EAPgB,WAAW,KAAX,WAAW,QAO3B;AACD,WAAiB,WAAW;IACb,yCAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACvD,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,WAAW,CAAC,0BAA0B;QAClD,KAAK,EAAE,WAAW,CAAC,qBAAqB;QACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CACH,CAAC;AACJ,CAAC,EAVgB,WAAW,KAAX,WAAW,QAU3B"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.d.ts deleted file mode 100644 index 74abe34..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.d.ts +++ /dev/null @@ -1,427 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -import z from 'zod'; -export declare const UserAgentClientHintsCommandSchema: z.ZodLazy; - params: z.ZodObject<{ - clientHints: z.ZodUnion<[z.ZodLazy>, "many">>; - fullVersionList: z.ZodOptional>, "many">>; - platform: z.ZodOptional; - platformVersion: z.ZodOptional; - architecture: z.ZodOptional; - model: z.ZodOptional; - mobile: z.ZodOptional; - bitness: z.ZodOptional; - wow64: z.ZodOptional; - formFactors: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }>>, z.ZodNull]>; - contexts: z.ZodOptional>; - userContexts: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>; -}, "strip", z.ZodTypeAny, { - params: { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "userAgentClientHints.setClientHintsOverride"; -}, { - params: { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "userAgentClientHints.setClientHintsOverride"; -}>>>; -export declare namespace UserAgentClientHints { - const SetClientHintsOverrideCommandSchema: z.ZodLazy; - params: z.ZodObject<{ - clientHints: z.ZodUnion<[z.ZodLazy>, "many">>; - fullVersionList: z.ZodOptional>, "many">>; - platform: z.ZodOptional; - platformVersion: z.ZodOptional; - architecture: z.ZodOptional; - model: z.ZodOptional; - mobile: z.ZodOptional; - bitness: z.ZodOptional; - wow64: z.ZodOptional; - formFactors: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }>>, z.ZodNull]>; - contexts: z.ZodOptional>; - userContexts: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>; - }, "strip", z.ZodTypeAny, { - params: { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "userAgentClientHints.setClientHintsOverride"; - }, { - params: { - clientHints: { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "userAgentClientHints.setClientHintsOverride"; - }>>; -} -export declare namespace UserAgentClientHints { - const ClientHintsMetadataSchema: z.ZodLazy>, "many">>; - fullVersionList: z.ZodOptional>, "many">>; - platform: z.ZodOptional; - platformVersion: z.ZodOptional; - architecture: z.ZodOptional; - model: z.ZodOptional; - mobile: z.ZodOptional; - bitness: z.ZodOptional; - wow64: z.ZodOptional; - formFactors: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }, { - mobile?: boolean | undefined; - brands?: { - brand: string; - version: string; - }[] | undefined; - fullVersionList?: { - brand: string; - version: string; - }[] | undefined; - platform?: string | undefined; - platformVersion?: string | undefined; - architecture?: string | undefined; - model?: string | undefined; - bitness?: string | undefined; - wow64?: boolean | undefined; - formFactors?: string[] | undefined; - }>>; -} -export declare namespace UserAgentClientHints { - const BrandVersionSchema: z.ZodLazy>; -} -export declare namespace UserAgentClientHints { - const SetClientHintsOverrideResultSchema: z.ZodLazy>; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js deleted file mode 100644 index fc019da..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck Some types may be circular. -import z from 'zod'; -export const UserAgentClientHintsCommandSchema = z.lazy(() => UserAgentClientHints.SetClientHintsOverrideCommandSchema); -export var UserAgentClientHints; -(function (UserAgentClientHints) { - UserAgentClientHints.SetClientHintsOverrideCommandSchema = z.lazy(() => z.object({ - method: z.literal('userAgentClientHints.setClientHintsOverride'), - params: z.object({ - clientHints: z.union([ - UserAgentClientHints.ClientHintsMetadataSchema, - z.null(), - ]), - contexts: z.array(z.string()).min(1).optional(), - userContexts: z.array(z.string()).min(1).optional(), - }), - })); -})(UserAgentClientHints || (UserAgentClientHints = {})); -(function (UserAgentClientHints) { - UserAgentClientHints.ClientHintsMetadataSchema = z.lazy(() => z.object({ - brands: z.array(UserAgentClientHints.BrandVersionSchema).optional(), - fullVersionList: z - .array(UserAgentClientHints.BrandVersionSchema) - .optional(), - platform: z.string().optional(), - platformVersion: z.string().optional(), - architecture: z.string().optional(), - model: z.string().optional(), - mobile: z.boolean().optional(), - bitness: z.string().optional(), - wow64: z.boolean().optional(), - formFactors: z.array(z.string()).optional(), - })); -})(UserAgentClientHints || (UserAgentClientHints = {})); -(function (UserAgentClientHints) { - UserAgentClientHints.BrandVersionSchema = z.lazy(() => z.object({ - brand: z.string(), - version: z.string(), - })); -})(UserAgentClientHints || (UserAgentClientHints = {})); -(function (UserAgentClientHints) { - UserAgentClientHints.SetClientHintsOverrideResultSchema = z.lazy(() => z.object({})); -})(UserAgentClientHints || (UserAgentClientHints = {})); -//# sourceMappingURL=webdriver-bidi-ua-client-hints.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js.map b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js.map deleted file mode 100644 index bc0ff53..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi-ua-client-hints.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-ua-client-hints.js","sourceRoot":"","sources":["../../../src/protocol-parser/generated/webdriver-bidi-ua-client-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AAEH,6DAA6D;AAC7D,0CAA0C;AAE1C,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,IAAI,CACrD,GAAG,EAAE,CAAC,oBAAoB,CAAC,mCAAmC,CAC/D,CAAC;AACF,MAAM,KAAW,oBAAoB,CAcpC;AAdD,WAAiB,oBAAoB;IACtB,wDAAmC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC7D,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,6CAA6C,CAAC;QAChE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC;gBACnB,oBAAoB,CAAC,yBAAyB;gBAC9C,CAAC,CAAC,IAAI,EAAE;aACT,CAAC;YACF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC/C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACpD,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC,EAdgB,oBAAoB,KAApB,oBAAoB,QAcpC;AACD,WAAiB,oBAAoB;IACtB,8CAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACnD,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;QACnE,eAAe,EAAE,CAAC;aACf,KAAK,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;aAC9C,QAAQ,EAAE;QACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC,CACH,CAAC;AACJ,CAAC,EAjBgB,oBAAoB,KAApB,oBAAoB,QAiBpC;AACD,WAAiB,oBAAoB;IACtB,uCAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAC5C,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH,CAAC;AACJ,CAAC,EAPgB,oBAAoB,KAApB,oBAAoB,QAOpC;AACD,WAAiB,oBAAoB;IACtB,uDAAkC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC,EAFgB,oBAAoB,KAApB,oBAAoB,QAEpC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.d.ts deleted file mode 100644 index 0d80d91..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.d.ts +++ /dev/null @@ -1,65923 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -import z from 'zod'; -export declare const CommandSchema: z.ZodLazy, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.close"; -}, { - params: Record; - method: "browser.close"; -}>>, z.ZodLazy; - params: z.ZodLazy; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getClientWindows"; -}, { - params: Record; - method: "browser.getClientWindows"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getUserContexts"; -}, { - params: Record; - method: "browser.getUserContexts"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - clientWindow: string; - }, { - clientWindow: string; - }>, z.ZodUnion<[z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>, z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}>>, z.ZodLazy; - params: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>, z.ZodNull]>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodOptional>>; - format: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>>; - clip: z.ZodOptional; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}>>, z.ZodLazy; - params: z.ZodLazy; - promptUnload: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - promptUnload?: boolean | undefined; - }, { - context: string; - promptUnload?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - referenceContext: z.ZodOptional>; - background: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}>>, z.ZodLazy; - params: z.ZodLazy; - root: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - root?: string | undefined; - maxDepth?: number | undefined; - }, { - root?: string | undefined; - maxDepth?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accept: z.ZodOptional; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}>>, z.ZodLazy; - params: z.ZodLazy; - locator: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; - maxNodeCount: z.ZodOptional; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - startNodes: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}>>, z.ZodLazy; - params: z.ZodLazy; - url: z.ZodString; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - background: z.ZodOptional>; - margin: z.ZodOptional>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>>; - orientation: z.ZodOptional>>; - page: z.ZodOptional>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>>; - pageRanges: z.ZodOptional, "many">>; - scale: z.ZodOptional>; - shrinkToFit: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}>>, z.ZodLazy; - params: z.ZodLazy; - ignoreCache: z.ZodOptional; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - viewport: z.ZodOptional>, z.ZodNull]>>; - devicePixelRatio: z.ZodOptional>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}>>, z.ZodLazy; - params: z.ZodLazy; - delta: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - context: string; - delta: number; - }, { - context: string; - delta: number; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }>, z.ZodObject<{ - error: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; - }, "strip", z.ZodTypeAny, { - error: { - type: "positionUnavailable"; - }; - }, { - error: { - type: "positionUnavailable"; - }; - }>]>, z.ZodObject<{ - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLiteral<"overlay">, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - actions: z.ZodArray; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "input.releaseActions"; -}, { - params: { - context: string; - }; - method: "input.releaseActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - files: z.ZodArray; - }, "strip", z.ZodTypeAny, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - maxEncodedDataSize: z.ZodNumber; - collectorType: z.ZodOptional>>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - contexts: z.ZodOptional, "many">>; - urlPatterns: z.ZodOptional; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>, "many">>; - }, "strip", z.ZodTypeAny, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - method: z.ZodOptional; - url: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - credentials: z.ZodOptional; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>, z.ZodUnion<[z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodLazy; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector: string; - }, { - request: string; - dataType: "request" | "response"; - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - }; - method: "network.failRequest"; -}, { - params: { - request: string; - }; - method: "network.failRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodOptional>; - disown: z.ZodOptional>; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>, "many">>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - arguments: z.ZodOptional, "many">>; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - this: any; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}>>, z.ZodLazy; - params: z.ZodLazy, "many">; - target: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - awaitPromise: z.ZodBoolean; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.end"; -}, { - params: Record; - method: "session.end"; -}>>, z.ZodLazy; - params: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.status"; -}, { - params: Record; - method: "session.status"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>]>>; -}, "strip", z.ZodTypeAny, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; - }, "strip", z.ZodTypeAny, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}>>]>>]>>>, z.ZodLazy>>>; -export declare const CommandDataSchema: z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.close"; -}, { - params: Record; - method: "browser.close"; -}>>, z.ZodLazy; - params: z.ZodLazy; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getClientWindows"; -}, { - params: Record; - method: "browser.getClientWindows"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getUserContexts"; -}, { - params: Record; - method: "browser.getUserContexts"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - clientWindow: string; - }, { - clientWindow: string; - }>, z.ZodUnion<[z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>, z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}>>, z.ZodLazy; - params: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>, z.ZodNull]>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodOptional>>; - format: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>>; - clip: z.ZodOptional; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}>>, z.ZodLazy; - params: z.ZodLazy; - promptUnload: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - promptUnload?: boolean | undefined; - }, { - context: string; - promptUnload?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - referenceContext: z.ZodOptional>; - background: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}>>, z.ZodLazy; - params: z.ZodLazy; - root: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - root?: string | undefined; - maxDepth?: number | undefined; - }, { - root?: string | undefined; - maxDepth?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accept: z.ZodOptional; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}>>, z.ZodLazy; - params: z.ZodLazy; - locator: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; - maxNodeCount: z.ZodOptional; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - startNodes: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}>>, z.ZodLazy; - params: z.ZodLazy; - url: z.ZodString; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - background: z.ZodOptional>; - margin: z.ZodOptional>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>>; - orientation: z.ZodOptional>>; - page: z.ZodOptional>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>>; - pageRanges: z.ZodOptional, "many">>; - scale: z.ZodOptional>; - shrinkToFit: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}>>, z.ZodLazy; - params: z.ZodLazy; - ignoreCache: z.ZodOptional; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - viewport: z.ZodOptional>, z.ZodNull]>>; - devicePixelRatio: z.ZodOptional>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}>>, z.ZodLazy; - params: z.ZodLazy; - delta: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - context: string; - delta: number; - }, { - context: string; - delta: number; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }>, z.ZodObject<{ - error: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; - }, "strip", z.ZodTypeAny, { - error: { - type: "positionUnavailable"; - }; - }, { - error: { - type: "positionUnavailable"; - }; - }>]>, z.ZodObject<{ - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLiteral<"overlay">, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - actions: z.ZodArray; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "input.releaseActions"; -}, { - params: { - context: string; - }; - method: "input.releaseActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - files: z.ZodArray; - }, "strip", z.ZodTypeAny, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - maxEncodedDataSize: z.ZodNumber; - collectorType: z.ZodOptional>>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - contexts: z.ZodOptional, "many">>; - urlPatterns: z.ZodOptional; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>, "many">>; - }, "strip", z.ZodTypeAny, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - method: z.ZodOptional; - url: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - credentials: z.ZodOptional; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>, z.ZodUnion<[z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodLazy; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector: string; - }, { - request: string; - dataType: "request" | "response"; - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - }; - method: "network.failRequest"; -}, { - params: { - request: string; - }; - method: "network.failRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodOptional>; - disown: z.ZodOptional>; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>, "many">>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - arguments: z.ZodOptional, "many">>; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - this: any; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}>>, z.ZodLazy; - params: z.ZodLazy, "many">; - target: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - awaitPromise: z.ZodBoolean; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.end"; -}, { - params: Record; - method: "session.end"; -}>>, z.ZodLazy; - params: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.status"; -}, { - params: Record; - method: "session.status"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>]>>; -}, "strip", z.ZodTypeAny, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; - }, "strip", z.ZodTypeAny, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}>>]>>]>>; -export declare const EmptyParamsSchema: z.ZodLazy>>; -export declare const MessageSchema: z.ZodLazy; - id: z.ZodNumber; - result: z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - userContexts: { - userContext: string; - }[]; - }, { - userContexts: { - userContext: string; - }[]; - }>>, z.ZodLazy>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>, z.ZodLazy>>>, z.ZodLazy; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - userContext?: string | undefined; - }, { - context: string; - userContext?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - contexts?: any; - }, { - contexts?: any; - }>>, z.ZodLazy>>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - nodes: any[]; - }, { - nodes: any[]; - }>>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>, z.ZodLazy>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>>, z.ZodLazy>>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - webSocketUrl: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }>, z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }>>, z.ZodLazy>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - subscription: string; - }, { - subscription: string; - }>>, z.ZodLazy>>>]>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - partitionKey: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>, z.ZodLazy>>>]>>]>>; -}, "strip", z.ZodTypeAny, { - type: "success"; - id: number; - result: Record | { - userContext: string; - } | { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - } | { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - } | { - userContexts: { - userContext: string; - }[]; - } | { - data: string; - } | { - context: string; - userContext?: string | undefined; - } | { - contexts?: any; - } | { - nodes: any[]; - } | { - url: string; - navigation: string | null; - } | { - data: string; - } | { - collector: string; - } | { - intercept: string; - } | { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - } | { - script: string; - } | { - type: "success"; - realm: string; - result?: any; - } | { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - } | { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - } | { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - } | { - message: string; - ready: boolean; - } | { - subscription: string; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - extension: string; - }; -}, { - type: "success"; - id: number; - result: Record | { - userContext: string; - } | { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - } | { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - } | { - userContexts: { - userContext: string; - }[]; - } | { - data: string; - } | { - context: string; - userContext?: string | undefined; - } | { - contexts?: any; - } | { - nodes: any[]; - } | { - url: string; - navigation: string | null; - } | { - data: string; - } | { - collector: string; - } | { - intercept: string; - } | { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - } | { - script: string; - } | { - type: "success"; - realm: string; - result?: any; - } | { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - } | { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - } | { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - } | { - message: string; - ready: boolean; - } | { - subscription: string; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - extension: string; - }; -}>, z.ZodLazy>>>, z.ZodLazy; - id: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - error: z.ZodLazy>; - message: z.ZodString; - stacktrace: z.ZodOptional; -}, "strip", z.ZodTypeAny, { - message: string; - type: "error"; - error: "invalid argument" | "invalid selector" | "invalid session id" | "invalid web extension" | "move target out of bounds" | "no such alert" | "no such network collector" | "no such element" | "no such frame" | "no such handle" | "no such history entry" | "no such intercept" | "no such network data" | "no such node" | "no such request" | "no such script" | "no such storage partition" | "no such user context" | "no such web extension" | "session not created" | "unable to capture screen" | "unable to close browser" | "unable to set cookie" | "unable to set file input" | "unavailable network data" | "underspecified storage partition" | "unknown command" | "unknown error" | "unsupported operation"; - id: number | null; - stacktrace?: string | undefined; -}, { - message: string; - type: "error"; - error: "invalid argument" | "invalid selector" | "invalid session id" | "invalid web extension" | "move target out of bounds" | "no such alert" | "no such network collector" | "no such element" | "no such frame" | "no such handle" | "no such history entry" | "no such intercept" | "no such network data" | "no such node" | "no such request" | "no such script" | "no such storage partition" | "no such user context" | "no such web extension" | "session not created" | "unable to capture screen" | "unable to close browser" | "unable to set cookie" | "unable to set file input" | "unavailable network data" | "underspecified storage partition" | "unknown command" | "unknown error" | "unsupported operation"; - id: number | null; - stacktrace?: string | undefined; -}>, z.ZodLazy>>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "event"; -}, { - type: "event"; -}>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextCreated"; - params?: any; -}, { - method: "browsingContext.contextCreated"; - params?: any; -}>>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextDestroyed"; - params?: any; -}, { - method: "browsingContext.contextDestroyed"; - params?: any; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -}, "strip", z.ZodTypeAny, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}>>>, z.ZodLazy; - params: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}>>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}>>]>>]>>>, z.ZodLazy>>>]>>; -export declare const CommandResponseSchema: z.ZodLazy; - id: z.ZodNumber; - result: z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - userContexts: { - userContext: string; - }[]; - }, { - userContexts: { - userContext: string; - }[]; - }>>, z.ZodLazy>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>, z.ZodLazy>>>, z.ZodLazy; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - userContext?: string | undefined; - }, { - context: string; - userContext?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - contexts?: any; - }, { - contexts?: any; - }>>, z.ZodLazy>>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - nodes: any[]; - }, { - nodes: any[]; - }>>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>, z.ZodLazy>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>>, z.ZodLazy>>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - webSocketUrl: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }>, z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }>>, z.ZodLazy>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - subscription: string; - }, { - subscription: string; - }>>, z.ZodLazy>>>]>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - partitionKey: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>]>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>, z.ZodLazy>>>]>>]>>; -}, "strip", z.ZodTypeAny, { - type: "success"; - id: number; - result: Record | { - userContext: string; - } | { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - } | { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - } | { - userContexts: { - userContext: string; - }[]; - } | { - data: string; - } | { - context: string; - userContext?: string | undefined; - } | { - contexts?: any; - } | { - nodes: any[]; - } | { - url: string; - navigation: string | null; - } | { - data: string; - } | { - collector: string; - } | { - intercept: string; - } | { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - } | { - script: string; - } | { - type: "success"; - realm: string; - result?: any; - } | { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - } | { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - } | { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - } | { - message: string; - ready: boolean; - } | { - subscription: string; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - extension: string; - }; -}, { - type: "success"; - id: number; - result: Record | { - userContext: string; - } | { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - } | { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - } | { - userContexts: { - userContext: string; - }[]; - } | { - data: string; - } | { - context: string; - userContext?: string | undefined; - } | { - contexts?: any; - } | { - nodes: any[]; - } | { - url: string; - navigation: string | null; - } | { - data: string; - } | { - collector: string; - } | { - intercept: string; - } | { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - } | { - script: string; - } | { - type: "success"; - realm: string; - result?: any; - } | { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - } | { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - } | { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - } | { - message: string; - ready: boolean; - } | { - subscription: string; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - } | { - extension: string; - }; -}>, z.ZodLazy>>>; -export declare const ErrorResponseSchema: z.ZodLazy; - id: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - error: z.ZodLazy>; - message: z.ZodString; - stacktrace: z.ZodOptional; -}, "strip", z.ZodTypeAny, { - message: string; - type: "error"; - error: "invalid argument" | "invalid selector" | "invalid session id" | "invalid web extension" | "move target out of bounds" | "no such alert" | "no such network collector" | "no such element" | "no such frame" | "no such handle" | "no such history entry" | "no such intercept" | "no such network data" | "no such node" | "no such request" | "no such script" | "no such storage partition" | "no such user context" | "no such web extension" | "session not created" | "unable to capture screen" | "unable to close browser" | "unable to set cookie" | "unable to set file input" | "unavailable network data" | "underspecified storage partition" | "unknown command" | "unknown error" | "unsupported operation"; - id: number | null; - stacktrace?: string | undefined; -}, { - message: string; - type: "error"; - error: "invalid argument" | "invalid selector" | "invalid session id" | "invalid web extension" | "move target out of bounds" | "no such alert" | "no such network collector" | "no such element" | "no such frame" | "no such handle" | "no such history entry" | "no such intercept" | "no such network data" | "no such node" | "no such request" | "no such script" | "no such storage partition" | "no such user context" | "no such web extension" | "session not created" | "unable to capture screen" | "unable to close browser" | "unable to set cookie" | "unable to set file input" | "unavailable network data" | "underspecified storage partition" | "unknown command" | "unknown error" | "unsupported operation"; - id: number | null; - stacktrace?: string | undefined; -}>, z.ZodLazy>>>; -export declare const ResultDataSchema: z.ZodLazy>>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - userContext: string; -}, { - userContext: string; -}>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>, "many">; -}, "strip", z.ZodTypeAny, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; -}, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; -}>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>, "many">; -}, "strip", z.ZodTypeAny, { - userContexts: { - userContext: string; - }[]; -}, { - userContexts: { - userContext: string; - }[]; -}>>, z.ZodLazy>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; -}, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; -}, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; -}>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>, z.ZodLazy>>>, z.ZodLazy; - userContext: z.ZodOptional>; -}, "strip", z.ZodTypeAny, { - context: string; - userContext?: string | undefined; -}, { - context: string; - userContext?: string | undefined; -}>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - contexts?: any; -}, { - contexts?: any; -}>>, z.ZodLazy>>>, z.ZodLazy, "many">; -}, "strip", z.ZodTypeAny, { - nodes: any[]; -}, { - nodes: any[]; -}>>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; -}, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; -}, { - url: string; - navigation: string | null; -}>>, z.ZodLazy>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; -}, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; -}, { - url: string; - navigation: string | null; -}>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - collector: string; -}, { - collector: string; -}>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - intercept: string; -}, { - intercept: string; -}>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; -}, "strip", z.ZodTypeAny, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; -}, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; -}>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - script: string; -}, { - script: string; -}>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; -}, { - type: "success"; - realm: string; - result?: any; -}>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}>>]>>>, z.ZodLazy>>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; -}, { - type: "success"; - realm: string; - result?: any; -}>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}>>]>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>, "many">; -}, "strip", z.ZodTypeAny, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; -}, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; -}>>, z.ZodLazy>>>]>>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - webSocketUrl: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }>, z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; -}, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; -}>>, z.ZodLazy>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - subscription: string; -}, { - subscription: string; -}>>, z.ZodLazy>>>]>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - partitionKey: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>]>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - extension: string; -}, { - extension: string; -}>>, z.ZodLazy>>>]>>]>>; -export declare const EmptyResultSchema: z.ZodLazy>>; -export declare const EventSchema: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "event"; -}, { - type: "event"; -}>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextCreated"; - params?: any; -}, { - method: "browsingContext.contextCreated"; - params?: any; -}>>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextDestroyed"; - params?: any; -}, { - method: "browsingContext.contextDestroyed"; - params?: any; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -}, "strip", z.ZodTypeAny, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}>>>, z.ZodLazy; - params: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}>>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}>>]>>]>>>, z.ZodLazy>>>; -export declare const EventDataSchema: z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextCreated"; - params?: any; -}, { - method: "browsingContext.contextCreated"; - params?: any; -}>>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextDestroyed"; - params?: any; -}, { - method: "browsingContext.contextDestroyed"; - params?: any; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -}, "strip", z.ZodTypeAny, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}>>>, z.ZodLazy; - params: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}>>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}>>]>>, z.ZodLazy; - params: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}>>]>>]>>; -export declare const ExtensibleSchema: z.ZodLazy>; -export declare const JsIntSchema: z.ZodNumber; -export declare const JsUintSchema: z.ZodNumber; -export declare const ErrorCodeSchema: z.ZodLazy>; -export declare const SessionCommandSchema: z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.end"; -}, { - params: Record; - method: "session.end"; -}>>, z.ZodLazy; - params: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "session.status"; -}, { - params: Record; - method: "session.status"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>]>>; -}, "strip", z.ZodTypeAny, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; -}>>]>>; -export declare const SessionResultSchema: z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - webSocketUrl: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }>, z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; -}, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; -}>>, z.ZodLazy>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - subscription: string; -}, { - subscription: string; -}>>, z.ZodLazy>>>]>>; -export declare namespace Session { - const CapabilitiesRequestSchema: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; -} -export declare namespace Session { - const CapabilityRequestSchema: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Session { - const ProxyConfigurationSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>; -} -export declare namespace Session { - const AutodetectProxyConfigurationSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>; -} -export declare namespace Session { - const DirectProxyConfigurationSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>; -} -export declare namespace Session { - const ManualProxyConfigurationSchema: z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>; -} -export declare namespace Session { - const SocksProxyConfigurationSchema: z.ZodLazy>; -} -export declare namespace Session { - const PacProxyConfigurationSchema: z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>; -} -export declare namespace Session { - const SystemProxyConfigurationSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>; -} -export declare namespace Session { - const UserPromptHandlerSchema: z.ZodLazy>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>; -} -export declare namespace Session { - const UserPromptHandlerTypeSchema: z.ZodLazy>; -} -export declare namespace Session { - const SubscriptionSchema: z.ZodLazy; -} -export declare namespace Session { - const SubscribeParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Session { - const UnsubscribeByIdRequestSchema: z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>; -} -export declare namespace Session { - const UnsubscribeByAttributesRequestSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>; -} -export declare namespace Session { - const StatusSchema: z.ZodLazy; - params: z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - params: Record; - method: "session.status"; - }, { - params: Record; - method: "session.status"; - }>>; -} -export declare namespace Session { - const StatusResultSchema: z.ZodLazy>; -} -export declare namespace Session { - const NewSchema: z.ZodLazy; - params: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; - }, { - params: { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }; - method: "session.new"; - }>>; -} -export declare namespace Session { - const NewParametersSchema: z.ZodLazy; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>>; - firstMatch: z.ZodOptional; - browserName: z.ZodOptional; - browserVersion: z.ZodOptional; - platformName: z.ZodOptional; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }, { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }, { - capabilities: { - alwaysMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record) | undefined; - firstMatch?: ({ - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - browserName?: string | undefined; - browserVersion?: string | undefined; - platformName?: string | undefined; - } & Record)[] | undefined; - }; - }>>; -} -export declare namespace Session { - const NewResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - webSocketUrl: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }, { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - }>, z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }, { - capabilities: { - acceptInsecureCerts: boolean; - userAgent: string; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - webSocketUrl?: string | undefined; - } & Record; - sessionId: string; - }>>; -} -export declare namespace Session { - const EndSchema: z.ZodLazy; - params: z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - params: Record; - method: "session.end"; - }, { - params: Record; - method: "session.end"; - }>>; -} -export declare namespace Session { - const EndResultSchema: z.ZodLazy>>>; -} -export declare namespace Session { - const SubscribeSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; - }, { - params: { - events: string[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "session.subscribe"; - }>>; -} -export declare namespace Session { - const SubscribeResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - subscription: string; - }, { - subscription: string; - }>>; -} -export declare namespace Session { - const UnsubscribeSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>]>>; - }, "strip", z.ZodTypeAny, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; - }, { - params: { - subscriptions: string[]; - } | { - events: string[]; - }; - method: "session.unsubscribe"; - }>>; -} -export declare namespace Session { - const UnsubscribeParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - events: string[]; - }, { - events: string[]; - }>>, z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - subscriptions: string[]; - }, { - subscriptions: string[]; - }>>]>>; -} -export declare namespace Session { - const UnsubscribeResultSchema: z.ZodLazy>>>; -} -export declare const BrowserCommandSchema: z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.close"; -}, { - params: Record; - method: "browser.close"; -}>>, z.ZodLazy; - params: z.ZodLazy; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getClientWindows"; -}, { - params: Record; - method: "browser.getClientWindows"; -}>>, z.ZodLazy; - params: z.ZodLazy>>; -}, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getUserContexts"; -}, { - params: Record; - method: "browser.getUserContexts"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - clientWindow: string; - }, { - clientWindow: string; - }>, z.ZodUnion<[z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>, z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; -}>>, z.ZodLazy; - params: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>, z.ZodNull]>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; -}>>]>>; -export declare const BrowserResultSchema: z.ZodLazy>>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - userContext: string; -}, { - userContext: string; -}>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>, "many">; -}, "strip", z.ZodTypeAny, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; -}, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; -}>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>, "many">; -}, "strip", z.ZodTypeAny, { - userContexts: { - userContext: string; - }[]; -}, { - userContexts: { - userContext: string; - }[]; -}>>, z.ZodLazy>>>, z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; -}, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; -}, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; -}>>>, z.ZodLazy>>>]>>; -export declare namespace Browser { - const ClientWindowSchema: z.ZodLazy; -} -export declare namespace Browser { - const ClientWindowInfoSchema: z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>; -} -export declare namespace Browser { - const UserContextSchema: z.ZodLazy; -} -export declare namespace Browser { - const UserContextInfoSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; -} -export declare namespace Browser { - const CloseSchema: z.ZodLazy; - params: z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.close"; - }, { - params: Record; - method: "browser.close"; - }>>; -} -export declare namespace Browser { - const CloseResultSchema: z.ZodLazy>>>; -} -export declare namespace Browser { - const CreateUserContextSchema: z.ZodLazy; - params: z.ZodLazy; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; - }, { - params: { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }; - method: "browser.createUserContext"; - }>>; -} -export declare namespace Browser { - const CreateUserContextParametersSchema: z.ZodLazy; - proxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "autodetect"; - }, { - proxyType: "autodetect"; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "direct"; - }, { - proxyType: "direct"; - }>, z.ZodLazy>>>, z.ZodLazy; - httpProxy: z.ZodOptional; - sslProxy: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }, { - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - }>, z.ZodUnion<[z.ZodLazy>, z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>]>>, z.ZodObject<{ - noProxy: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - noProxy?: string[] | undefined; - }, { - noProxy?: string[] | undefined; - }>>, z.ZodLazy>>>, z.ZodLazy; - proxyAutoconfigUrl: z.ZodString; - }, "strip", z.ZodTypeAny, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }, { - proxyType: "pac"; - proxyAutoconfigUrl: string; - }>, z.ZodLazy>>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - proxyType: "system"; - }, { - proxyType: "system"; - }>, z.ZodLazy>>>]>>>; - unhandledPromptBehavior: z.ZodOptional>>; - beforeUnload: z.ZodOptional>>; - confirm: z.ZodOptional>>; - default: z.ZodOptional>>; - file: z.ZodOptional>>; - prompt: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }, { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }, { - proxy?: ({ - proxyType: "autodetect"; - } & Record) | ({ - proxyType: "direct"; - } & Record) | ((({ - proxyType: "manual"; - httpProxy?: string | undefined; - sslProxy?: string | undefined; - } & ({ - socksProxy: string; - socksVersion: number; - } | {})) & { - noProxy?: string[] | undefined; - }) & Record) | ({ - proxyType: "pac"; - proxyAutoconfigUrl: string; - } & Record) | ({ - proxyType: "system"; - } & Record) | undefined; - acceptInsecureCerts?: boolean | undefined; - unhandledPromptBehavior?: { - default?: "accept" | "dismiss" | "ignore" | undefined; - prompt?: "accept" | "dismiss" | "ignore" | undefined; - alert?: "accept" | "dismiss" | "ignore" | undefined; - confirm?: "accept" | "dismiss" | "ignore" | undefined; - beforeUnload?: "accept" | "dismiss" | "ignore" | undefined; - file?: "accept" | "dismiss" | "ignore" | undefined; - } | undefined; - }>>; -} -export declare namespace Browser { - const CreateUserContextResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>>; -} -export declare namespace Browser { - const GetClientWindowsSchema: z.ZodLazy; - params: z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getClientWindows"; - }, { - params: Record; - method: "browser.getClientWindows"; - }>>; -} -export declare namespace Browser { - const GetClientWindowsResultSchema: z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }, { - clientWindows: { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }[]; - }>>; -} -export declare namespace Browser { - const GetUserContextsSchema: z.ZodLazy; - params: z.ZodLazy>>; - }, "strip", z.ZodTypeAny, { - params: Record; - method: "browser.getUserContexts"; - }, { - params: Record; - method: "browser.getUserContexts"; - }>>; -} -export declare namespace Browser { - const GetUserContextsResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>, "many">; - }, "strip", z.ZodTypeAny, { - userContexts: { - userContext: string; - }[]; - }, { - userContexts: { - userContext: string; - }[]; - }>>; -} -export declare namespace Browser { - const RemoveUserContextSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; - }, { - params: { - userContext: string; - }; - method: "browser.removeUserContext"; - }>>; -} -export declare namespace Browser { - const RemoveUserContextParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - userContext: string; - }, { - userContext: string; - }>>; -} -export declare namespace Browser { - const RemoveUserContextResultSchema: z.ZodLazy>>>; -} -export declare namespace Browser { - const SetClientWindowStateSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - clientWindow: string; - }, { - clientWindow: string; - }>, z.ZodUnion<[z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>, z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; - }, { - params: { - clientWindow: string; - } & ({ - state: "minimized" | "maximized" | "fullscreen"; - } | { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }); - method: "browser.setClientWindowState"; - }>>; -} -export declare namespace Browser { - const SetClientWindowStateParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - clientWindow: string; - }, { - clientWindow: string; - }>, z.ZodUnion<[z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>, z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>]>>>; -} -export declare namespace Browser { - const ClientWindowNamedStateSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - state: "minimized" | "maximized" | "fullscreen"; - }, { - state: "minimized" | "maximized" | "fullscreen"; - }>>; -} -export declare namespace Browser { - const ClientWindowRectStateSchema: z.ZodLazy; - width: z.ZodOptional; - height: z.ZodOptional; - x: z.ZodOptional; - y: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }, { - state: "normal"; - width?: number | undefined; - height?: number | undefined; - x?: number | undefined; - y?: number | undefined; - }>>; -} -export declare namespace Browser { - const SetClientWindowStateResultSchema: z.ZodLazy; - height: z.ZodNumber; - state: z.ZodEnum<["fullscreen", "maximized", "minimized", "normal"]>; - width: z.ZodNumber; - x: z.ZodNumber; - y: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }, { - active: boolean; - clientWindow: string; - state: "normal" | "minimized" | "maximized" | "fullscreen"; - width: number; - height: number; - x: number; - y: number; - }>>>; -} -export declare namespace Browser { - const SetDownloadBehaviorSchema: z.ZodLazy; - params: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>, z.ZodNull]>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; - }, { - params: { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }; - method: "browser.setDownloadBehavior"; - }>>; -} -export declare namespace Browser { - const SetDownloadBehaviorParametersSchema: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>, z.ZodNull]>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }, { - downloadBehavior: { - type: "allowed"; - destinationFolder: string; - } | { - type: "denied"; - } | null; - userContexts?: string[] | undefined; - }>>; -} -export declare namespace Browser { - const DownloadBehaviorSchema: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>]>>; -} -export declare namespace Browser { - const DownloadBehaviorAllowedSchema: z.ZodLazy; - destinationFolder: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "allowed"; - destinationFolder: string; - }, { - type: "allowed"; - destinationFolder: string; - }>>; -} -export declare namespace Browser { - const DownloadBehaviorDeniedSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "denied"; - }, { - type: "denied"; - }>>; -} -export declare namespace Browser { - const SetDownloadBehaviorResultSchema: z.ZodLazy>>>; -} -export declare const BrowsingContextCommandSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}, { - params: { - context: string; - }; - method: "browsingContext.activate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodOptional>>; - format: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>>; - clip: z.ZodOptional; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; -}>>, z.ZodLazy; - params: z.ZodLazy; - promptUnload: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - promptUnload?: boolean | undefined; - }, { - context: string; - promptUnload?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - referenceContext: z.ZodOptional>; - background: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; -}>>, z.ZodLazy; - params: z.ZodLazy; - root: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - root?: string | undefined; - maxDepth?: number | undefined; - }, { - root?: string | undefined; - maxDepth?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accept: z.ZodOptional; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; -}>>, z.ZodLazy; - params: z.ZodLazy; - locator: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; - maxNodeCount: z.ZodOptional; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - startNodes: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; -}>>, z.ZodLazy; - params: z.ZodLazy; - url: z.ZodString; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; -}>>, z.ZodLazy; - params: z.ZodLazy; - background: z.ZodOptional>; - margin: z.ZodOptional>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>>; - orientation: z.ZodOptional>>; - page: z.ZodOptional>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>>; - pageRanges: z.ZodOptional, "many">>; - scale: z.ZodOptional>; - shrinkToFit: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; -}>>, z.ZodLazy; - params: z.ZodLazy; - ignoreCache: z.ZodOptional; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - viewport: z.ZodOptional>, z.ZodNull]>>; - devicePixelRatio: z.ZodOptional>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; -}>>, z.ZodLazy; - params: z.ZodLazy; - delta: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - context: string; - delta: number; - }, { - context: string; - delta: number; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; -}>>]>>; -export declare const BrowsingContextResultSchema: z.ZodLazy>>>, z.ZodLazy>, z.ZodLazy>>>, z.ZodLazy; - userContext: z.ZodOptional>; -}, "strip", z.ZodTypeAny, { - context: string; - userContext?: string | undefined; -}, { - context: string; - userContext?: string | undefined; -}>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - contexts?: any; -}, { - contexts?: any; -}>>, z.ZodLazy>>>, z.ZodLazy, "many">; -}, "strip", z.ZodTypeAny, { - nodes: any[]; -}, { - nodes: any[]; -}>>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; -}, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; -}, { - url: string; - navigation: string | null; -}>>, z.ZodLazy>, z.ZodLazy, z.ZodNull]>; - url: z.ZodString; -}, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; -}, { - url: string; - navigation: string | null; -}>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>; -export declare const BrowsingContextEventSchema: z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextCreated"; - params?: any; -}, { - method: "browsingContext.contextCreated"; - params?: any; -}>>, z.ZodLazy; - params: any; -}, "strip", z.ZodTypeAny, { - method: "browsingContext.contextDestroyed"; - params?: any; -}, { - method: "browsingContext.contextDestroyed"; - params?: any; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -}, "strip", z.ZodTypeAny, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; -}>>, z.ZodLazy; - params: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; -}>>, z.ZodLazy; - params: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; -}>>]>>; -export declare namespace BrowsingContext { - const BrowsingContextSchema: z.ZodLazy; -} -export declare namespace BrowsingContext { - const InfoListSchema: any; -} -export declare namespace BrowsingContext { - const InfoSchema: any; -} -export declare namespace BrowsingContext { - const LocatorSchema: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; -} -export declare namespace BrowsingContext { - const AccessibilityLocatorSchema: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>; -} -export declare namespace BrowsingContext { - const CssLocatorSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>; -} -export declare namespace BrowsingContext { - const ContextLocatorSchema: z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>; -} -export declare namespace BrowsingContext { - const InnerTextLocatorSchema: z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>; -} -export declare namespace BrowsingContext { - const XPathLocatorSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>; -} -export declare namespace BrowsingContext { - const NavigationSchema: z.ZodLazy; -} -export declare namespace BrowsingContext { - const BaseNavigationInfoSchema: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const NavigationInfoSchema: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; -} -export declare namespace BrowsingContext { - const ReadinessStateSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const UserPromptTypeSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const ActivateSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "browsingContext.activate"; - }, { - params: { - context: string; - }; - method: "browsingContext.activate"; - }>>; -} -export declare namespace BrowsingContext { - const ActivateParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -} -export declare namespace BrowsingContext { - const ActivateResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const CaptureScreenshotSchema: z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodOptional>>; - format: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>>; - clip: z.ZodOptional; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; - }, { - params: { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }; - method: "browsingContext.captureScreenshot"; - }>>; -} -export declare namespace BrowsingContext { - const CaptureScreenshotParametersSchema: z.ZodLazy; - origin: z.ZodOptional>>; - format: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>>; - clip: z.ZodOptional; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - context: string; - origin?: "viewport" | "document" | undefined; - format?: { - type: string; - quality?: number | undefined; - } | undefined; - clip?: { - type: "box"; - width: number; - height: number; - x: number; - y: number; - } | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; -} -export declare namespace BrowsingContext { - const ImageFormatSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: string; - quality?: number | undefined; - }, { - type: string; - quality?: number | undefined; - }>>; -} -export declare namespace BrowsingContext { - const ClipRectangleSchema: z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>; -} -export declare namespace BrowsingContext { - const ElementClipRectangleSchema: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>; -} -export declare namespace BrowsingContext { - const BoxClipRectangleSchema: z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - width: z.ZodNumber; - height: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }, { - type: "box"; - width: number; - height: number; - x: number; - y: number; - }>>; -} -export declare namespace BrowsingContext { - const CaptureScreenshotResultSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const CloseSchema: z.ZodLazy; - params: z.ZodLazy; - promptUnload: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - promptUnload?: boolean | undefined; - }, { - context: string; - promptUnload?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; - }, { - params: { - context: string; - promptUnload?: boolean | undefined; - }; - method: "browsingContext.close"; - }>>; -} -export declare namespace BrowsingContext { - const CloseParametersSchema: z.ZodLazy; - promptUnload: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - promptUnload?: boolean | undefined; - }, { - context: string; - promptUnload?: boolean | undefined; - }>>; -} -export declare namespace BrowsingContext { - const CloseResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const CreateSchema: z.ZodLazy; - params: z.ZodLazy>; - referenceContext: z.ZodOptional>; - background: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; - }, { - params: { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }; - method: "browsingContext.create"; - }>>; -} -export declare namespace BrowsingContext { - const CreateTypeSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const CreateParametersSchema: z.ZodLazy>; - referenceContext: z.ZodOptional>; - background: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }, { - type: "window" | "tab"; - background?: boolean | undefined; - userContext?: string | undefined; - referenceContext?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const CreateResultSchema: z.ZodLazy; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - userContext?: string | undefined; - }, { - context: string; - userContext?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const GetTreeSchema: z.ZodLazy; - params: z.ZodLazy; - root: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - root?: string | undefined; - maxDepth?: number | undefined; - }, { - root?: string | undefined; - maxDepth?: number | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; - }, { - params: { - root?: string | undefined; - maxDepth?: number | undefined; - }; - method: "browsingContext.getTree"; - }>>; -} -export declare namespace BrowsingContext { - const GetTreeParametersSchema: z.ZodLazy; - root: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - root?: string | undefined; - maxDepth?: number | undefined; - }, { - root?: string | undefined; - maxDepth?: number | undefined; - }>>; -} -export declare namespace BrowsingContext { - const GetTreeResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - contexts?: any; - }, { - contexts?: any; - }>>; -} -export declare namespace BrowsingContext { - const HandleUserPromptSchema: z.ZodLazy; - params: z.ZodLazy; - accept: z.ZodOptional; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; - }, { - params: { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }; - method: "browsingContext.handleUserPrompt"; - }>>; -} -export declare namespace BrowsingContext { - const HandleUserPromptParametersSchema: z.ZodLazy; - accept: z.ZodOptional; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }, { - context: string; - accept?: boolean | undefined; - userText?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const HandleUserPromptResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const LocateNodesSchema: z.ZodLazy; - params: z.ZodLazy; - locator: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; - maxNodeCount: z.ZodOptional; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - startNodes: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; - }, { - params: { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }; - method: "browsingContext.locateNodes"; - }>>; -} -export declare namespace BrowsingContext { - const LocateNodesParametersSchema: z.ZodLazy; - locator: z.ZodLazy; - value: z.ZodObject<{ - name: z.ZodOptional; - role: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - role?: string | undefined; - name?: string | undefined; - }, { - role?: string | undefined; - name?: string | undefined; - }>; - }, "strip", z.ZodTypeAny, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }, { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "css"; - value: string; - }, { - type: "css"; - value: string; - }>>, z.ZodLazy; - value: z.ZodObject<{ - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>; - }, "strip", z.ZodTypeAny, { - type: "context"; - value: { - context: string; - }; - }, { - type: "context"; - value: { - context: string; - }; - }>>, z.ZodLazy; - value: z.ZodString; - ignoreCase: z.ZodOptional; - matchType: z.ZodOptional>; - maxDepth: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }, { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "xpath"; - value: string; - }, { - type: "xpath"; - value: string; - }>>]>>; - maxNodeCount: z.ZodOptional; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - startNodes: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, "many">>; - }, "strip", z.ZodTypeAny, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }, { - context: string; - locator: { - type: "accessibility"; - value: { - role?: string | undefined; - name?: string | undefined; - }; - } | { - type: "css"; - value: string; - } | { - type: "context"; - value: { - context: string; - }; - } | { - type: "innerText"; - value: string; - maxDepth?: number | undefined; - ignoreCase?: boolean | undefined; - matchType?: "partial" | "full" | undefined; - } | { - type: "xpath"; - value: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - maxNodeCount?: number | undefined; - startNodes?: ({ - sharedId: string; - handle?: string | undefined; - } & Record)[] | undefined; - }>>; -} -export declare namespace BrowsingContext { - const LocateNodesResultSchema: z.ZodLazy, "many">; - }, "strip", z.ZodTypeAny, { - nodes: any[]; - }, { - nodes: any[]; - }>>; -} -export declare namespace BrowsingContext { - const NavigateSchema: z.ZodLazy; - params: z.ZodLazy; - url: z.ZodString; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; - }, { - params: { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }; - method: "browsingContext.navigate"; - }>>; -} -export declare namespace BrowsingContext { - const NavigateParametersSchema: z.ZodLazy; - url: z.ZodString; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }, { - url: string; - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - }>>; -} -export declare namespace BrowsingContext { - const NavigateResultSchema: z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>; -} -export declare namespace BrowsingContext { - const PrintSchema: z.ZodLazy; - params: z.ZodLazy; - background: z.ZodOptional>; - margin: z.ZodOptional>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>>; - orientation: z.ZodOptional>>; - page: z.ZodOptional>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>>; - pageRanges: z.ZodOptional, "many">>; - scale: z.ZodOptional>; - shrinkToFit: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; - }, { - params: { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }; - method: "browsingContext.print"; - }>>; -} -export declare namespace BrowsingContext { - const PrintParametersSchema: z.ZodLazy; - background: z.ZodOptional>; - margin: z.ZodOptional>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>>; - orientation: z.ZodOptional>>; - page: z.ZodOptional>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>>; - pageRanges: z.ZodOptional, "many">>; - scale: z.ZodOptional>; - shrinkToFit: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }, { - context: string; - orientation?: "portrait" | "landscape" | undefined; - background?: boolean | undefined; - margin?: { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - } | undefined; - page?: { - width?: number | undefined; - height?: number | undefined; - } | undefined; - pageRanges?: (string | number)[] | undefined; - scale?: number | undefined; - shrinkToFit?: boolean | undefined; - }>>; -} -export declare namespace BrowsingContext { - const PrintMarginParametersSchema: z.ZodLazy>; - left: z.ZodOptional>; - right: z.ZodOptional>; - top: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }, { - left?: number | undefined; - right?: number | undefined; - bottom?: number | undefined; - top?: number | undefined; - }>>; -} -export declare namespace BrowsingContext { - const PrintPageParametersSchema: z.ZodLazy>; - width: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - }>>; -} -export declare namespace BrowsingContext { - const PrintResultSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const ReloadSchema: z.ZodLazy; - params: z.ZodLazy; - ignoreCache: z.ZodOptional; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; - }, { - params: { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }; - method: "browsingContext.reload"; - }>>; -} -export declare namespace BrowsingContext { - const ReloadParametersSchema: z.ZodLazy; - ignoreCache: z.ZodOptional; - wait: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }, { - context: string; - wait?: "none" | "interactive" | "complete" | undefined; - ignoreCache?: boolean | undefined; - }>>; -} -export declare namespace BrowsingContext { - const ReloadResultSchema: z.ZodLazy, z.ZodNull]>; - url: z.ZodString; - }, "strip", z.ZodTypeAny, { - url: string; - navigation: string | null; - }, { - url: string; - navigation: string | null; - }>>>; -} -export declare namespace BrowsingContext { - const SetBypassCspSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; - }, { - params: { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "browsingContext.setBypassCSP"; - }>>; -} -export declare namespace BrowsingContext { - const SetBypassCspParametersSchema: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - bypass: true | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace BrowsingContext { - const SetBypassCspResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const SetViewportSchema: z.ZodLazy; - params: z.ZodLazy>; - viewport: z.ZodOptional>, z.ZodNull]>>; - devicePixelRatio: z.ZodOptional>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; - }, { - params: { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }; - method: "browsingContext.setViewport"; - }>>; -} -export declare namespace BrowsingContext { - const SetViewportParametersSchema: z.ZodLazy>; - viewport: z.ZodOptional>, z.ZodNull]>>; - devicePixelRatio: z.ZodOptional>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }, { - context?: string | undefined; - viewport?: { - width: number; - height: number; - } | null | undefined; - userContexts?: string[] | undefined; - devicePixelRatio?: number | null | undefined; - }>>; -} -export declare namespace BrowsingContext { - const ViewportSchema: z.ZodLazy>; -} -export declare namespace BrowsingContext { - const SetViewportResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const TraverseHistorySchema: z.ZodLazy; - params: z.ZodLazy; - delta: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - context: string; - delta: number; - }, { - context: string; - delta: number; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; - }, { - params: { - context: string; - delta: number; - }; - method: "browsingContext.traverseHistory"; - }>>; -} -export declare namespace BrowsingContext { - const TraverseHistoryParametersSchema: z.ZodLazy; - delta: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - context: string; - delta: number; - }, { - context: string; - delta: number; - }>>; -} -export declare namespace BrowsingContext { - const TraverseHistoryResultSchema: z.ZodLazy>>>; -} -export declare namespace BrowsingContext { - const ContextCreatedSchema: z.ZodLazy; - params: any; - }, "strip", z.ZodTypeAny, { - method: "browsingContext.contextCreated"; - params?: any; - }, { - method: "browsingContext.contextCreated"; - params?: any; - }>>; -} -export declare namespace BrowsingContext { - const ContextDestroyedSchema: z.ZodLazy; - params: any; - }, "strip", z.ZodTypeAny, { - method: "browsingContext.contextDestroyed"; - params?: any; - }, { - method: "browsingContext.contextDestroyed"; - params?: any; - }>>; -} -export declare namespace BrowsingContext { - const NavigationStartedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationStarted"; - }>>; -} -export declare namespace BrowsingContext { - const FragmentNavigatedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.fragmentNavigated"; - }>>; -} -export declare namespace BrowsingContext { - const HistoryUpdatedSchema: z.ZodLazy; - params: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; - }, { - params: { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }; - method: "browsingContext.historyUpdated"; - }>>; -} -export declare namespace BrowsingContext { - const HistoryUpdatedParametersSchema: z.ZodLazy; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - userContext?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const DomContentLoadedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.domContentLoaded"; - }>>; -} -export declare namespace BrowsingContext { - const LoadSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.load"; - }>>; -} -export declare namespace BrowsingContext { - const DownloadWillBeginSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; - }, "strip", z.ZodTypeAny, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; - }, { - params: { - suggestedFilename: string; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.downloadWillBegin"; - }>>; -} -export declare namespace BrowsingContext { - const DownloadWillBeginParamsSchema: z.ZodLazy, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -} -export declare namespace BrowsingContext { - const DownloadEndSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; - }, "strip", z.ZodTypeAny, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; - }, { - params: ({ - status: "canceled"; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }) | ({ - status: "complete"; - filepath: string | null; - } & { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }); - method: "browsingContext.downloadEnd"; - }>>; -} -export declare namespace BrowsingContext { - const DownloadEndParamsSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>, z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>]>>; -} -export declare namespace BrowsingContext { - const DownloadCanceledParamsSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - status: "canceled"; - }, { - status: "canceled"; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -} -export declare namespace BrowsingContext { - const DownloadCompleteParamsSchema: z.ZodLazy; - filepath: z.ZodUnion<[z.ZodString, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - status: "complete"; - filepath: string | null; - }, { - status: "complete"; - filepath: string | null; - }>, z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>>; -} -export declare namespace BrowsingContext { - const NavigationAbortedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationAborted"; - }>>; -} -export declare namespace BrowsingContext { - const NavigationCommittedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationCommitted"; - }>>; -} -export declare namespace BrowsingContext { - const NavigationFailedSchema: z.ZodLazy; - params: z.ZodLazy; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - timestamp: z.ZodNumber; - url: z.ZodString; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }, { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; - }, { - params: { - url: string; - context: string; - timestamp: number; - navigation: string | null; - userContext?: string | undefined; - }; - method: "browsingContext.navigationFailed"; - }>>; -} -export declare namespace BrowsingContext { - const UserPromptClosedSchema: z.ZodLazy; - params: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; - }, { - params: { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }; - method: "browsingContext.userPromptClosed"; - }>>; -} -export declare namespace BrowsingContext { - const UserPromptClosedParametersSchema: z.ZodLazy; - accepted: z.ZodBoolean; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - userText: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }, { - type: "prompt" | "alert" | "confirm" | "beforeunload"; - context: string; - accepted: boolean; - userContext?: string | undefined; - userText?: string | undefined; - }>>; -} -export declare namespace BrowsingContext { - const UserPromptOpenedSchema: z.ZodLazy; - params: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; - }, { - params: { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }; - method: "browsingContext.userPromptOpened"; - }>>; -} -export declare namespace BrowsingContext { - const UserPromptOpenedParametersSchema: z.ZodLazy; - handler: z.ZodLazy>; - message: z.ZodString; - type: z.ZodLazy>; - userContext: z.ZodOptional>; - defaultValue: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }, { - message: string; - type: "prompt" | "alert" | "confirm" | "beforeunload"; - handler: "accept" | "dismiss" | "ignore"; - context: string; - defaultValue?: string | undefined; - userContext?: string | undefined; - }>>; -} -export declare const EmulationCommandSchema: z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }>, z.ZodObject<{ - error: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; - }, "strip", z.ZodTypeAny, { - error: { - type: "positionUnavailable"; - }; - }, { - error: { - type: "positionUnavailable"; - }; - }>]>, z.ZodObject<{ - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodLiteral<"overlay">, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; -}>>]>>; -export declare const EmulationResultSchema: z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>; -export declare namespace Emulation { - const SetForcedColorsModeThemeOverrideSchema: z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; - }, { - params: { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setForcedColorsModeThemeOverride"; - }>>; -} -export declare namespace Emulation { - const SetForcedColorsModeThemeOverrideParametersSchema: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - theme: "light" | "dark" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const ForcedColorsModeThemeSchema: z.ZodLazy>; -} -export declare namespace Emulation { - const SetForcedColorsModeThemeOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetGeolocationOverrideSchema: z.ZodLazy; - params: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }>, z.ZodObject<{ - error: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; - }, "strip", z.ZodTypeAny, { - error: { - type: "positionUnavailable"; - }; - }, { - error: { - type: "positionUnavailable"; - }; - }>]>, z.ZodObject<{ - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; - }, { - params: ({ - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - } | { - error: { - type: "positionUnavailable"; - }; - }) & { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setGeolocationOverride"; - }>>; -} -export declare namespace Emulation { - const SetGeolocationOverrideParametersSchema: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>, z.ZodNull]>; - }, "strip", z.ZodTypeAny, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }, { - coordinates: { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - } | null; - }>, z.ZodObject<{ - error: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; - }, "strip", z.ZodTypeAny, { - error: { - type: "positionUnavailable"; - }; - }, { - error: { - type: "positionUnavailable"; - }; - }>]>, z.ZodObject<{ - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>>; -} -export declare namespace Emulation { - const GeolocationCoordinatesSchema: z.ZodLazy>; - altitude: z.ZodOptional]>>; - altitudeAccuracy: z.ZodOptional]>>; - heading: z.ZodOptional]>>; - speed: z.ZodOptional]>>; - }, "strip", z.ZodTypeAny, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }, { - latitude: number; - longitude: number; - accuracy?: number | undefined; - altitude?: number | null | undefined; - altitudeAccuracy?: number | null | undefined; - heading?: number | null | undefined; - speed?: number | null | undefined; - }>>; -} -export declare namespace Emulation { - const GeolocationPositionErrorSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "positionUnavailable"; - }, { - type: "positionUnavailable"; - }>>; -} -export declare namespace Emulation { - const SetGeolocationOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetLocaleOverrideSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; - }, { - params: { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setLocaleOverride"; - }>>; -} -export declare namespace Emulation { - const SetLocaleOverrideParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - locale: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetLocaleOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetNetworkConditionsSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; - }, { - params: { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setNetworkConditions"; - }>>; -} -export declare namespace Emulation { - const SetNetworkConditionsParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - networkConditions: { - type: "offline"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const NetworkConditionsSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>>; -} -export declare namespace Emulation { - const NetworkConditionsOfflineSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "offline"; - }, { - type: "offline"; - }>>; -} -export declare namespace Emulation { - const SetNetworkConditionsResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetScreenSettingsOverrideSchema: z.ZodLazy; - params: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; - }, { - params: { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenSettingsOverride"; - }>>; -} -export declare namespace Emulation { - const ScreenAreaSchema: z.ZodLazy>; -} -export declare namespace Emulation { - const SetScreenSettingsOverrideParametersSchema: z.ZodLazy>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenArea: { - width: number; - height: number; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetScreenSettingsOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetScreenOrientationOverrideSchema: z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; - }, { - params: { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScreenOrientationOverride"; - }>>; -} -export declare namespace Emulation { - const ScreenOrientationNaturalSchema: z.ZodLazy>; -} -export declare namespace Emulation { - const ScreenOrientationTypeSchema: z.ZodLazy>; -} -export declare namespace Emulation { - const ScreenOrientationSchema: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>; -} -export declare namespace Emulation { - const SetScreenOrientationOverrideParametersSchema: z.ZodLazy>; - type: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }, { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - }>>, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - screenOrientation: { - type: "portrait-primary" | "portrait-secondary" | "landscape-primary" | "landscape-secondary"; - natural: "portrait" | "landscape"; - } | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetScreenOrientationOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetUserAgentOverrideSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; - }, { - params: { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setUserAgentOverride"; - }>>; -} -export declare namespace Emulation { - const SetUserAgentOverrideParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - userAgent: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetUserAgentOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetScriptingEnabledSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; - }, { - params: { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScriptingEnabled"; - }>>; -} -export declare namespace Emulation { - const SetScriptingEnabledParametersSchema: z.ZodLazy, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - enabled: false | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetScriptingEnabledResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetScrollbarTypeOverrideSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodLiteral<"overlay">, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; - }, { - params: { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setScrollbarTypeOverride"; - }>>; -} -export declare namespace Emulation { - const SetScrollbarTypeOverrideParametersSchema: z.ZodLazy, z.ZodLiteral<"overlay">, z.ZodNull]>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - scrollbarType: "overlay" | "classic" | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetScrollbarTypeOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetTimezoneOverrideSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; - }, { - params: { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTimezoneOverride"; - }>>; -} -export declare namespace Emulation { - const SetTimezoneOverrideParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - timezone: string | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetTimezoneOverrideResultSchema: z.ZodLazy>>>; -} -export declare namespace Emulation { - const SetTouchOverrideSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; - }, { - params: { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "emulation.setTouchOverride"; - }>>; -} -export declare namespace Emulation { - const SetTouchOverrideParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - maxTouchPoints: number | null; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Emulation { - const SetTouchOverrideResultSchema: z.ZodLazy>>>; -} -export declare const NetworkCommandSchema: z.ZodLazy; - params: z.ZodLazy>, "many">; - maxEncodedDataSize: z.ZodNumber; - collectorType: z.ZodOptional>>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy>, "many">; - contexts: z.ZodOptional, "many">>; - urlPatterns: z.ZodOptional; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>, "many">>; - }, "strip", z.ZodTypeAny, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - method: z.ZodOptional; - url: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - credentials: z.ZodOptional; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>, z.ZodUnion<[z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>]>>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodLazy; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector: string; - }, { - request: string; - dataType: "request" | "response"; - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - }; - method: "network.failRequest"; -}, { - params: { - request: string; - }; - method: "network.failRequest"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodOptional>; - disown: z.ZodOptional>; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; -}>>, z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; -}>>, z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; -}>>]>>; -export declare const NetworkResultSchema: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - collector: string; -}, { - collector: string; -}>>, z.ZodLazy; -}, "strip", z.ZodTypeAny, { - intercept: string; -}, { - intercept: string; -}>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; -}, "strip", z.ZodTypeAny, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; -}, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; -}>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>; -export declare const NetworkEventSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; -}>>, z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; -}>>]>>; -export declare namespace Network { - const AuthChallengeSchema: z.ZodLazy>; -} -export declare namespace Network { - const AuthCredentialsSchema: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; -} -export declare namespace Network { - const BaseParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>; -} -export declare namespace Network { - const BytesValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; -} -export declare namespace Network { - const StringValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>; -} -export declare namespace Network { - const Base64ValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>; -} -export declare namespace Network { - const CollectorSchema: z.ZodLazy; -} -export declare namespace Network { - const CollectorTypeSchema: z.ZodLiteral<"blob">; -} -export declare namespace Network { - const SameSiteSchema: z.ZodLazy>; -} -export declare namespace Network { - const CookieSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Network { - const CookieHeaderSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>; -} -export declare namespace Network { - const DataTypeSchema: z.ZodLazy>; -} -export declare namespace Network { - const FetchTimingInfoSchema: z.ZodLazy>; -} -export declare namespace Network { - const HeaderSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>; -} -export declare namespace Network { - const InitiatorSchema: z.ZodLazy; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>; -} -export declare namespace Network { - const InterceptSchema: z.ZodLazy; -} -export declare namespace Network { - const RequestSchema: z.ZodLazy; -} -export declare namespace Network { - const RequestDataSchema: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; -} -export declare namespace Network { - const ResponseContentSchema: z.ZodLazy>; -} -export declare namespace Network { - const ResponseDataSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; -} -export declare namespace Network { - const SetCookieHeaderSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>; -} -export declare namespace Network { - const UrlPatternSchema: z.ZodLazy; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>; -} -export declare namespace Network { - const UrlPatternPatternSchema: z.ZodLazy; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>; -} -export declare namespace Network { - const UrlPatternStringSchema: z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>; -} -export declare namespace Network { - const AddDataCollectorSchema: z.ZodLazy; - params: z.ZodLazy>, "many">; - maxEncodedDataSize: z.ZodNumber; - collectorType: z.ZodOptional>>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; - }, { - params: { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }; - method: "network.addDataCollector"; - }>>; -} -export declare namespace Network { - const AddDataCollectorParametersSchema: z.ZodLazy>, "many">; - maxEncodedDataSize: z.ZodNumber; - collectorType: z.ZodOptional>>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }, { - dataTypes: ("request" | "response")[]; - maxEncodedDataSize: number; - userContexts?: string[] | undefined; - collectorType?: "blob" | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Network { - const AddDataCollectorResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; -} -export declare namespace Network { - const AddInterceptSchema: z.ZodLazy; - params: z.ZodLazy>, "many">; - contexts: z.ZodOptional, "many">>; - urlPatterns: z.ZodOptional; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>, "many">>; - }, "strip", z.ZodTypeAny, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; - }, { - params: { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }; - method: "network.addIntercept"; - }>>; -} -export declare namespace Network { - const AddInterceptParametersSchema: z.ZodLazy>, "many">; - contexts: z.ZodOptional, "many">>; - urlPatterns: z.ZodOptional; - protocol: z.ZodOptional; - hostname: z.ZodOptional; - port: z.ZodOptional; - pathname: z.ZodOptional; - search: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }, { - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - }>>, z.ZodLazy; - pattern: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - pattern: string; - }, { - type: "string"; - pattern: string; - }>>]>>, "many">>; - }, "strip", z.ZodTypeAny, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }, { - phases: ("beforeRequestSent" | "responseStarted" | "authRequired")[]; - contexts?: string[] | undefined; - urlPatterns?: ({ - type: "pattern"; - search?: string | undefined; - protocol?: string | undefined; - hostname?: string | undefined; - port?: string | undefined; - pathname?: string | undefined; - } | { - type: "string"; - pattern: string; - })[] | undefined; - }>>; -} -export declare namespace Network { - const InterceptPhaseSchema: z.ZodLazy>; -} -export declare namespace Network { - const AddInterceptResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; -} -export declare namespace Network { - const ContinueRequestSchema: z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - method: z.ZodOptional; - url: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; - }, { - params: { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - method: "network.continueRequest"; - }>>; -} -export declare namespace Network { - const ContinueRequestParametersSchema: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - method: z.ZodOptional; - url: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }, { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }>>; -} -export declare namespace Network { - const ContinueRequestResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const ContinueResponseSchema: z.ZodLazy; - params: z.ZodLazy; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - credentials: z.ZodOptional; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; - }, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.continueResponse"; - }>>; -} -export declare namespace Network { - const ContinueResponseParametersSchema: z.ZodLazy; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - credentials: z.ZodOptional; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - credentials?: { - type: "password"; - password: string; - username: string; - } | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -} -export declare namespace Network { - const ContinueResponseResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const ContinueWithAuthSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>, z.ZodUnion<[z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; - }, { - params: { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - method: "network.continueWithAuth"; - }>>; -} -export declare namespace Network { - const ContinueWithAuthParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>, z.ZodUnion<[z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>]>>>; -} -export declare namespace Network { - const ContinueWithAuthCredentialsSchema: z.ZodLazy; - credentials: z.ZodLazy; - username: z.ZodString; - password: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "password"; - password: string; - username: string; - }, { - type: "password"; - password: string; - username: string; - }>>; - }, "strip", z.ZodTypeAny, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }, { - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - }>>; -} -export declare namespace Network { - const ContinueWithAuthNoCredentialsSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - action: "default" | "cancel"; - }, { - action: "default" | "cancel"; - }>>; -} -export declare namespace Network { - const ContinueWithAuthResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const DisownDataSchema: z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodLazy; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector: string; - }, { - request: string; - dataType: "request" | "response"; - collector: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; - }, { - params: { - request: string; - dataType: "request" | "response"; - collector: string; - }; - method: "network.disownData"; - }>>; -} -export declare namespace Network { - const DisownDataParametersSchema: z.ZodLazy>; - collector: z.ZodLazy; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector: string; - }, { - request: string; - dataType: "request" | "response"; - collector: string; - }>>; -} -export declare namespace Network { - const DisownDataResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const FailRequestSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - }; - method: "network.failRequest"; - }, { - params: { - request: string; - }; - method: "network.failRequest"; - }>>; -} -export declare namespace Network { - const FailRequestParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - }, { - request: string; - }>>; -} -export declare namespace Network { - const FailRequestResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const GetDataSchema: z.ZodLazy; - params: z.ZodLazy>; - collector: z.ZodOptional>; - disown: z.ZodOptional>; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; - }, { - params: { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }; - method: "network.getData"; - }>>; -} -export declare namespace Network { - const GetDataParametersSchema: z.ZodLazy>; - collector: z.ZodOptional>; - disown: z.ZodOptional>; - request: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }, { - request: string; - dataType: "request" | "response"; - collector?: string | undefined; - disown?: boolean | undefined; - }>>; -} -export declare namespace Network { - const GetDataResultSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }, { - bytes: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - }>>; -} -export declare namespace Network { - const ProvideResponseSchema: z.ZodLazy; - params: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; - }, { - params: { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }; - method: "network.provideResponse"; - }>>; -} -export declare namespace Network { - const ProvideResponseParametersSchema: z.ZodLazy; - body: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - cookies: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodOptional; - httpOnly: z.ZodOptional; - expiry: z.ZodOptional; - maxAge: z.ZodOptional; - path: z.ZodOptional; - sameSite: z.ZodOptional>>; - secure: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>>, "many">>; - headers: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">>; - reasonPhrase: z.ZodOptional; - statusCode: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }, { - request: string; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - path?: string | undefined; - secure?: boolean | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: string | undefined; - maxAge?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }[] | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - reasonPhrase?: string | undefined; - statusCode?: number | undefined; - }>>; -} -export declare namespace Network { - const ProvideResponseResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const RemoveDataCollectorSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; - }, { - params: { - collector: string; - }; - method: "network.removeDataCollector"; - }>>; -} -export declare namespace Network { - const RemoveDataCollectorParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - collector: string; - }, { - collector: string; - }>>; -} -export declare namespace Network { - const RemoveDataCollectorResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const RemoveInterceptSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; - }, { - params: { - intercept: string; - }; - method: "network.removeIntercept"; - }>>; -} -export declare namespace Network { - const RemoveInterceptParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - intercept: string; - }, { - intercept: string; - }>>; -} -export declare namespace Network { - const RemoveInterceptResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const SetCacheBehaviorSchema: z.ZodLazy; - params: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; - }, { - params: { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }; - method: "network.setCacheBehavior"; - }>>; -} -export declare namespace Network { - const SetCacheBehaviorParametersSchema: z.ZodLazy; - contexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }, { - cacheBehavior: "default" | "bypass"; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Network { - const SetCacheBehaviorResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const SetExtraHeadersSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; - }, { - params: { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }; - method: "network.setExtraHeaders"; - }>>; -} -export declare namespace Network { - const SetExtraHeadersParametersSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }, { - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - }>>; -} -export declare namespace Network { - const SetExtraHeadersResultSchema: z.ZodLazy>>>; -} -export declare namespace Network { - const AuthRequiredSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; - }, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.authRequired"; - }>>; -} -export declare namespace Network { - const AuthRequiredParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -} -export declare namespace Network { - const BeforeRequestSentSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; - }, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }; - method: "network.beforeRequestSent"; - }>>; -} -export declare namespace Network { - const BeforeRequestSentParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - initiator: z.ZodOptional; - lineNumber: z.ZodOptional; - request: z.ZodOptional>; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - type: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>>; - }, "strip", z.ZodTypeAny, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }, { - initiator?: { - type?: "other" | "script" | "parser" | "preflight" | undefined; - request?: string | undefined; - columnNumber?: number | undefined; - lineNumber?: number | undefined; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } | undefined; - }>>>; -} -export declare namespace Network { - const FetchErrorSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; - }, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - errorText: string; - }; - method: "network.fetchError"; - }>>; -} -export declare namespace Network { - const FetchErrorParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - errorText: z.ZodString; - }, "strip", z.ZodTypeAny, { - errorText: string; - }, { - errorText: string; - }>>>; -} -export declare namespace Network { - const ResponseCompletedSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; - }, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseCompleted"; - }>>; -} -export declare namespace Network { - const ResponseCompletedParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -} -export declare namespace Network { - const ResponseStartedSchema: z.ZodLazy; - params: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; - }, { - params: { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - } & { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }; - method: "network.responseStarted"; - }>>; -} -export declare namespace Network { - const ResponseStartedParametersSchema: z.ZodLazy, z.ZodNull]>; - isBlocked: z.ZodBoolean; - navigation: z.ZodUnion<[z.ZodLazy, z.ZodNull]>; - redirectCount: z.ZodNumber; - request: z.ZodLazy; - url: z.ZodString; - method: z.ZodString; - headers: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - cookies: z.ZodArray; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - headersSize: z.ZodNumber; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - destination: z.ZodString; - initiatorType: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timings: z.ZodLazy>; - }, "strip", z.ZodTypeAny, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }, { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }>>; - timestamp: z.ZodNumber; - userContext: z.ZodOptional, z.ZodNull]>>; - intercepts: z.ZodOptional, "many">>; - }, "strip", z.ZodTypeAny, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }, { - context: string | null; - request: { - url: string; - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - request: string; - method: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - headersSize: number; - bodySize: number | null; - destination: string; - initiatorType: string | null; - timings: { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; - }; - timestamp: number; - navigation: string | null; - isBlocked: boolean; - redirectCount: number; - userContext?: string | null | undefined; - intercepts?: string[] | undefined; - }>>, z.ZodObject<{ - response: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }>>, "many">; - mimeType: z.ZodString; - bytesReceived: z.ZodNumber; - headersSize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - bodySize: z.ZodUnion<[z.ZodNumber, z.ZodNull]>; - content: z.ZodLazy>; - authChallenges: z.ZodOptional>, "many">>; - }, "strip", z.ZodTypeAny, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }, { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }, { - response: { - url: string; - status: number; - protocol: string; - headers: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[]; - content: { - size: number; - }; - headersSize: number | null; - bodySize: number | null; - statusText: string; - fromCache: boolean; - mimeType: string; - bytesReceived: number; - authChallenges?: { - realm: string; - scheme: string; - }[] | undefined; - }; - }>>>; -} -export declare const ScriptCommandSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>, "many">>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - arguments: z.ZodOptional, "many">>; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - this: any; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; -}>>, z.ZodLazy; - params: z.ZodLazy, "many">; - target: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; -}>>, z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - awaitPromise: z.ZodBoolean; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; -}>>, z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}, { - params: { - script: string; - }; - method: "script.removePreloadScript"; -}>>]>>; -export declare const ScriptResultSchema: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - script: string; -}, { - script: string; -}>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; -}, { - type: "success"; - realm: string; - result?: any; -}>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}>>]>>>, z.ZodLazy>>>, z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; -}, { - type: "success"; - realm: string; - result?: any; -}>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; -}>>]>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>, "many">; -}, "strip", z.ZodTypeAny, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; -}, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; -}>>, z.ZodLazy>>>]>>; -export declare const ScriptEventSchema: z.ZodLazy; - params: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; -}>>, z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; -}>>]>>; -export declare namespace Script { - const ChannelSchema: z.ZodLazy; -} -export declare namespace Script { - const ChannelValueSchema: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>; -} -export declare namespace Script { - const ChannelPropertiesSchema: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; -} -export declare namespace Script { - const EvaluateResultSchema: z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>; -} -export declare namespace Script { - const EvaluateResultSuccessSchema: z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>; -} -export declare namespace Script { - const EvaluateResultExceptionSchema: z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>; -} -export declare namespace Script { - const ExceptionDetailsSchema: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; -} -export declare namespace Script { - const HandleSchema: z.ZodLazy; -} -export declare namespace Script { - const InternalIdSchema: z.ZodLazy; -} -export declare namespace Script { - const LocalValueSchema: any; -} -export declare namespace Script { - const ListLocalValueSchema: any; -} -export declare namespace Script { - const ArrayLocalValueSchema: any; -} -export declare namespace Script { - const DateLocalValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "date"; - value: string; - }, { - type: "date"; - value: string; - }>>; -} -export declare namespace Script { - const MappingLocalValueSchema: z.ZodLazy, any], null>, "many">>; -} -export declare namespace Script { - const MapLocalValueSchema: z.ZodLazy; - value: z.ZodLazy, any], null>, "many">>; - }, "strip", z.ZodTypeAny, { - type: "map"; - value: [any, any][]; - }, { - type: "map"; - value: [any, any][]; - }>>; -} -export declare namespace Script { - const ObjectLocalValueSchema: z.ZodLazy; - value: z.ZodLazy, any], null>, "many">>; - }, "strip", z.ZodTypeAny, { - type: "object"; - value: [any, any][]; - }, { - type: "object"; - value: [any, any][]; - }>>; -} -export declare namespace Script { - const RegExpValueSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - pattern: string; - flags?: string | undefined; - }, { - pattern: string; - flags?: string | undefined; - }>>; -} -export declare namespace Script { - const RegExpLocalValueSchema: z.ZodLazy; - value: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - pattern: string; - flags?: string | undefined; - }, { - pattern: string; - flags?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "regexp"; - value: { - pattern: string; - flags?: string | undefined; - }; - }, { - type: "regexp"; - value: { - pattern: string; - flags?: string | undefined; - }; - }>>; -} -export declare namespace Script { - const SetLocalValueSchema: z.ZodLazy; - value: any; - }, "strip", z.ZodTypeAny, { - type: "set"; - value?: any; - }, { - type: "set"; - value?: any; - }>>; -} -export declare namespace Script { - const PreloadScriptSchema: z.ZodLazy; -} -export declare namespace Script { - const RealmSchema: z.ZodLazy; -} -export declare namespace Script { - const PrimitiveProtocolValueSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "undefined"; - }, { - type: "undefined"; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "null"; - }, { - type: "null"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodUnion<[z.ZodNumber, z.ZodLazy>]>; - }, "strip", z.ZodTypeAny, { - type: "number"; - value: number | "NaN" | "-0" | "Infinity" | "-Infinity"; - }, { - type: "number"; - value: number | "NaN" | "-0" | "Infinity" | "-Infinity"; - }>>, z.ZodLazy; - value: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - type: "boolean"; - value: boolean; - }, { - type: "boolean"; - value: boolean; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "bigint"; - value: string; - }, { - type: "bigint"; - value: string; - }>>]>>; -} -export declare namespace Script { - const UndefinedValueSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "undefined"; - }, { - type: "undefined"; - }>>; -} -export declare namespace Script { - const NullValueSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "null"; - }, { - type: "null"; - }>>; -} -export declare namespace Script { - const StringValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>; -} -export declare namespace Script { - const SpecialNumberSchema: z.ZodLazy>; -} -export declare namespace Script { - const NumberValueSchema: z.ZodLazy; - value: z.ZodUnion<[z.ZodNumber, z.ZodLazy>]>; - }, "strip", z.ZodTypeAny, { - type: "number"; - value: number | "NaN" | "-0" | "Infinity" | "-Infinity"; - }, { - type: "number"; - value: number | "NaN" | "-0" | "Infinity" | "-Infinity"; - }>>; -} -export declare namespace Script { - const BooleanValueSchema: z.ZodLazy; - value: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - type: "boolean"; - value: boolean; - }, { - type: "boolean"; - value: boolean; - }>>; -} -export declare namespace Script { - const BigIntValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "bigint"; - value: string; - }, { - type: "bigint"; - value: string; - }>>; -} -export declare namespace Script { - const RealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; -} -export declare namespace Script { - const BaseRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>; -} -export declare namespace Script { - const WindowRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>; -} -export declare namespace Script { - const DedicatedWorkerRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>; -} -export declare namespace Script { - const SharedWorkerRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>; -} -export declare namespace Script { - const ServiceWorkerRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>; -} -export declare namespace Script { - const WorkerRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>; -} -export declare namespace Script { - const PaintWorkletRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>; -} -export declare namespace Script { - const AudioWorkletRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>; -} -export declare namespace Script { - const WorkletRealmInfoSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>; -} -export declare namespace Script { - const RealmTypeSchema: z.ZodLazy>; -} -export declare namespace Script { - const RemoteReferenceSchema: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>, z.ZodLazy; - sharedId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - handle: string; - sharedId?: string | undefined; - }, { - handle: string; - sharedId?: string | undefined; - }>, z.ZodLazy>>>]>>; -} -export declare namespace Script { - const SharedReferenceSchema: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Script { - const RemoteObjectReferenceSchema: z.ZodLazy; - sharedId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - handle: string; - sharedId?: string | undefined; - }, { - handle: string; - sharedId?: string | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Script { - const RemoteValueSchema: any; -} -export declare namespace Script { - const ListRemoteValueSchema: any; -} -export declare namespace Script { - const MappingRemoteValueSchema: z.ZodLazy, any], null>, "many">>; -} -export declare namespace Script { - const SymbolRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "symbol"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "symbol"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const ArrayRemoteValueSchema: any; -} -export declare namespace Script { - const ObjectRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - value: z.ZodOptional, any], null>, "many">>>; - }, "strip", z.ZodTypeAny, { - type: "object"; - value?: [any, any][] | undefined; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "object"; - value?: [any, any][] | undefined; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const FunctionRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "function"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "function"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const RegExpRemoteValueSchema: z.ZodLazy; - value: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - pattern: string; - flags?: string | undefined; - }, { - pattern: string; - flags?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "regexp"; - value: { - pattern: string; - flags?: string | undefined; - }; - }, { - type: "regexp"; - value: { - pattern: string; - flags?: string | undefined; - }; - }>>, z.ZodObject<{ - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - handle?: string | undefined; - internalId?: string | undefined; - }, { - handle?: string | undefined; - internalId?: string | undefined; - }>>>; -} -export declare namespace Script { - const DateRemoteValueSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "date"; - value: string; - }, { - type: "date"; - value: string; - }>>, z.ZodObject<{ - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - handle?: string | undefined; - internalId?: string | undefined; - }, { - handle?: string | undefined; - internalId?: string | undefined; - }>>>; -} -export declare namespace Script { - const MapRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - value: z.ZodOptional, any], null>, "many">>>; - }, "strip", z.ZodTypeAny, { - type: "map"; - value?: [any, any][] | undefined; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "map"; - value?: [any, any][] | undefined; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const SetRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - value: any; - }, "strip", z.ZodTypeAny, { - type: "set"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "set"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const WeakMapRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "weakmap"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "weakmap"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const WeakSetRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "weakset"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "weakset"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const GeneratorRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "generator"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "generator"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const ErrorRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "error"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "error"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const ProxyRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "proxy"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "proxy"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const PromiseRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "promise"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "promise"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const TypedArrayRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "typedarray"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "typedarray"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const ArrayBufferRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "arraybuffer"; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "arraybuffer"; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const NodeListRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - value: any; - }, "strip", z.ZodTypeAny, { - type: "nodelist"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "nodelist"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const HtmlCollectionRemoteValueSchema: z.ZodLazy; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - value: any; - }, "strip", z.ZodTypeAny, { - type: "htmlcollection"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "htmlcollection"; - value?: any; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const NodeRemoteValueSchema: any; -} -export declare namespace Script { - const NodePropertiesSchema: any; -} -export declare namespace Script { - const WindowProxyRemoteValueSchema: z.ZodLazy; - value: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; - handle: z.ZodOptional>; - internalId: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - type: "window"; - value: { - context: string; - }; - handle?: string | undefined; - internalId?: string | undefined; - }, { - type: "window"; - value: { - context: string; - }; - handle?: string | undefined; - internalId?: string | undefined; - }>>; -} -export declare namespace Script { - const WindowProxyPropertiesSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -} -export declare namespace Script { - const ResultOwnershipSchema: z.ZodLazy>; -} -export declare namespace Script { - const SerializationOptionsSchema: z.ZodLazy>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>; -} -export declare namespace Script { - const SharedIdSchema: z.ZodLazy; -} -export declare namespace Script { - const StackFrameSchema: z.ZodLazy>; -} -export declare namespace Script { - const StackTraceSchema: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; -} -export declare namespace Script { - const SourceSchema: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; -} -export declare namespace Script { - const RealmTargetSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -} -export declare namespace Script { - const ContextTargetSchema: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>; -} -export declare namespace Script { - const TargetSchema: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; -} -export declare namespace Script { - const AddPreloadScriptSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>, "many">>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; - }, { - params: { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }; - method: "script.addPreloadScript"; - }>>; -} -export declare namespace Script { - const AddPreloadScriptParametersSchema: z.ZodLazy; - value: z.ZodLazy; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - ownership: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }, { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }, { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }>>, "many">>; - contexts: z.ZodOptional, "many">>; - userContexts: z.ZodOptional, "many">>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }, { - functionDeclaration: string; - userContexts?: string[] | undefined; - contexts?: string[] | undefined; - arguments?: { - type: "channel"; - value: { - channel: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - ownership?: "none" | "root" | undefined; - }; - }[] | undefined; - sandbox?: string | undefined; - }>>; -} -export declare namespace Script { - const AddPreloadScriptResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; -} -export declare namespace Script { - const DisownSchema: z.ZodLazy; - params: z.ZodLazy, "many">; - target: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; - }, { - params: { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }; - method: "script.disown"; - }>>; -} -export declare namespace Script { - const DisownParametersSchema: z.ZodLazy, "many">; - target: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - }, "strip", z.ZodTypeAny, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }, { - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - handles: string[]; - }>>; -} -export declare namespace Script { - const DisownResultSchema: z.ZodLazy>>>; -} -export declare namespace Script { - const CallFunctionSchema: z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - arguments: z.ZodOptional, "many">>; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - this: any; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; - }, { - params: { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }; - method: "script.callFunction"; - }>>; -} -export declare namespace Script { - const CallFunctionParametersSchema: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - arguments: z.ZodOptional, "many">>; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - this: any; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }, { - functionDeclaration: string; - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - arguments?: any[] | undefined; - resultOwnership?: "none" | "root" | undefined; - this?: any; - userActivation?: boolean | undefined; - }>>; -} -export declare namespace Script { - const CallFunctionResultSchema: z.ZodLazy; - result: z.ZodLazy; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "success"; - realm: string; - result?: any; - }, { - type: "success"; - realm: string; - result?: any; - }>>, z.ZodLazy; - exceptionDetails: z.ZodLazy>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>; - text: z.ZodString; - }, "strip", z.ZodTypeAny, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }, { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }>>; - realm: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }, { - type: "exception"; - realm: string; - exceptionDetails: { - columnNumber: number; - lineNumber: number; - text: string; - stackTrace: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }; - exception?: any; - }; - }>>]>>>; -} -export declare namespace Script { - const EvaluateSchema: z.ZodLazy; - params: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - awaitPromise: z.ZodBoolean; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; - }, { - params: { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }; - method: "script.evaluate"; - }>>; -} -export declare namespace Script { - const EvaluateParametersSchema: z.ZodLazy; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - context: string; - sandbox?: string | undefined; - }, { - context: string; - sandbox?: string | undefined; - }>>, z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>]>>; - awaitPromise: z.ZodBoolean; - resultOwnership: z.ZodOptional>>; - serializationOptions: z.ZodOptional>>; - maxObjectDepth: z.ZodOptional>>; - includeShadowTree: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }, { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - }>>>; - userActivation: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }, { - awaitPromise: boolean; - target: { - context: string; - sandbox?: string | undefined; - } | { - realm: string; - }; - expression: string; - serializationOptions?: { - maxDomDepth?: number | null | undefined; - maxObjectDepth?: number | null | undefined; - includeShadowTree?: "none" | "all" | "open" | undefined; - } | undefined; - resultOwnership?: "none" | "root" | undefined; - userActivation?: boolean | undefined; - }>>; -} -export declare namespace Script { - const GetRealmsSchema: z.ZodLazy; - params: z.ZodLazy>; - type: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; - }, { - params: { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }; - method: "script.getRealms"; - }>>; -} -export declare namespace Script { - const GetRealmsParametersSchema: z.ZodLazy>; - type: z.ZodOptional>>; - }, "strip", z.ZodTypeAny, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }, { - type?: "worker" | "window" | "dedicated-worker" | "shared-worker" | "service-worker" | "paint-worklet" | "audio-worklet" | "worklet" | undefined; - context?: string | undefined; - }>>; -} -export declare namespace Script { - const GetRealmsResultSchema: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }, { - realms: (({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }))[]; - }>>; -} -export declare namespace Script { - const RemovePreloadScriptSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - script: string; - }; - method: "script.removePreloadScript"; - }, { - params: { - script: string; - }; - method: "script.removePreloadScript"; - }>>; -} -export declare namespace Script { - const RemovePreloadScriptParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - script: string; - }, { - script: string; - }>>; -} -export declare namespace Script { - const RemovePreloadScriptResultSchema: z.ZodLazy>>>; -} -export declare namespace Script { - const MessageSchema: z.ZodLazy; - params: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; - }, { - params: { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }; - method: "script.message"; - }>>; -} -export declare namespace Script { - const MessageParametersSchema: z.ZodLazy; - data: any; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }, { - channel: string; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - data?: any; - }>>; -} -export declare namespace Script { - const RealmCreatedSchema: z.ZodLazy; - params: z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"window">; - context: z.ZodLazy; - userContext: z.ZodOptional>; - sandbox: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }, { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"dedicated-worker">; - owners: z.ZodTuple<[z.ZodLazy], null>; - }, "strip", z.ZodTypeAny, { - type: "dedicated-worker"; - owners: [string]; - }, { - type: "dedicated-worker"; - owners: [string]; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"shared-worker">; - }, "strip", z.ZodTypeAny, { - type: "shared-worker"; - }, { - type: "shared-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"service-worker">; - }, "strip", z.ZodTypeAny, { - type: "service-worker"; - }, { - type: "service-worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worker">; - }, "strip", z.ZodTypeAny, { - type: "worker"; - }, { - type: "worker"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"paint-worklet">; - }, "strip", z.ZodTypeAny, { - type: "paint-worklet"; - }, { - type: "paint-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"audio-worklet">; - }, "strip", z.ZodTypeAny, { - type: "audio-worklet"; - }, { - type: "audio-worklet"; - }>>>, z.ZodLazy; - origin: z.ZodString; - }, "strip", z.ZodTypeAny, { - origin: string; - realm: string; - }, { - origin: string; - realm: string; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"worklet">; - }, "strip", z.ZodTypeAny, { - type: "worklet"; - }, { - type: "worklet"; - }>>>]>>; - }, "strip", z.ZodTypeAny, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; - }, { - params: ({ - origin: string; - realm: string; - } & { - type: "window"; - context: string; - userContext?: string | undefined; - sandbox?: string | undefined; - }) | ({ - origin: string; - realm: string; - } & { - type: "dedicated-worker"; - owners: [string]; - }) | ({ - origin: string; - realm: string; - } & { - type: "shared-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "service-worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worker"; - }) | ({ - origin: string; - realm: string; - } & { - type: "paint-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "audio-worklet"; - }) | ({ - origin: string; - realm: string; - } & { - type: "worklet"; - }); - method: "script.realmCreated"; - }>>; -} -export declare namespace Script { - const RealmDestroyedSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; - }, { - params: { - realm: string; - }; - method: "script.realmDestroyed"; - }>>; -} -export declare namespace Script { - const RealmDestroyedParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - realm: string; - }, { - realm: string; - }>>; -} -export declare const StorageCommandSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; -}>>, z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; -}>>]>>; -export declare const StorageResultSchema: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - partitionKey: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>, z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -}, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; -}>>]>>; -export declare namespace Storage { - const PartitionKeySchema: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Storage { - const GetCookiesSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; - }, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.getCookies"; - }>>; -} -export declare namespace Storage { - const CookieFilterSchema: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Storage { - const BrowsingContextPartitionDescriptorSchema: z.ZodLazy; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>; -} -export declare namespace Storage { - const StorageKeyPartitionDescriptorSchema: z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Storage { - const PartitionDescriptorSchema: z.ZodLazy; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>; -} -export declare namespace Storage { - const GetCookiesParametersSchema: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -} -export declare namespace Storage { - const GetCookiesResultSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodString; - size: z.ZodNumber; - httpOnly: z.ZodBoolean; - secure: z.ZodBoolean; - sameSite: z.ZodLazy>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }, { - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - }>, z.ZodLazy>>>, "many">; - partitionKey: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - cookies: ({ - path: string; - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - size: number; - secure: boolean; - name: string; - domain: string; - httpOnly: boolean; - sameSite: "strict" | "default" | "none" | "lax"; - expiry?: number | undefined; - } & Record)[]; - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>; -} -export declare namespace Storage { - const SetCookieSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; - }, { - params: { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.setCookie"; - }>>; -} -export declare namespace Storage { - const PartialCookieSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; -} -export declare namespace Storage { - const SetCookieParametersSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>; - domain: z.ZodString; - path: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - cookie: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - domain: string; - path?: string | undefined; - secure?: boolean | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -} -export declare namespace Storage { - const SetCookieResultSchema: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>; -} -export declare namespace Storage { - const DeleteCookiesSchema: z.ZodLazy; - params: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; - }, { - params: { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }; - method: "storage.deleteCookies"; - }>>; -} -export declare namespace Storage { - const DeleteCookiesParametersSchema: z.ZodLazy; - value: z.ZodOptional; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "string"; - value: string; - }, { - type: "string"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>]>>>; - domain: z.ZodOptional; - path: z.ZodOptional; - size: z.ZodOptional; - httpOnly: z.ZodOptional; - secure: z.ZodOptional; - sameSite: z.ZodOptional>>; - expiry: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }, { - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - }>, z.ZodLazy>>>>; - partition: z.ZodOptional; - context: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - type: "context"; - context: string; - }, { - type: "context"; - context: string; - }>>, z.ZodLazy; - userContext: z.ZodOptional; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>]>>>; - }, "strip", z.ZodTypeAny, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }, { - filter?: ({ - path?: string | undefined; - value?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - size?: number | undefined; - secure?: boolean | undefined; - name?: string | undefined; - domain?: string | undefined; - httpOnly?: boolean | undefined; - expiry?: number | undefined; - sameSite?: "strict" | "default" | "none" | "lax" | undefined; - } & Record) | undefined; - partition?: { - type: "context"; - context: string; - } | ({ - type: "storageKey"; - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record) | undefined; - }>>; -} -export declare namespace Storage { - const DeleteCookiesResultSchema: z.ZodLazy; - sourceOrigin: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }, { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }, { - partitionKey: { - userContext?: string | undefined; - sourceOrigin?: string | undefined; - } & Record; - }>>; -} -export declare const LogEventSchema: z.ZodLazy; - params: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; -}, "strip", z.ZodTypeAny, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; -}>>>; -export declare namespace Log { - const LevelSchema: z.ZodLazy>; -} -export declare namespace Log { - const EntrySchema: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; -} -export declare namespace Log { - const BaseLogEntrySchema: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>; -} -export declare namespace Log { - const GenericLogEntrySchema: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>; -} -export declare namespace Log { - const ConsoleLogEntrySchema: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>; -} -export declare namespace Log { - const JavascriptLogEntrySchema: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>; -} -export declare namespace Log { - const EntryAddedSchema: z.ZodLazy; - params: z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: string; - }, { - type: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"console">; - method: z.ZodString; - args: z.ZodArray; - }, "strip", z.ZodTypeAny, { - type: "console"; - args: any[]; - method: string; - }, { - type: "console"; - args: any[]; - method: string; - }>>>, z.ZodLazy>; - source: z.ZodLazy; - context: z.ZodOptional>; - userContext: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }, { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }>>; - text: z.ZodUnion<[z.ZodString, z.ZodNull]>; - timestamp: z.ZodNumber; - stackTrace: z.ZodOptional>, "many">; - }, "strip", z.ZodTypeAny, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }, { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - }>>>; - }, "strip", z.ZodTypeAny, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }, { - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - }>>, z.ZodObject<{ - type: z.ZodLiteral<"javascript">; - }, "strip", z.ZodTypeAny, { - type: "javascript"; - }, { - type: "javascript"; - }>>>]>>; - }, "strip", z.ZodTypeAny, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; - }, { - params: ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "console"; - args: any[]; - method: string; - }) | ({ - level: "error" | "debug" | "info" | "warn"; - source: { - realm: string; - context?: string | undefined; - userContext?: string | undefined; - }; - timestamp: number; - text: string | null; - stackTrace?: { - callFrames: { - url: string; - columnNumber: number; - lineNumber: number; - functionName: string; - }[]; - } | undefined; - } & { - type: "javascript"; - }); - method: "log.entryAdded"; - }>>; -} -export declare const InputCommandSchema: z.ZodLazy; - params: z.ZodLazy; - actions: z.ZodArray; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "input.releaseActions"; -}, { - params: { - context: string; - }; - method: "input.releaseActions"; -}>>, z.ZodLazy; - params: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - files: z.ZodArray; - }, "strip", z.ZodTypeAny, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; -}>>]>>; -export declare const InputResultSchema: z.ZodLazy>>>, z.ZodLazy>>>, z.ZodLazy>>>]>>; -export declare const InputEventSchema: z.ZodLazy; - params: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; -}>>>; -export declare namespace Input { - const ElementOriginSchema: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>; -} -export declare namespace Input { - const PerformActionsSchema: z.ZodLazy; - params: z.ZodLazy; - actions: z.ZodArray; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; - }, { - params: { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }; - method: "input.performActions"; - }>>; -} -export declare namespace Input { - const PerformActionsParametersSchema: z.ZodLazy; - actions: z.ZodArray; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }, { - actions: ({ - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - } | { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - } | { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - } | { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - })[]; - context: string; - }>>; -} -export declare namespace Input { - const SourceActionsSchema: z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>, z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>, z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>]>>; -} -export declare namespace Input { - const NoneSourceActionsSchema: z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }, { - type: "none"; - actions: { - type: "pause"; - duration?: number | undefined; - }[]; - id: string; - }>>; -} -export declare namespace Input { - const NoneSourceActionSchema: z.ZodLazy; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>>; -} -export declare namespace Input { - const KeySourceActionsSchema: z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }, { - type: "key"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "keyDown"; - value: string; - } | { - type: "keyUp"; - value: string; - })[]; - id: string; - }>>; -} -export declare namespace Input { - const KeySourceActionSchema: z.ZodLazy; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>]>>; -} -export declare namespace Input { - const PointerSourceActionsSchema: z.ZodLazy; - id: z.ZodString; - parameters: z.ZodOptional>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>>; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }, { - type: "pointer"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | ({ - type: "pointerDown"; - button: number; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }) | { - type: "pointerUp"; - button: number; - } | ({ - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - } & { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }))[]; - id: string; - parameters?: { - pointerType?: "touch" | "mouse" | "pen" | undefined; - } | undefined; - }>>; -} -export declare namespace Input { - const PointerTypeSchema: z.ZodLazy>; -} -export declare namespace Input { - const PointerParametersSchema: z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }, { - pointerType?: "touch" | "mouse" | "pen" | undefined; - }>>; -} -export declare namespace Input { - const PointerSourceActionSchema: z.ZodLazy; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>, z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>]>>; -} -export declare namespace Input { - const WheelSourceActionsSchema: z.ZodLazy; - id: z.ZodString; - actions: z.ZodArray; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>, "many">; - }, "strip", z.ZodTypeAny, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }, { - type: "wheel"; - actions: ({ - type: "pause"; - duration?: number | undefined; - } | { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - })[]; - id: string; - }>>; -} -export declare namespace Input { - const WheelSourceActionSchema: z.ZodLazy; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>, z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>]>>; -} -export declare namespace Input { - const PauseActionSchema: z.ZodLazy; - duration: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - type: "pause"; - duration?: number | undefined; - }, { - type: "pause"; - duration?: number | undefined; - }>>; -} -export declare namespace Input { - const KeyDownActionSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyDown"; - value: string; - }, { - type: "keyDown"; - value: string; - }>>; -} -export declare namespace Input { - const KeyUpActionSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "keyUp"; - value: string; - }, { - type: "keyUp"; - value: string; - }>>; -} -export declare namespace Input { - const PointerUpActionSchema: z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerUp"; - button: number; - }, { - type: "pointerUp"; - button: number; - }>>; -} -export declare namespace Input { - const PointerDownActionSchema: z.ZodLazy; - button: z.ZodNumber; - }, "strip", z.ZodTypeAny, { - type: "pointerDown"; - button: number; - }, { - type: "pointerDown"; - button: number; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>; -} -export declare namespace Input { - const PointerMoveActionSchema: z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>; - }, "strip", z.ZodTypeAny, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "pointerMove"; - x: number; - y: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>, z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>>>; -} -export declare namespace Input { - const WheelScrollActionSchema: z.ZodLazy; - x: z.ZodNumber; - y: z.ZodNumber; - deltaX: z.ZodNumber; - deltaY: z.ZodNumber; - duration: z.ZodOptional; - origin: z.ZodOptional, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>>>; - }, "strip", z.ZodTypeAny, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }, { - type: "scroll"; - x: number; - y: number; - deltaX: number; - deltaY: number; - duration?: number | undefined; - origin?: "viewport" | "pointer" | { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - } | undefined; - }>>; -} -export declare namespace Input { - const PointerCommonPropertiesSchema: z.ZodLazy; - height: z.ZodOptional; - pressure: z.ZodOptional; - tangentialPressure: z.ZodOptional; - twist: z.ZodOptional; - altitudeAngle: z.ZodOptional; - azimuthAngle: z.ZodOptional; - }, "strip", z.ZodTypeAny, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }, { - width?: number | undefined; - height?: number | undefined; - pressure?: number | undefined; - tangentialPressure?: number | undefined; - twist?: number | undefined; - altitudeAngle?: number | undefined; - azimuthAngle?: number | undefined; - }>>; -} -export declare namespace Input { - const OriginSchema: z.ZodLazy, z.ZodLiteral<"pointer">, z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - }, "strip", z.ZodTypeAny, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }, { - type: "element"; - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - }>>]>>; -} -export declare namespace Input { - const PerformActionsResultSchema: z.ZodLazy>>>; -} -export declare namespace Input { - const ReleaseActionsSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - }; - method: "input.releaseActions"; - }, { - params: { - context: string; - }; - method: "input.releaseActions"; - }>>; -} -export declare namespace Input { - const ReleaseActionsParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - context: string; - }, { - context: string; - }>>; -} -export declare namespace Input { - const ReleaseActionsResultSchema: z.ZodLazy>>>; -} -export declare namespace Input { - const SetFilesSchema: z.ZodLazy; - params: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - files: z.ZodArray; - }, "strip", z.ZodTypeAny, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; - }, { - params: { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }; - method: "input.setFiles"; - }>>; -} -export declare namespace Input { - const SetFilesParametersSchema: z.ZodLazy; - element: z.ZodLazy; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>; - files: z.ZodArray; - }, "strip", z.ZodTypeAny, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }, { - element: { - sharedId: string; - handle?: string | undefined; - } & Record; - context: string; - files: string[]; - }>>; -} -export declare namespace Input { - const SetFilesResultSchema: z.ZodLazy>>>; -} -export declare namespace Input { - const FileDialogOpenedSchema: z.ZodLazy; - params: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; - }, { - params: { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }; - method: "input.fileDialogOpened"; - }>>; -} -export declare namespace Input { - const FileDialogInfoSchema: z.ZodLazy; - userContext: z.ZodOptional>; - element: z.ZodOptional; - handle: z.ZodOptional>; - }, "strip", z.ZodTypeAny, { - sharedId: string; - handle?: string | undefined; - }, { - sharedId: string; - handle?: string | undefined; - }>, z.ZodLazy>>>>; - multiple: z.ZodBoolean; - }, "strip", z.ZodTypeAny, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }, { - context: string; - multiple: boolean; - element?: ({ - sharedId: string; - handle?: string | undefined; - } & Record) | undefined; - userContext?: string | undefined; - }>>; -} -export declare const WebExtensionCommandSchema: z.ZodLazy; - params: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; - }, "strip", z.ZodTypeAny, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; -}>>, z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; -}, "strip", z.ZodTypeAny, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; -}>>]>>; -export declare const WebExtensionResultSchema: z.ZodLazy; -}, "strip", z.ZodTypeAny, { - extension: string; -}, { - extension: string; -}>>, z.ZodLazy>>>]>>; -export declare namespace WebExtension { - const ExtensionSchema: z.ZodLazy; -} -export declare namespace WebExtension { - const InstallSchema: z.ZodLazy; - params: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; - }, "strip", z.ZodTypeAny, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; - }, { - params: { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }; - method: "webExtension.install"; - }>>; -} -export declare namespace WebExtension { - const InstallParametersSchema: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; - }, "strip", z.ZodTypeAny, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }, { - extensionData: { - path: string; - type: "archivePath"; - } | { - type: "base64"; - value: string; - } | { - path: string; - type: "path"; - }; - }>>; -} -export declare namespace WebExtension { - const ExtensionDataSchema: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>, z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>, z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>]>>; -} -export declare namespace WebExtension { - const ExtensionPathSchema: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "path"; - }, { - path: string; - type: "path"; - }>>; -} -export declare namespace WebExtension { - const ExtensionArchivePathSchema: z.ZodLazy; - path: z.ZodString; - }, "strip", z.ZodTypeAny, { - path: string; - type: "archivePath"; - }, { - path: string; - type: "archivePath"; - }>>; -} -export declare namespace WebExtension { - const ExtensionBase64EncodedSchema: z.ZodLazy; - value: z.ZodString; - }, "strip", z.ZodTypeAny, { - type: "base64"; - value: string; - }, { - type: "base64"; - value: string; - }>>; -} -export declare namespace WebExtension { - const InstallResultSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; -} -export declare namespace WebExtension { - const UninstallSchema: z.ZodLazy; - params: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; - }, "strip", z.ZodTypeAny, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; - }, { - params: { - extension: string; - }; - method: "webExtension.uninstall"; - }>>; -} -export declare namespace WebExtension { - const UninstallParametersSchema: z.ZodLazy; - }, "strip", z.ZodTypeAny, { - extension: string; - }, { - extension: string; - }>>; -} -export declare namespace WebExtension { - const UninstallResultSchema: z.ZodLazy>>>; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js deleted file mode 100644 index 7aeed0c..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js +++ /dev/null @@ -1,2993 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-nocheck Some types may be circular. -import z from 'zod'; -export const CommandSchema = z.lazy(() => z - .object({ - id: JsUintSchema, -}) - .and(CommandDataSchema) - .and(ExtensibleSchema)); -export const CommandDataSchema = z.lazy(() => z.union([ - BrowserCommandSchema, - BrowsingContextCommandSchema, - EmulationCommandSchema, - InputCommandSchema, - NetworkCommandSchema, - ScriptCommandSchema, - SessionCommandSchema, - StorageCommandSchema, - WebExtensionCommandSchema, -])); -export const EmptyParamsSchema = z.lazy(() => ExtensibleSchema); -export const MessageSchema = z.lazy(() => z.union([CommandResponseSchema, ErrorResponseSchema, EventSchema])); -export const CommandResponseSchema = z.lazy(() => z - .object({ - type: z.literal('success'), - id: JsUintSchema, - result: ResultDataSchema, -}) - .and(ExtensibleSchema)); -export const ErrorResponseSchema = z.lazy(() => z - .object({ - type: z.literal('error'), - id: z.union([JsUintSchema, z.null()]), - error: ErrorCodeSchema, - message: z.string(), - stacktrace: z.string().optional(), -}) - .and(ExtensibleSchema)); -export const ResultDataSchema = z.lazy(() => z.union([ - BrowserResultSchema, - BrowsingContextResultSchema, - EmulationResultSchema, - InputResultSchema, - NetworkResultSchema, - ScriptResultSchema, - SessionResultSchema, - StorageResultSchema, - WebExtensionResultSchema, -])); -export const EmptyResultSchema = z.lazy(() => ExtensibleSchema); -export const EventSchema = z.lazy(() => z - .object({ - type: z.literal('event'), -}) - .and(EventDataSchema) - .and(ExtensibleSchema)); -export const EventDataSchema = z.lazy(() => z.union([ - BrowsingContextEventSchema, - InputEventSchema, - LogEventSchema, - NetworkEventSchema, - ScriptEventSchema, -])); -export const ExtensibleSchema = z.lazy(() => z.record(z.string(), z.any())); -export const JsIntSchema = z - .number() - .int() - .gte(-9007199254740991) - .lte(9007199254740991); -export const JsUintSchema = z - .number() - .int() - .nonnegative() - .gte(0) - .lte(9007199254740991); -export const ErrorCodeSchema = z.lazy(() => z.enum([ - 'invalid argument', - 'invalid selector', - 'invalid session id', - 'invalid web extension', - 'move target out of bounds', - 'no such alert', - 'no such network collector', - 'no such element', - 'no such frame', - 'no such handle', - 'no such history entry', - 'no such intercept', - 'no such network data', - 'no such node', - 'no such request', - 'no such script', - 'no such storage partition', - 'no such user context', - 'no such web extension', - 'session not created', - 'unable to capture screen', - 'unable to close browser', - 'unable to set cookie', - 'unable to set file input', - 'unavailable network data', - 'underspecified storage partition', - 'unknown command', - 'unknown error', - 'unsupported operation', -])); -export const SessionCommandSchema = z.lazy(() => z.union([ - Session.EndSchema, - Session.NewSchema, - Session.StatusSchema, - Session.SubscribeSchema, - Session.UnsubscribeSchema, -])); -export const SessionResultSchema = z.lazy(() => z.union([ - Session.EndResultSchema, - Session.NewResultSchema, - Session.StatusResultSchema, - Session.SubscribeResultSchema, - Session.UnsubscribeResultSchema, -])); -export var Session; -(function (Session) { - Session.CapabilitiesRequestSchema = z.lazy(() => z.object({ - alwaysMatch: Session.CapabilityRequestSchema.optional(), - firstMatch: z.array(Session.CapabilityRequestSchema).optional(), - })); -})(Session || (Session = {})); -(function (Session) { - Session.CapabilityRequestSchema = z.lazy(() => z - .object({ - acceptInsecureCerts: z.boolean().optional(), - browserName: z.string().optional(), - browserVersion: z.string().optional(), - platformName: z.string().optional(), - proxy: Session.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.ProxyConfigurationSchema = z.lazy(() => z.union([ - Session.AutodetectProxyConfigurationSchema, - Session.DirectProxyConfigurationSchema, - Session.ManualProxyConfigurationSchema, - Session.PacProxyConfigurationSchema, - Session.SystemProxyConfigurationSchema, - ])); -})(Session || (Session = {})); -(function (Session) { - Session.AutodetectProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('autodetect'), - }) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.DirectProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('direct'), - }) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.ManualProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('manual'), - httpProxy: z.string().optional(), - sslProxy: z.string().optional(), - }) - .and(Session.SocksProxyConfigurationSchema.or(z.object({}))) - .and(z.object({ - noProxy: z.array(z.string()).optional(), - })) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.SocksProxyConfigurationSchema = z.lazy(() => z.object({ - socksProxy: z.string(), - socksVersion: z.number().int().nonnegative().gte(0).lte(255), - })); -})(Session || (Session = {})); -(function (Session) { - Session.PacProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('pac'), - proxyAutoconfigUrl: z.string(), - }) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.SystemProxyConfigurationSchema = z.lazy(() => z - .object({ - proxyType: z.literal('system'), - }) - .and(ExtensibleSchema)); -})(Session || (Session = {})); -(function (Session) { - Session.UserPromptHandlerSchema = z.lazy(() => z.object({ - alert: Session.UserPromptHandlerTypeSchema.optional(), - beforeUnload: Session.UserPromptHandlerTypeSchema.optional(), - confirm: Session.UserPromptHandlerTypeSchema.optional(), - default: Session.UserPromptHandlerTypeSchema.optional(), - file: Session.UserPromptHandlerTypeSchema.optional(), - prompt: Session.UserPromptHandlerTypeSchema.optional(), - })); -})(Session || (Session = {})); -(function (Session) { - Session.UserPromptHandlerTypeSchema = z.lazy(() => z.enum(['accept', 'dismiss', 'ignore'])); -})(Session || (Session = {})); -(function (Session) { - Session.SubscriptionSchema = z.lazy(() => z.string()); -})(Session || (Session = {})); -(function (Session) { - Session.SubscribeParametersSchema = z.lazy(() => z.object({ - events: z.array(z.string()).min(1), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Session || (Session = {})); -(function (Session) { - Session.UnsubscribeByIdRequestSchema = z.lazy(() => z.object({ - subscriptions: z.array(Session.SubscriptionSchema).min(1), - })); -})(Session || (Session = {})); -(function (Session) { - Session.UnsubscribeByAttributesRequestSchema = z.lazy(() => z.object({ - events: z.array(z.string()).min(1), - })); -})(Session || (Session = {})); -(function (Session) { - Session.StatusSchema = z.lazy(() => z.object({ - method: z.literal('session.status'), - params: EmptyParamsSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.StatusResultSchema = z.lazy(() => z.object({ - ready: z.boolean(), - message: z.string(), - })); -})(Session || (Session = {})); -(function (Session) { - Session.NewSchema = z.lazy(() => z.object({ - method: z.literal('session.new'), - params: Session.NewParametersSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.NewParametersSchema = z.lazy(() => z.object({ - capabilities: Session.CapabilitiesRequestSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.NewResultSchema = z.lazy(() => z.object({ - sessionId: z.string(), - capabilities: z - .object({ - acceptInsecureCerts: z.boolean(), - browserName: z.string(), - browserVersion: z.string(), - platformName: z.string(), - setWindowRect: z.boolean(), - userAgent: z.string(), - proxy: Session.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(), - webSocketUrl: z.string().optional(), - }) - .and(ExtensibleSchema), - })); -})(Session || (Session = {})); -(function (Session) { - Session.EndSchema = z.lazy(() => z.object({ - method: z.literal('session.end'), - params: EmptyParamsSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.EndResultSchema = z.lazy(() => EmptyResultSchema); -})(Session || (Session = {})); -(function (Session) { - Session.SubscribeSchema = z.lazy(() => z.object({ - method: z.literal('session.subscribe'), - params: Session.SubscribeParametersSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.SubscribeResultSchema = z.lazy(() => z.object({ - subscription: Session.SubscriptionSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.UnsubscribeSchema = z.lazy(() => z.object({ - method: z.literal('session.unsubscribe'), - params: Session.UnsubscribeParametersSchema, - })); -})(Session || (Session = {})); -(function (Session) { - Session.UnsubscribeParametersSchema = z.lazy(() => z.union([ - Session.UnsubscribeByAttributesRequestSchema, - Session.UnsubscribeByIdRequestSchema, - ])); -})(Session || (Session = {})); -(function (Session) { - Session.UnsubscribeResultSchema = z.lazy(() => EmptyResultSchema); -})(Session || (Session = {})); -export const BrowserCommandSchema = z.lazy(() => z.union([ - Browser.CloseSchema, - Browser.CreateUserContextSchema, - Browser.GetClientWindowsSchema, - Browser.GetUserContextsSchema, - Browser.RemoveUserContextSchema, - Browser.SetClientWindowStateSchema, - Browser.SetDownloadBehaviorSchema, -])); -export const BrowserResultSchema = z.lazy(() => z.union([ - Browser.CloseResultSchema, - Browser.CreateUserContextResultSchema, - Browser.GetClientWindowsResultSchema, - Browser.GetUserContextsResultSchema, - Browser.RemoveUserContextResultSchema, - Browser.SetClientWindowStateResultSchema, - Browser.SetDownloadBehaviorResultSchema, -])); -export var Browser; -(function (Browser) { - Browser.ClientWindowSchema = z.lazy(() => z.string()); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.ClientWindowInfoSchema = z.lazy(() => z.object({ - active: z.boolean(), - clientWindow: Browser.ClientWindowSchema, - height: JsUintSchema, - state: z.enum(['fullscreen', 'maximized', 'minimized', 'normal']), - width: JsUintSchema, - x: JsIntSchema, - y: JsIntSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.UserContextSchema = z.lazy(() => z.string()); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.UserContextInfoSchema = z.lazy(() => z.object({ - userContext: Browser.UserContextSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.CloseSchema = z.lazy(() => z.object({ - method: z.literal('browser.close'), - params: EmptyParamsSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.CloseResultSchema = z.lazy(() => EmptyResultSchema); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.CreateUserContextSchema = z.lazy(() => z.object({ - method: z.literal('browser.createUserContext'), - params: Browser.CreateUserContextParametersSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.CreateUserContextParametersSchema = z.lazy(() => z.object({ - acceptInsecureCerts: z.boolean().optional(), - proxy: Session.ProxyConfigurationSchema.optional(), - unhandledPromptBehavior: Session.UserPromptHandlerSchema.optional(), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.CreateUserContextResultSchema = z.lazy(() => Browser.UserContextInfoSchema); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.GetClientWindowsSchema = z.lazy(() => z.object({ - method: z.literal('browser.getClientWindows'), - params: EmptyParamsSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.GetClientWindowsResultSchema = z.lazy(() => z.object({ - clientWindows: z.array(Browser.ClientWindowInfoSchema), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.GetUserContextsSchema = z.lazy(() => z.object({ - method: z.literal('browser.getUserContexts'), - params: EmptyParamsSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.GetUserContextsResultSchema = z.lazy(() => z.object({ - userContexts: z.array(Browser.UserContextInfoSchema).min(1), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.RemoveUserContextSchema = z.lazy(() => z.object({ - method: z.literal('browser.removeUserContext'), - params: Browser.RemoveUserContextParametersSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.RemoveUserContextParametersSchema = z.lazy(() => z.object({ - userContext: Browser.UserContextSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.RemoveUserContextResultSchema = z.lazy(() => EmptyResultSchema); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetClientWindowStateSchema = z.lazy(() => z.object({ - method: z.literal('browser.setClientWindowState'), - params: Browser.SetClientWindowStateParametersSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetClientWindowStateParametersSchema = z.lazy(() => z - .object({ - clientWindow: Browser.ClientWindowSchema, - }) - .and(z.union([ - Browser.ClientWindowNamedStateSchema, - Browser.ClientWindowRectStateSchema, - ]))); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.ClientWindowNamedStateSchema = z.lazy(() => z.object({ - state: z.enum(['fullscreen', 'maximized', 'minimized']), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.ClientWindowRectStateSchema = z.lazy(() => z.object({ - state: z.literal('normal'), - width: JsUintSchema.optional(), - height: JsUintSchema.optional(), - x: JsIntSchema.optional(), - y: JsIntSchema.optional(), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetClientWindowStateResultSchema = z.lazy(() => Browser.ClientWindowInfoSchema); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetDownloadBehaviorSchema = z.lazy(() => z.object({ - method: z.literal('browser.setDownloadBehavior'), - params: Browser.SetDownloadBehaviorParametersSchema, - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetDownloadBehaviorParametersSchema = z.lazy(() => z.object({ - downloadBehavior: z.union([Browser.DownloadBehaviorSchema, z.null()]), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.DownloadBehaviorSchema = z.lazy(() => z.union([ - Browser.DownloadBehaviorAllowedSchema, - Browser.DownloadBehaviorDeniedSchema, - ])); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.DownloadBehaviorAllowedSchema = z.lazy(() => z.object({ - type: z.literal('allowed'), - destinationFolder: z.string(), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.DownloadBehaviorDeniedSchema = z.lazy(() => z.object({ - type: z.literal('denied'), - })); -})(Browser || (Browser = {})); -(function (Browser) { - Browser.SetDownloadBehaviorResultSchema = z.lazy(() => EmptyResultSchema); -})(Browser || (Browser = {})); -export const BrowsingContextCommandSchema = z.lazy(() => z.union([ - BrowsingContext.ActivateSchema, - BrowsingContext.CaptureScreenshotSchema, - BrowsingContext.CloseSchema, - BrowsingContext.CreateSchema, - BrowsingContext.GetTreeSchema, - BrowsingContext.HandleUserPromptSchema, - BrowsingContext.LocateNodesSchema, - BrowsingContext.NavigateSchema, - BrowsingContext.PrintSchema, - BrowsingContext.ReloadSchema, - BrowsingContext.SetBypassCspSchema, - BrowsingContext.SetViewportSchema, - BrowsingContext.TraverseHistorySchema, -])); -export const BrowsingContextResultSchema = z.lazy(() => z.union([ - BrowsingContext.ActivateResultSchema, - BrowsingContext.CaptureScreenshotResultSchema, - BrowsingContext.CloseResultSchema, - BrowsingContext.CreateResultSchema, - BrowsingContext.GetTreeResultSchema, - BrowsingContext.HandleUserPromptResultSchema, - BrowsingContext.LocateNodesResultSchema, - BrowsingContext.NavigateResultSchema, - BrowsingContext.PrintResultSchema, - BrowsingContext.ReloadResultSchema, - BrowsingContext.SetBypassCspResultSchema, - BrowsingContext.SetViewportResultSchema, - BrowsingContext.TraverseHistoryResultSchema, -])); -export const BrowsingContextEventSchema = z.lazy(() => z.union([ - BrowsingContext.ContextCreatedSchema, - BrowsingContext.ContextDestroyedSchema, - BrowsingContext.DomContentLoadedSchema, - BrowsingContext.DownloadEndSchema, - BrowsingContext.DownloadWillBeginSchema, - BrowsingContext.FragmentNavigatedSchema, - BrowsingContext.HistoryUpdatedSchema, - BrowsingContext.LoadSchema, - BrowsingContext.NavigationAbortedSchema, - BrowsingContext.NavigationCommittedSchema, - BrowsingContext.NavigationFailedSchema, - BrowsingContext.NavigationStartedSchema, - BrowsingContext.UserPromptClosedSchema, - BrowsingContext.UserPromptOpenedSchema, -])); -export var BrowsingContext; -(function (BrowsingContext) { - BrowsingContext.BrowsingContextSchema = z.lazy(() => z.string()); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.InfoListSchema = z.lazy(() => z.array(BrowsingContext.InfoSchema)); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.InfoSchema = z.lazy(() => z.object({ - children: z.union([BrowsingContext.InfoListSchema, z.null()]), - clientWindow: Browser.ClientWindowSchema, - context: BrowsingContext.BrowsingContextSchema, - originalOpener: z.union([ - BrowsingContext.BrowsingContextSchema, - z.null(), - ]), - url: z.string(), - userContext: Browser.UserContextSchema, - parent: z - .union([BrowsingContext.BrowsingContextSchema, z.null()]) - .optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.LocatorSchema = z.lazy(() => z.union([ - BrowsingContext.AccessibilityLocatorSchema, - BrowsingContext.CssLocatorSchema, - BrowsingContext.ContextLocatorSchema, - BrowsingContext.InnerTextLocatorSchema, - BrowsingContext.XPathLocatorSchema, - ])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.AccessibilityLocatorSchema = z.lazy(() => z.object({ - type: z.literal('accessibility'), - value: z.object({ - name: z.string().optional(), - role: z.string().optional(), - }), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CssLocatorSchema = z.lazy(() => z.object({ - type: z.literal('css'), - value: z.string(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ContextLocatorSchema = z.lazy(() => z.object({ - type: z.literal('context'), - value: z.object({ - context: BrowsingContext.BrowsingContextSchema, - }), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.InnerTextLocatorSchema = z.lazy(() => z.object({ - type: z.literal('innerText'), - value: z.string(), - ignoreCase: z.boolean().optional(), - matchType: z.enum(['full', 'partial']).optional(), - maxDepth: JsUintSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.XPathLocatorSchema = z.lazy(() => z.object({ - type: z.literal('xpath'), - value: z.string(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationSchema = z.lazy(() => z.string()); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.BaseNavigationInfoSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - navigation: z.union([BrowsingContext.NavigationSchema, z.null()]), - timestamp: JsUintSchema, - url: z.string(), - userContext: Browser.UserContextSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationInfoSchema = z.lazy(() => BrowsingContext.BaseNavigationInfoSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ReadinessStateSchema = z.lazy(() => z.enum(['none', 'interactive', 'complete'])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.UserPromptTypeSchema = z.lazy(() => z.enum(['alert', 'beforeunload', 'confirm', 'prompt'])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ActivateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.activate'), - params: BrowsingContext.ActivateParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ActivateParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ActivateResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CaptureScreenshotSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.captureScreenshot'), - params: BrowsingContext.CaptureScreenshotParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CaptureScreenshotParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - origin: z.enum(['viewport', 'document']).default('viewport').optional(), - format: BrowsingContext.ImageFormatSchema.optional(), - clip: BrowsingContext.ClipRectangleSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ImageFormatSchema = z.lazy(() => z.object({ - type: z.string(), - quality: z.number().gte(0).lte(1).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ClipRectangleSchema = z.lazy(() => z.union([ - BrowsingContext.BoxClipRectangleSchema, - BrowsingContext.ElementClipRectangleSchema, - ])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ElementClipRectangleSchema = z.lazy(() => z.object({ - type: z.literal('element'), - element: Script.SharedReferenceSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.BoxClipRectangleSchema = z.lazy(() => z.object({ - type: z.literal('box'), - x: z.number(), - y: z.number(), - width: z.number(), - height: z.number(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CaptureScreenshotResultSchema = z.lazy(() => z.object({ - data: z.string(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CloseSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.close'), - params: BrowsingContext.CloseParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CloseParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - promptUnload: z.boolean().default(false).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CloseResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CreateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.create'), - params: BrowsingContext.CreateParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CreateTypeSchema = z.lazy(() => z.enum(['tab', 'window'])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CreateParametersSchema = z.lazy(() => z.object({ - type: BrowsingContext.CreateTypeSchema, - referenceContext: BrowsingContext.BrowsingContextSchema.optional(), - background: z.boolean().default(false).optional(), - userContext: Browser.UserContextSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.CreateResultSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - userContext: Browser.UserContextSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.GetTreeSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.getTree'), - params: BrowsingContext.GetTreeParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.GetTreeParametersSchema = z.lazy(() => z.object({ - maxDepth: JsUintSchema.optional(), - root: BrowsingContext.BrowsingContextSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.GetTreeResultSchema = z.lazy(() => z.object({ - contexts: BrowsingContext.InfoListSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.HandleUserPromptSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.handleUserPrompt'), - params: BrowsingContext.HandleUserPromptParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.HandleUserPromptParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - accept: z.boolean().optional(), - userText: z.string().optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.HandleUserPromptResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.LocateNodesSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.locateNodes'), - params: BrowsingContext.LocateNodesParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.LocateNodesParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - locator: BrowsingContext.LocatorSchema, - maxNodeCount: JsUintSchema.gte(1).optional(), - serializationOptions: Script.SerializationOptionsSchema.optional(), - startNodes: z.array(Script.SharedReferenceSchema).min(1).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.LocateNodesResultSchema = z.lazy(() => z.object({ - nodes: z.array(Script.NodeRemoteValueSchema), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigateSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigate'), - params: BrowsingContext.NavigateParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigateParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - url: z.string(), - wait: BrowsingContext.ReadinessStateSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigateResultSchema = z.lazy(() => z.object({ - navigation: z.union([BrowsingContext.NavigationSchema, z.null()]), - url: z.string(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.PrintSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.print'), - params: BrowsingContext.PrintParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.PrintParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - background: z.boolean().default(false).optional(), - margin: BrowsingContext.PrintMarginParametersSchema.optional(), - orientation: z - .enum(['portrait', 'landscape']) - .default('portrait') - .optional(), - page: BrowsingContext.PrintPageParametersSchema.optional(), - pageRanges: z.array(z.union([JsUintSchema, z.string()])).optional(), - scale: z.number().gte(0.1).lte(2).default(1).optional(), - shrinkToFit: z.boolean().default(true).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.PrintMarginParametersSchema = z.lazy(() => z.object({ - bottom: z.number().gte(0).default(1).optional(), - left: z.number().gte(0).default(1).optional(), - right: z.number().gte(0).default(1).optional(), - top: z.number().gte(0).default(1).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.PrintPageParametersSchema = z.lazy(() => z.object({ - height: z.number().gte(0.0352).default(27.94).optional(), - width: z.number().gte(0.0352).default(21.59).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.PrintResultSchema = z.lazy(() => z.object({ - data: z.string(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ReloadSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.reload'), - params: BrowsingContext.ReloadParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ReloadParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - ignoreCache: z.boolean().optional(), - wait: BrowsingContext.ReadinessStateSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ReloadResultSchema = z.lazy(() => BrowsingContext.NavigateResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetBypassCspSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.setBypassCSP'), - params: BrowsingContext.SetBypassCspParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetBypassCspParametersSchema = z.lazy(() => z.object({ - bypass: z.union([z.literal(true), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetBypassCspResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetViewportSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.setViewport'), - params: BrowsingContext.SetViewportParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetViewportParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema.optional(), - viewport: z.union([BrowsingContext.ViewportSchema, z.null()]).optional(), - devicePixelRatio: z.union([z.number().gt(0), z.null()]).optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ViewportSchema = z.lazy(() => z.object({ - width: JsUintSchema, - height: JsUintSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.SetViewportResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.TraverseHistorySchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.traverseHistory'), - params: BrowsingContext.TraverseHistoryParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.TraverseHistoryParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - delta: JsIntSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.TraverseHistoryResultSchema = z.lazy(() => EmptyResultSchema); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ContextCreatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.contextCreated'), - params: BrowsingContext.InfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.ContextDestroyedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.contextDestroyed'), - params: BrowsingContext.InfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationStartedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationStarted'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.FragmentNavigatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.fragmentNavigated'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.HistoryUpdatedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.historyUpdated'), - params: BrowsingContext.HistoryUpdatedParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.HistoryUpdatedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - timestamp: JsUintSchema, - url: z.string(), - userContext: Browser.UserContextSchema.optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DomContentLoadedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.domContentLoaded'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.LoadSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.load'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadWillBeginSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.downloadWillBegin'), - params: BrowsingContext.DownloadWillBeginParamsSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadWillBeginParamsSchema = z.lazy(() => z - .object({ - suggestedFilename: z.string(), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadEndSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.downloadEnd'), - params: BrowsingContext.DownloadEndParamsSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadEndParamsSchema = z.lazy(() => z.union([ - BrowsingContext.DownloadCanceledParamsSchema, - BrowsingContext.DownloadCompleteParamsSchema, - ])); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadCanceledParamsSchema = z.lazy(() => z - .object({ - status: z.literal('canceled'), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.DownloadCompleteParamsSchema = z.lazy(() => z - .object({ - status: z.literal('complete'), - filepath: z.union([z.string(), z.null()]), - }) - .and(BrowsingContext.BaseNavigationInfoSchema)); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationAbortedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationAborted'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationCommittedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationCommitted'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.NavigationFailedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.navigationFailed'), - params: BrowsingContext.NavigationInfoSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.UserPromptClosedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.userPromptClosed'), - params: BrowsingContext.UserPromptClosedParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.UserPromptClosedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - accepted: z.boolean(), - type: BrowsingContext.UserPromptTypeSchema, - userContext: Browser.UserContextSchema.optional(), - userText: z.string().optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.UserPromptOpenedSchema = z.lazy(() => z.object({ - method: z.literal('browsingContext.userPromptOpened'), - params: BrowsingContext.UserPromptOpenedParametersSchema, - })); -})(BrowsingContext || (BrowsingContext = {})); -(function (BrowsingContext) { - BrowsingContext.UserPromptOpenedParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - handler: Session.UserPromptHandlerTypeSchema, - message: z.string(), - type: BrowsingContext.UserPromptTypeSchema, - userContext: Browser.UserContextSchema.optional(), - defaultValue: z.string().optional(), - })); -})(BrowsingContext || (BrowsingContext = {})); -export const EmulationCommandSchema = z.lazy(() => z.union([ - Emulation.SetForcedColorsModeThemeOverrideSchema, - Emulation.SetGeolocationOverrideSchema, - Emulation.SetLocaleOverrideSchema, - Emulation.SetNetworkConditionsSchema, - Emulation.SetScreenOrientationOverrideSchema, - Emulation.SetScreenSettingsOverrideSchema, - Emulation.SetScriptingEnabledSchema, - Emulation.SetScrollbarTypeOverrideSchema, - Emulation.SetTimezoneOverrideSchema, - Emulation.SetTouchOverrideSchema, - Emulation.SetUserAgentOverrideSchema, -])); -export const EmulationResultSchema = z.lazy(() => z.union([ - Emulation.SetForcedColorsModeThemeOverrideResultSchema, - Emulation.SetGeolocationOverrideResultSchema, - Emulation.SetLocaleOverrideResultSchema, - Emulation.SetScreenOrientationOverrideResultSchema, - Emulation.SetScriptingEnabledResultSchema, - Emulation.SetScrollbarTypeOverrideResultSchema, - Emulation.SetTimezoneOverrideResultSchema, - Emulation.SetTouchOverrideResultSchema, - Emulation.SetUserAgentOverrideResultSchema, -])); -export var Emulation; -(function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setForcedColorsModeThemeOverride'), - params: Emulation.SetForcedColorsModeThemeOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideParametersSchema = z.lazy(() => z.object({ - theme: z.union([Emulation.ForcedColorsModeThemeSchema, z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.ForcedColorsModeThemeSchema = z.lazy(() => z.enum(['light', 'dark'])); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetForcedColorsModeThemeOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetGeolocationOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setGeolocationOverride'), - params: Emulation.SetGeolocationOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetGeolocationOverrideParametersSchema = z.lazy(() => z - .union([ - z.object({ - coordinates: z.union([ - Emulation.GeolocationCoordinatesSchema, - z.null(), - ]), - }), - z.object({ - error: Emulation.GeolocationPositionErrorSchema, - }), - ]) - .and(z.object({ - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - }))); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.GeolocationCoordinatesSchema = z.lazy(() => z.object({ - latitude: z.number().gte(-90).lte(90), - longitude: z.number().gte(-180).lte(180), - accuracy: z.number().gte(0).default(1).optional(), - altitude: z.union([z.number(), z.null().default(null)]).optional(), - altitudeAccuracy: z - .union([z.number().gte(0), z.null().default(null)]) - .optional(), - heading: z - .union([z.number().gt(0).lt(360), z.null().default(null)]) - .optional(), - speed: z.union([z.number().gte(0), z.null().default(null)]).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.GeolocationPositionErrorSchema = z.lazy(() => z.object({ - type: z.literal('positionUnavailable'), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetGeolocationOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetLocaleOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setLocaleOverride'), - params: Emulation.SetLocaleOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetLocaleOverrideParametersSchema = z.lazy(() => z.object({ - locale: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetLocaleOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetNetworkConditionsSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setNetworkConditions'), - params: Emulation.SetNetworkConditionsParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetNetworkConditionsParametersSchema = z.lazy(() => z.object({ - networkConditions: z.union([Emulation.NetworkConditionsSchema, z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.NetworkConditionsSchema = z.lazy(() => Emulation.NetworkConditionsOfflineSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.NetworkConditionsOfflineSchema = z.lazy(() => z.object({ - type: z.literal('offline'), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetNetworkConditionsResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenSettingsOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScreenSettingsOverride'), - params: Emulation.SetScreenSettingsOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.ScreenAreaSchema = z.lazy(() => z.object({ - width: JsUintSchema, - height: JsUintSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenSettingsOverrideParametersSchema = z.lazy(() => z.object({ - screenArea: z.union([Emulation.ScreenAreaSchema, z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenSettingsOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenOrientationOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScreenOrientationOverride'), - params: Emulation.SetScreenOrientationOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.ScreenOrientationNaturalSchema = z.lazy(() => z.enum(['portrait', 'landscape'])); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.ScreenOrientationTypeSchema = z.lazy(() => z.enum([ - 'portrait-primary', - 'portrait-secondary', - 'landscape-primary', - 'landscape-secondary', - ])); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.ScreenOrientationSchema = z.lazy(() => z.object({ - natural: Emulation.ScreenOrientationNaturalSchema, - type: Emulation.ScreenOrientationTypeSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenOrientationOverrideParametersSchema = z.lazy(() => z.object({ - screenOrientation: z.union([Emulation.ScreenOrientationSchema, z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScreenOrientationOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetUserAgentOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setUserAgentOverride'), - params: Emulation.SetUserAgentOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetUserAgentOverrideParametersSchema = z.lazy(() => z.object({ - userAgent: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetUserAgentOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScriptingEnabledSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScriptingEnabled'), - params: Emulation.SetScriptingEnabledParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScriptingEnabledParametersSchema = z.lazy(() => z.object({ - enabled: z.union([z.literal(false), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScriptingEnabledResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScrollbarTypeOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setScrollbarTypeOverride'), - params: Emulation.SetScrollbarTypeOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScrollbarTypeOverrideParametersSchema = z.lazy(() => z.object({ - scrollbarType: z.union([ - z.literal('classic'), - z.literal('overlay'), - z.null(), - ]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetScrollbarTypeOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTimezoneOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setTimezoneOverride'), - params: Emulation.SetTimezoneOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTimezoneOverrideParametersSchema = z.lazy(() => z.object({ - timezone: z.union([z.string(), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTimezoneOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTouchOverrideSchema = z.lazy(() => z.object({ - method: z.literal('emulation.setTouchOverride'), - params: Emulation.SetTouchOverrideParametersSchema, - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTouchOverrideParametersSchema = z.lazy(() => z.object({ - maxTouchPoints: z.union([JsUintSchema.gte(1), z.null()]), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Emulation || (Emulation = {})); -(function (Emulation) { - Emulation.SetTouchOverrideResultSchema = z.lazy(() => EmptyResultSchema); -})(Emulation || (Emulation = {})); -export const NetworkCommandSchema = z.lazy(() => z.union([ - Network.AddDataCollectorSchema, - Network.AddInterceptSchema, - Network.ContinueRequestSchema, - Network.ContinueResponseSchema, - Network.ContinueWithAuthSchema, - Network.DisownDataSchema, - Network.FailRequestSchema, - Network.GetDataSchema, - Network.ProvideResponseSchema, - Network.RemoveDataCollectorSchema, - Network.RemoveInterceptSchema, - Network.SetCacheBehaviorSchema, - Network.SetExtraHeadersSchema, -])); -export const NetworkResultSchema = z.lazy(() => z.union([ - Network.AddDataCollectorResultSchema, - Network.AddInterceptResultSchema, - Network.ContinueRequestResultSchema, - Network.ContinueResponseResultSchema, - Network.ContinueWithAuthResultSchema, - Network.DisownDataResultSchema, - Network.FailRequestResultSchema, - Network.GetDataResultSchema, - Network.ProvideResponseResultSchema, - Network.RemoveDataCollectorResultSchema, - Network.RemoveInterceptResultSchema, - Network.SetCacheBehaviorResultSchema, - Network.SetExtraHeadersResultSchema, -])); -export const NetworkEventSchema = z.lazy(() => z.union([ - Network.AuthRequiredSchema, - Network.BeforeRequestSentSchema, - Network.FetchErrorSchema, - Network.ResponseCompletedSchema, - Network.ResponseStartedSchema, -])); -export var Network; -(function (Network) { - Network.AuthChallengeSchema = z.lazy(() => z.object({ - scheme: z.string(), - realm: z.string(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.AuthCredentialsSchema = z.lazy(() => z.object({ - type: z.literal('password'), - username: z.string(), - password: z.string(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.BaseParametersSchema = z.lazy(() => z.object({ - context: z.union([BrowsingContext.BrowsingContextSchema, z.null()]), - isBlocked: z.boolean(), - navigation: z.union([BrowsingContext.NavigationSchema, z.null()]), - redirectCount: JsUintSchema, - request: Network.RequestDataSchema, - timestamp: JsUintSchema, - userContext: z.union([Browser.UserContextSchema, z.null()]).optional(), - intercepts: z.array(Network.InterceptSchema).min(1).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.BytesValueSchema = z.lazy(() => z.union([Network.StringValueSchema, Network.Base64ValueSchema])); -})(Network || (Network = {})); -(function (Network) { - Network.StringValueSchema = z.lazy(() => z.object({ - type: z.literal('string'), - value: z.string(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.Base64ValueSchema = z.lazy(() => z.object({ - type: z.literal('base64'), - value: z.string(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.CollectorSchema = z.lazy(() => z.string()); -})(Network || (Network = {})); -(function (Network) { - Network.CollectorTypeSchema = z.literal('blob'); -})(Network || (Network = {})); -(function (Network) { - Network.SameSiteSchema = z.lazy(() => z.enum(['strict', 'lax', 'none', 'default'])); -})(Network || (Network = {})); -(function (Network) { - Network.CookieSchema = z.lazy(() => z - .object({ - name: z.string(), - value: Network.BytesValueSchema, - domain: z.string(), - path: z.string(), - size: JsUintSchema, - httpOnly: z.boolean(), - secure: z.boolean(), - sameSite: Network.SameSiteSchema, - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Network || (Network = {})); -(function (Network) { - Network.CookieHeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.DataTypeSchema = z.lazy(() => z.enum(['request', 'response'])); -})(Network || (Network = {})); -(function (Network) { - Network.FetchTimingInfoSchema = z.lazy(() => z.object({ - timeOrigin: z.number(), - requestTime: z.number(), - redirectStart: z.number(), - redirectEnd: z.number(), - fetchStart: z.number(), - dnsStart: z.number(), - dnsEnd: z.number(), - connectStart: z.number(), - connectEnd: z.number(), - tlsStart: z.number(), - requestStart: z.number(), - responseStart: z.number(), - responseEnd: z.number(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.HeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.InitiatorSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema.optional(), - lineNumber: JsUintSchema.optional(), - request: Network.RequestSchema.optional(), - stackTrace: Script.StackTraceSchema.optional(), - type: z.enum(['parser', 'script', 'preflight', 'other']).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.InterceptSchema = z.lazy(() => z.string()); -})(Network || (Network = {})); -(function (Network) { - Network.RequestSchema = z.lazy(() => z.string()); -})(Network || (Network = {})); -(function (Network) { - Network.RequestDataSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - url: z.string(), - method: z.string(), - headers: z.array(Network.HeaderSchema), - cookies: z.array(Network.CookieSchema), - headersSize: JsUintSchema, - bodySize: z.union([JsUintSchema, z.null()]), - destination: z.string(), - initiatorType: z.union([z.string(), z.null()]), - timings: Network.FetchTimingInfoSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseContentSchema = z.lazy(() => z.object({ - size: JsUintSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseDataSchema = z.lazy(() => z.object({ - url: z.string(), - protocol: z.string(), - status: JsUintSchema, - statusText: z.string(), - fromCache: z.boolean(), - headers: z.array(Network.HeaderSchema), - mimeType: z.string(), - bytesReceived: JsUintSchema, - headersSize: z.union([JsUintSchema, z.null()]), - bodySize: z.union([JsUintSchema, z.null()]), - content: Network.ResponseContentSchema, - authChallenges: z.array(Network.AuthChallengeSchema).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.SetCookieHeaderSchema = z.lazy(() => z.object({ - name: z.string(), - value: Network.BytesValueSchema, - domain: z.string().optional(), - httpOnly: z.boolean().optional(), - expiry: z.string().optional(), - maxAge: JsIntSchema.optional(), - path: z.string().optional(), - sameSite: Network.SameSiteSchema.optional(), - secure: z.boolean().optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.UrlPatternSchema = z.lazy(() => z.union([Network.UrlPatternPatternSchema, Network.UrlPatternStringSchema])); -})(Network || (Network = {})); -(function (Network) { - Network.UrlPatternPatternSchema = z.lazy(() => z.object({ - type: z.literal('pattern'), - protocol: z.string().optional(), - hostname: z.string().optional(), - port: z.string().optional(), - pathname: z.string().optional(), - search: z.string().optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.UrlPatternStringSchema = z.lazy(() => z.object({ - type: z.literal('string'), - pattern: z.string(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.AddDataCollectorSchema = z.lazy(() => z.object({ - method: z.literal('network.addDataCollector'), - params: Network.AddDataCollectorParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.AddDataCollectorParametersSchema = z.lazy(() => z.object({ - dataTypes: z.array(Network.DataTypeSchema).min(1), - maxEncodedDataSize: JsUintSchema, - collectorType: Network.CollectorTypeSchema.default('blob').optional(), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.AddDataCollectorResultSchema = z.lazy(() => z.object({ - collector: Network.CollectorSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.AddInterceptSchema = z.lazy(() => z.object({ - method: z.literal('network.addIntercept'), - params: Network.AddInterceptParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.AddInterceptParametersSchema = z.lazy(() => z.object({ - phases: z.array(Network.InterceptPhaseSchema).min(1), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - urlPatterns: z.array(Network.UrlPatternSchema).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.InterceptPhaseSchema = z.lazy(() => z.enum(['beforeRequestSent', 'responseStarted', 'authRequired'])); -})(Network || (Network = {})); -(function (Network) { - Network.AddInterceptResultSchema = z.lazy(() => z.object({ - intercept: Network.InterceptSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueRequestSchema = z.lazy(() => z.object({ - method: z.literal('network.continueRequest'), - params: Network.ContinueRequestParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueRequestParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - body: Network.BytesValueSchema.optional(), - cookies: z.array(Network.CookieHeaderSchema).optional(), - headers: z.array(Network.HeaderSchema).optional(), - method: z.string().optional(), - url: z.string().optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueRequestResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueResponseSchema = z.lazy(() => z.object({ - method: z.literal('network.continueResponse'), - params: Network.ContinueResponseParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueResponseParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - cookies: z.array(Network.SetCookieHeaderSchema).optional(), - credentials: Network.AuthCredentialsSchema.optional(), - headers: z.array(Network.HeaderSchema).optional(), - reasonPhrase: z.string().optional(), - statusCode: JsUintSchema.optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueResponseResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueWithAuthSchema = z.lazy(() => z.object({ - method: z.literal('network.continueWithAuth'), - params: Network.ContinueWithAuthParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueWithAuthParametersSchema = z.lazy(() => z - .object({ - request: Network.RequestSchema, - }) - .and(z.union([ - Network.ContinueWithAuthCredentialsSchema, - Network.ContinueWithAuthNoCredentialsSchema, - ]))); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueWithAuthCredentialsSchema = z.lazy(() => z.object({ - action: z.literal('provideCredentials'), - credentials: Network.AuthCredentialsSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueWithAuthNoCredentialsSchema = z.lazy(() => z.object({ - action: z.enum(['default', 'cancel']), - })); -})(Network || (Network = {})); -(function (Network) { - Network.ContinueWithAuthResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.DisownDataSchema = z.lazy(() => z.object({ - method: z.literal('network.disownData'), - params: Network.DisownDataParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.DisownDataParametersSchema = z.lazy(() => z.object({ - dataType: Network.DataTypeSchema, - collector: Network.CollectorSchema, - request: Network.RequestSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.DisownDataResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.FailRequestSchema = z.lazy(() => z.object({ - method: z.literal('network.failRequest'), - params: Network.FailRequestParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.FailRequestParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.FailRequestResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.GetDataSchema = z.lazy(() => z.object({ - method: z.literal('network.getData'), - params: Network.GetDataParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.GetDataParametersSchema = z.lazy(() => z.object({ - dataType: Network.DataTypeSchema, - collector: Network.CollectorSchema.optional(), - disown: z.boolean().default(false).optional(), - request: Network.RequestSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.GetDataResultSchema = z.lazy(() => z.object({ - bytes: Network.BytesValueSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ProvideResponseSchema = z.lazy(() => z.object({ - method: z.literal('network.provideResponse'), - params: Network.ProvideResponseParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ProvideResponseParametersSchema = z.lazy(() => z.object({ - request: Network.RequestSchema, - body: Network.BytesValueSchema.optional(), - cookies: z.array(Network.SetCookieHeaderSchema).optional(), - headers: z.array(Network.HeaderSchema).optional(), - reasonPhrase: z.string().optional(), - statusCode: JsUintSchema.optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.ProvideResponseResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveDataCollectorSchema = z.lazy(() => z.object({ - method: z.literal('network.removeDataCollector'), - params: Network.RemoveDataCollectorParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveDataCollectorParametersSchema = z.lazy(() => z.object({ - collector: Network.CollectorSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveDataCollectorResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveInterceptSchema = z.lazy(() => z.object({ - method: z.literal('network.removeIntercept'), - params: Network.RemoveInterceptParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveInterceptParametersSchema = z.lazy(() => z.object({ - intercept: Network.InterceptSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.RemoveInterceptResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.SetCacheBehaviorSchema = z.lazy(() => z.object({ - method: z.literal('network.setCacheBehavior'), - params: Network.SetCacheBehaviorParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.SetCacheBehaviorParametersSchema = z.lazy(() => z.object({ - cacheBehavior: z.enum(['default', 'bypass']), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.SetCacheBehaviorResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.SetExtraHeadersSchema = z.lazy(() => z.object({ - method: z.literal('network.setExtraHeaders'), - params: Network.SetExtraHeadersParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.SetExtraHeadersParametersSchema = z.lazy(() => z.object({ - headers: z.array(Network.HeaderSchema), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - })); -})(Network || (Network = {})); -(function (Network) { - Network.SetExtraHeadersResultSchema = z.lazy(() => EmptyResultSchema); -})(Network || (Network = {})); -(function (Network) { - Network.AuthRequiredSchema = z.lazy(() => z.object({ - method: z.literal('network.authRequired'), - params: Network.AuthRequiredParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.AuthRequiredParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); -})(Network || (Network = {})); -(function (Network) { - Network.BeforeRequestSentSchema = z.lazy(() => z.object({ - method: z.literal('network.beforeRequestSent'), - params: Network.BeforeRequestSentParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.BeforeRequestSentParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - initiator: Network.InitiatorSchema.optional(), - }))); -})(Network || (Network = {})); -(function (Network) { - Network.FetchErrorSchema = z.lazy(() => z.object({ - method: z.literal('network.fetchError'), - params: Network.FetchErrorParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.FetchErrorParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - errorText: z.string(), - }))); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseCompletedSchema = z.lazy(() => z.object({ - method: z.literal('network.responseCompleted'), - params: Network.ResponseCompletedParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseCompletedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseStartedSchema = z.lazy(() => z.object({ - method: z.literal('network.responseStarted'), - params: Network.ResponseStartedParametersSchema, - })); -})(Network || (Network = {})); -(function (Network) { - Network.ResponseStartedParametersSchema = z.lazy(() => Network.BaseParametersSchema.and(z.object({ - response: Network.ResponseDataSchema, - }))); -})(Network || (Network = {})); -export const ScriptCommandSchema = z.lazy(() => z.union([ - Script.AddPreloadScriptSchema, - Script.CallFunctionSchema, - Script.DisownSchema, - Script.EvaluateSchema, - Script.GetRealmsSchema, - Script.RemovePreloadScriptSchema, -])); -export const ScriptResultSchema = z.lazy(() => z.union([ - Script.AddPreloadScriptResultSchema, - Script.CallFunctionResultSchema, - Script.DisownResultSchema, - Script.EvaluateResultSchema, - Script.GetRealmsResultSchema, - Script.RemovePreloadScriptResultSchema, -])); -export const ScriptEventSchema = z.lazy(() => z.union([ - Script.MessageSchema, - Script.RealmCreatedSchema, - Script.RealmDestroyedSchema, -])); -export var Script; -(function (Script) { - Script.ChannelSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.ChannelValueSchema = z.lazy(() => z.object({ - type: z.literal('channel'), - value: Script.ChannelPropertiesSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.ChannelPropertiesSchema = z.lazy(() => z.object({ - channel: Script.ChannelSchema, - serializationOptions: Script.SerializationOptionsSchema.optional(), - ownership: Script.ResultOwnershipSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.EvaluateResultSchema = z.lazy(() => z.union([ - Script.EvaluateResultSuccessSchema, - Script.EvaluateResultExceptionSchema, - ])); -})(Script || (Script = {})); -(function (Script) { - Script.EvaluateResultSuccessSchema = z.lazy(() => z.object({ - type: z.literal('success'), - result: Script.RemoteValueSchema, - realm: Script.RealmSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.EvaluateResultExceptionSchema = z.lazy(() => z.object({ - type: z.literal('exception'), - exceptionDetails: Script.ExceptionDetailsSchema, - realm: Script.RealmSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.ExceptionDetailsSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema, - exception: Script.RemoteValueSchema, - lineNumber: JsUintSchema, - stackTrace: Script.StackTraceSchema, - text: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.HandleSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.InternalIdSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.LocalValueSchema = z.lazy(() => z.union([ - Script.RemoteReferenceSchema, - Script.PrimitiveProtocolValueSchema, - Script.ChannelValueSchema, - Script.ArrayLocalValueSchema, - Script.DateLocalValueSchema, - Script.MapLocalValueSchema, - Script.ObjectLocalValueSchema, - Script.RegExpLocalValueSchema, - Script.SetLocalValueSchema, - ])); -})(Script || (Script = {})); -(function (Script) { - Script.ListLocalValueSchema = z.lazy(() => z.array(Script.LocalValueSchema)); -})(Script || (Script = {})); -(function (Script) { - Script.ArrayLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('array'), - value: Script.ListLocalValueSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.DateLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('date'), - value: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.MappingLocalValueSchema = z.lazy(() => z.array(z.tuple([ - z.union([Script.LocalValueSchema, z.string()]), - Script.LocalValueSchema, - ]))); -})(Script || (Script = {})); -(function (Script) { - Script.MapLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('map'), - value: Script.MappingLocalValueSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.ObjectLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('object'), - value: Script.MappingLocalValueSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RegExpValueSchema = z.lazy(() => z.object({ - pattern: z.string(), - flags: z.string().optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.RegExpLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('regexp'), - value: Script.RegExpValueSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.SetLocalValueSchema = z.lazy(() => z.object({ - type: z.literal('set'), - value: Script.ListLocalValueSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.PreloadScriptSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.RealmSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.PrimitiveProtocolValueSchema = z.lazy(() => z.union([ - Script.UndefinedValueSchema, - Script.NullValueSchema, - Script.StringValueSchema, - Script.NumberValueSchema, - Script.BooleanValueSchema, - Script.BigIntValueSchema, - ])); -})(Script || (Script = {})); -(function (Script) { - Script.UndefinedValueSchema = z.lazy(() => z.object({ - type: z.literal('undefined'), - })); -})(Script || (Script = {})); -(function (Script) { - Script.NullValueSchema = z.lazy(() => z.object({ - type: z.literal('null'), - })); -})(Script || (Script = {})); -(function (Script) { - Script.StringValueSchema = z.lazy(() => z.object({ - type: z.literal('string'), - value: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.SpecialNumberSchema = z.lazy(() => z.enum(['NaN', '-0', 'Infinity', '-Infinity'])); -})(Script || (Script = {})); -(function (Script) { - Script.NumberValueSchema = z.lazy(() => z.object({ - type: z.literal('number'), - value: z.union([z.number(), Script.SpecialNumberSchema]), - })); -})(Script || (Script = {})); -(function (Script) { - Script.BooleanValueSchema = z.lazy(() => z.object({ - type: z.literal('boolean'), - value: z.boolean(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.BigIntValueSchema = z.lazy(() => z.object({ - type: z.literal('bigint'), - value: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.RealmInfoSchema = z.lazy(() => z.union([ - Script.WindowRealmInfoSchema, - Script.DedicatedWorkerRealmInfoSchema, - Script.SharedWorkerRealmInfoSchema, - Script.ServiceWorkerRealmInfoSchema, - Script.WorkerRealmInfoSchema, - Script.PaintWorkletRealmInfoSchema, - Script.AudioWorkletRealmInfoSchema, - Script.WorkletRealmInfoSchema, - ])); -})(Script || (Script = {})); -(function (Script) { - Script.BaseRealmInfoSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - origin: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.WindowRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('window'), - context: BrowsingContext.BrowsingContextSchema, - userContext: Browser.UserContextSchema.optional(), - sandbox: z.string().optional(), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.DedicatedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('dedicated-worker'), - owners: z.tuple([Script.RealmSchema]), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.SharedWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('shared-worker'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.ServiceWorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('service-worker'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.WorkerRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('worker'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.PaintWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('paint-worklet'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.AudioWorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('audio-worklet'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.WorkletRealmInfoSchema = z.lazy(() => Script.BaseRealmInfoSchema.and(z.object({ - type: z.literal('worklet'), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.RealmTypeSchema = z.lazy(() => z.enum([ - 'window', - 'dedicated-worker', - 'shared-worker', - 'service-worker', - 'worker', - 'paint-worklet', - 'audio-worklet', - 'worklet', - ])); -})(Script || (Script = {})); -(function (Script) { - Script.RemoteReferenceSchema = z.lazy(() => z.union([Script.SharedReferenceSchema, Script.RemoteObjectReferenceSchema])); -})(Script || (Script = {})); -(function (Script) { - Script.SharedReferenceSchema = z.lazy(() => z - .object({ - sharedId: Script.SharedIdSchema, - handle: Script.HandleSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Script || (Script = {})); -(function (Script) { - Script.RemoteObjectReferenceSchema = z.lazy(() => z - .object({ - handle: Script.HandleSchema, - sharedId: Script.SharedIdSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Script || (Script = {})); -(function (Script) { - Script.RemoteValueSchema = z.lazy(() => z.union([ - Script.PrimitiveProtocolValueSchema, - Script.SymbolRemoteValueSchema, - Script.ArrayRemoteValueSchema, - Script.ObjectRemoteValueSchema, - Script.FunctionRemoteValueSchema, - Script.RegExpRemoteValueSchema, - Script.DateRemoteValueSchema, - Script.MapRemoteValueSchema, - Script.SetRemoteValueSchema, - Script.WeakMapRemoteValueSchema, - Script.WeakSetRemoteValueSchema, - Script.GeneratorRemoteValueSchema, - Script.ErrorRemoteValueSchema, - Script.ProxyRemoteValueSchema, - Script.PromiseRemoteValueSchema, - Script.TypedArrayRemoteValueSchema, - Script.ArrayBufferRemoteValueSchema, - Script.NodeListRemoteValueSchema, - Script.HtmlCollectionRemoteValueSchema, - Script.NodeRemoteValueSchema, - Script.WindowProxyRemoteValueSchema, - ])); -})(Script || (Script = {})); -(function (Script) { - Script.ListRemoteValueSchema = z.lazy(() => z.array(Script.RemoteValueSchema)); -})(Script || (Script = {})); -(function (Script) { - Script.MappingRemoteValueSchema = z.lazy(() => z.array(z.tuple([ - z.union([Script.RemoteValueSchema, z.string()]), - Script.RemoteValueSchema, - ]))); -})(Script || (Script = {})); -(function (Script) { - Script.SymbolRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('symbol'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.ArrayRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('array'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.ObjectRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('object'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.MappingRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.FunctionRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('function'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.RegExpRemoteValueSchema = z.lazy(() => Script.RegExpLocalValueSchema.and(z.object({ - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.DateRemoteValueSchema = z.lazy(() => Script.DateLocalValueSchema.and(z.object({ - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - }))); -})(Script || (Script = {})); -(function (Script) { - Script.MapRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('map'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.MappingRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.SetRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('set'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.WeakMapRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('weakmap'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.WeakSetRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('weakset'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.GeneratorRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('generator'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.ErrorRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('error'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.ProxyRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('proxy'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.PromiseRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('promise'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.TypedArrayRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('typedarray'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.ArrayBufferRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('arraybuffer'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.NodeListRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('nodelist'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.HtmlCollectionRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('htmlcollection'), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.ListRemoteValueSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.NodeRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('node'), - sharedId: Script.SharedIdSchema.optional(), - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - value: Script.NodePropertiesSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.NodePropertiesSchema = z.lazy(() => z.object({ - nodeType: JsUintSchema, - childNodeCount: JsUintSchema, - attributes: z.record(z.string(), z.string()).optional(), - children: z.array(Script.NodeRemoteValueSchema).optional(), - localName: z.string().optional(), - mode: z.enum(['open', 'closed']).optional(), - namespaceURI: z.string().optional(), - nodeValue: z.string().optional(), - shadowRoot: z.union([Script.NodeRemoteValueSchema, z.null()]).optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.WindowProxyRemoteValueSchema = z.lazy(() => z.object({ - type: z.literal('window'), - value: Script.WindowProxyPropertiesSchema, - handle: Script.HandleSchema.optional(), - internalId: Script.InternalIdSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.WindowProxyPropertiesSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.ResultOwnershipSchema = z.lazy(() => z.enum(['root', 'none'])); -})(Script || (Script = {})); -(function (Script) { - Script.SerializationOptionsSchema = z.lazy(() => z.object({ - maxDomDepth: z.union([JsUintSchema, z.null()]).default(0).optional(), - maxObjectDepth: z - .union([JsUintSchema, z.null()]) - .default(null) - .optional(), - includeShadowTree: z - .enum(['none', 'open', 'all']) - .default('none') - .optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.SharedIdSchema = z.lazy(() => z.string()); -})(Script || (Script = {})); -(function (Script) { - Script.StackFrameSchema = z.lazy(() => z.object({ - columnNumber: JsUintSchema, - functionName: z.string(), - lineNumber: JsUintSchema, - url: z.string(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.StackTraceSchema = z.lazy(() => z.object({ - callFrames: z.array(Script.StackFrameSchema), - })); -})(Script || (Script = {})); -(function (Script) { - Script.SourceSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - context: BrowsingContext.BrowsingContextSchema.optional(), - userContext: Browser.UserContextSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.RealmTargetSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.ContextTargetSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - sandbox: z.string().optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.TargetSchema = z.lazy(() => z.union([Script.ContextTargetSchema, Script.RealmTargetSchema])); -})(Script || (Script = {})); -(function (Script) { - Script.AddPreloadScriptSchema = z.lazy(() => z.object({ - method: z.literal('script.addPreloadScript'), - params: Script.AddPreloadScriptParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.AddPreloadScriptParametersSchema = z.lazy(() => z.object({ - functionDeclaration: z.string(), - arguments: z.array(Script.ChannelValueSchema).optional(), - contexts: z - .array(BrowsingContext.BrowsingContextSchema) - .min(1) - .optional(), - userContexts: z.array(Browser.UserContextSchema).min(1).optional(), - sandbox: z.string().optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.AddPreloadScriptResultSchema = z.lazy(() => z.object({ - script: Script.PreloadScriptSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.DisownSchema = z.lazy(() => z.object({ - method: z.literal('script.disown'), - params: Script.DisownParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.DisownParametersSchema = z.lazy(() => z.object({ - handles: z.array(Script.HandleSchema), - target: Script.TargetSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.DisownResultSchema = z.lazy(() => EmptyResultSchema); -})(Script || (Script = {})); -(function (Script) { - Script.CallFunctionSchema = z.lazy(() => z.object({ - method: z.literal('script.callFunction'), - params: Script.CallFunctionParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.CallFunctionParametersSchema = z.lazy(() => z.object({ - functionDeclaration: z.string(), - awaitPromise: z.boolean(), - target: Script.TargetSchema, - arguments: z.array(Script.LocalValueSchema).optional(), - resultOwnership: Script.ResultOwnershipSchema.optional(), - serializationOptions: Script.SerializationOptionsSchema.optional(), - this: Script.LocalValueSchema.optional(), - userActivation: z.boolean().default(false).optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.CallFunctionResultSchema = z.lazy(() => Script.EvaluateResultSchema); -})(Script || (Script = {})); -(function (Script) { - Script.EvaluateSchema = z.lazy(() => z.object({ - method: z.literal('script.evaluate'), - params: Script.EvaluateParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.EvaluateParametersSchema = z.lazy(() => z.object({ - expression: z.string(), - target: Script.TargetSchema, - awaitPromise: z.boolean(), - resultOwnership: Script.ResultOwnershipSchema.optional(), - serializationOptions: Script.SerializationOptionsSchema.optional(), - userActivation: z.boolean().default(false).optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.GetRealmsSchema = z.lazy(() => z.object({ - method: z.literal('script.getRealms'), - params: Script.GetRealmsParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.GetRealmsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema.optional(), - type: Script.RealmTypeSchema.optional(), - })); -})(Script || (Script = {})); -(function (Script) { - Script.GetRealmsResultSchema = z.lazy(() => z.object({ - realms: z.array(Script.RealmInfoSchema), - })); -})(Script || (Script = {})); -(function (Script) { - Script.RemovePreloadScriptSchema = z.lazy(() => z.object({ - method: z.literal('script.removePreloadScript'), - params: Script.RemovePreloadScriptParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RemovePreloadScriptParametersSchema = z.lazy(() => z.object({ - script: Script.PreloadScriptSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RemovePreloadScriptResultSchema = z.lazy(() => EmptyResultSchema); -})(Script || (Script = {})); -(function (Script) { - Script.MessageSchema = z.lazy(() => z.object({ - method: z.literal('script.message'), - params: Script.MessageParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.MessageParametersSchema = z.lazy(() => z.object({ - channel: Script.ChannelSchema, - data: Script.RemoteValueSchema, - source: Script.SourceSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RealmCreatedSchema = z.lazy(() => z.object({ - method: z.literal('script.realmCreated'), - params: Script.RealmInfoSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RealmDestroyedSchema = z.lazy(() => z.object({ - method: z.literal('script.realmDestroyed'), - params: Script.RealmDestroyedParametersSchema, - })); -})(Script || (Script = {})); -(function (Script) { - Script.RealmDestroyedParametersSchema = z.lazy(() => z.object({ - realm: Script.RealmSchema, - })); -})(Script || (Script = {})); -export const StorageCommandSchema = z.lazy(() => z.union([ - Storage.DeleteCookiesSchema, - Storage.GetCookiesSchema, - Storage.SetCookieSchema, -])); -export const StorageResultSchema = z.lazy(() => z.union([ - Storage.DeleteCookiesResultSchema, - Storage.GetCookiesResultSchema, - Storage.SetCookieResultSchema, -])); -export var Storage; -(function (Storage) { - Storage.PartitionKeySchema = z.lazy(() => z - .object({ - userContext: z.string().optional(), - sourceOrigin: z.string().optional(), - }) - .and(ExtensibleSchema)); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.GetCookiesSchema = z.lazy(() => z.object({ - method: z.literal('storage.getCookies'), - params: Storage.GetCookiesParametersSchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.CookieFilterSchema = z.lazy(() => z - .object({ - name: z.string().optional(), - value: Network.BytesValueSchema.optional(), - domain: z.string().optional(), - path: z.string().optional(), - size: JsUintSchema.optional(), - httpOnly: z.boolean().optional(), - secure: z.boolean().optional(), - sameSite: Network.SameSiteSchema.optional(), - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.BrowsingContextPartitionDescriptorSchema = z.lazy(() => z.object({ - type: z.literal('context'), - context: BrowsingContext.BrowsingContextSchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.StorageKeyPartitionDescriptorSchema = z.lazy(() => z - .object({ - type: z.literal('storageKey'), - userContext: z.string().optional(), - sourceOrigin: z.string().optional(), - }) - .and(ExtensibleSchema)); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.PartitionDescriptorSchema = z.lazy(() => z.union([ - Storage.BrowsingContextPartitionDescriptorSchema, - Storage.StorageKeyPartitionDescriptorSchema, - ])); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.GetCookiesParametersSchema = z.lazy(() => z.object({ - filter: Storage.CookieFilterSchema.optional(), - partition: Storage.PartitionDescriptorSchema.optional(), - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.GetCookiesResultSchema = z.lazy(() => z.object({ - cookies: z.array(Network.CookieSchema), - partitionKey: Storage.PartitionKeySchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.SetCookieSchema = z.lazy(() => z.object({ - method: z.literal('storage.setCookie'), - params: Storage.SetCookieParametersSchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.PartialCookieSchema = z.lazy(() => z - .object({ - name: z.string(), - value: Network.BytesValueSchema, - domain: z.string(), - path: z.string().optional(), - httpOnly: z.boolean().optional(), - secure: z.boolean().optional(), - sameSite: Network.SameSiteSchema.optional(), - expiry: JsUintSchema.optional(), - }) - .and(ExtensibleSchema)); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.SetCookieParametersSchema = z.lazy(() => z.object({ - cookie: Storage.PartialCookieSchema, - partition: Storage.PartitionDescriptorSchema.optional(), - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.SetCookieResultSchema = z.lazy(() => z.object({ - partitionKey: Storage.PartitionKeySchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.DeleteCookiesSchema = z.lazy(() => z.object({ - method: z.literal('storage.deleteCookies'), - params: Storage.DeleteCookiesParametersSchema, - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.DeleteCookiesParametersSchema = z.lazy(() => z.object({ - filter: Storage.CookieFilterSchema.optional(), - partition: Storage.PartitionDescriptorSchema.optional(), - })); -})(Storage || (Storage = {})); -(function (Storage) { - Storage.DeleteCookiesResultSchema = z.lazy(() => z.object({ - partitionKey: Storage.PartitionKeySchema, - })); -})(Storage || (Storage = {})); -export const LogEventSchema = z.lazy(() => Log.EntryAddedSchema); -export var Log; -(function (Log) { - Log.LevelSchema = z.lazy(() => z.enum(['debug', 'info', 'warn', 'error'])); -})(Log || (Log = {})); -(function (Log) { - Log.EntrySchema = z.lazy(() => z.union([ - Log.GenericLogEntrySchema, - Log.ConsoleLogEntrySchema, - Log.JavascriptLogEntrySchema, - ])); -})(Log || (Log = {})); -(function (Log) { - Log.BaseLogEntrySchema = z.lazy(() => z.object({ - level: Log.LevelSchema, - source: Script.SourceSchema, - text: z.union([z.string(), z.null()]), - timestamp: JsUintSchema, - stackTrace: Script.StackTraceSchema.optional(), - })); -})(Log || (Log = {})); -(function (Log) { - Log.GenericLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.string(), - }))); -})(Log || (Log = {})); -(function (Log) { - Log.ConsoleLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.literal('console'), - method: z.string(), - args: z.array(Script.RemoteValueSchema), - }))); -})(Log || (Log = {})); -(function (Log) { - Log.JavascriptLogEntrySchema = z.lazy(() => Log.BaseLogEntrySchema.and(z.object({ - type: z.literal('javascript'), - }))); -})(Log || (Log = {})); -(function (Log) { - Log.EntryAddedSchema = z.lazy(() => z.object({ - method: z.literal('log.entryAdded'), - params: Log.EntrySchema, - })); -})(Log || (Log = {})); -export const InputCommandSchema = z.lazy(() => z.union([ - Input.PerformActionsSchema, - Input.ReleaseActionsSchema, - Input.SetFilesSchema, -])); -export const InputResultSchema = z.lazy(() => z.union([ - Input.PerformActionsResultSchema, - Input.ReleaseActionsResultSchema, - Input.SetFilesResultSchema, -])); -export const InputEventSchema = z.lazy(() => Input.FileDialogOpenedSchema); -export var Input; -(function (Input) { - Input.ElementOriginSchema = z.lazy(() => z.object({ - type: z.literal('element'), - element: Script.SharedReferenceSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.PerformActionsSchema = z.lazy(() => z.object({ - method: z.literal('input.performActions'), - params: Input.PerformActionsParametersSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.PerformActionsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - actions: z.array(Input.SourceActionsSchema), - })); -})(Input || (Input = {})); -(function (Input) { - Input.SourceActionsSchema = z.lazy(() => z.union([ - Input.NoneSourceActionsSchema, - Input.KeySourceActionsSchema, - Input.PointerSourceActionsSchema, - Input.WheelSourceActionsSchema, - ])); -})(Input || (Input = {})); -(function (Input) { - Input.NoneSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('none'), - id: z.string(), - actions: z.array(Input.NoneSourceActionSchema), - })); -})(Input || (Input = {})); -(function (Input) { - Input.NoneSourceActionSchema = z.lazy(() => Input.PauseActionSchema); -})(Input || (Input = {})); -(function (Input) { - Input.KeySourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('key'), - id: z.string(), - actions: z.array(Input.KeySourceActionSchema), - })); -})(Input || (Input = {})); -(function (Input) { - Input.KeySourceActionSchema = z.lazy(() => z.union([ - Input.PauseActionSchema, - Input.KeyDownActionSchema, - Input.KeyUpActionSchema, - ])); -})(Input || (Input = {})); -(function (Input) { - Input.PointerSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('pointer'), - id: z.string(), - parameters: Input.PointerParametersSchema.optional(), - actions: z.array(Input.PointerSourceActionSchema), - })); -})(Input || (Input = {})); -(function (Input) { - Input.PointerTypeSchema = z.lazy(() => z.enum(['mouse', 'pen', 'touch'])); -})(Input || (Input = {})); -(function (Input) { - Input.PointerParametersSchema = z.lazy(() => z.object({ - pointerType: Input.PointerTypeSchema.default('mouse').optional(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.PointerSourceActionSchema = z.lazy(() => z.union([ - Input.PauseActionSchema, - Input.PointerDownActionSchema, - Input.PointerUpActionSchema, - Input.PointerMoveActionSchema, - ])); -})(Input || (Input = {})); -(function (Input) { - Input.WheelSourceActionsSchema = z.lazy(() => z.object({ - type: z.literal('wheel'), - id: z.string(), - actions: z.array(Input.WheelSourceActionSchema), - })); -})(Input || (Input = {})); -(function (Input) { - Input.WheelSourceActionSchema = z.lazy(() => z.union([Input.PauseActionSchema, Input.WheelScrollActionSchema])); -})(Input || (Input = {})); -(function (Input) { - Input.PauseActionSchema = z.lazy(() => z.object({ - type: z.literal('pause'), - duration: JsUintSchema.optional(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.KeyDownActionSchema = z.lazy(() => z.object({ - type: z.literal('keyDown'), - value: z.string(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.KeyUpActionSchema = z.lazy(() => z.object({ - type: z.literal('keyUp'), - value: z.string(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.PointerUpActionSchema = z.lazy(() => z.object({ - type: z.literal('pointerUp'), - button: JsUintSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.PointerDownActionSchema = z.lazy(() => z - .object({ - type: z.literal('pointerDown'), - button: JsUintSchema, - }) - .and(Input.PointerCommonPropertiesSchema)); -})(Input || (Input = {})); -(function (Input) { - Input.PointerMoveActionSchema = z.lazy(() => z - .object({ - type: z.literal('pointerMove'), - x: z.number(), - y: z.number(), - duration: JsUintSchema.optional(), - origin: Input.OriginSchema.optional(), - }) - .and(Input.PointerCommonPropertiesSchema)); -})(Input || (Input = {})); -(function (Input) { - Input.WheelScrollActionSchema = z.lazy(() => z.object({ - type: z.literal('scroll'), - x: JsIntSchema, - y: JsIntSchema, - deltaX: JsIntSchema, - deltaY: JsIntSchema, - duration: JsUintSchema.optional(), - origin: Input.OriginSchema.default('viewport').optional(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.PointerCommonPropertiesSchema = z.lazy(() => z.object({ - width: JsUintSchema.optional(), - height: JsUintSchema.optional(), - pressure: z.number().gte(0).lte(1).optional(), - tangentialPressure: z.number().gte(-1).lte(1).optional(), - twist: z.number().int().nonnegative().gte(0).lte(359).optional(), - altitudeAngle: z.number().gte(0).lte(1.5707963267948966).optional(), - azimuthAngle: z.number().gte(0).lte(6.283185307179586).optional(), - })); -})(Input || (Input = {})); -(function (Input) { - Input.OriginSchema = z.lazy(() => z.union([ - z.literal('viewport'), - z.literal('pointer'), - Input.ElementOriginSchema, - ])); -})(Input || (Input = {})); -(function (Input) { - Input.PerformActionsResultSchema = z.lazy(() => EmptyResultSchema); -})(Input || (Input = {})); -(function (Input) { - Input.ReleaseActionsSchema = z.lazy(() => z.object({ - method: z.literal('input.releaseActions'), - params: Input.ReleaseActionsParametersSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.ReleaseActionsParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.ReleaseActionsResultSchema = z.lazy(() => EmptyResultSchema); -})(Input || (Input = {})); -(function (Input) { - Input.SetFilesSchema = z.lazy(() => z.object({ - method: z.literal('input.setFiles'), - params: Input.SetFilesParametersSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.SetFilesParametersSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - element: Script.SharedReferenceSchema, - files: z.array(z.string()), - })); -})(Input || (Input = {})); -(function (Input) { - Input.SetFilesResultSchema = z.lazy(() => EmptyResultSchema); -})(Input || (Input = {})); -(function (Input) { - Input.FileDialogOpenedSchema = z.lazy(() => z.object({ - method: z.literal('input.fileDialogOpened'), - params: Input.FileDialogInfoSchema, - })); -})(Input || (Input = {})); -(function (Input) { - Input.FileDialogInfoSchema = z.lazy(() => z.object({ - context: BrowsingContext.BrowsingContextSchema, - userContext: Browser.UserContextSchema.optional(), - element: Script.SharedReferenceSchema.optional(), - multiple: z.boolean(), - })); -})(Input || (Input = {})); -export const WebExtensionCommandSchema = z.lazy(() => z.union([WebExtension.InstallSchema, WebExtension.UninstallSchema])); -export const WebExtensionResultSchema = z.lazy(() => z.union([ - WebExtension.InstallResultSchema, - WebExtension.UninstallResultSchema, -])); -export var WebExtension; -(function (WebExtension) { - WebExtension.ExtensionSchema = z.lazy(() => z.string()); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.InstallSchema = z.lazy(() => z.object({ - method: z.literal('webExtension.install'), - params: WebExtension.InstallParametersSchema, - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.InstallParametersSchema = z.lazy(() => z.object({ - extensionData: WebExtension.ExtensionDataSchema, - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.ExtensionDataSchema = z.lazy(() => z.union([ - WebExtension.ExtensionArchivePathSchema, - WebExtension.ExtensionBase64EncodedSchema, - WebExtension.ExtensionPathSchema, - ])); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.ExtensionPathSchema = z.lazy(() => z.object({ - type: z.literal('path'), - path: z.string(), - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.ExtensionArchivePathSchema = z.lazy(() => z.object({ - type: z.literal('archivePath'), - path: z.string(), - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.ExtensionBase64EncodedSchema = z.lazy(() => z.object({ - type: z.literal('base64'), - value: z.string(), - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.InstallResultSchema = z.lazy(() => z.object({ - extension: WebExtension.ExtensionSchema, - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.UninstallSchema = z.lazy(() => z.object({ - method: z.literal('webExtension.uninstall'), - params: WebExtension.UninstallParametersSchema, - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.UninstallParametersSchema = z.lazy(() => z.object({ - extension: WebExtension.ExtensionSchema, - })); -})(WebExtension || (WebExtension = {})); -(function (WebExtension) { - WebExtension.UninstallResultSchema = z.lazy(() => EmptyResultSchema); -})(WebExtension || (WebExtension = {})); -//# sourceMappingURL=webdriver-bidi.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js.map b/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js.map deleted file mode 100644 index 4ffa3bb..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/generated/webdriver-bidi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi.js","sourceRoot":"","sources":["../../../src/protocol-parser/generated/webdriver-bidi.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.d.ts b/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.d.ts deleted file mode 100644 index 253fb20..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.d.ts +++ /dev/null @@ -1,177 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @fileoverview Provides parsing and validator for WebDriver BiDi protocol. - * Parser types should match the `../protocol` types. - */ -import { z, type ZodType } from 'zod'; -import type * as Protocol from '../protocol/protocol.js'; -export declare function parseObject(obj: unknown, schema: T): z.infer; -/** @see https://w3c.github.io/webdriver-bidi/#module-browser */ -export declare namespace Browser { - function parseCreateUserContextParameters(params: unknown): Protocol.Browser.CreateUserContextParameters; - function parseRemoveUserContextParameters(params: unknown): Protocol.Browser.RemoveUserContextParameters; - function parseSetClientWindowStateParameters(params: unknown): Protocol.Browser.SetClientWindowStateParameters; - function parseSetDownloadBehaviorParameters(params: unknown): Protocol.Browser.SetDownloadBehaviorParameters; -} -/** @see https://w3c.github.io/webdriver-bidi/#module-network */ -export declare namespace Network { - function parseAddDataCollectorParameters(params: unknown): Protocol.Network.AddDataCollectorParameters; - function parseAddInterceptParameters(params: unknown): Protocol.Network.AddInterceptParameters; - function parseContinueRequestParameters(params: unknown): { - request: string; - url?: string | undefined; - cookies?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - method?: string | undefined; - body?: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - } | undefined; - headers?: { - value: { - type: "string"; - value: string; - } | { - type: "base64"; - value: string; - }; - name: string; - }[] | undefined; - }; - function parseContinueResponseParameters(params: unknown): Protocol.Network.ContinueResponseParameters; - function parseContinueWithAuthParameters(params: unknown): { - request: string; - } & ({ - credentials: { - type: "password"; - password: string; - username: string; - }; - action: "provideCredentials"; - } | { - action: "default" | "cancel"; - }); - function parseDisownDataParameters(params: unknown): Protocol.Network.DisownDataParameters; - function parseFailRequestParameters(params: unknown): { - request: string; - }; - function parseGetDataParameters(params: unknown): Protocol.Network.GetDataParameters; - function parseProvideResponseParameters(params: unknown): Protocol.Network.ProvideResponseParameters; - function parseRemoveDataCollectorParameters(params: unknown): Protocol.Network.RemoveDataCollectorParameters; - function parseRemoveInterceptParameters(params: unknown): { - intercept: string; - }; - function parseSetCacheBehaviorParameters(params: unknown): Protocol.Network.SetCacheBehaviorParameters; - function parseSetExtraHeadersParameters(params: unknown): Protocol.Network.SetExtraHeadersParameters; -} -/** @see https://w3c.github.io/webdriver-bidi/#module-script */ -export declare namespace Script { - function parseAddPreloadScriptParams(params: unknown): Protocol.Script.AddPreloadScriptParameters; - function parseCallFunctionParams(params: unknown): Protocol.Script.CallFunctionParameters; - function parseDisownParams(params: unknown): Protocol.Script.DisownParameters; - function parseEvaluateParams(params: unknown): Protocol.Script.EvaluateParameters; - function parseGetRealmsParams(params: unknown): Protocol.Script.GetRealmsParameters; - function parseRemovePreloadScriptParams(params: unknown): { - script: string; - }; -} -/** @see https://w3c.github.io/webdriver-bidi/#module-browsingContext */ -export declare namespace BrowsingContext { - function parseActivateParams(params: unknown): { - context: string; - }; - function parseCaptureScreenshotParams(params: unknown): Protocol.BrowsingContext.CaptureScreenshotParameters; - function parseCloseParams(params: unknown): Protocol.BrowsingContext.CloseParameters; - function parseCreateParams(params: unknown): Protocol.BrowsingContext.CreateParameters; - function parseGetTreeParams(params: unknown): Protocol.BrowsingContext.GetTreeParameters; - function parseHandleUserPromptParameters(params: unknown): Protocol.BrowsingContext.HandleUserPromptParameters; - function parseLocateNodesParams(params: unknown): Protocol.BrowsingContext.LocateNodesParameters; - function parseNavigateParams(params: unknown): Protocol.BrowsingContext.NavigateParameters; - function parsePrintParams(params: unknown): Protocol.BrowsingContext.PrintParameters; - function parseReloadParams(params: unknown): Protocol.BrowsingContext.ReloadParameters; - function parseSetBypassCspParams(params: unknown): Protocol.BrowsingContext.SetBypassCspParameters; - function parseSetViewportParams(params: unknown): Protocol.BrowsingContext.SetViewportParameters; - function parseTraverseHistoryParams(params: unknown): Protocol.BrowsingContext.TraverseHistoryParameters; -} -/** @see https://w3c.github.io/webdriver-bidi/#module-session */ -export declare namespace Session { - function parseSubscribeParams(params: unknown): Protocol.Session.SubscribeParameters; - function parseUnsubscribeParams(params: unknown): Protocol.Session.UnsubscribeParameters; -} -export declare namespace Emulation { - function parseSetClientHintsOverrideParams(params: unknown): Protocol.UAClientHints.UserAgentClientHints.SetClientHintsOverrideCommand["params"]; - function parseSetForcedColorsModeThemeOverrideParams(params: unknown): Protocol.Emulation.SetForcedColorsModeThemeOverrideParameters; - function parseSetGeolocationOverrideParams(params: unknown): Protocol.Emulation.SetGeolocationOverrideParameters; - function parseSetLocaleOverrideParams(params: unknown): Protocol.Emulation.SetLocaleOverrideParameters; - function parseSetNetworkConditionsParams(params: unknown): Protocol.Emulation.SetNetworkConditionsParameters; - function parseSetScreenOrientationOverrideParams(params: unknown): Protocol.Emulation.SetScreenOrientationOverrideParameters; - function parseSetScreenSettingsOverrideParams(params: unknown): Protocol.Emulation.SetScreenSettingsOverrideParameters; - function parseSetScriptingEnabledParams(params: unknown): Protocol.Emulation.SetScriptingEnabledParameters; - function parseSetScrollbarTypeOverrideParams(params: unknown): Protocol.Emulation.SetScrollbarTypeOverrideParameters; - function parseSetTimezoneOverrideParams(params: unknown): Protocol.Emulation.SetTimezoneOverrideParameters; - function parseSetTouchOverrideParams(params: unknown): Protocol.Emulation.SetTouchOverrideParameters; - function parseSetUserAgentOverrideParams(params: unknown): Protocol.Emulation.SetUserAgentOverrideParameters; -} -export declare namespace Input { - function parsePerformActionsParams(params: unknown): Protocol.Input.PerformActionsParameters; - function parseReleaseActionsParams(params: unknown): Protocol.Input.ReleaseActionsParameters; - function parseSetFilesParams(params: unknown): Protocol.Input.SetFilesParameters; -} -export declare namespace Storage { - function parseDeleteCookiesParams(params: unknown): Protocol.Storage.DeleteCookiesParameters; - function parseGetCookiesParams(params: unknown): Protocol.Storage.GetCookiesParameters; - function parseSetCookieParams(params: unknown): Protocol.Storage.SetCookieParameters; -} -export declare namespace Cdp { - function parseGetSessionRequest(params: unknown): Protocol.Cdp.GetSessionParameters; - function parseResolveRealmRequest(params: unknown): Protocol.Cdp.ResolveRealmParameters; - function parseSendCommandRequest(params: unknown): Protocol.Cdp.SendCommandParameters; -} -export declare namespace Permissions { - function parseSetPermissionsParams(params: unknown): Protocol.Permissions.SetPermissionParameters; -} -export declare namespace Bluetooth { - function parseDisableSimulationParameters(params: unknown): Protocol.Bluetooth.DisableSimulationParameters; - function parseHandleRequestDevicePromptParams(params: unknown): Protocol.Bluetooth.HandleRequestDevicePromptParameters; - function parseSimulateAdapterParams(params: unknown): Protocol.Bluetooth.SimulateAdapterParameters; - function parseSimulateAdvertisementParams(params: unknown): Protocol.Bluetooth.SimulateAdvertisementParameters; - function parseSimulateCharacteristicParams(params: unknown): Protocol.Bluetooth.SimulateCharacteristicParameters; - function parseSimulateCharacteristicResponseParams(params: unknown): Protocol.Bluetooth.SimulateCharacteristicResponseParameters; - function parseSimulateDescriptorParams(params: unknown): Protocol.Bluetooth.SimulateDescriptorParameters; - function parseSimulateDescriptorResponseParams(params: unknown): Protocol.Bluetooth.SimulateDescriptorResponseParameters; - function parseSimulateGattConnectionResponseParams(params: unknown): Protocol.Bluetooth.SimulateGattConnectionResponseParameters; - function parseSimulateGattDisconnectionParams(params: unknown): Protocol.Bluetooth.SimulateGattDisconnectionParameters; - function parseSimulatePreconnectedPeripheralParams(params: unknown): Protocol.Bluetooth.SimulatePreconnectedPeripheralParameters; - function parseSimulateServiceParams(params: unknown): Protocol.Bluetooth.SimulateServiceParameters; -} -/** @see https://w3c.github.io/webdriver-bidi/#module-webExtension */ -export declare namespace WebModule { - function parseInstallParams(params: unknown): Protocol.WebExtension.InstallParameters; - function parseUninstallParams(params: unknown): Protocol.WebExtension.UninstallParameters; -} diff --git a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js b/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js deleted file mode 100644 index a7de906..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js +++ /dev/null @@ -1,465 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @fileoverview Provides parsing and validator for WebDriver BiDi protocol. - * Parser types should match the `../protocol` types. - */ -import { z } from 'zod'; -import { InvalidArgumentException } from '../protocol/protocol.js'; -import * as WebDriverBidiBluetooth from './generated/webdriver-bidi-bluetooth.js'; -import * as WebDriverBidiPermissions from './generated/webdriver-bidi-permissions.js'; -import * as WebDriverBidiUAClientHints from './generated/webdriver-bidi-ua-client-hints.js'; -import * as WebDriverBidi from './generated/webdriver-bidi.js'; -export function parseObject(obj, schema) { - const parseResult = schema.safeParse(obj); - if (parseResult.success) { - return parseResult.data; - } - const errorMessage = parseResult.error.errors - .map((e) => `${e.message} in ` + - `${e.path.map((p) => JSON.stringify(p)).join('/')}.`) - .join(' '); - throw new InvalidArgumentException(errorMessage); -} -/** @see https://w3c.github.io/webdriver-bidi/#module-browser */ -export var Browser; -(function (Browser) { - // keep-sorted start block=yes - function parseCreateUserContextParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Browser.CreateUserContextParametersSchema); - } - Browser.parseCreateUserContextParameters = parseCreateUserContextParameters; - function parseRemoveUserContextParameters(params) { - return parseObject(params, WebDriverBidi.Browser.RemoveUserContextParametersSchema); - } - Browser.parseRemoveUserContextParameters = parseRemoveUserContextParameters; - function parseSetClientWindowStateParameters(params) { - return parseObject(params, WebDriverBidi.Browser.SetClientWindowStateParametersSchema); - } - Browser.parseSetClientWindowStateParameters = parseSetClientWindowStateParameters; - function parseSetDownloadBehaviorParameters(params) { - return parseObject(params, WebDriverBidi.Browser.SetDownloadBehaviorParametersSchema); - } - Browser.parseSetDownloadBehaviorParameters = parseSetDownloadBehaviorParameters; - // keep-sorted end -})(Browser || (Browser = {})); -/** @see https://w3c.github.io/webdriver-bidi/#module-network */ -export var Network; -(function (Network) { - // keep-sorted start block=yes - function parseAddDataCollectorParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Network.AddDataCollectorParametersSchema); - } - Network.parseAddDataCollectorParameters = parseAddDataCollectorParameters; - function parseAddInterceptParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Network.AddInterceptParametersSchema); - } - Network.parseAddInterceptParameters = parseAddInterceptParameters; - function parseContinueRequestParameters(params) { - return parseObject(params, WebDriverBidi.Network.ContinueRequestParametersSchema); - } - Network.parseContinueRequestParameters = parseContinueRequestParameters; - function parseContinueResponseParameters(params) { - // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed. - return parseObject(params, WebDriverBidi.Network.ContinueResponseParametersSchema); - } - Network.parseContinueResponseParameters = parseContinueResponseParameters; - function parseContinueWithAuthParameters(params) { - return parseObject(params, WebDriverBidi.Network.ContinueWithAuthParametersSchema); - } - Network.parseContinueWithAuthParameters = parseContinueWithAuthParameters; - function parseDisownDataParameters(params) { - return parseObject(params, WebDriverBidi.Network.DisownDataParametersSchema); - } - Network.parseDisownDataParameters = parseDisownDataParameters; - function parseFailRequestParameters(params) { - return parseObject(params, WebDriverBidi.Network.FailRequestParametersSchema); - } - Network.parseFailRequestParameters = parseFailRequestParameters; - function parseGetDataParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Network.GetDataParametersSchema); - } - Network.parseGetDataParameters = parseGetDataParameters; - function parseProvideResponseParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Network.ProvideResponseParametersSchema); - } - Network.parseProvideResponseParameters = parseProvideResponseParameters; - function parseRemoveDataCollectorParameters(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - return parseObject(params, WebDriverBidi.Network.RemoveDataCollectorParametersSchema); - } - Network.parseRemoveDataCollectorParameters = parseRemoveDataCollectorParameters; - function parseRemoveInterceptParameters(params) { - return parseObject(params, WebDriverBidi.Network.RemoveInterceptParametersSchema); - } - Network.parseRemoveInterceptParameters = parseRemoveInterceptParameters; - function parseSetCacheBehaviorParameters(params) { - return parseObject(params, WebDriverBidi.Network.SetCacheBehaviorParametersSchema); - } - Network.parseSetCacheBehaviorParameters = parseSetCacheBehaviorParameters; - function parseSetExtraHeadersParameters(params) { - return parseObject(params, WebDriverBidi.Network.SetExtraHeadersParametersSchema); - } - Network.parseSetExtraHeadersParameters = parseSetExtraHeadersParameters; - // keep-sorted end -})(Network || (Network = {})); -/** @see https://w3c.github.io/webdriver-bidi/#module-script */ -export var Script; -(function (Script) { - // keep-sorted start block=yes - function parseAddPreloadScriptParams(params) { - return parseObject(params, WebDriverBidi.Script.AddPreloadScriptParametersSchema); - } - Script.parseAddPreloadScriptParams = parseAddPreloadScriptParams; - function parseCallFunctionParams(params) { - return parseObject(params, WebDriverBidi.Script.CallFunctionParametersSchema); - } - Script.parseCallFunctionParams = parseCallFunctionParams; - function parseDisownParams(params) { - return parseObject(params, WebDriverBidi.Script.DisownParametersSchema); - } - Script.parseDisownParams = parseDisownParams; - function parseEvaluateParams(params) { - return parseObject(params, WebDriverBidi.Script.EvaluateParametersSchema); - } - Script.parseEvaluateParams = parseEvaluateParams; - function parseGetRealmsParams(params) { - return parseObject(params, WebDriverBidi.Script.GetRealmsParametersSchema); - } - Script.parseGetRealmsParams = parseGetRealmsParams; - function parseRemovePreloadScriptParams(params) { - return parseObject(params, WebDriverBidi.Script.RemovePreloadScriptParametersSchema); - } - Script.parseRemovePreloadScriptParams = parseRemovePreloadScriptParams; - // keep-sorted end -})(Script || (Script = {})); -/** @see https://w3c.github.io/webdriver-bidi/#module-browsingContext */ -export var BrowsingContext; -(function (BrowsingContext) { - // keep-sorted start block=yes - function parseActivateParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.ActivateParametersSchema); - } - BrowsingContext.parseActivateParams = parseActivateParams; - function parseCaptureScreenshotParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.CaptureScreenshotParametersSchema); - } - BrowsingContext.parseCaptureScreenshotParams = parseCaptureScreenshotParams; - function parseCloseParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.CloseParametersSchema); - } - BrowsingContext.parseCloseParams = parseCloseParams; - function parseCreateParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.CreateParametersSchema); - } - BrowsingContext.parseCreateParams = parseCreateParams; - function parseGetTreeParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.GetTreeParametersSchema); - } - BrowsingContext.parseGetTreeParams = parseGetTreeParams; - function parseHandleUserPromptParameters(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.HandleUserPromptParametersSchema); - } - BrowsingContext.parseHandleUserPromptParameters = parseHandleUserPromptParameters; - function parseLocateNodesParams(params) { - // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed. - return parseObject(params, WebDriverBidi.BrowsingContext.LocateNodesParametersSchema); - } - BrowsingContext.parseLocateNodesParams = parseLocateNodesParams; - function parseNavigateParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.NavigateParametersSchema); - } - BrowsingContext.parseNavigateParams = parseNavigateParams; - function parsePrintParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.PrintParametersSchema); - } - BrowsingContext.parsePrintParams = parsePrintParams; - function parseReloadParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.ReloadParametersSchema); - } - BrowsingContext.parseReloadParams = parseReloadParams; - function parseSetBypassCspParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.SetBypassCspParametersSchema); - } - BrowsingContext.parseSetBypassCspParams = parseSetBypassCspParams; - function parseSetViewportParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.SetViewportParametersSchema); - } - BrowsingContext.parseSetViewportParams = parseSetViewportParams; - function parseTraverseHistoryParams(params) { - return parseObject(params, WebDriverBidi.BrowsingContext.TraverseHistoryParametersSchema); - } - BrowsingContext.parseTraverseHistoryParams = parseTraverseHistoryParams; - // keep-sorted end -})(BrowsingContext || (BrowsingContext = {})); -/** @see https://w3c.github.io/webdriver-bidi/#module-session */ -export var Session; -(function (Session) { - // keep-sorted start block=yes - function parseSubscribeParams(params) { - return parseObject(params, WebDriverBidi.Session.SubscribeParametersSchema); - } - Session.parseSubscribeParams = parseSubscribeParams; - function parseUnsubscribeParams(params) { - if (params && typeof params === 'object' && 'subscriptions' in params) { - return parseObject(params, WebDriverBidi.Session.UnsubscribeByIdRequestSchema); - } - return parseObject(params, WebDriverBidi.Session.UnsubscribeParametersSchema); - } - Session.parseUnsubscribeParams = parseUnsubscribeParams; - // keep-sorted end -})(Session || (Session = {})); -export var Emulation; -(function (Emulation) { - // keep-sorted start block=yes - function parseSetClientHintsOverrideParams(params) { - const SetClientHintsOverrideParametersSchema = z.object({ - clientHints: z.union([ - WebDriverBidiUAClientHints.UserAgentClientHints - .ClientHintsMetadataSchema, - z.null(), - ]), - contexts: z.array(z.string()).min(1).optional(), - userContexts: z.array(z.string()).min(1).optional(), - }); - return parseObject(params, SetClientHintsOverrideParametersSchema); - } - Emulation.parseSetClientHintsOverrideParams = parseSetClientHintsOverrideParams; - function parseSetForcedColorsModeThemeOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetForcedColorsModeThemeOverrideParametersSchema); - } - Emulation.parseSetForcedColorsModeThemeOverrideParams = parseSetForcedColorsModeThemeOverrideParams; - function parseSetGeolocationOverrideParams(params) { - if ('coordinates' in params && 'error' in params) { - // Zod picks the first matching parameter omitting the other. In this case, the - // `parseObject` will remove `error` from the params. However, specification - // requires to throw an exception. - throw new InvalidArgumentException('Coordinates and error cannot be set at the same time'); - } - return parseObject(params, WebDriverBidi.Emulation.SetGeolocationOverrideParametersSchema); - } - Emulation.parseSetGeolocationOverrideParams = parseSetGeolocationOverrideParams; - function parseSetLocaleOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetLocaleOverrideParametersSchema); - } - Emulation.parseSetLocaleOverrideParams = parseSetLocaleOverrideParams; - function parseSetNetworkConditionsParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetNetworkConditionsParametersSchema); - } - Emulation.parseSetNetworkConditionsParams = parseSetNetworkConditionsParams; - function parseSetScreenOrientationOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetScreenOrientationOverrideParametersSchema); - } - Emulation.parseSetScreenOrientationOverrideParams = parseSetScreenOrientationOverrideParams; - function parseSetScreenSettingsOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetScreenSettingsOverrideParametersSchema); - } - Emulation.parseSetScreenSettingsOverrideParams = parseSetScreenSettingsOverrideParams; - function parseSetScriptingEnabledParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetScriptingEnabledParametersSchema); - } - Emulation.parseSetScriptingEnabledParams = parseSetScriptingEnabledParams; - function parseSetScrollbarTypeOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetScrollbarTypeOverrideParametersSchema); - } - Emulation.parseSetScrollbarTypeOverrideParams = parseSetScrollbarTypeOverrideParams; - function parseSetTimezoneOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetTimezoneOverrideParametersSchema); - } - Emulation.parseSetTimezoneOverrideParams = parseSetTimezoneOverrideParams; - function parseSetTouchOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetTouchOverrideParametersSchema); - } - Emulation.parseSetTouchOverrideParams = parseSetTouchOverrideParams; - function parseSetUserAgentOverrideParams(params) { - return parseObject(params, WebDriverBidi.Emulation.SetUserAgentOverrideParametersSchema); - } - Emulation.parseSetUserAgentOverrideParams = parseSetUserAgentOverrideParams; - // keep-sorted end -})(Emulation || (Emulation = {})); -export var Input; -(function (Input) { - // keep-sorted start block=yes - function parsePerformActionsParams(params) { - return parseObject(params, WebDriverBidi.Input.PerformActionsParametersSchema); - } - Input.parsePerformActionsParams = parsePerformActionsParams; - function parseReleaseActionsParams(params) { - return parseObject(params, WebDriverBidi.Input.ReleaseActionsParametersSchema); - } - Input.parseReleaseActionsParams = parseReleaseActionsParams; - function parseSetFilesParams(params) { - return parseObject(params, WebDriverBidi.Input.SetFilesParametersSchema); - } - Input.parseSetFilesParams = parseSetFilesParams; - // keep-sorted end -})(Input || (Input = {})); -export var Storage; -(function (Storage) { - // keep-sorted start block=yes - function parseDeleteCookiesParams(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is - // of type `"none" | "strict" | "lax"` which is not assignable to generated enum - // `SameSite` in `src/protocol/webdriver-bidi.ts`. - // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed. - return parseObject(params, WebDriverBidi.Storage.DeleteCookiesParametersSchema); - } - Storage.parseDeleteCookiesParams = parseDeleteCookiesParams; - function parseGetCookiesParams(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is - // of type `"none" | "strict" | "lax"` which is not assignable to generated enum - // `SameSite` in `src/protocol/webdriver-bidi.ts`. - // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed. - return parseObject(params, WebDriverBidi.Storage.GetCookiesParametersSchema); - } - Storage.parseGetCookiesParams = parseGetCookiesParams; - function parseSetCookieParams(params) { - // Work around of `cddlconv` https://github.com/google/cddlconv/issues/19. - // The generated schema `SameSiteSchema` in `src/protocol-parser/webdriver-bidi.ts` is - // of type `"none" | "strict" | "lax"` which is not assignable to generated enum - // `SameSite` in `src/protocol/webdriver-bidi.ts`. - // TODO: remove cast after https://github.com/google/cddlconv/issues/19 is fixed. - return parseObject(params, WebDriverBidi.Storage.SetCookieParametersSchema); - } - Storage.parseSetCookieParams = parseSetCookieParams; - // keep-sorted end -})(Storage || (Storage = {})); -export var Cdp; -(function (Cdp) { - // keep-sorted start block=yes - const GetSessionRequestSchema = z.object({ - context: WebDriverBidi.BrowsingContext.BrowsingContextSchema, - }); - const ResolveRealmRequestSchema = z.object({ - realm: WebDriverBidi.Script.RealmSchema, - }); - const SendCommandRequestSchema = z.object({ - // Allowing any cdpMethod, and casting to proper type later on. - method: z.string(), - // `passthrough` allows object to have any fields. - // https://github.com/colinhacks/zod#passthrough - params: z.object({}).passthrough().optional(), - session: z.string().optional(), - }); - function parseGetSessionRequest(params) { - return parseObject(params, GetSessionRequestSchema); - } - Cdp.parseGetSessionRequest = parseGetSessionRequest; - function parseResolveRealmRequest(params) { - return parseObject(params, ResolveRealmRequestSchema); - } - Cdp.parseResolveRealmRequest = parseResolveRealmRequest; - function parseSendCommandRequest(params) { - return parseObject(params, SendCommandRequestSchema); - } - Cdp.parseSendCommandRequest = parseSendCommandRequest; - // keep-sorted end -})(Cdp || (Cdp = {})); -export var Permissions; -(function (Permissions) { - // keep-sorted start block=yes - function parseSetPermissionsParams(params) { - return { - // TODO: remove once "goog:" attributes are not needed. - ...params, - ...parseObject(params, WebDriverBidiPermissions.Permissions.SetPermissionParametersSchema), - }; - } - Permissions.parseSetPermissionsParams = parseSetPermissionsParams; - // keep-sorted end -})(Permissions || (Permissions = {})); -export var Bluetooth; -(function (Bluetooth) { - // keep-sorted start block=yes - function parseDisableSimulationParameters(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.DisableSimulationParametersSchema); - } - Bluetooth.parseDisableSimulationParameters = parseDisableSimulationParameters; - function parseHandleRequestDevicePromptParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .HandleRequestDevicePromptParametersSchema); - } - Bluetooth.parseHandleRequestDevicePromptParams = parseHandleRequestDevicePromptParams; - function parseSimulateAdapterParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateAdapterParametersSchema); - } - Bluetooth.parseSimulateAdapterParams = parseSimulateAdapterParams; - function parseSimulateAdvertisementParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateAdvertisementParametersSchema); - } - Bluetooth.parseSimulateAdvertisementParams = parseSimulateAdvertisementParams; - function parseSimulateCharacteristicParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateCharacteristicParametersSchema); - } - Bluetooth.parseSimulateCharacteristicParams = parseSimulateCharacteristicParams; - function parseSimulateCharacteristicResponseParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .SimulateCharacteristicResponseParametersSchema); - } - Bluetooth.parseSimulateCharacteristicResponseParams = parseSimulateCharacteristicResponseParams; - function parseSimulateDescriptorParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateDescriptorParametersSchema); - } - Bluetooth.parseSimulateDescriptorParams = parseSimulateDescriptorParams; - function parseSimulateDescriptorResponseParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .SimulateDescriptorResponseParametersSchema); - } - Bluetooth.parseSimulateDescriptorResponseParams = parseSimulateDescriptorResponseParams; - function parseSimulateGattConnectionResponseParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .SimulateGattConnectionResponseParametersSchema); - } - Bluetooth.parseSimulateGattConnectionResponseParams = parseSimulateGattConnectionResponseParams; - function parseSimulateGattDisconnectionParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .SimulateGattDisconnectionParametersSchema); - } - Bluetooth.parseSimulateGattDisconnectionParams = parseSimulateGattDisconnectionParams; - function parseSimulatePreconnectedPeripheralParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth - .SimulatePreconnectedPeripheralParametersSchema); - } - Bluetooth.parseSimulatePreconnectedPeripheralParams = parseSimulatePreconnectedPeripheralParams; - function parseSimulateServiceParams(params) { - return parseObject(params, WebDriverBidiBluetooth.Bluetooth.SimulateServiceParametersSchema); - } - Bluetooth.parseSimulateServiceParams = parseSimulateServiceParams; - // keep-sorted end -})(Bluetooth || (Bluetooth = {})); -/** @see https://w3c.github.io/webdriver-bidi/#module-webExtension */ -export var WebModule; -(function (WebModule) { - // keep-sorted start block=yes - function parseInstallParams(params) { - return parseObject(params, WebDriverBidi.WebExtension.InstallParametersSchema); - } - WebModule.parseInstallParams = parseInstallParams; - function parseUninstallParams(params) { - return parseObject(params, WebDriverBidi.WebExtension.UninstallParametersSchema); - } - WebModule.parseUninstallParams = parseUninstallParams; - // keep-sorted end -})(WebModule || (WebModule = {})); -//# sourceMappingURL=protocol-parser.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js.map b/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js.map deleted file mode 100644 index 67ad686..0000000 --- a/node_modules/chromium-bidi/lib/protocol-parser/protocol-parser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"protocol-parser.js","sourceRoot":"","sources":["../../src/protocol-parser/protocol-parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.d.ts b/node_modules/chromium-bidi/lib/protocol/ErrorResponse.d.ts deleted file mode 100644 index e58c83e..0000000 --- a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.d.ts +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { ErrorResponse } from './generated/webdriver-bidi.js'; -import { ErrorCode } from './generated/webdriver-bidi.js'; -export declare class Exception extends Error { - error: ErrorCode; - message: string; - stacktrace?: string | undefined; - constructor(error: ErrorCode, message: string, stacktrace?: string | undefined); - toErrorResponse(commandId: number): ErrorResponse; -} -export declare class InvalidArgumentException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class InvalidSelectorException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class InvalidSessionIdException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class MoveTargetOutOfBoundsException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchAlertException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchElementException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchFrameException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchHandleException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchHistoryEntryException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchInterceptException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchNodeException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchRequestException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchScriptException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchUserContextException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class SessionNotCreatedException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnknownCommandException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnknownErrorException extends Exception { - constructor(message: string, stacktrace?: string | undefined); -} -export declare class UnableToCaptureScreenException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnableToCloseBrowserException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnsupportedOperationException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchStoragePartitionException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnableToSetCookieException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnableToSetFileInputException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnderspecifiedStoragePartitionException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class InvalidWebExtensionException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchWebExtensionException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchNetworkCollectorException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class NoSuchNetworkDataException extends Exception { - constructor(message: string, stacktrace?: string); -} -export declare class UnavailableNetworkDataException extends Exception { - constructor(message: string, stacktrace?: string); -} diff --git a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js b/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js deleted file mode 100644 index ed5ac68..0000000 --- a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js +++ /dev/null @@ -1,166 +0,0 @@ -export class Exception extends Error { - error; - message; - stacktrace; - constructor(error, message, stacktrace) { - super(); - this.error = error; - this.message = message; - this.stacktrace = stacktrace; - } - toErrorResponse(commandId) { - return { - type: 'error', - id: commandId, - error: this.error, - message: this.message, - stacktrace: this.stacktrace, - }; - } -} -export class InvalidArgumentException extends Exception { - constructor(message, stacktrace) { - super("invalid argument" /* ErrorCode.InvalidArgument */, message, stacktrace); - } -} -export class InvalidSelectorException extends Exception { - constructor(message, stacktrace) { - super("invalid selector" /* ErrorCode.InvalidSelector */, message, stacktrace); - } -} -export class InvalidSessionIdException extends Exception { - constructor(message, stacktrace) { - super("invalid session id" /* ErrorCode.InvalidSessionId */, message, stacktrace); - } -} -export class MoveTargetOutOfBoundsException extends Exception { - constructor(message, stacktrace) { - super("move target out of bounds" /* ErrorCode.MoveTargetOutOfBounds */, message, stacktrace); - } -} -export class NoSuchAlertException extends Exception { - constructor(message, stacktrace) { - super("no such alert" /* ErrorCode.NoSuchAlert */, message, stacktrace); - } -} -export class NoSuchElementException extends Exception { - constructor(message, stacktrace) { - super("no such element" /* ErrorCode.NoSuchElement */, message, stacktrace); - } -} -export class NoSuchFrameException extends Exception { - constructor(message, stacktrace) { - super("no such frame" /* ErrorCode.NoSuchFrame */, message, stacktrace); - } -} -export class NoSuchHandleException extends Exception { - constructor(message, stacktrace) { - super("no such handle" /* ErrorCode.NoSuchHandle */, message, stacktrace); - } -} -export class NoSuchHistoryEntryException extends Exception { - constructor(message, stacktrace) { - super("no such history entry" /* ErrorCode.NoSuchHistoryEntry */, message, stacktrace); - } -} -export class NoSuchInterceptException extends Exception { - constructor(message, stacktrace) { - super("no such intercept" /* ErrorCode.NoSuchIntercept */, message, stacktrace); - } -} -export class NoSuchNodeException extends Exception { - constructor(message, stacktrace) { - super("no such node" /* ErrorCode.NoSuchNode */, message, stacktrace); - } -} -export class NoSuchRequestException extends Exception { - constructor(message, stacktrace) { - super("no such request" /* ErrorCode.NoSuchRequest */, message, stacktrace); - } -} -export class NoSuchScriptException extends Exception { - constructor(message, stacktrace) { - super("no such script" /* ErrorCode.NoSuchScript */, message, stacktrace); - } -} -export class NoSuchUserContextException extends Exception { - constructor(message, stacktrace) { - super("no such user context" /* ErrorCode.NoSuchUserContext */, message, stacktrace); - } -} -export class SessionNotCreatedException extends Exception { - constructor(message, stacktrace) { - super("session not created" /* ErrorCode.SessionNotCreated */, message, stacktrace); - } -} -export class UnknownCommandException extends Exception { - constructor(message, stacktrace) { - super("unknown command" /* ErrorCode.UnknownCommand */, message, stacktrace); - } -} -export class UnknownErrorException extends Exception { - constructor(message, stacktrace = new Error().stack) { - super("unknown error" /* ErrorCode.UnknownError */, message, stacktrace); - } -} -export class UnableToCaptureScreenException extends Exception { - constructor(message, stacktrace) { - super("unable to capture screen" /* ErrorCode.UnableToCaptureScreen */, message, stacktrace); - } -} -export class UnableToCloseBrowserException extends Exception { - constructor(message, stacktrace) { - super("unable to close browser" /* ErrorCode.UnableToCloseBrowser */, message, stacktrace); - } -} -export class UnsupportedOperationException extends Exception { - constructor(message, stacktrace) { - super("unsupported operation" /* ErrorCode.UnsupportedOperation */, message, stacktrace); - } -} -export class NoSuchStoragePartitionException extends Exception { - constructor(message, stacktrace) { - super("no such storage partition" /* ErrorCode.NoSuchStoragePartition */, message, stacktrace); - } -} -export class UnableToSetCookieException extends Exception { - constructor(message, stacktrace) { - super("unable to set cookie" /* ErrorCode.UnableToSetCookie */, message, stacktrace); - } -} -export class UnableToSetFileInputException extends Exception { - constructor(message, stacktrace) { - super("unable to set file input" /* ErrorCode.UnableToSetFileInput */, message, stacktrace); - } -} -export class UnderspecifiedStoragePartitionException extends Exception { - constructor(message, stacktrace) { - super("underspecified storage partition" /* ErrorCode.UnderspecifiedStoragePartition */, message, stacktrace); - } -} -export class InvalidWebExtensionException extends Exception { - constructor(message, stacktrace) { - super("invalid web extension" /* ErrorCode.InvalidWebExtension */, message, stacktrace); - } -} -export class NoSuchWebExtensionException extends Exception { - constructor(message, stacktrace) { - super("no such web extension" /* ErrorCode.NoSuchWebExtension */, message, stacktrace); - } -} -export class NoSuchNetworkCollectorException extends Exception { - constructor(message, stacktrace) { - super("no such network collector" /* ErrorCode.NoSuchNetworkCollector */, message, stacktrace); - } -} -export class NoSuchNetworkDataException extends Exception { - constructor(message, stacktrace) { - super("no such network data" /* ErrorCode.NoSuchNetworkData */, message, stacktrace); - } -} -export class UnavailableNetworkDataException extends Exception { - constructor(message, stacktrace) { - super("unavailable network data" /* ErrorCode.UnavailableNetworkData */, message, stacktrace); - } -} -//# sourceMappingURL=ErrorResponse.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js.map b/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js.map deleted file mode 100644 index 2529b39..0000000 --- a/node_modules/chromium-bidi/lib/protocol/ErrorResponse.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ErrorResponse.js","sourceRoot":"","sources":["../../src/protocol/ErrorResponse.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/cdp.d.ts b/node_modules/chromium-bidi/lib/protocol/cdp.d.ts deleted file mode 100644 index 2a8b8f5..0000000 --- a/node_modules/chromium-bidi/lib/protocol/cdp.d.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { ProtocolMapping } from 'devtools-protocol/types/protocol-mapping.js'; -import type { BrowsingContext, JsUint, Script } from './generated/webdriver-bidi.js'; -export type EventNames = Event['method']; -export type Message = CommandResponse | Event; -export type Command = { - id: JsUint; -} & CommandData; -export type CommandData = SendCommandCommand | GetSessionCommand | ResolveRealmCommand; -export interface CommandResponse { - type: 'success'; - id: JsUint; - result: ResultData; -} -export type ResultData = SendCommandResult | GetSessionResult | ResolveRealmResult; -export interface SendCommandCommand { - method: 'goog:cdp.sendCommand'; - params: SendCommandParameters; -} -export interface SendCommandParameters { - method: Command; - params?: ProtocolMapping.Commands[Command]['paramsType'][0]; - session?: Protocol.Target.SessionID; -} -export interface SendCommandResult { - result: ProtocolMapping.Commands[keyof ProtocolMapping.Commands]['returnType']; - session?: Protocol.Target.SessionID; -} -export interface GetSessionCommand { - method: 'goog:cdp.getSession'; - params: GetSessionParameters; -} -export interface GetSessionParameters { - context: BrowsingContext.BrowsingContext; -} -export interface GetSessionResult { - session?: Protocol.Target.SessionID; -} -export interface ResolveRealmCommand { - method: 'goog:cdp.resolveRealm'; - params: ResolveRealmParameters; -} -export interface ResolveRealmParameters { - realm: Script.Realm; -} -export interface ResolveRealmResult { - executionContextId: Protocol.Runtime.ExecutionContextId; -} -export type Event = { - type: 'event'; -} & EventData; -export type EventData = EventDataFor; -export interface EventDataFor { - method: `goog:cdp.${EventName}`; - params: EventParametersFor; -} -export interface EventParametersFor { - event: EventName; - params: ProtocolMapping.Events[EventName][0]; - session: Protocol.Target.SessionID; -} diff --git a/node_modules/chromium-bidi/lib/protocol/cdp.js b/node_modules/chromium-bidi/lib/protocol/cdp.js deleted file mode 100644 index 0f2eda7..0000000 --- a/node_modules/chromium-bidi/lib/protocol/cdp.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=cdp.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/cdp.js.map b/node_modules/chromium-bidi/lib/protocol/cdp.js.map deleted file mode 100644 index 8fad775..0000000 --- a/node_modules/chromium-bidi/lib/protocol/cdp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../src/protocol/cdp.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.d.ts b/node_modules/chromium-bidi/lib/protocol/chromium-bidi.d.ts deleted file mode 100644 index 64c3ff5..0000000 --- a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.d.ts +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type * as Cdp from './cdp.js'; -import type * as WebDriverBidiBluetooth from './generated/webdriver-bidi-bluetooth.js'; -import type * as WebDriverBidiSpeculation from './generated/webdriver-bidi-nav-speculation.ts'; -import type * as WebDriverBidiPermissions from './generated/webdriver-bidi-permissions.js'; -import type * as WebDriverBidiUAClientHints from './generated/webdriver-bidi-ua-client-hints.js'; -import type * as WebDriverBidi from './generated/webdriver-bidi.js'; -export type EventNames = Cdp.EventNames | `${BiDiModule}` | `${Bluetooth.EventNames}` | `${BrowsingContext.EventNames}` | `${Input.EventNames}` | `${Log.EventNames}` | `${Network.EventNames}` | `${Script.EventNames}` | `${Speculation.EventNames}`; -export declare enum BiDiModule { - Bluetooth = "bluetooth", - Browser = "browser", - BrowsingContext = "browsingContext", - Cdp = "goog:cdp", - Input = "input", - Log = "log", - Network = "network", - Script = "script", - Session = "session", - Speculation = "speculation" -} -export declare namespace Script { - enum EventNames { - Message = "script.message", - RealmCreated = "script.realmCreated", - RealmDestroyed = "script.realmDestroyed" - } -} -export declare namespace Log { - enum EventNames { - LogEntryAdded = "log.entryAdded" - } -} -export declare namespace BrowsingContext { - enum EventNames { - ContextCreated = "browsingContext.contextCreated", - ContextDestroyed = "browsingContext.contextDestroyed", - DomContentLoaded = "browsingContext.domContentLoaded", - DownloadEnd = "browsingContext.downloadEnd", - DownloadWillBegin = "browsingContext.downloadWillBegin", - FragmentNavigated = "browsingContext.fragmentNavigated", - HistoryUpdated = "browsingContext.historyUpdated", - Load = "browsingContext.load", - NavigationAborted = "browsingContext.navigationAborted", - NavigationCommitted = "browsingContext.navigationCommitted", - NavigationFailed = "browsingContext.navigationFailed", - NavigationStarted = "browsingContext.navigationStarted", - UserPromptClosed = "browsingContext.userPromptClosed", - UserPromptOpened = "browsingContext.userPromptOpened" - } -} -export declare namespace Input { - enum EventNames { - FileDialogOpened = "input.fileDialogOpened" - } -} -export declare namespace Network { - enum EventNames { - AuthRequired = "network.authRequired", - BeforeRequestSent = "network.beforeRequestSent", - FetchError = "network.fetchError", - ResponseCompleted = "network.responseCompleted", - ResponseStarted = "network.responseStarted" - } -} -export declare namespace Bluetooth { - enum EventNames { - RequestDevicePromptUpdated = "bluetooth.requestDevicePromptUpdated", - GattConnectionAttempted = "bluetooth.gattConnectionAttempted", - CharacteristicEventGenerated = "bluetooth.characteristicEventGenerated", - DescriptorEventGenerated = "bluetooth.descriptorEventGenerated" - } -} -export declare namespace Speculation { - enum EventNames { - PrefetchStatusUpdated = "speculation.prefetchStatusUpdated" - } -} -type ExternalSpecCommand = { - id: WebDriverBidi.JsUint; -} & T; -type ExternalSpecEvent = { - type: 'event'; -} & T & WebDriverBidi.Extensible; -export type Command = (WebDriverBidi.Command | Cdp.Command | ExternalSpecCommand | ExternalSpecCommand | ExternalSpecCommand) & { - 'goog:channel'?: GoogChannel; -}; -export type CommandResponse = WebDriverBidi.CommandResponse | Cdp.CommandResponse; -export type BluetoothEvent = ExternalSpecEvent | ExternalSpecEvent | ExternalSpecEvent | ExternalSpecEvent; -export type SpeculationEvent = ExternalSpecEvent; -export type Event = WebDriverBidi.Event | Cdp.Event | BluetoothEvent | SpeculationEvent; -export declare const EVENT_NAMES: Set; -export type ResultData = WebDriverBidi.ResultData | Cdp.ResultData; -export type GoogChannel = string | null; -export type Message = (WebDriverBidi.Message | Cdp.Message | BluetoothEvent | SpeculationEvent) & { - 'goog:channel'?: GoogChannel; -}; -export {}; diff --git a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js b/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js deleted file mode 100644 index 79f8a31..0000000 --- a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// keep-sorted end -export var BiDiModule; -(function (BiDiModule) { - // keep-sorted start - BiDiModule["Bluetooth"] = "bluetooth"; - BiDiModule["Browser"] = "browser"; - BiDiModule["BrowsingContext"] = "browsingContext"; - BiDiModule["Cdp"] = "goog:cdp"; - BiDiModule["Input"] = "input"; - BiDiModule["Log"] = "log"; - BiDiModule["Network"] = "network"; - BiDiModule["Script"] = "script"; - BiDiModule["Session"] = "session"; - BiDiModule["Speculation"] = "speculation"; - // keep-sorted end -})(BiDiModule || (BiDiModule = {})); -export var Script; -(function (Script) { - let EventNames; - (function (EventNames) { - // keep-sorted start - EventNames["Message"] = "script.message"; - EventNames["RealmCreated"] = "script.realmCreated"; - EventNames["RealmDestroyed"] = "script.realmDestroyed"; - // keep-sorted end - })(EventNames = Script.EventNames || (Script.EventNames = {})); -})(Script || (Script = {})); -export var Log; -(function (Log) { - let EventNames; - (function (EventNames) { - EventNames["LogEntryAdded"] = "log.entryAdded"; - })(EventNames = Log.EventNames || (Log.EventNames = {})); -})(Log || (Log = {})); -export var BrowsingContext; -(function (BrowsingContext) { - let EventNames; - (function (EventNames) { - // keep-sorted start - EventNames["ContextCreated"] = "browsingContext.contextCreated"; - EventNames["ContextDestroyed"] = "browsingContext.contextDestroyed"; - EventNames["DomContentLoaded"] = "browsingContext.domContentLoaded"; - EventNames["DownloadEnd"] = "browsingContext.downloadEnd"; - EventNames["DownloadWillBegin"] = "browsingContext.downloadWillBegin"; - EventNames["FragmentNavigated"] = "browsingContext.fragmentNavigated"; - EventNames["HistoryUpdated"] = "browsingContext.historyUpdated"; - EventNames["Load"] = "browsingContext.load"; - EventNames["NavigationAborted"] = "browsingContext.navigationAborted"; - EventNames["NavigationCommitted"] = "browsingContext.navigationCommitted"; - EventNames["NavigationFailed"] = "browsingContext.navigationFailed"; - EventNames["NavigationStarted"] = "browsingContext.navigationStarted"; - EventNames["UserPromptClosed"] = "browsingContext.userPromptClosed"; - EventNames["UserPromptOpened"] = "browsingContext.userPromptOpened"; - // keep-sorted end - })(EventNames = BrowsingContext.EventNames || (BrowsingContext.EventNames = {})); -})(BrowsingContext || (BrowsingContext = {})); -export var Input; -(function (Input) { - let EventNames; - (function (EventNames) { - // keep-sorted start - EventNames["FileDialogOpened"] = "input.fileDialogOpened"; - // keep-sorted end - })(EventNames = Input.EventNames || (Input.EventNames = {})); -})(Input || (Input = {})); -export var Network; -(function (Network) { - let EventNames; - (function (EventNames) { - // keep-sorted start - EventNames["AuthRequired"] = "network.authRequired"; - EventNames["BeforeRequestSent"] = "network.beforeRequestSent"; - EventNames["FetchError"] = "network.fetchError"; - EventNames["ResponseCompleted"] = "network.responseCompleted"; - EventNames["ResponseStarted"] = "network.responseStarted"; - // keep-sorted end - })(EventNames = Network.EventNames || (Network.EventNames = {})); -})(Network || (Network = {})); -export var Bluetooth; -(function (Bluetooth) { - let EventNames; - (function (EventNames) { - EventNames["RequestDevicePromptUpdated"] = "bluetooth.requestDevicePromptUpdated"; - EventNames["GattConnectionAttempted"] = "bluetooth.gattConnectionAttempted"; - EventNames["CharacteristicEventGenerated"] = "bluetooth.characteristicEventGenerated"; - EventNames["DescriptorEventGenerated"] = "bluetooth.descriptorEventGenerated"; - })(EventNames = Bluetooth.EventNames || (Bluetooth.EventNames = {})); -})(Bluetooth || (Bluetooth = {})); -export var Speculation; -(function (Speculation) { - let EventNames; - (function (EventNames) { - EventNames["PrefetchStatusUpdated"] = "speculation.prefetchStatusUpdated"; - })(EventNames = Speculation.EventNames || (Speculation.EventNames = {})); -})(Speculation || (Speculation = {})); -export const EVENT_NAMES = new Set([ - // keep-sorted start - ...Object.values(BiDiModule), - ...Object.values(Bluetooth.EventNames), - ...Object.values(BrowsingContext.EventNames), - ...Object.values(Input.EventNames), - ...Object.values(Log.EventNames), - ...Object.values(Network.EventNames), - ...Object.values(Script.EventNames), - ...Object.values(Speculation.EventNames), - // keep-sorted end -]); -//# sourceMappingURL=chromium-bidi.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js.map b/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js.map deleted file mode 100644 index b0de377..0000000 --- a/node_modules/chromium-bidi/lib/protocol/chromium-bidi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chromium-bidi.js","sourceRoot":"","sources":["../../src/protocol/chromium-bidi.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.d.ts b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.d.ts deleted file mode 100644 index 4e53259..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.d.ts +++ /dev/null @@ -1,309 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -export declare namespace Bluetooth { - type BluetoothUuid = string; -} -export declare namespace Bluetooth { - type BluetoothManufacturerData = { - key: number; - data: string; - }; -} -export declare namespace Bluetooth { - type CharacteristicProperties = { - broadcast?: boolean; - read?: boolean; - writeWithoutResponse?: boolean; - write?: boolean; - notify?: boolean; - indicate?: boolean; - authenticatedSignedWrites?: boolean; - extendedProperties?: boolean; - }; -} -export declare namespace Bluetooth { - type RequestDevice = string; -} -export declare namespace Bluetooth { - type RequestDeviceInfo = { - id: Bluetooth.RequestDevice; - name: string | null; - }; -} -export declare namespace Bluetooth { - type RequestDevicePrompt = string; -} -export declare namespace Bluetooth { - type ScanRecord = { - name?: string; - uuids?: [...Bluetooth.BluetoothUuid[]]; - appearance?: number; - manufacturerData?: [...Bluetooth.BluetoothManufacturerData[]]; - }; -} -export type BluetoothCommand = Bluetooth.HandleRequestDevicePrompt | Bluetooth.SimulateAdapter | Bluetooth.DisableSimulation | Bluetooth.SimulatePreconnectedPeripheral | Bluetooth.SimulateAdvertisement | Bluetooth.SimulateGattConnectionResponse | Bluetooth.SimulateGattDisconnection | Bluetooth.SimulateService | Bluetooth.SimulateCharacteristic | Bluetooth.SimulateCharacteristicResponse | Bluetooth.SimulateDescriptor | Bluetooth.SimulateDescriptorResponse; -export declare namespace Bluetooth { - type HandleRequestDevicePrompt = { - method: 'bluetooth.handleRequestDevicePrompt'; - params: Bluetooth.HandleRequestDevicePromptParameters; - }; -} -export declare namespace Bluetooth { - type HandleRequestDevicePromptParameters = { - context: string; - prompt: Bluetooth.RequestDevicePrompt; - } & (Bluetooth.HandleRequestDevicePromptAcceptParameters | Bluetooth.HandleRequestDevicePromptCancelParameters); -} -export declare namespace Bluetooth { - type HandleRequestDevicePromptAcceptParameters = { - accept: true; - device: Bluetooth.RequestDevice; - }; -} -export declare namespace Bluetooth { - type HandleRequestDevicePromptCancelParameters = { - accept: false; - }; -} -export declare namespace Bluetooth { - type SimulateAdapter = { - method: 'bluetooth.simulateAdapter'; - params: Bluetooth.SimulateAdapterParameters; - }; -} -export declare namespace Bluetooth { - type SimulateAdapterParameters = { - context: string; - leSupported?: boolean; - state: 'absent' | 'powered-off' | 'powered-on'; - }; -} -export declare namespace Bluetooth { - type DisableSimulation = { - method: 'bluetooth.disableSimulation'; - params: Bluetooth.DisableSimulationParameters; - }; -} -export declare namespace Bluetooth { - type DisableSimulationParameters = { - context: string; - }; -} -export declare namespace Bluetooth { - type SimulatePreconnectedPeripheral = { - method: 'bluetooth.simulatePreconnectedPeripheral'; - params: Bluetooth.SimulatePreconnectedPeripheralParameters; - }; -} -export declare namespace Bluetooth { - type SimulatePreconnectedPeripheralParameters = { - context: string; - address: string; - name: string; - manufacturerData: [...Bluetooth.BluetoothManufacturerData[]]; - knownServiceUuids: [...Bluetooth.BluetoothUuid[]]; - }; -} -export declare namespace Bluetooth { - type SimulateAdvertisement = { - method: 'bluetooth.simulateAdvertisement'; - params: Bluetooth.SimulateAdvertisementParameters; - }; -} -export declare namespace Bluetooth { - type SimulateAdvertisementParameters = { - context: string; - scanEntry: Bluetooth.SimulateAdvertisementScanEntryParameters; - }; -} -export declare namespace Bluetooth { - type SimulateAdvertisementScanEntryParameters = { - deviceAddress: string; - rssi: number; - scanRecord: Bluetooth.ScanRecord; - }; -} -export declare namespace Bluetooth { - type SimulateGattConnectionResponse = { - method: 'bluetooth.simulateGattConnectionResponse'; - params: Bluetooth.SimulateGattConnectionResponseParameters; - }; -} -export declare namespace Bluetooth { - type SimulateGattConnectionResponseParameters = { - context: string; - address: string; - code: number; - }; -} -export declare namespace Bluetooth { - type SimulateGattDisconnection = { - method: 'bluetooth.simulateGattDisconnection'; - params: Bluetooth.SimulateGattDisconnectionParameters; - }; -} -export declare namespace Bluetooth { - type SimulateGattDisconnectionParameters = { - context: string; - address: string; - }; -} -export declare namespace Bluetooth { - type SimulateService = { - method: 'bluetooth.simulateService'; - params: Bluetooth.SimulateServiceParameters; - }; -} -export declare namespace Bluetooth { - type SimulateServiceParameters = { - context: string; - address: string; - uuid: Bluetooth.BluetoothUuid; - type: 'add' | 'remove'; - }; -} -export declare namespace Bluetooth { - type SimulateCharacteristic = { - method: 'bluetooth.simulateCharacteristic'; - params: Bluetooth.SimulateCharacteristicParameters; - }; -} -export declare namespace Bluetooth { - type SimulateCharacteristicParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - characteristicProperties?: Bluetooth.CharacteristicProperties; - type: 'add' | 'remove'; - }; -} -export declare namespace Bluetooth { - type SimulateCharacteristicResponse = { - method: 'bluetooth.simulateCharacteristicResponse'; - params: Bluetooth.SimulateCharacteristicResponseParameters; - }; -} -export declare namespace Bluetooth { - type SimulateCharacteristicResponseParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - type: 'read' | 'write' | 'subscribe-to-notifications' | 'unsubscribe-from-notifications'; - code: number; - data?: [...number[]]; - }; -} -export declare namespace Bluetooth { - type SimulateDescriptor = { - method: 'bluetooth.simulateDescriptor'; - params: Bluetooth.SimulateDescriptorParameters; - }; -} -export declare namespace Bluetooth { - type SimulateDescriptorParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - descriptorUuid: Bluetooth.BluetoothUuid; - type: 'add' | 'remove'; - }; -} -export declare namespace Bluetooth { - type SimulateDescriptorResponse = { - method: 'bluetooth.simulateDescriptorResponse'; - params: Bluetooth.SimulateDescriptorResponseParameters; - }; -} -export declare namespace Bluetooth { - type SimulateDescriptorResponseParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - descriptorUuid: Bluetooth.BluetoothUuid; - type: 'read' | 'write'; - code: number; - data?: [...number[]]; - }; -} -export type BluetoothEvent = Bluetooth.RequestDevicePromptUpdated | Bluetooth.GattConnectionAttempted; -export declare namespace Bluetooth { - type RequestDevicePromptUpdated = { - method: 'bluetooth.requestDevicePromptUpdated'; - params: Bluetooth.RequestDevicePromptUpdatedParameters; - }; -} -export declare namespace Bluetooth { - type RequestDevicePromptUpdatedParameters = { - context: string; - prompt: Bluetooth.RequestDevicePrompt; - devices: [...Bluetooth.RequestDeviceInfo[]]; - }; -} -export declare namespace Bluetooth { - type GattConnectionAttempted = { - method: 'bluetooth.gattConnectionAttempted'; - params: Bluetooth.GattConnectionAttemptedParameters; - }; -} -export declare namespace Bluetooth { - type GattConnectionAttemptedParameters = { - context: string; - address: string; - }; -} -export declare namespace Bluetooth { - type CharacteristicEventGenerated = { - method: 'bluetooth.characteristicEventGenerated'; - params: Bluetooth.CharacteristicEventGeneratedParameters; - }; -} -export declare namespace Bluetooth { - type CharacteristicEventGeneratedParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - type: 'read' | 'write-with-response' | 'write-without-response' | 'subscribe-to-notifications' | 'unsubscribe-from-notifications'; - data?: [...number[]]; - }; -} -export declare namespace Bluetooth { - type DescriptorEventGenerated = { - method: 'bluetooth.descriptorEventGenerated'; - params: Bluetooth.DescriptorEventGeneratedParameters; - }; -} -export declare namespace Bluetooth { - type DescriptorEventGeneratedParameters = { - context: string; - address: string; - serviceUuid: Bluetooth.BluetoothUuid; - characteristicUuid: Bluetooth.BluetoothUuid; - descriptorUuid: Bluetooth.BluetoothUuid; - type: 'read' | 'write'; - data?: [...number[]]; - }; -} diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js deleted file mode 100644 index 497d9f9..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=webdriver-bidi-bluetooth.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js.map b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js.map deleted file mode 100644 index ad5665d..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-bluetooth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-bluetooth.js","sourceRoot":"","sources":["../../../src/protocol/generated/webdriver-bidi-bluetooth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.d.ts b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.d.ts deleted file mode 100644 index a8e9db0..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -export declare namespace Speculation { - const enum PreloadingStatus { - Pending = "pending", - Ready = "ready", - Success = "success", - Failure = "failure" - } -} -export type SpeculationEvent = Speculation.PrefetchStatusUpdated; -export declare namespace Speculation { - type PrefetchStatusUpdated = { - method: 'speculation.prefetchStatusUpdated'; - params: Speculation.PrefetchStatusUpdatedParameters; - }; -} -export declare namespace Speculation { - type PrefetchStatusUpdatedParameters = { - context: string; - url: string; - status: Speculation.PreloadingStatus; - }; -} diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js deleted file mode 100644 index 901a173..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=webdriver-bidi-nav-speculation.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js.map b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js.map deleted file mode 100644 index c83c48e..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-nav-speculation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-nav-speculation.js","sourceRoot":"","sources":["../../../src/protocol/generated/webdriver-bidi-nav-speculation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.d.ts b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.d.ts deleted file mode 100644 index 5722d15..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -export type PermissionsCommand = Permissions.SetPermission; -export declare namespace Permissions { - type PermissionDescriptor = { - name: string; - }; -} -export declare namespace Permissions { - const enum PermissionState { - Granted = "granted", - Denied = "denied", - Prompt = "prompt" - } -} -export declare namespace Permissions { - type SetPermission = { - method: 'permissions.setPermission'; - params: Permissions.SetPermissionParameters; - }; -} -export declare namespace Permissions { - type SetPermissionParameters = { - descriptor: Permissions.PermissionDescriptor; - state: Permissions.PermissionState; - origin: string; - embeddedOrigin?: string; - userContext?: string; - }; -} diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js deleted file mode 100644 index 725a45d..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=webdriver-bidi-permissions.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js.map b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js.map deleted file mode 100644 index a9a3994..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-permissions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-permissions.js","sourceRoot":"","sources":["../../../src/protocol/generated/webdriver-bidi-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.d.ts b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.d.ts deleted file mode 100644 index aa727d9..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -export type UserAgentClientHintsCommand = UserAgentClientHints.SetClientHintsOverrideCommand; -export declare namespace UserAgentClientHints { - type SetClientHintsOverrideCommand = { - method: 'userAgentClientHints.setClientHintsOverride'; - params: { - clientHints: UserAgentClientHints.ClientHintsMetadata | null; - contexts?: [string, ...string[]]; - userContexts?: [string, ...string[]]; - }; - }; -} -export declare namespace UserAgentClientHints { - type ClientHintsMetadata = { - brands?: [...UserAgentClientHints.BrandVersion[]]; - fullVersionList?: [...UserAgentClientHints.BrandVersion[]]; - platform?: string; - platformVersion?: string; - architecture?: string; - model?: string; - mobile?: boolean; - bitness?: string; - wow64?: boolean; - formFactors?: [...string[]]; - }; -} -export declare namespace UserAgentClientHints { - type BrandVersion = { - brand: string; - version: string; - }; -} -export declare namespace UserAgentClientHints { - type SetClientHintsOverrideResult = Record; -} diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js deleted file mode 100644 index db00803..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=webdriver-bidi-ua-client-hints.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js.map b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js.map deleted file mode 100644 index 86cf575..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi-ua-client-hints.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi-ua-client-hints.js","sourceRoot":"","sources":["../../../src/protocol/generated/webdriver-bidi-ua-client-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.d.ts b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.d.ts deleted file mode 100644 index e3071bd..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.d.ts +++ /dev/null @@ -1,2767 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * THIS FILE IS AUTOGENERATED by cddlconv 0.1.7. - * Run `node tools/generate-bidi-types.mjs` to regenerate. - * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs - */ -export type Command = { - id: JsUint; -} & CommandData & Extensible; -export type CommandData = BrowserCommand | BrowsingContextCommand | EmulationCommand | InputCommand | NetworkCommand | ScriptCommand | SessionCommand | StorageCommand | WebExtensionCommand; -export type EmptyParams = Extensible; -export type Message = CommandResponse | ErrorResponse | Event; -export type CommandResponse = { - type: 'success'; - id: JsUint; - result: ResultData; -} & Extensible; -export type ErrorResponse = { - type: 'error'; - id: JsUint | null; - error: ErrorCode; - message: string; - stacktrace?: string; -} & Extensible; -export type ResultData = BrowserResult | BrowsingContextResult | EmulationResult | InputResult | NetworkResult | ScriptResult | SessionResult | StorageResult | WebExtensionResult; -export type EmptyResult = Extensible; -export type Event = { - type: 'event'; -} & EventData & Extensible; -export type EventData = BrowsingContextEvent | InputEvent | LogEvent | NetworkEvent | ScriptEvent; -export type Extensible = { - [key: string]: any; -}; -/** - * Must be between `-9007199254740991` and `9007199254740991`, inclusive. - */ -export type JsInt = number; -/** - * Must be between `0` and `9007199254740991`, inclusive. - */ -export type JsUint = number; -export declare const enum ErrorCode { - InvalidArgument = "invalid argument", - InvalidSelector = "invalid selector", - InvalidSessionId = "invalid session id", - InvalidWebExtension = "invalid web extension", - MoveTargetOutOfBounds = "move target out of bounds", - NoSuchAlert = "no such alert", - NoSuchNetworkCollector = "no such network collector", - NoSuchElement = "no such element", - NoSuchFrame = "no such frame", - NoSuchHandle = "no such handle", - NoSuchHistoryEntry = "no such history entry", - NoSuchIntercept = "no such intercept", - NoSuchNetworkData = "no such network data", - NoSuchNode = "no such node", - NoSuchRequest = "no such request", - NoSuchScript = "no such script", - NoSuchStoragePartition = "no such storage partition", - NoSuchUserContext = "no such user context", - NoSuchWebExtension = "no such web extension", - SessionNotCreated = "session not created", - UnableToCaptureScreen = "unable to capture screen", - UnableToCloseBrowser = "unable to close browser", - UnableToSetCookie = "unable to set cookie", - UnableToSetFileInput = "unable to set file input", - UnavailableNetworkData = "unavailable network data", - UnderspecifiedStoragePartition = "underspecified storage partition", - UnknownCommand = "unknown command", - UnknownError = "unknown error", - UnsupportedOperation = "unsupported operation" -} -export type SessionCommand = Session.End | Session.New | Session.Status | Session.Subscribe | Session.Unsubscribe; -export type SessionResult = Session.EndResult | Session.NewResult | Session.StatusResult | Session.SubscribeResult | Session.UnsubscribeResult; -export declare namespace Session { - type CapabilitiesRequest = { - alwaysMatch?: Session.CapabilityRequest; - firstMatch?: [...Session.CapabilityRequest[]]; - }; -} -export declare namespace Session { - type CapabilityRequest = { - acceptInsecureCerts?: boolean; - browserName?: string; - browserVersion?: string; - platformName?: string; - proxy?: Session.ProxyConfiguration; - unhandledPromptBehavior?: Session.UserPromptHandler; - } & Extensible; -} -export declare namespace Session { - type ProxyConfiguration = Session.AutodetectProxyConfiguration | Session.DirectProxyConfiguration | Session.ManualProxyConfiguration | Session.PacProxyConfiguration | Session.SystemProxyConfiguration; -} -export declare namespace Session { - type AutodetectProxyConfiguration = { - proxyType: 'autodetect'; - } & Extensible; -} -export declare namespace Session { - type DirectProxyConfiguration = { - proxyType: 'direct'; - } & Extensible; -} -export declare namespace Session { - type ManualProxyConfiguration = { - proxyType: 'manual'; - httpProxy?: string; - sslProxy?: string; - } & ({} | Session.SocksProxyConfiguration) & { - noProxy?: [...string[]]; - } & Extensible; -} -export declare namespace Session { - type SocksProxyConfiguration = { - socksProxy: string; - /** - * Must be between `0` and `255`, inclusive. - */ - socksVersion: number; - }; -} -export declare namespace Session { - type PacProxyConfiguration = { - proxyType: 'pac'; - proxyAutoconfigUrl: string; - } & Extensible; -} -export declare namespace Session { - type SystemProxyConfiguration = { - proxyType: 'system'; - } & Extensible; -} -export declare namespace Session { - type UserPromptHandler = { - alert?: Session.UserPromptHandlerType; - beforeUnload?: Session.UserPromptHandlerType; - confirm?: Session.UserPromptHandlerType; - default?: Session.UserPromptHandlerType; - file?: Session.UserPromptHandlerType; - prompt?: Session.UserPromptHandlerType; - }; -} -export declare namespace Session { - const enum UserPromptHandlerType { - Accept = "accept", - Dismiss = "dismiss", - Ignore = "ignore" - } -} -export declare namespace Session { - type Subscription = string; -} -export declare namespace Session { - type SubscribeParameters = { - events: [string, ...string[]]; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Session { - type UnsubscribeByIdRequest = { - subscriptions: [Session.Subscription, ...Session.Subscription[]]; - }; -} -export declare namespace Session { - type UnsubscribeByAttributesRequest = { - events: [string, ...string[]]; - }; -} -export declare namespace Session { - type Status = { - method: 'session.status'; - params: EmptyParams; - }; -} -export declare namespace Session { - type StatusResult = { - ready: boolean; - message: string; - }; -} -export declare namespace Session { - type New = { - method: 'session.new'; - params: Session.NewParameters; - }; -} -export declare namespace Session { - type NewParameters = { - capabilities: Session.CapabilitiesRequest; - }; -} -export declare namespace Session { - type NewResult = { - sessionId: string; - capabilities: { - acceptInsecureCerts: boolean; - browserName: string; - browserVersion: string; - platformName: string; - setWindowRect: boolean; - userAgent: string; - proxy?: Session.ProxyConfiguration; - unhandledPromptBehavior?: Session.UserPromptHandler; - webSocketUrl?: string; - } & Extensible; - }; -} -export declare namespace Session { - type End = { - method: 'session.end'; - params: EmptyParams; - }; -} -export declare namespace Session { - type EndResult = EmptyResult; -} -export declare namespace Session { - type Subscribe = { - method: 'session.subscribe'; - params: Session.SubscribeParameters; - }; -} -export declare namespace Session { - type SubscribeResult = { - subscription: Session.Subscription; - }; -} -export declare namespace Session { - type Unsubscribe = { - method: 'session.unsubscribe'; - params: Session.UnsubscribeParameters; - }; -} -export declare namespace Session { - type UnsubscribeParameters = Session.UnsubscribeByAttributesRequest | Session.UnsubscribeByIdRequest; -} -export declare namespace Session { - type UnsubscribeResult = EmptyResult; -} -export type BrowserCommand = Browser.Close | Browser.CreateUserContext | Browser.GetClientWindows | Browser.GetUserContexts | Browser.RemoveUserContext | Browser.SetClientWindowState | Browser.SetDownloadBehavior; -export type BrowserResult = Browser.CloseResult | Browser.CreateUserContextResult | Browser.GetClientWindowsResult | Browser.GetUserContextsResult | Browser.RemoveUserContextResult | Browser.SetClientWindowStateResult | Browser.SetDownloadBehaviorResult; -export declare namespace Browser { - type ClientWindow = string; -} -export declare namespace Browser { - type ClientWindowInfo = { - active: boolean; - clientWindow: Browser.ClientWindow; - height: JsUint; - state: 'fullscreen' | 'maximized' | 'minimized' | 'normal'; - width: JsUint; - x: JsInt; - y: JsInt; - }; -} -export declare namespace Browser { - type UserContext = string; -} -export declare namespace Browser { - type UserContextInfo = { - userContext: Browser.UserContext; - }; -} -export declare namespace Browser { - type Close = { - method: 'browser.close'; - params: EmptyParams; - }; -} -export declare namespace Browser { - type CloseResult = EmptyResult; -} -export declare namespace Browser { - type CreateUserContext = { - method: 'browser.createUserContext'; - params: Browser.CreateUserContextParameters; - }; -} -export declare namespace Browser { - type CreateUserContextParameters = { - acceptInsecureCerts?: boolean; - proxy?: Session.ProxyConfiguration; - unhandledPromptBehavior?: Session.UserPromptHandler; - }; -} -export declare namespace Browser { - type CreateUserContextResult = Browser.UserContextInfo; -} -export declare namespace Browser { - type GetClientWindows = { - method: 'browser.getClientWindows'; - params: EmptyParams; - }; -} -export declare namespace Browser { - type GetClientWindowsResult = { - clientWindows: [...Browser.ClientWindowInfo[]]; - }; -} -export declare namespace Browser { - type GetUserContexts = { - method: 'browser.getUserContexts'; - params: EmptyParams; - }; -} -export declare namespace Browser { - type GetUserContextsResult = { - userContexts: [Browser.UserContextInfo, ...Browser.UserContextInfo[]]; - }; -} -export declare namespace Browser { - type RemoveUserContext = { - method: 'browser.removeUserContext'; - params: Browser.RemoveUserContextParameters; - }; -} -export declare namespace Browser { - type RemoveUserContextParameters = { - userContext: Browser.UserContext; - }; -} -export declare namespace Browser { - type RemoveUserContextResult = EmptyResult; -} -export declare namespace Browser { - type SetClientWindowState = { - method: 'browser.setClientWindowState'; - params: Browser.SetClientWindowStateParameters; - }; -} -export declare namespace Browser { - type SetClientWindowStateParameters = { - clientWindow: Browser.ClientWindow; - } & (Browser.ClientWindowNamedState | Browser.ClientWindowRectState); -} -export declare namespace Browser { - type ClientWindowNamedState = { - state: 'fullscreen' | 'maximized' | 'minimized'; - }; -} -export declare namespace Browser { - type ClientWindowRectState = { - state: 'normal'; - width?: JsUint; - height?: JsUint; - x?: JsInt; - y?: JsInt; - }; -} -export declare namespace Browser { - type SetClientWindowStateResult = Browser.ClientWindowInfo; -} -export declare namespace Browser { - type SetDownloadBehavior = { - method: 'browser.setDownloadBehavior'; - params: Browser.SetDownloadBehaviorParameters; - }; -} -export declare namespace Browser { - type SetDownloadBehaviorParameters = { - downloadBehavior: Browser.DownloadBehavior | null; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Browser { - type DownloadBehavior = Browser.DownloadBehaviorAllowed | Browser.DownloadBehaviorDenied; -} -export declare namespace Browser { - type DownloadBehaviorAllowed = { - type: 'allowed'; - destinationFolder: string; - }; -} -export declare namespace Browser { - type DownloadBehaviorDenied = { - type: 'denied'; - }; -} -export declare namespace Browser { - type SetDownloadBehaviorResult = EmptyResult; -} -export type BrowsingContextCommand = BrowsingContext.Activate | BrowsingContext.CaptureScreenshot | BrowsingContext.Close | BrowsingContext.Create | BrowsingContext.GetTree | BrowsingContext.HandleUserPrompt | BrowsingContext.LocateNodes | BrowsingContext.Navigate | BrowsingContext.Print | BrowsingContext.Reload | BrowsingContext.SetBypassCsp | BrowsingContext.SetViewport | BrowsingContext.TraverseHistory; -export type BrowsingContextResult = BrowsingContext.ActivateResult | BrowsingContext.CaptureScreenshotResult | BrowsingContext.CloseResult | BrowsingContext.CreateResult | BrowsingContext.GetTreeResult | BrowsingContext.HandleUserPromptResult | BrowsingContext.LocateNodesResult | BrowsingContext.NavigateResult | BrowsingContext.PrintResult | BrowsingContext.ReloadResult | BrowsingContext.SetBypassCspResult | BrowsingContext.SetViewportResult | BrowsingContext.TraverseHistoryResult; -export type BrowsingContextEvent = BrowsingContext.ContextCreated | BrowsingContext.ContextDestroyed | BrowsingContext.DomContentLoaded | BrowsingContext.DownloadEnd | BrowsingContext.DownloadWillBegin | BrowsingContext.FragmentNavigated | BrowsingContext.HistoryUpdated | BrowsingContext.Load | BrowsingContext.NavigationAborted | BrowsingContext.NavigationCommitted | BrowsingContext.NavigationFailed | BrowsingContext.NavigationStarted | BrowsingContext.UserPromptClosed | BrowsingContext.UserPromptOpened; -export declare namespace BrowsingContext { - type BrowsingContext = string; -} -export declare namespace BrowsingContext { - type InfoList = [...BrowsingContext.Info[]]; -} -export declare namespace BrowsingContext { - type Info = { - children: BrowsingContext.InfoList | null; - clientWindow: Browser.ClientWindow; - context: BrowsingContext.BrowsingContext; - originalOpener: BrowsingContext.BrowsingContext | null; - url: string; - userContext: Browser.UserContext; - parent?: BrowsingContext.BrowsingContext | null; - }; -} -export declare namespace BrowsingContext { - type Locator = BrowsingContext.AccessibilityLocator | BrowsingContext.CssLocator | BrowsingContext.ContextLocator | BrowsingContext.InnerTextLocator | BrowsingContext.XPathLocator; -} -export declare namespace BrowsingContext { - type AccessibilityLocator = { - type: 'accessibility'; - value: { - name?: string; - role?: string; - }; - }; -} -export declare namespace BrowsingContext { - type CssLocator = { - type: 'css'; - value: string; - }; -} -export declare namespace BrowsingContext { - type ContextLocator = { - type: 'context'; - value: { - context: BrowsingContext.BrowsingContext; - }; - }; -} -export declare namespace BrowsingContext { - type InnerTextLocator = { - type: 'innerText'; - value: string; - ignoreCase?: boolean; - matchType?: 'full' | 'partial'; - maxDepth?: JsUint; - }; -} -export declare namespace BrowsingContext { - type XPathLocator = { - type: 'xpath'; - value: string; - }; -} -export declare namespace BrowsingContext { - type Navigation = string; -} -export declare namespace BrowsingContext { - type BaseNavigationInfo = { - context: BrowsingContext.BrowsingContext; - navigation: BrowsingContext.Navigation | null; - timestamp: JsUint; - url: string; - userContext?: Browser.UserContext; - }; -} -export declare namespace BrowsingContext { - type NavigationInfo = BrowsingContext.BaseNavigationInfo; -} -export declare namespace BrowsingContext { - const enum ReadinessState { - None = "none", - Interactive = "interactive", - Complete = "complete" - } -} -export declare namespace BrowsingContext { - const enum UserPromptType { - Alert = "alert", - Beforeunload = "beforeunload", - Confirm = "confirm", - Prompt = "prompt" - } -} -export declare namespace BrowsingContext { - type Activate = { - method: 'browsingContext.activate'; - params: BrowsingContext.ActivateParameters; - }; -} -export declare namespace BrowsingContext { - type ActivateParameters = { - context: BrowsingContext.BrowsingContext; - }; -} -export declare namespace BrowsingContext { - type ActivateResult = EmptyResult; -} -export declare namespace BrowsingContext { - type CaptureScreenshot = { - method: 'browsingContext.captureScreenshot'; - params: BrowsingContext.CaptureScreenshotParameters; - }; -} -export declare namespace BrowsingContext { - type CaptureScreenshotParameters = { - context: BrowsingContext.BrowsingContext; - /** - * @defaultValue `"viewport"` - */ - origin?: 'viewport' | 'document'; - format?: BrowsingContext.ImageFormat; - clip?: BrowsingContext.ClipRectangle; - }; -} -export declare namespace BrowsingContext { - type ImageFormat = { - type: string; - /** - * Must be between `0` and `1`, inclusive. - */ - quality?: number; - }; -} -export declare namespace BrowsingContext { - type ClipRectangle = BrowsingContext.BoxClipRectangle | BrowsingContext.ElementClipRectangle; -} -export declare namespace BrowsingContext { - type ElementClipRectangle = { - type: 'element'; - element: Script.SharedReference; - }; -} -export declare namespace BrowsingContext { - type BoxClipRectangle = { - type: 'box'; - x: number; - y: number; - width: number; - height: number; - }; -} -export declare namespace BrowsingContext { - type CaptureScreenshotResult = { - data: string; - }; -} -export declare namespace BrowsingContext { - type Close = { - method: 'browsingContext.close'; - params: BrowsingContext.CloseParameters; - }; -} -export declare namespace BrowsingContext { - type CloseParameters = { - context: BrowsingContext.BrowsingContext; - /** - * @defaultValue `false` - */ - promptUnload?: boolean; - }; -} -export declare namespace BrowsingContext { - type CloseResult = EmptyResult; -} -export declare namespace BrowsingContext { - type Create = { - method: 'browsingContext.create'; - params: BrowsingContext.CreateParameters; - }; -} -export declare namespace BrowsingContext { - const enum CreateType { - Tab = "tab", - Window = "window" - } -} -export declare namespace BrowsingContext { - type CreateParameters = { - type: BrowsingContext.CreateType; - referenceContext?: BrowsingContext.BrowsingContext; - /** - * @defaultValue `false` - */ - background?: boolean; - userContext?: Browser.UserContext; - }; -} -export declare namespace BrowsingContext { - type CreateResult = { - context: BrowsingContext.BrowsingContext; - userContext?: Browser.UserContext; - }; -} -export declare namespace BrowsingContext { - type GetTree = { - method: 'browsingContext.getTree'; - params: BrowsingContext.GetTreeParameters; - }; -} -export declare namespace BrowsingContext { - type GetTreeParameters = { - maxDepth?: JsUint; - root?: BrowsingContext.BrowsingContext; - }; -} -export declare namespace BrowsingContext { - type GetTreeResult = { - contexts: BrowsingContext.InfoList; - }; -} -export declare namespace BrowsingContext { - type HandleUserPrompt = { - method: 'browsingContext.handleUserPrompt'; - params: BrowsingContext.HandleUserPromptParameters; - }; -} -export declare namespace BrowsingContext { - type HandleUserPromptParameters = { - context: BrowsingContext.BrowsingContext; - accept?: boolean; - userText?: string; - }; -} -export declare namespace BrowsingContext { - type HandleUserPromptResult = EmptyResult; -} -export declare namespace BrowsingContext { - type LocateNodes = { - method: 'browsingContext.locateNodes'; - params: BrowsingContext.LocateNodesParameters; - }; -} -export declare namespace BrowsingContext { - type LocateNodesParameters = { - context: BrowsingContext.BrowsingContext; - locator: BrowsingContext.Locator; - /** - * Must be greater than or equal to `1`. - */ - maxNodeCount?: JsUint; - serializationOptions?: Script.SerializationOptions; - startNodes?: [Script.SharedReference, ...Script.SharedReference[]]; - }; -} -export declare namespace BrowsingContext { - type LocateNodesResult = { - nodes: [...Script.NodeRemoteValue[]]; - }; -} -export declare namespace BrowsingContext { - type Navigate = { - method: 'browsingContext.navigate'; - params: BrowsingContext.NavigateParameters; - }; -} -export declare namespace BrowsingContext { - type NavigateParameters = { - context: BrowsingContext.BrowsingContext; - url: string; - wait?: BrowsingContext.ReadinessState; - }; -} -export declare namespace BrowsingContext { - type NavigateResult = { - navigation: BrowsingContext.Navigation | null; - url: string; - }; -} -export declare namespace BrowsingContext { - type Print = { - method: 'browsingContext.print'; - params: BrowsingContext.PrintParameters; - }; -} -export declare namespace BrowsingContext { - type PrintParameters = { - context: BrowsingContext.BrowsingContext; - /** - * @defaultValue `false` - */ - background?: boolean; - margin?: BrowsingContext.PrintMarginParameters; - /** - * @defaultValue `"portrait"` - */ - orientation?: 'portrait' | 'landscape'; - page?: BrowsingContext.PrintPageParameters; - pageRanges?: [...(JsUint | string)[]]; - /** - * Must be between `0.1` and `2`, inclusive. - * - * @defaultValue `1` - */ - scale?: number; - /** - * @defaultValue `true` - */ - shrinkToFit?: boolean; - }; -} -export declare namespace BrowsingContext { - type PrintMarginParameters = { - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `1` - */ - bottom?: number; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `1` - */ - left?: number; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `1` - */ - right?: number; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `1` - */ - top?: number; - }; -} -export declare namespace BrowsingContext { - type PrintPageParameters = { - /** - * Must be greater than or equal to `0.0352`. - * - * @defaultValue `27.94` - */ - height?: number; - /** - * Must be greater than or equal to `0.0352`. - * - * @defaultValue `21.59` - */ - width?: number; - }; -} -export declare namespace BrowsingContext { - type PrintResult = { - data: string; - }; -} -export declare namespace BrowsingContext { - type Reload = { - method: 'browsingContext.reload'; - params: BrowsingContext.ReloadParameters; - }; -} -export declare namespace BrowsingContext { - type ReloadParameters = { - context: BrowsingContext.BrowsingContext; - ignoreCache?: boolean; - wait?: BrowsingContext.ReadinessState; - }; -} -export declare namespace BrowsingContext { - type ReloadResult = BrowsingContext.NavigateResult; -} -export declare namespace BrowsingContext { - type SetBypassCsp = { - method: 'browsingContext.setBypassCSP'; - params: BrowsingContext.SetBypassCspParameters; - }; -} -export declare namespace BrowsingContext { - type SetBypassCspParameters = { - bypass: true | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace BrowsingContext { - type SetBypassCspResult = EmptyResult; -} -export declare namespace BrowsingContext { - type SetViewport = { - method: 'browsingContext.setViewport'; - params: BrowsingContext.SetViewportParameters; - }; -} -export declare namespace BrowsingContext { - type SetViewportParameters = { - context?: BrowsingContext.BrowsingContext; - viewport?: BrowsingContext.Viewport | null; - /** - * Must be greater than `0`. - */ - devicePixelRatio?: number | null; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace BrowsingContext { - type Viewport = { - width: JsUint; - height: JsUint; - }; -} -export declare namespace BrowsingContext { - type SetViewportResult = EmptyResult; -} -export declare namespace BrowsingContext { - type TraverseHistory = { - method: 'browsingContext.traverseHistory'; - params: BrowsingContext.TraverseHistoryParameters; - }; -} -export declare namespace BrowsingContext { - type TraverseHistoryParameters = { - context: BrowsingContext.BrowsingContext; - delta: JsInt; - }; -} -export declare namespace BrowsingContext { - type TraverseHistoryResult = EmptyResult; -} -export declare namespace BrowsingContext { - type ContextCreated = { - method: 'browsingContext.contextCreated'; - params: BrowsingContext.Info; - }; -} -export declare namespace BrowsingContext { - type ContextDestroyed = { - method: 'browsingContext.contextDestroyed'; - params: BrowsingContext.Info; - }; -} -export declare namespace BrowsingContext { - type NavigationStarted = { - method: 'browsingContext.navigationStarted'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type FragmentNavigated = { - method: 'browsingContext.fragmentNavigated'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type HistoryUpdated = { - method: 'browsingContext.historyUpdated'; - params: BrowsingContext.HistoryUpdatedParameters; - }; -} -export declare namespace BrowsingContext { - type HistoryUpdatedParameters = { - context: BrowsingContext.BrowsingContext; - timestamp: JsUint; - url: string; - userContext?: Browser.UserContext; - }; -} -export declare namespace BrowsingContext { - type DomContentLoaded = { - method: 'browsingContext.domContentLoaded'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type Load = { - method: 'browsingContext.load'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type DownloadWillBegin = { - method: 'browsingContext.downloadWillBegin'; - params: BrowsingContext.DownloadWillBeginParams; - }; -} -export declare namespace BrowsingContext { - type DownloadWillBeginParams = { - suggestedFilename: string; - } & BrowsingContext.BaseNavigationInfo; -} -export declare namespace BrowsingContext { - type DownloadEnd = { - method: 'browsingContext.downloadEnd'; - params: BrowsingContext.DownloadEndParams; - }; -} -export declare namespace BrowsingContext { - type DownloadEndParams = BrowsingContext.DownloadCanceledParams | BrowsingContext.DownloadCompleteParams; -} -export declare namespace BrowsingContext { - type DownloadCanceledParams = { - status: 'canceled'; - } & BrowsingContext.BaseNavigationInfo; -} -export declare namespace BrowsingContext { - type DownloadCompleteParams = { - status: 'complete'; - filepath: string | null; - } & BrowsingContext.BaseNavigationInfo; -} -export declare namespace BrowsingContext { - type NavigationAborted = { - method: 'browsingContext.navigationAborted'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type NavigationCommitted = { - method: 'browsingContext.navigationCommitted'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type NavigationFailed = { - method: 'browsingContext.navigationFailed'; - params: BrowsingContext.NavigationInfo; - }; -} -export declare namespace BrowsingContext { - type UserPromptClosed = { - method: 'browsingContext.userPromptClosed'; - params: BrowsingContext.UserPromptClosedParameters; - }; -} -export declare namespace BrowsingContext { - type UserPromptClosedParameters = { - context: BrowsingContext.BrowsingContext; - accepted: boolean; - type: BrowsingContext.UserPromptType; - userContext?: Browser.UserContext; - userText?: string; - }; -} -export declare namespace BrowsingContext { - type UserPromptOpened = { - method: 'browsingContext.userPromptOpened'; - params: BrowsingContext.UserPromptOpenedParameters; - }; -} -export declare namespace BrowsingContext { - type UserPromptOpenedParameters = { - context: BrowsingContext.BrowsingContext; - handler: Session.UserPromptHandlerType; - message: string; - type: BrowsingContext.UserPromptType; - userContext?: Browser.UserContext; - defaultValue?: string; - }; -} -export type EmulationCommand = Emulation.SetForcedColorsModeThemeOverride | Emulation.SetGeolocationOverride | Emulation.SetLocaleOverride | Emulation.SetNetworkConditions | Emulation.SetScreenOrientationOverride | Emulation.SetScreenSettingsOverride | Emulation.SetScriptingEnabled | Emulation.SetScrollbarTypeOverride | Emulation.SetTimezoneOverride | Emulation.SetTouchOverride | Emulation.SetUserAgentOverride; -export type EmulationResult = Emulation.SetForcedColorsModeThemeOverrideResult | Emulation.SetGeolocationOverrideResult | Emulation.SetLocaleOverrideResult | Emulation.SetScreenOrientationOverrideResult | Emulation.SetScriptingEnabledResult | Emulation.SetScrollbarTypeOverrideResult | Emulation.SetTimezoneOverrideResult | Emulation.SetTouchOverrideResult | Emulation.SetUserAgentOverrideResult; -export declare namespace Emulation { - type SetForcedColorsModeThemeOverride = { - method: 'emulation.setForcedColorsModeThemeOverride'; - params: Emulation.SetForcedColorsModeThemeOverrideParameters; - }; -} -export declare namespace Emulation { - type SetForcedColorsModeThemeOverrideParameters = { - theme: Emulation.ForcedColorsModeTheme | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - const enum ForcedColorsModeTheme { - Light = "light", - Dark = "dark" - } -} -export declare namespace Emulation { - type SetForcedColorsModeThemeOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetGeolocationOverride = { - method: 'emulation.setGeolocationOverride'; - params: Emulation.SetGeolocationOverrideParameters; - }; -} -export declare namespace Emulation { - type SetGeolocationOverrideParameters = ({ - coordinates: Emulation.GeolocationCoordinates | null; - } | { - error: Emulation.GeolocationPositionError; - }) & { - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type GeolocationCoordinates = { - /** - * Must be between `-90` and `90`, inclusive. - */ - latitude: number; - /** - * Must be between `-180` and `180`, inclusive. - */ - longitude: number; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `1` - */ - accuracy?: number; - /** - * @defaultValue `null` - */ - altitude?: number | null; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `null` - */ - altitudeAccuracy?: number | null; - /** - * Must be between `0` and `360`. - * - * @defaultValue `null` - */ - heading?: number | null; - /** - * Must be greater than or equal to `0`. - * - * @defaultValue `null` - */ - speed?: number | null; - }; -} -export declare namespace Emulation { - type GeolocationPositionError = { - type: 'positionUnavailable'; - }; -} -export declare namespace Emulation { - type SetGeolocationOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetLocaleOverride = { - method: 'emulation.setLocaleOverride'; - params: Emulation.SetLocaleOverrideParameters; - }; -} -export declare namespace Emulation { - type SetLocaleOverrideParameters = { - locale: string | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetLocaleOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetNetworkConditions = { - method: 'emulation.setNetworkConditions'; - params: Emulation.SetNetworkConditionsParameters; - }; -} -export declare namespace Emulation { - type SetNetworkConditionsParameters = { - networkConditions: Emulation.NetworkConditions | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type NetworkConditions = Emulation.NetworkConditionsOffline; -} -export declare namespace Emulation { - type NetworkConditionsOffline = { - type: 'offline'; - }; -} -export declare namespace Emulation { - type SetNetworkConditionsResult = EmptyResult; -} -export declare namespace Emulation { - type SetScreenSettingsOverride = { - method: 'emulation.setScreenSettingsOverride'; - params: Emulation.SetScreenSettingsOverrideParameters; - }; -} -export declare namespace Emulation { - type ScreenArea = { - width: JsUint; - height: JsUint; - }; -} -export declare namespace Emulation { - type SetScreenSettingsOverrideParameters = { - screenArea: Emulation.ScreenArea | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetScreenSettingsOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetScreenOrientationOverride = { - method: 'emulation.setScreenOrientationOverride'; - params: Emulation.SetScreenOrientationOverrideParameters; - }; -} -export declare namespace Emulation { - const enum ScreenOrientationNatural { - Portrait = "portrait", - Landscape = "landscape" - } -} -export declare namespace Emulation { - type ScreenOrientationType = 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary'; -} -export declare namespace Emulation { - type ScreenOrientation = { - natural: Emulation.ScreenOrientationNatural; - type: Emulation.ScreenOrientationType; - }; -} -export declare namespace Emulation { - type SetScreenOrientationOverrideParameters = { - screenOrientation: Emulation.ScreenOrientation | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetScreenOrientationOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetUserAgentOverride = { - method: 'emulation.setUserAgentOverride'; - params: Emulation.SetUserAgentOverrideParameters; - }; -} -export declare namespace Emulation { - type SetUserAgentOverrideParameters = { - userAgent: string | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetUserAgentOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetScriptingEnabled = { - method: 'emulation.setScriptingEnabled'; - params: Emulation.SetScriptingEnabledParameters; - }; -} -export declare namespace Emulation { - type SetScriptingEnabledParameters = { - enabled: false | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetScriptingEnabledResult = EmptyResult; -} -export declare namespace Emulation { - type SetScrollbarTypeOverride = { - method: 'emulation.setScrollbarTypeOverride'; - params: Emulation.SetScrollbarTypeOverrideParameters; - }; -} -export declare namespace Emulation { - type SetScrollbarTypeOverrideParameters = { - scrollbarType: 'classic' | 'overlay' | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetScrollbarTypeOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetTimezoneOverride = { - method: 'emulation.setTimezoneOverride'; - params: Emulation.SetTimezoneOverrideParameters; - }; -} -export declare namespace Emulation { - type SetTimezoneOverrideParameters = { - timezone: string | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetTimezoneOverrideResult = EmptyResult; -} -export declare namespace Emulation { - type SetTouchOverride = { - method: 'emulation.setTouchOverride'; - params: Emulation.SetTouchOverrideParameters; - }; -} -export declare namespace Emulation { - type SetTouchOverrideParameters = { - /** - * Must be greater than or equal to `1`. - */ - maxTouchPoints: JsUint | null; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Emulation { - type SetTouchOverrideResult = EmptyResult; -} -export type NetworkCommand = Network.AddDataCollector | Network.AddIntercept | Network.ContinueRequest | Network.ContinueResponse | Network.ContinueWithAuth | Network.DisownData | Network.FailRequest | Network.GetData | Network.ProvideResponse | Network.RemoveDataCollector | Network.RemoveIntercept | Network.SetCacheBehavior | Network.SetExtraHeaders; -export type NetworkResult = Network.AddDataCollectorResult | Network.AddInterceptResult | Network.ContinueRequestResult | Network.ContinueResponseResult | Network.ContinueWithAuthResult | Network.DisownDataResult | Network.FailRequestResult | Network.GetDataResult | Network.ProvideResponseResult | Network.RemoveDataCollectorResult | Network.RemoveInterceptResult | Network.SetCacheBehaviorResult | Network.SetExtraHeadersResult; -export type NetworkEvent = Network.AuthRequired | Network.BeforeRequestSent | Network.FetchError | Network.ResponseCompleted | Network.ResponseStarted; -export declare namespace Network { - type AuthChallenge = { - scheme: string; - realm: string; - }; -} -export declare namespace Network { - type AuthCredentials = { - type: 'password'; - username: string; - password: string; - }; -} -export declare namespace Network { - type BaseParameters = { - context: BrowsingContext.BrowsingContext | null; - isBlocked: boolean; - navigation: BrowsingContext.Navigation | null; - redirectCount: JsUint; - request: Network.RequestData; - timestamp: JsUint; - userContext?: Browser.UserContext | null; - intercepts?: [Network.Intercept, ...Network.Intercept[]]; - }; -} -export declare namespace Network { - type BytesValue = Network.StringValue | Network.Base64Value; -} -export declare namespace Network { - type StringValue = { - type: 'string'; - value: string; - }; -} -export declare namespace Network { - type Base64Value = { - type: 'base64'; - value: string; - }; -} -export declare namespace Network { - type Collector = string; -} -export declare namespace Network { - const enum CollectorType { - Blob = "blob" - } -} -export declare namespace Network { - const enum SameSite { - Strict = "strict", - Lax = "lax", - None = "none", - Default = "default" - } -} -export declare namespace Network { - type Cookie = { - name: string; - value: Network.BytesValue; - domain: string; - path: string; - size: JsUint; - httpOnly: boolean; - secure: boolean; - sameSite: Network.SameSite; - expiry?: JsUint; - } & Extensible; -} -export declare namespace Network { - type CookieHeader = { - name: string; - value: Network.BytesValue; - }; -} -export declare namespace Network { - const enum DataType { - Request = "request", - Response = "response" - } -} -export declare namespace Network { - type FetchTimingInfo = { - timeOrigin: number; - requestTime: number; - redirectStart: number; - redirectEnd: number; - fetchStart: number; - dnsStart: number; - dnsEnd: number; - connectStart: number; - connectEnd: number; - tlsStart: number; - requestStart: number; - responseStart: number; - responseEnd: number; - }; -} -export declare namespace Network { - type Header = { - name: string; - value: Network.BytesValue; - }; -} -export declare namespace Network { - type Initiator = { - columnNumber?: JsUint; - lineNumber?: JsUint; - request?: Network.Request; - stackTrace?: Script.StackTrace; - type?: 'parser' | 'script' | 'preflight' | 'other'; - }; -} -export declare namespace Network { - type Intercept = string; -} -export declare namespace Network { - type Request = string; -} -export declare namespace Network { - type RequestData = { - request: Network.Request; - url: string; - method: string; - headers: [...Network.Header[]]; - cookies: [...Network.Cookie[]]; - headersSize: JsUint; - bodySize: JsUint | null; - destination: string; - initiatorType: string | null; - timings: Network.FetchTimingInfo; - }; -} -export declare namespace Network { - type ResponseContent = { - size: JsUint; - }; -} -export declare namespace Network { - type ResponseData = { - url: string; - protocol: string; - status: JsUint; - statusText: string; - fromCache: boolean; - headers: [...Network.Header[]]; - mimeType: string; - bytesReceived: JsUint; - headersSize: JsUint | null; - bodySize: JsUint | null; - content: Network.ResponseContent; - authChallenges?: [...Network.AuthChallenge[]]; - }; -} -export declare namespace Network { - type SetCookieHeader = { - name: string; - value: Network.BytesValue; - domain?: string; - httpOnly?: boolean; - expiry?: string; - maxAge?: JsInt; - path?: string; - sameSite?: Network.SameSite; - secure?: boolean; - }; -} -export declare namespace Network { - type UrlPattern = Network.UrlPatternPattern | Network.UrlPatternString; -} -export declare namespace Network { - type UrlPatternPattern = { - type: 'pattern'; - protocol?: string; - hostname?: string; - port?: string; - pathname?: string; - search?: string; - }; -} -export declare namespace Network { - type UrlPatternString = { - type: 'string'; - pattern: string; - }; -} -export declare namespace Network { - type AddDataCollector = { - method: 'network.addDataCollector'; - params: Network.AddDataCollectorParameters; - }; -} -export declare namespace Network { - type AddDataCollectorParameters = { - dataTypes: [Network.DataType, ...Network.DataType[]]; - maxEncodedDataSize: JsUint; - /** - * @defaultValue `"blob"` - */ - collectorType?: Network.CollectorType; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Network { - type AddDataCollectorResult = { - collector: Network.Collector; - }; -} -export declare namespace Network { - type AddIntercept = { - method: 'network.addIntercept'; - params: Network.AddInterceptParameters; - }; -} -export declare namespace Network { - type AddInterceptParameters = { - phases: [Network.InterceptPhase, ...Network.InterceptPhase[]]; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - urlPatterns?: [...Network.UrlPattern[]]; - }; -} -export declare namespace Network { - const enum InterceptPhase { - BeforeRequestSent = "beforeRequestSent", - ResponseStarted = "responseStarted", - AuthRequired = "authRequired" - } -} -export declare namespace Network { - type AddInterceptResult = { - intercept: Network.Intercept; - }; -} -export declare namespace Network { - type ContinueRequest = { - method: 'network.continueRequest'; - params: Network.ContinueRequestParameters; - }; -} -export declare namespace Network { - type ContinueRequestParameters = { - request: Network.Request; - body?: Network.BytesValue; - cookies?: [...Network.CookieHeader[]]; - headers?: [...Network.Header[]]; - method?: string; - url?: string; - }; -} -export declare namespace Network { - type ContinueRequestResult = EmptyResult; -} -export declare namespace Network { - type ContinueResponse = { - method: 'network.continueResponse'; - params: Network.ContinueResponseParameters; - }; -} -export declare namespace Network { - type ContinueResponseParameters = { - request: Network.Request; - cookies?: [...Network.SetCookieHeader[]]; - credentials?: Network.AuthCredentials; - headers?: [...Network.Header[]]; - reasonPhrase?: string; - statusCode?: JsUint; - }; -} -export declare namespace Network { - type ContinueResponseResult = EmptyResult; -} -export declare namespace Network { - type ContinueWithAuth = { - method: 'network.continueWithAuth'; - params: Network.ContinueWithAuthParameters; - }; -} -export declare namespace Network { - type ContinueWithAuthParameters = { - request: Network.Request; - } & (Network.ContinueWithAuthCredentials | Network.ContinueWithAuthNoCredentials); -} -export declare namespace Network { - type ContinueWithAuthCredentials = { - action: 'provideCredentials'; - credentials: Network.AuthCredentials; - }; -} -export declare namespace Network { - type ContinueWithAuthNoCredentials = { - action: 'default' | 'cancel'; - }; -} -export declare namespace Network { - type ContinueWithAuthResult = EmptyResult; -} -export declare namespace Network { - type DisownData = { - method: 'network.disownData'; - params: Network.DisownDataParameters; - }; -} -export declare namespace Network { - type DisownDataParameters = { - dataType: Network.DataType; - collector: Network.Collector; - request: Network.Request; - }; -} -export declare namespace Network { - type DisownDataResult = EmptyResult; -} -export declare namespace Network { - type FailRequest = { - method: 'network.failRequest'; - params: Network.FailRequestParameters; - }; -} -export declare namespace Network { - type FailRequestParameters = { - request: Network.Request; - }; -} -export declare namespace Network { - type FailRequestResult = EmptyResult; -} -export declare namespace Network { - type GetData = { - method: 'network.getData'; - params: Network.GetDataParameters; - }; -} -export declare namespace Network { - type GetDataParameters = { - dataType: Network.DataType; - collector?: Network.Collector; - /** - * @defaultValue `false` - */ - disown?: boolean; - request: Network.Request; - }; -} -export declare namespace Network { - type GetDataResult = { - bytes: Network.BytesValue; - }; -} -export declare namespace Network { - type ProvideResponse = { - method: 'network.provideResponse'; - params: Network.ProvideResponseParameters; - }; -} -export declare namespace Network { - type ProvideResponseParameters = { - request: Network.Request; - body?: Network.BytesValue; - cookies?: [...Network.SetCookieHeader[]]; - headers?: [...Network.Header[]]; - reasonPhrase?: string; - statusCode?: JsUint; - }; -} -export declare namespace Network { - type ProvideResponseResult = EmptyResult; -} -export declare namespace Network { - type RemoveDataCollector = { - method: 'network.removeDataCollector'; - params: Network.RemoveDataCollectorParameters; - }; -} -export declare namespace Network { - type RemoveDataCollectorParameters = { - collector: Network.Collector; - }; -} -export declare namespace Network { - type RemoveDataCollectorResult = EmptyResult; -} -export declare namespace Network { - type RemoveIntercept = { - method: 'network.removeIntercept'; - params: Network.RemoveInterceptParameters; - }; -} -export declare namespace Network { - type RemoveInterceptParameters = { - intercept: Network.Intercept; - }; -} -export declare namespace Network { - type RemoveInterceptResult = EmptyResult; -} -export declare namespace Network { - type SetCacheBehavior = { - method: 'network.setCacheBehavior'; - params: Network.SetCacheBehaviorParameters; - }; -} -export declare namespace Network { - type SetCacheBehaviorParameters = { - cacheBehavior: 'default' | 'bypass'; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - }; -} -export declare namespace Network { - type SetCacheBehaviorResult = EmptyResult; -} -export declare namespace Network { - type SetExtraHeaders = { - method: 'network.setExtraHeaders'; - params: Network.SetExtraHeadersParameters; - }; -} -export declare namespace Network { - type SetExtraHeadersParameters = { - headers: [...Network.Header[]]; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - }; -} -export declare namespace Network { - type SetExtraHeadersResult = EmptyResult; -} -export declare namespace Network { - type AuthRequired = { - method: 'network.authRequired'; - params: Network.AuthRequiredParameters; - }; -} -export declare namespace Network { - type AuthRequiredParameters = Network.BaseParameters & { - response: Network.ResponseData; - }; -} -export declare namespace Network { - type BeforeRequestSent = { - method: 'network.beforeRequestSent'; - params: Network.BeforeRequestSentParameters; - }; -} -export declare namespace Network { - type BeforeRequestSentParameters = Network.BaseParameters & { - initiator?: Network.Initiator; - }; -} -export declare namespace Network { - type FetchError = { - method: 'network.fetchError'; - params: Network.FetchErrorParameters; - }; -} -export declare namespace Network { - type FetchErrorParameters = Network.BaseParameters & { - errorText: string; - }; -} -export declare namespace Network { - type ResponseCompleted = { - method: 'network.responseCompleted'; - params: Network.ResponseCompletedParameters; - }; -} -export declare namespace Network { - type ResponseCompletedParameters = Network.BaseParameters & { - response: Network.ResponseData; - }; -} -export declare namespace Network { - type ResponseStarted = { - method: 'network.responseStarted'; - params: Network.ResponseStartedParameters; - }; -} -export declare namespace Network { - type ResponseStartedParameters = Network.BaseParameters & { - response: Network.ResponseData; - }; -} -export type ScriptCommand = Script.AddPreloadScript | Script.CallFunction | Script.Disown | Script.Evaluate | Script.GetRealms | Script.RemovePreloadScript; -export type ScriptResult = Script.AddPreloadScriptResult | Script.CallFunctionResult | Script.DisownResult | Script.EvaluateResult | Script.GetRealmsResult | Script.RemovePreloadScriptResult; -export type ScriptEvent = Script.Message | Script.RealmCreated | Script.RealmDestroyed; -export declare namespace Script { - type Channel = string; -} -export declare namespace Script { - type ChannelValue = { - type: 'channel'; - value: Script.ChannelProperties; - }; -} -export declare namespace Script { - type ChannelProperties = { - channel: Script.Channel; - serializationOptions?: Script.SerializationOptions; - ownership?: Script.ResultOwnership; - }; -} -export declare namespace Script { - type EvaluateResult = Script.EvaluateResultSuccess | Script.EvaluateResultException; -} -export declare namespace Script { - type EvaluateResultSuccess = { - type: 'success'; - result: Script.RemoteValue; - realm: Script.Realm; - }; -} -export declare namespace Script { - type EvaluateResultException = { - type: 'exception'; - exceptionDetails: Script.ExceptionDetails; - realm: Script.Realm; - }; -} -export declare namespace Script { - type ExceptionDetails = { - columnNumber: JsUint; - exception: Script.RemoteValue; - lineNumber: JsUint; - stackTrace: Script.StackTrace; - text: string; - }; -} -export declare namespace Script { - type Handle = string; -} -export declare namespace Script { - type InternalId = string; -} -export declare namespace Script { - type LocalValue = Script.RemoteReference | Script.PrimitiveProtocolValue | Script.ChannelValue | Script.ArrayLocalValue | Script.DateLocalValue | Script.MapLocalValue | Script.ObjectLocalValue | Script.RegExpLocalValue | Script.SetLocalValue; -} -export declare namespace Script { - type ListLocalValue = [...Script.LocalValue[]]; -} -export declare namespace Script { - type ArrayLocalValue = { - type: 'array'; - value: Script.ListLocalValue; - }; -} -export declare namespace Script { - type DateLocalValue = { - type: 'date'; - value: string; - }; -} -export declare namespace Script { - type MappingLocalValue = [ - ...[Script.LocalValue | string, Script.LocalValue][] - ]; -} -export declare namespace Script { - type MapLocalValue = { - type: 'map'; - value: Script.MappingLocalValue; - }; -} -export declare namespace Script { - type ObjectLocalValue = { - type: 'object'; - value: Script.MappingLocalValue; - }; -} -export declare namespace Script { - type RegExpValue = { - pattern: string; - flags?: string; - }; -} -export declare namespace Script { - type RegExpLocalValue = { - type: 'regexp'; - value: Script.RegExpValue; - }; -} -export declare namespace Script { - type SetLocalValue = { - type: 'set'; - value: Script.ListLocalValue; - }; -} -export declare namespace Script { - type PreloadScript = string; -} -export declare namespace Script { - type Realm = string; -} -export declare namespace Script { - type PrimitiveProtocolValue = Script.UndefinedValue | Script.NullValue | Script.StringValue | Script.NumberValue | Script.BooleanValue | Script.BigIntValue; -} -export declare namespace Script { - type UndefinedValue = { - type: 'undefined'; - }; -} -export declare namespace Script { - type NullValue = { - type: 'null'; - }; -} -export declare namespace Script { - type StringValue = { - type: 'string'; - value: string; - }; -} -export declare namespace Script { - type SpecialNumber = 'NaN' | '-0' | 'Infinity' | '-Infinity'; -} -export declare namespace Script { - type NumberValue = { - type: 'number'; - value: number | Script.SpecialNumber; - }; -} -export declare namespace Script { - type BooleanValue = { - type: 'boolean'; - value: boolean; - }; -} -export declare namespace Script { - type BigIntValue = { - type: 'bigint'; - value: string; - }; -} -export declare namespace Script { - type RealmInfo = Script.WindowRealmInfo | Script.DedicatedWorkerRealmInfo | Script.SharedWorkerRealmInfo | Script.ServiceWorkerRealmInfo | Script.WorkerRealmInfo | Script.PaintWorkletRealmInfo | Script.AudioWorkletRealmInfo | Script.WorkletRealmInfo; -} -export declare namespace Script { - type BaseRealmInfo = { - realm: Script.Realm; - origin: string; - }; -} -export declare namespace Script { - type WindowRealmInfo = Script.BaseRealmInfo & { - type: 'window'; - context: BrowsingContext.BrowsingContext; - userContext?: Browser.UserContext; - sandbox?: string; - }; -} -export declare namespace Script { - type DedicatedWorkerRealmInfo = Script.BaseRealmInfo & { - type: 'dedicated-worker'; - owners: [Script.Realm]; - }; -} -export declare namespace Script { - type SharedWorkerRealmInfo = Script.BaseRealmInfo & { - type: 'shared-worker'; - }; -} -export declare namespace Script { - type ServiceWorkerRealmInfo = Script.BaseRealmInfo & { - type: 'service-worker'; - }; -} -export declare namespace Script { - type WorkerRealmInfo = Script.BaseRealmInfo & { - type: 'worker'; - }; -} -export declare namespace Script { - type PaintWorkletRealmInfo = Script.BaseRealmInfo & { - type: 'paint-worklet'; - }; -} -export declare namespace Script { - type AudioWorkletRealmInfo = Script.BaseRealmInfo & { - type: 'audio-worklet'; - }; -} -export declare namespace Script { - type WorkletRealmInfo = Script.BaseRealmInfo & { - type: 'worklet'; - }; -} -export declare namespace Script { - type RealmType = 'window' | 'dedicated-worker' | 'shared-worker' | 'service-worker' | 'worker' | 'paint-worklet' | 'audio-worklet' | 'worklet'; -} -export declare namespace Script { - type RemoteReference = Script.SharedReference | Script.RemoteObjectReference; -} -export declare namespace Script { - type SharedReference = { - sharedId: Script.SharedId; - handle?: Script.Handle; - } & Extensible; -} -export declare namespace Script { - type RemoteObjectReference = { - handle: Script.Handle; - sharedId?: Script.SharedId; - } & Extensible; -} -export declare namespace Script { - type RemoteValue = Script.PrimitiveProtocolValue | Script.SymbolRemoteValue | Script.ArrayRemoteValue | Script.ObjectRemoteValue | Script.FunctionRemoteValue | Script.RegExpRemoteValue | Script.DateRemoteValue | Script.MapRemoteValue | Script.SetRemoteValue | Script.WeakMapRemoteValue | Script.WeakSetRemoteValue | Script.GeneratorRemoteValue | Script.ErrorRemoteValue | Script.ProxyRemoteValue | Script.PromiseRemoteValue | Script.TypedArrayRemoteValue | Script.ArrayBufferRemoteValue | Script.NodeListRemoteValue | Script.HtmlCollectionRemoteValue | Script.NodeRemoteValue | Script.WindowProxyRemoteValue; -} -export declare namespace Script { - type ListRemoteValue = [...Script.RemoteValue[]]; -} -export declare namespace Script { - type MappingRemoteValue = [ - ...[Script.RemoteValue | string, Script.RemoteValue][] - ]; -} -export declare namespace Script { - type SymbolRemoteValue = { - type: 'symbol'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type ArrayRemoteValue = { - type: 'array'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.ListRemoteValue; - }; -} -export declare namespace Script { - type ObjectRemoteValue = { - type: 'object'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.MappingRemoteValue; - }; -} -export declare namespace Script { - type FunctionRemoteValue = { - type: 'function'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type RegExpRemoteValue = Script.RegExpLocalValue & { - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type DateRemoteValue = Script.DateLocalValue & { - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type MapRemoteValue = { - type: 'map'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.MappingRemoteValue; - }; -} -export declare namespace Script { - type SetRemoteValue = { - type: 'set'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.ListRemoteValue; - }; -} -export declare namespace Script { - type WeakMapRemoteValue = { - type: 'weakmap'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type WeakSetRemoteValue = { - type: 'weakset'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type GeneratorRemoteValue = { - type: 'generator'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type ErrorRemoteValue = { - type: 'error'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type ProxyRemoteValue = { - type: 'proxy'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type PromiseRemoteValue = { - type: 'promise'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type TypedArrayRemoteValue = { - type: 'typedarray'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type ArrayBufferRemoteValue = { - type: 'arraybuffer'; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type NodeListRemoteValue = { - type: 'nodelist'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.ListRemoteValue; - }; -} -export declare namespace Script { - type HtmlCollectionRemoteValue = { - type: 'htmlcollection'; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.ListRemoteValue; - }; -} -export declare namespace Script { - type NodeRemoteValue = { - type: 'node'; - sharedId?: Script.SharedId; - handle?: Script.Handle; - internalId?: Script.InternalId; - value?: Script.NodeProperties; - }; -} -export declare namespace Script { - type NodeProperties = { - nodeType: JsUint; - childNodeCount: JsUint; - attributes?: { - [key: string]: string; - }; - children?: [...Script.NodeRemoteValue[]]; - localName?: string; - mode?: 'open' | 'closed'; - namespaceURI?: string; - nodeValue?: string; - shadowRoot?: Script.NodeRemoteValue | null; - }; -} -export declare namespace Script { - type WindowProxyRemoteValue = { - type: 'window'; - value: Script.WindowProxyProperties; - handle?: Script.Handle; - internalId?: Script.InternalId; - }; -} -export declare namespace Script { - type WindowProxyProperties = { - context: BrowsingContext.BrowsingContext; - }; -} -export declare namespace Script { - const enum ResultOwnership { - Root = "root", - None = "none" - } -} -export declare namespace Script { - type SerializationOptions = { - /** - * @defaultValue `0` - */ - maxDomDepth?: JsUint | null; - /** - * @defaultValue `null` - */ - maxObjectDepth?: JsUint | null; - /** - * @defaultValue `"none"` - */ - includeShadowTree?: 'none' | 'open' | 'all'; - }; -} -export declare namespace Script { - type SharedId = string; -} -export declare namespace Script { - type StackFrame = { - columnNumber: JsUint; - functionName: string; - lineNumber: JsUint; - url: string; - }; -} -export declare namespace Script { - type StackTrace = { - callFrames: [...Script.StackFrame[]]; - }; -} -export declare namespace Script { - type Source = { - realm: Script.Realm; - context?: BrowsingContext.BrowsingContext; - userContext?: Browser.UserContext; - }; -} -export declare namespace Script { - type RealmTarget = { - realm: Script.Realm; - }; -} -export declare namespace Script { - type ContextTarget = { - context: BrowsingContext.BrowsingContext; - sandbox?: string; - }; -} -export declare namespace Script { - type Target = Script.ContextTarget | Script.RealmTarget; -} -export declare namespace Script { - type AddPreloadScript = { - method: 'script.addPreloadScript'; - params: Script.AddPreloadScriptParameters; - }; -} -export declare namespace Script { - type AddPreloadScriptParameters = { - functionDeclaration: string; - arguments?: [...Script.ChannelValue[]]; - contexts?: [ - BrowsingContext.BrowsingContext, - ...BrowsingContext.BrowsingContext[] - ]; - userContexts?: [Browser.UserContext, ...Browser.UserContext[]]; - sandbox?: string; - }; -} -export declare namespace Script { - type AddPreloadScriptResult = { - script: Script.PreloadScript; - }; -} -export declare namespace Script { - type Disown = { - method: 'script.disown'; - params: Script.DisownParameters; - }; -} -export declare namespace Script { - type DisownParameters = { - handles: [...Script.Handle[]]; - target: Script.Target; - }; -} -export declare namespace Script { - type DisownResult = EmptyResult; -} -export declare namespace Script { - type CallFunction = { - method: 'script.callFunction'; - params: Script.CallFunctionParameters; - }; -} -export declare namespace Script { - type CallFunctionParameters = { - functionDeclaration: string; - awaitPromise: boolean; - target: Script.Target; - arguments?: [...Script.LocalValue[]]; - resultOwnership?: Script.ResultOwnership; - serializationOptions?: Script.SerializationOptions; - this?: Script.LocalValue; - /** - * @defaultValue `false` - */ - userActivation?: boolean; - }; -} -export declare namespace Script { - type CallFunctionResult = Script.EvaluateResult; -} -export declare namespace Script { - type Evaluate = { - method: 'script.evaluate'; - params: Script.EvaluateParameters; - }; -} -export declare namespace Script { - type EvaluateParameters = { - expression: string; - target: Script.Target; - awaitPromise: boolean; - resultOwnership?: Script.ResultOwnership; - serializationOptions?: Script.SerializationOptions; - /** - * @defaultValue `false` - */ - userActivation?: boolean; - }; -} -export declare namespace Script { - type GetRealms = { - method: 'script.getRealms'; - params: Script.GetRealmsParameters; - }; -} -export declare namespace Script { - type GetRealmsParameters = { - context?: BrowsingContext.BrowsingContext; - type?: Script.RealmType; - }; -} -export declare namespace Script { - type GetRealmsResult = { - realms: [...Script.RealmInfo[]]; - }; -} -export declare namespace Script { - type RemovePreloadScript = { - method: 'script.removePreloadScript'; - params: Script.RemovePreloadScriptParameters; - }; -} -export declare namespace Script { - type RemovePreloadScriptParameters = { - script: Script.PreloadScript; - }; -} -export declare namespace Script { - type RemovePreloadScriptResult = EmptyResult; -} -export declare namespace Script { - type Message = { - method: 'script.message'; - params: Script.MessageParameters; - }; -} -export declare namespace Script { - type MessageParameters = { - channel: Script.Channel; - data: Script.RemoteValue; - source: Script.Source; - }; -} -export declare namespace Script { - type RealmCreated = { - method: 'script.realmCreated'; - params: Script.RealmInfo; - }; -} -export declare namespace Script { - type RealmDestroyed = { - method: 'script.realmDestroyed'; - params: Script.RealmDestroyedParameters; - }; -} -export declare namespace Script { - type RealmDestroyedParameters = { - realm: Script.Realm; - }; -} -export type StorageCommand = Storage.DeleteCookies | Storage.GetCookies | Storage.SetCookie; -export type StorageResult = Storage.DeleteCookiesResult | Storage.GetCookiesResult | Storage.SetCookieResult; -export declare namespace Storage { - type PartitionKey = { - userContext?: string; - sourceOrigin?: string; - } & Extensible; -} -export declare namespace Storage { - type GetCookies = { - method: 'storage.getCookies'; - params: Storage.GetCookiesParameters; - }; -} -export declare namespace Storage { - type CookieFilter = { - name?: string; - value?: Network.BytesValue; - domain?: string; - path?: string; - size?: JsUint; - httpOnly?: boolean; - secure?: boolean; - sameSite?: Network.SameSite; - expiry?: JsUint; - } & Extensible; -} -export declare namespace Storage { - type BrowsingContextPartitionDescriptor = { - type: 'context'; - context: BrowsingContext.BrowsingContext; - }; -} -export declare namespace Storage { - type StorageKeyPartitionDescriptor = { - type: 'storageKey'; - userContext?: string; - sourceOrigin?: string; - } & Extensible; -} -export declare namespace Storage { - type PartitionDescriptor = Storage.BrowsingContextPartitionDescriptor | Storage.StorageKeyPartitionDescriptor; -} -export declare namespace Storage { - type GetCookiesParameters = { - filter?: Storage.CookieFilter; - partition?: Storage.PartitionDescriptor; - }; -} -export declare namespace Storage { - type GetCookiesResult = { - cookies: [...Network.Cookie[]]; - partitionKey: Storage.PartitionKey; - }; -} -export declare namespace Storage { - type SetCookie = { - method: 'storage.setCookie'; - params: Storage.SetCookieParameters; - }; -} -export declare namespace Storage { - type PartialCookie = { - name: string; - value: Network.BytesValue; - domain: string; - path?: string; - httpOnly?: boolean; - secure?: boolean; - sameSite?: Network.SameSite; - expiry?: JsUint; - } & Extensible; -} -export declare namespace Storage { - type SetCookieParameters = { - cookie: Storage.PartialCookie; - partition?: Storage.PartitionDescriptor; - }; -} -export declare namespace Storage { - type SetCookieResult = { - partitionKey: Storage.PartitionKey; - }; -} -export declare namespace Storage { - type DeleteCookies = { - method: 'storage.deleteCookies'; - params: Storage.DeleteCookiesParameters; - }; -} -export declare namespace Storage { - type DeleteCookiesParameters = { - filter?: Storage.CookieFilter; - partition?: Storage.PartitionDescriptor; - }; -} -export declare namespace Storage { - type DeleteCookiesResult = { - partitionKey: Storage.PartitionKey; - }; -} -export type LogEvent = Log.EntryAdded; -export declare namespace Log { - const enum Level { - Debug = "debug", - Info = "info", - Warn = "warn", - Error = "error" - } -} -export declare namespace Log { - type Entry = Log.GenericLogEntry | Log.ConsoleLogEntry | Log.JavascriptLogEntry; -} -export declare namespace Log { - type BaseLogEntry = { - level: Log.Level; - source: Script.Source; - text: string | null; - timestamp: JsUint; - stackTrace?: Script.StackTrace; - }; -} -export declare namespace Log { - type GenericLogEntry = Log.BaseLogEntry & { - type: string; - }; -} -export declare namespace Log { - type ConsoleLogEntry = Log.BaseLogEntry & { - type: 'console'; - method: string; - args: [...Script.RemoteValue[]]; - }; -} -export declare namespace Log { - type JavascriptLogEntry = Log.BaseLogEntry & { - type: 'javascript'; - }; -} -export declare namespace Log { - type EntryAdded = { - method: 'log.entryAdded'; - params: Log.Entry; - }; -} -export type InputCommand = Input.PerformActions | Input.ReleaseActions | Input.SetFiles; -export type InputResult = Input.PerformActionsResult | Input.ReleaseActionsResult | Input.SetFilesResult; -export type InputEvent = Input.FileDialogOpened; -export declare namespace Input { - type ElementOrigin = { - type: 'element'; - element: Script.SharedReference; - }; -} -export declare namespace Input { - type PerformActions = { - method: 'input.performActions'; - params: Input.PerformActionsParameters; - }; -} -export declare namespace Input { - type PerformActionsParameters = { - context: BrowsingContext.BrowsingContext; - actions: [...Input.SourceActions[]]; - }; -} -export declare namespace Input { - type SourceActions = Input.NoneSourceActions | Input.KeySourceActions | Input.PointerSourceActions | Input.WheelSourceActions; -} -export declare namespace Input { - type NoneSourceActions = { - type: 'none'; - id: string; - actions: [...Input.NoneSourceAction[]]; - }; -} -export declare namespace Input { - type NoneSourceAction = Input.PauseAction; -} -export declare namespace Input { - type KeySourceActions = { - type: 'key'; - id: string; - actions: [...Input.KeySourceAction[]]; - }; -} -export declare namespace Input { - type KeySourceAction = Input.PauseAction | Input.KeyDownAction | Input.KeyUpAction; -} -export declare namespace Input { - type PointerSourceActions = { - type: 'pointer'; - id: string; - parameters?: Input.PointerParameters; - actions: [...Input.PointerSourceAction[]]; - }; -} -export declare namespace Input { - const enum PointerType { - Mouse = "mouse", - Pen = "pen", - Touch = "touch" - } -} -export declare namespace Input { - type PointerParameters = { - /** - * @defaultValue `"mouse"` - */ - pointerType?: Input.PointerType; - }; -} -export declare namespace Input { - type PointerSourceAction = Input.PauseAction | Input.PointerDownAction | Input.PointerUpAction | Input.PointerMoveAction; -} -export declare namespace Input { - type WheelSourceActions = { - type: 'wheel'; - id: string; - actions: [...Input.WheelSourceAction[]]; - }; -} -export declare namespace Input { - type WheelSourceAction = Input.PauseAction | Input.WheelScrollAction; -} -export declare namespace Input { - type PauseAction = { - type: 'pause'; - duration?: JsUint; - }; -} -export declare namespace Input { - type KeyDownAction = { - type: 'keyDown'; - value: string; - }; -} -export declare namespace Input { - type KeyUpAction = { - type: 'keyUp'; - value: string; - }; -} -export declare namespace Input { - type PointerUpAction = { - type: 'pointerUp'; - button: JsUint; - }; -} -export declare namespace Input { - type PointerDownAction = { - type: 'pointerDown'; - button: JsUint; - } & Input.PointerCommonProperties; -} -export declare namespace Input { - type PointerMoveAction = { - type: 'pointerMove'; - x: number; - y: number; - duration?: JsUint; - origin?: Input.Origin; - } & Input.PointerCommonProperties; -} -export declare namespace Input { - type WheelScrollAction = { - type: 'scroll'; - x: JsInt; - y: JsInt; - deltaX: JsInt; - deltaY: JsInt; - duration?: JsUint; - /** - * @defaultValue `"viewport"` - */ - origin?: Input.Origin; - }; -} -export declare namespace Input { - type PointerCommonProperties = { - width?: JsUint; - height?: JsUint; - /** - * Must be between `0` and `1`, inclusive. - */ - pressure?: number; - /** - * Must be between `-1` and `1`, inclusive. - */ - tangentialPressure?: number; - /** - * Must be between `0` and `359`, inclusive. - */ - twist?: number; - /** - * Must be between `0` and `1.5707963267948966`, inclusive. - */ - altitudeAngle?: number; - /** - * Must be between `0` and `6.283185307179586`, inclusive. - */ - azimuthAngle?: number; - }; -} -export declare namespace Input { - type Origin = 'viewport' | 'pointer' | Input.ElementOrigin; -} -export declare namespace Input { - type PerformActionsResult = EmptyResult; -} -export declare namespace Input { - type ReleaseActions = { - method: 'input.releaseActions'; - params: Input.ReleaseActionsParameters; - }; -} -export declare namespace Input { - type ReleaseActionsParameters = { - context: BrowsingContext.BrowsingContext; - }; -} -export declare namespace Input { - type ReleaseActionsResult = EmptyResult; -} -export declare namespace Input { - type SetFiles = { - method: 'input.setFiles'; - params: Input.SetFilesParameters; - }; -} -export declare namespace Input { - type SetFilesParameters = { - context: BrowsingContext.BrowsingContext; - element: Script.SharedReference; - files: [...string[]]; - }; -} -export declare namespace Input { - type SetFilesResult = EmptyResult; -} -export declare namespace Input { - type FileDialogOpened = { - method: 'input.fileDialogOpened'; - params: Input.FileDialogInfo; - }; -} -export declare namespace Input { - type FileDialogInfo = { - context: BrowsingContext.BrowsingContext; - userContext?: Browser.UserContext; - element?: Script.SharedReference; - multiple: boolean; - }; -} -export type WebExtensionCommand = WebExtension.Install | WebExtension.Uninstall; -export type WebExtensionResult = WebExtension.InstallResult | WebExtension.UninstallResult; -export declare namespace WebExtension { - type Extension = string; -} -export declare namespace WebExtension { - type Install = { - method: 'webExtension.install'; - params: WebExtension.InstallParameters; - }; -} -export declare namespace WebExtension { - type InstallParameters = { - extensionData: WebExtension.ExtensionData; - }; -} -export declare namespace WebExtension { - type ExtensionData = WebExtension.ExtensionArchivePath | WebExtension.ExtensionBase64Encoded | WebExtension.ExtensionPath; -} -export declare namespace WebExtension { - type ExtensionPath = { - type: 'path'; - path: string; - }; -} -export declare namespace WebExtension { - type ExtensionArchivePath = { - type: 'archivePath'; - path: string; - }; -} -export declare namespace WebExtension { - type ExtensionBase64Encoded = { - type: 'base64'; - value: string; - }; -} -export declare namespace WebExtension { - type InstallResult = { - extension: WebExtension.Extension; - }; -} -export declare namespace WebExtension { - type Uninstall = { - method: 'webExtension.uninstall'; - params: WebExtension.UninstallParameters; - }; -} -export declare namespace WebExtension { - type UninstallParameters = { - extension: WebExtension.Extension; - }; -} -export declare namespace WebExtension { - type UninstallResult = EmptyResult; -} diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js deleted file mode 100644 index 7a6d1eb..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=webdriver-bidi.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js.map b/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js.map deleted file mode 100644 index af100d6..0000000 --- a/node_modules/chromium-bidi/lib/protocol/generated/webdriver-bidi.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"webdriver-bidi.js","sourceRoot":"","sources":["../../../src/protocol/generated/webdriver-bidi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/protocol.d.ts b/node_modules/chromium-bidi/lib/protocol/protocol.d.ts deleted file mode 100644 index 5256911..0000000 --- a/node_modules/chromium-bidi/lib/protocol/protocol.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * as Cdp from './cdp.js'; -export * as ChromiumBidi from './chromium-bidi.js'; -export * from './generated/webdriver-bidi.js'; -export * from './ErrorResponse.js'; -export * from './generated/webdriver-bidi-permissions.js'; -export * from './generated/webdriver-bidi-bluetooth.js'; -export * from './generated/webdriver-bidi-nav-speculation.js'; -export * as UAClientHints from './generated/webdriver-bidi-ua-client-hints.js'; diff --git a/node_modules/chromium-bidi/lib/protocol/protocol.js b/node_modules/chromium-bidi/lib/protocol/protocol.js deleted file mode 100644 index 2749e18..0000000 --- a/node_modules/chromium-bidi/lib/protocol/protocol.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export * as Cdp from './cdp.js'; -export * as ChromiumBidi from './chromium-bidi.js'; -export * from './generated/webdriver-bidi.js'; -export * from './ErrorResponse.js'; -export * from './generated/webdriver-bidi-permissions.js'; -export * from './generated/webdriver-bidi-bluetooth.js'; -export * from './generated/webdriver-bidi-nav-speculation.js'; -// Alias is required, as `UAClientHints` spec defines `Emulation` namespace. -export * as UAClientHints from './generated/webdriver-bidi-ua-client-hints.js'; -//# sourceMappingURL=protocol.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/protocol/protocol.js.map b/node_modules/chromium-bidi/lib/protocol/protocol.js.map deleted file mode 100644 index d04de14..0000000 --- a/node_modules/chromium-bidi/lib/protocol/protocol.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/protocol/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,4EAA4E;AAC5E,OAAO,KAAK,aAAa,MAAM,+CAA+C,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Buffer.d.ts b/node_modules/chromium-bidi/lib/utils/Buffer.d.ts deleted file mode 100644 index ecee743..0000000 --- a/node_modules/chromium-bidi/lib/utils/Buffer.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** Implements a FIFO buffer with a fixed size. */ -export declare class Buffer { - #private; - /** - * @param capacity The buffer capacity. - * @param onItemRemoved Delegate called for each removed element. - */ - constructor(capacity: number, onItemRemoved?: (value: T) => void); - get(): T[]; - add(value: T): void; -} diff --git a/node_modules/chromium-bidi/lib/utils/Buffer.js b/node_modules/chromium-bidi/lib/utils/Buffer.js deleted file mode 100644 index d8d861d..0000000 --- a/node_modules/chromium-bidi/lib/utils/Buffer.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** Implements a FIFO buffer with a fixed size. */ -export class Buffer { - #capacity; - #entries = []; - #onItemRemoved; - /** - * @param capacity The buffer capacity. - * @param onItemRemoved Delegate called for each removed element. - */ - constructor(capacity, onItemRemoved) { - this.#capacity = capacity; - this.#onItemRemoved = onItemRemoved; - } - get() { - return this.#entries; - } - add(value) { - this.#entries.push(value); - while (this.#entries.length > this.#capacity) { - const item = this.#entries.shift(); - if (item !== undefined) { - this.#onItemRemoved?.(item); - } - } - } -} -//# sourceMappingURL=Buffer.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Buffer.js.map b/node_modules/chromium-bidi/lib/utils/Buffer.js.map deleted file mode 100644 index 626598f..0000000 --- a/node_modules/chromium-bidi/lib/utils/Buffer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Buffer.js","sourceRoot":"","sources":["../../src/utils/Buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,kDAAkD;AAClD,MAAM,OAAO,MAAM;IACR,SAAS,CAAS;IAClB,QAAQ,GAAQ,EAAE,CAAC;IACnB,cAAc,CAAsB;IAE7C;;;OAGG;IACH,YAAY,QAAgB,EAAE,aAAkC;QAC9D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,KAAQ;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/DefaultMap.d.ts b/node_modules/chromium-bidi/lib/utils/DefaultMap.d.ts deleted file mode 100644 index 6ed9fcb..0000000 --- a/node_modules/chromium-bidi/lib/utils/DefaultMap.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * A subclass of Map whose functionality is almost the same as its parent - * except for the fact that DefaultMap never returns undefined. It provides a - * default value for keys that do not exist. - */ -export declare class DefaultMap extends Map { - #private; - constructor(getDefaultValue: (key: K) => V, entries?: readonly (readonly [K, V])[] | null); - get(key: K): V; -} diff --git a/node_modules/chromium-bidi/lib/utils/DefaultMap.js b/node_modules/chromium-bidi/lib/utils/DefaultMap.js deleted file mode 100644 index 58f1834..0000000 --- a/node_modules/chromium-bidi/lib/utils/DefaultMap.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * A subclass of Map whose functionality is almost the same as its parent - * except for the fact that DefaultMap never returns undefined. It provides a - * default value for keys that do not exist. - */ -export class DefaultMap extends Map { - /** The default value to return whenever a key is not present in the map. */ - #getDefaultValue; - constructor(getDefaultValue, entries) { - super(entries); - this.#getDefaultValue = getDefaultValue; - } - get(key) { - if (!this.has(key)) { - this.set(key, this.#getDefaultValue(key)); - } - return super.get(key); - } -} -//# sourceMappingURL=DefaultMap.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/DefaultMap.js.map b/node_modules/chromium-bidi/lib/utils/DefaultMap.js.map deleted file mode 100644 index afd5ab1..0000000 --- a/node_modules/chromium-bidi/lib/utils/DefaultMap.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DefaultMap.js","sourceRoot":"","sources":["../../src/utils/DefaultMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,OAAO,UAAiB,SAAQ,GAAS;IAC7C,4EAA4E;IAC5E,gBAAgB,CAAgB;IAEhC,YACE,eAA8B,EAC9B,OAA6C;QAE7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;IAEQ,GAAG,CAAC,GAAM;QACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACzB,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Deferred.d.ts b/node_modules/chromium-bidi/lib/utils/Deferred.d.ts deleted file mode 100644 index 16040fb..0000000 --- a/node_modules/chromium-bidi/lib/utils/Deferred.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare class Deferred implements Promise { - #private; - get isFinished(): boolean; - get result(): T; - constructor(); - then(onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null, onRejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): Promise; - catch(onRejected?: ((reason: unknown) => TResult | PromiseLike) | null): Promise; - resolve(value: T): void; - reject(reason: Error): void; - finally(onFinally?: (() => void) | null): Promise; - [Symbol.toStringTag]: string; -} diff --git a/node_modules/chromium-bidi/lib/utils/Deferred.js b/node_modules/chromium-bidi/lib/utils/Deferred.js deleted file mode 100644 index 70ad991..0000000 --- a/node_modules/chromium-bidi/lib/utils/Deferred.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export class Deferred { - #isFinished = false; - #promise; - #result; - #resolve; - #reject; - get isFinished() { - return this.#isFinished; - } - get result() { - if (!this.#isFinished) { - throw new Error('Deferred is not finished yet'); - } - return this.#result; - } - constructor() { - this.#promise = new Promise((resolve, reject) => { - this.#resolve = resolve; - this.#reject = reject; - }); - // Needed to avoid `Uncaught (in promise)`. The promises returned by `then` - // and `catch` will be rejected anyway. - this.#promise.catch((_error) => { - // Intentionally empty. - }); - } - then(onFulfilled, onRejected) { - return this.#promise.then(onFulfilled, onRejected); - } - catch(onRejected) { - return this.#promise.catch(onRejected); - } - resolve(value) { - this.#result = value; - if (!this.#isFinished) { - this.#isFinished = true; - this.#resolve(value); - } - } - reject(reason) { - if (!this.#isFinished) { - this.#isFinished = true; - this.#reject(reason); - } - } - finally(onFinally) { - return this.#promise.finally(onFinally); - } - [Symbol.toStringTag] = 'Promise'; -} -//# sourceMappingURL=Deferred.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Deferred.js.map b/node_modules/chromium-bidi/lib/utils/Deferred.js.map deleted file mode 100644 index 809ee41..0000000 --- a/node_modules/chromium-bidi/lib/utils/Deferred.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../src/utils/Deferred.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,OAAO,QAAQ;IACnB,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,CAAa;IACrB,OAAO,CAAgB;IACvB,QAAQ,CAAsB;IAC9B,OAAO,CAA2B;IAElC,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,OAAQ,CAAC;IACvB,CAAC;IAED;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,2EAA2E;QAC3E,uCAAuC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,uBAAuB;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CACF,WAAqE,EACrE,UAA2E;QAE3E,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CACH,UAAyE;QAEzE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,KAAQ;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAa;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,SAA+B;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;CAClC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/EventEmitter.d.ts b/node_modules/chromium-bidi/lib/utils/EventEmitter.d.ts deleted file mode 100644 index 807eab9..0000000 --- a/node_modules/chromium-bidi/lib/utils/EventEmitter.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type EventType, type Handler, type WildcardHandler } from 'mitt'; -export declare class EventEmitter> { - #private; - /** - * Binds an event listener to fire when an event occurs. - * @param event The event type you'd like to listen to. Can be a string or symbol. - * @param handler The function to be called when the event occurs. - * @return `this` to enable chaining method calls. - */ - on(type: '*', handler: WildcardHandler): this; - on(type: Key, handler: Handler): this; - /** - * Like `on` but the listener will only be fired once and then it will be removed. - * @param event The event you'd like to listen to - * @param handler The handler function to run when the event occurs - * @return `this` to enable chaining method calls. - */ - once(event: EventType, handler: Handler): this; - /** - * Removes an event listener from firing. - * @param event The event type you'd like to stop listening to. - * @param handler The function that should be removed. - * @return `this` to enable chaining method calls. - */ - off(type: '*', handler: WildcardHandler): this; - off(type: Key, handler: Handler): EventEmitter; - /** - * Emits an event and call any associated listeners. - * - * @param event The event to emit. - * @param eventData Any data to emit with the event. - * @return `true` if there are any listeners, `false` otherwise. - */ - emit(event: Key, eventData: Events[Key]): void; - /** - * Removes all listeners. If given an event argument, it will remove only - * listeners for that event. - * @param event - the event to remove listeners for. - * @returns `this` to enable you to chain method calls. - */ - removeAllListeners(event?: EventType): this; -} diff --git a/node_modules/chromium-bidi/lib/utils/EventEmitter.js b/node_modules/chromium-bidi/lib/utils/EventEmitter.js deleted file mode 100644 index d79b845..0000000 --- a/node_modules/chromium-bidi/lib/utils/EventEmitter.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import mitt from 'mitt'; -export class EventEmitter { - #emitter = mitt(); - on(type, handler) { - this.#emitter.on(type, handler); - return this; - } - /** - * Like `on` but the listener will only be fired once and then it will be removed. - * @param event The event you'd like to listen to - * @param handler The handler function to run when the event occurs - * @return `this` to enable chaining method calls. - */ - once(event, handler) { - const onceHandler = (eventData) => { - handler(eventData); - this.off(event, onceHandler); - }; - return this.on(event, onceHandler); - } - off(type, handler) { - this.#emitter.off(type, handler); - return this; - } - /** - * Emits an event and call any associated listeners. - * - * @param event The event to emit. - * @param eventData Any data to emit with the event. - * @return `true` if there are any listeners, `false` otherwise. - */ - emit(event, eventData) { - this.#emitter.emit(event, eventData); - } - /** - * Removes all listeners. If given an event argument, it will remove only - * listeners for that event. - * @param event - the event to remove listeners for. - * @returns `this` to enable you to chain method calls. - */ - removeAllListeners(event) { - if (event) { - this.#emitter.all.delete(event); - } - else { - this.#emitter.all.clear(); - } - return this; - } -} -//# sourceMappingURL=EventEmitter.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/EventEmitter.js.map b/node_modules/chromium-bidi/lib/utils/EventEmitter.js.map deleted file mode 100644 index 526a11e..0000000 --- a/node_modules/chromium-bidi/lib/utils/EventEmitter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/utils/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,IAKN,MAAM,MAAM,CAAC;AAEd,MAAM,OAAO,YAAY;IACvB,QAAQ,GAAoB,IAAI,EAAE,CAAC;IAUnC,EAAE,CAAC,IAAS,EAAE,OAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAgB,EAAE,OAAgB;QACrC,MAAM,WAAW,GAAY,CAAC,SAAS,EAAE,EAAE;YACzC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAaD,GAAG,CAAC,IAAS,EAAE,OAAY;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAA2B,KAAU,EAAE,SAAsB;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,KAAiB;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/IdWrapper.d.ts b/node_modules/chromium-bidi/lib/utils/IdWrapper.d.ts deleted file mode 100644 index f0f44d3..0000000 --- a/node_modules/chromium-bidi/lib/utils/IdWrapper.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Creates an object with a positive unique incrementing id. - */ -export declare class IdWrapper { - #private; - constructor(); - get id(): number; -} diff --git a/node_modules/chromium-bidi/lib/utils/IdWrapper.js b/node_modules/chromium-bidi/lib/utils/IdWrapper.js deleted file mode 100644 index 0313fb1..0000000 --- a/node_modules/chromium-bidi/lib/utils/IdWrapper.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Creates an object with a positive unique incrementing id. - */ -export class IdWrapper { - static #counter = 0; - #id; - constructor() { - this.#id = ++IdWrapper.#counter; - } - get id() { - return this.#id; - } -} -//# sourceMappingURL=IdWrapper.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/IdWrapper.js.map b/node_modules/chromium-bidi/lib/utils/IdWrapper.js.map deleted file mode 100644 index ebb7be6..0000000 --- a/node_modules/chromium-bidi/lib/utils/IdWrapper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IdWrapper.js","sourceRoot":"","sources":["../../src/utils/IdWrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;IACX,GAAG,CAAS;IAErB;QACE,IAAI,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Mutex.d.ts b/node_modules/chromium-bidi/lib/utils/Mutex.d.ts deleted file mode 100644 index af30171..0000000 --- a/node_modules/chromium-bidi/lib/utils/Mutex.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * Copyright 2022 The Chromium Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export type ReleaseFunction = () => void; -/** - * Use Mutex class to coordinate local concurrent operations. - * Once `acquire` promise resolves, you hold the lock and must - * call `release` function returned by `acquire` to release the - * lock. Failing to `release` the lock may lead to deadlocks. - */ -export declare class Mutex { - #private; - acquire(): Promise; - run(action: () => Promise): Promise; -} diff --git a/node_modules/chromium-bidi/lib/utils/Mutex.js b/node_modules/chromium-bidi/lib/utils/Mutex.js deleted file mode 100644 index 043a26f..0000000 --- a/node_modules/chromium-bidi/lib/utils/Mutex.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * Copyright 2022 The Chromium Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Use Mutex class to coordinate local concurrent operations. - * Once `acquire` promise resolves, you hold the lock and must - * call `release` function returned by `acquire` to release the - * lock. Failing to `release` the lock may lead to deadlocks. - */ -export class Mutex { - #locked = false; - #acquirers = []; - // This is FIFO. - acquire() { - const state = { resolved: false }; - if (this.#locked) { - return new Promise((resolve) => { - this.#acquirers.push(() => resolve(this.#release.bind(this, state))); - }); - } - this.#locked = true; - return Promise.resolve(this.#release.bind(this, state)); - } - #release(state) { - if (state.resolved) { - throw new Error('Cannot release more than once.'); - } - state.resolved = true; - const resolve = this.#acquirers.shift(); - if (!resolve) { - this.#locked = false; - return; - } - resolve(); - } - async run(action) { - const release = await this.acquire(); - try { - // Note we need to await here because we want the await to release AFTER - // that await happens. Returning action() will trigger the release - // immediately which is counter to what we want. - const result = await action(); - return result; - } - finally { - release(); - } - } -} -//# sourceMappingURL=Mutex.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/Mutex.js.map b/node_modules/chromium-bidi/lib/utils/Mutex.js.map deleted file mode 100644 index ac41d68..0000000 --- a/node_modules/chromium-bidi/lib/utils/Mutex.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mutex.js","sourceRoot":"","sources":["../../src/utils/Mutex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;;;;GAKG;AACH,MAAM,OAAO,KAAK;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAmB,EAAE,CAAC;IAEhC,gBAAgB;IAChB,OAAO;QACL,MAAM,KAAK,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,MAAwB;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,wEAAwE;YACxE,kEAAkE;YAClE,gDAAgD;YAChD,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.d.ts b/node_modules/chromium-bidi/lib/utils/ProcessingQueue.d.ts deleted file mode 100644 index 6a93170..0000000 --- a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type LoggerFn } from './log.js'; -import type { Result } from './result.js'; -export declare class ProcessingQueue { - #private; - static readonly LOGGER_PREFIX: "debug:queue"; - constructor(processor: (arg: T) => Promise, logger?: LoggerFn); - add(entry: Promise>, name: string): void; -} diff --git a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js b/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js deleted file mode 100644 index 2857c26..0000000 --- a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var _a; -import { LogType } from './log.js'; -export class ProcessingQueue { - static LOGGER_PREFIX = `${LogType.debug}:queue`; - #logger; - #processor; - #queue = []; - // Flag to keep only 1 active processor. - #isProcessing = false; - constructor(processor, logger) { - this.#processor = processor; - this.#logger = logger; - } - add(entry, name) { - this.#queue.push([entry, name]); - // No need in waiting. Just initialize processor if needed. - void this.#processIfNeeded(); - } - async #processIfNeeded() { - if (this.#isProcessing) { - return; - } - this.#isProcessing = true; - while (this.#queue.length > 0) { - const arrayEntry = this.#queue.shift(); - if (!arrayEntry) { - continue; - } - const [entryPromise, name] = arrayEntry; - this.#logger?.(_a.LOGGER_PREFIX, 'Processing event:', name); - await entryPromise - .then((entry) => { - if (entry.kind === 'error') { - this.#logger?.(LogType.debugError, 'Event threw before sending:', entry.error.message, entry.error.stack); - return; - } - return this.#processor(entry.value); - }) - .catch((error) => { - this.#logger?.(LogType.debugError, 'Event was not processed:', error?.message); - }); - } - this.#isProcessing = false; - } -} -_a = ProcessingQueue; -//# sourceMappingURL=ProcessingQueue.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js.map b/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js.map deleted file mode 100644 index 21bf4fe..0000000 --- a/node_modules/chromium-bidi/lib/utils/ProcessingQueue.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ProcessingQueue.js","sourceRoot":"","sources":["../../src/utils/ProcessingQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,OAAO,EAAC,OAAO,EAAgB,MAAM,UAAU,CAAC;AAGhD,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAU,aAAa,GAAG,GAAG,OAAO,CAAC,KAAK,QAAiB,CAAC;IAEzD,OAAO,CAAY;IACnB,UAAU,CAA4B;IACtC,MAAM,GAAmC,EAAE,CAAC;IAErD,wCAAwC;IACxC,aAAa,GAAG,KAAK,CAAC;IAEtB,YAAY,SAAoC,EAAE,MAAiB;QACjE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,GAAG,CAAC,KAAyB,EAAE,IAAY;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAChC,2DAA2D;QAC3D,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAe,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAEzE,MAAM,YAAY;iBACf,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,IAAI,CAAC,OAAO,EAAE,CACZ,OAAO,CAAC,UAAU,EAClB,6BAA6B,EAC7B,KAAK,CAAC,KAAK,CAAC,OAAO,EACnB,KAAK,CAAC,KAAK,CAAC,KAAK,CAClB,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,CAAC,OAAO,EAAE,CACZ,OAAO,CAAC,UAAU,EAClB,0BAA0B,EAC1B,KAAK,EAAE,OAAO,CACf,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/assert.d.ts b/node_modules/chromium-bidi/lib/utils/assert.d.ts deleted file mode 100644 index 3855220..0000000 --- a/node_modules/chromium-bidi/lib/utils/assert.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare function assert(predicate: T, message?: string): asserts predicate; diff --git a/node_modules/chromium-bidi/lib/utils/assert.js b/node_modules/chromium-bidi/lib/utils/assert.js deleted file mode 100644 index 71275be..0000000 --- a/node_modules/chromium-bidi/lib/utils/assert.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export function assert(predicate, message) { - if (!predicate) { - throw new Error(message ?? 'Internal assertion failed.'); - } -} -//# sourceMappingURL=assert.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/assert.js.map b/node_modules/chromium-bidi/lib/utils/assert.js.map deleted file mode 100644 index 2164c5e..0000000 --- a/node_modules/chromium-bidi/lib/utils/assert.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CAAI,SAAY,EAAE,OAAgB;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,4BAA4B,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/base64.d.ts b/node_modules/chromium-bidi/lib/utils/base64.d.ts deleted file mode 100644 index 560375b..0000000 --- a/node_modules/chromium-bidi/lib/utils/base64.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Encodes a string to base64. - * - * Uses the native Web API if available, otherwise falls back to a NodeJS Buffer. - * @param {string} base64Str - * @return {string} - */ -export declare function base64ToString(base64Str: string): string; diff --git a/node_modules/chromium-bidi/lib/utils/base64.js b/node_modules/chromium-bidi/lib/utils/base64.js deleted file mode 100644 index 7a39a94..0000000 --- a/node_modules/chromium-bidi/lib/utils/base64.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Encodes a string to base64. - * - * Uses the native Web API if available, otherwise falls back to a NodeJS Buffer. - * @param {string} base64Str - * @return {string} - */ -export function base64ToString(base64Str) { - // Available only if run in a browser context. - if ('atob' in globalThis) { - return globalThis.atob(base64Str); - } - // Available only if run in a NodeJS context. - return Buffer.from(base64Str, 'base64').toString('ascii'); -} -//# sourceMappingURL=base64.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/base64.js.map b/node_modules/chromium-bidi/lib/utils/base64.js.map deleted file mode 100644 index 097720d..0000000 --- a/node_modules/chromium-bidi/lib/utils/base64.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,8CAA8C;IAC9C,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACD,6CAA6C;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.d.ts b/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.d.ts deleted file mode 100644 index 44a357d..0000000 --- a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** @see https://crsrc.org/c/third_party/devtools-frontend/src/front_end/core/protocol_client/InspectorBackend.ts */ -export declare const enum CdpErrorConstants { - CONNECTION_CLOSED = -32001, - DEVTOOLS_STUB = -32015, - GENERIC_ERROR = -32000 -} diff --git a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js b/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js deleted file mode 100644 index 1c06547..0000000 --- a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=cdpErrorConstants.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js.map b/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js.map deleted file mode 100644 index 3d80066..0000000 --- a/node_modules/chromium-bidi/lib/utils/cdpErrorConstants.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cdpErrorConstants.js","sourceRoot":"","sources":["../../src/utils/cdpErrorConstants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/graphemeTools.d.ts b/node_modules/chromium-bidi/lib/utils/graphemeTools.d.ts deleted file mode 100644 index 01fc856..0000000 --- a/node_modules/chromium-bidi/lib/utils/graphemeTools.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Check if the given string is a single complex grapheme. A complex grapheme is one that - * is made up of multiple characters. - */ -export declare function isSingleComplexGrapheme(value: string): boolean; -/** - * Check if the given string is a single grapheme. - */ -export declare function isSingleGrapheme(value: string): boolean; diff --git a/node_modules/chromium-bidi/lib/utils/graphemeTools.js b/node_modules/chromium-bidi/lib/utils/graphemeTools.js deleted file mode 100644 index d9abe66..0000000 --- a/node_modules/chromium-bidi/lib/utils/graphemeTools.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Check if the given string is a single complex grapheme. A complex grapheme is one that - * is made up of multiple characters. - */ -export function isSingleComplexGrapheme(value) { - return isSingleGrapheme(value) && value.length > 1; -} -/** - * Check if the given string is a single grapheme. - */ -export function isSingleGrapheme(value) { - // Theoretically there can be some strings considered a grapheme in some locales, like - // slovak "ch" digraph. Use english locale for consistency. - // https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries - const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' }); - return [...segmenter.segment(value)].length === 1; -} -//# sourceMappingURL=graphemeTools.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/graphemeTools.js.map b/node_modules/chromium-bidi/lib/utils/graphemeTools.js.map deleted file mode 100644 index 6cebefb..0000000 --- a/node_modules/chromium-bidi/lib/utils/graphemeTools.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"graphemeTools.js","sourceRoot":"","sources":["../../src/utils/graphemeTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,sFAAsF;IACtF,2DAA2D;IAC3D,oEAAoE;IACpE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAC,WAAW,EAAE,UAAU,EAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACpD,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/log.d.ts b/node_modules/chromium-bidi/lib/utils/log.d.ts deleted file mode 100644 index 3c5c58e..0000000 --- a/node_modules/chromium-bidi/lib/utils/log.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare enum LogType { - bidi = "bidi", - cdp = "cdp", - debug = "debug", - debugError = "debug:error", - debugInfo = "debug:info", - debugWarn = "debug:warn" -} -export type LogPrefix = LogType | `${LogType}:${string}`; -export type LoggerFn = (type: LogPrefix, ...messages: unknown[]) => void; diff --git a/node_modules/chromium-bidi/lib/utils/log.js b/node_modules/chromium-bidi/lib/utils/log.js deleted file mode 100644 index 68dc27c..0000000 --- a/node_modules/chromium-bidi/lib/utils/log.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export var LogType; -(function (LogType) { - // keep-sorted start - LogType["bidi"] = "bidi"; - LogType["cdp"] = "cdp"; - LogType["debug"] = "debug"; - LogType["debugError"] = "debug:error"; - LogType["debugInfo"] = "debug:info"; - LogType["debugWarn"] = "debug:warn"; - // keep-sorted end -})(LogType || (LogType = {})); -//# sourceMappingURL=log.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/log.js.map b/node_modules/chromium-bidi/lib/utils/log.js.map deleted file mode 100644 index 98e2945..0000000 --- a/node_modules/chromium-bidi/lib/utils/log.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAN,IAAY,OASX;AATD,WAAY,OAAO;IACjB,oBAAoB;IACpB,wBAAa,CAAA;IACb,sBAAW,CAAA;IACX,0BAAe,CAAA;IACf,qCAA0B,CAAA;IAC1B,mCAAwB,CAAA;IACxB,mCAAwB,CAAA;IACxB,kBAAkB;AACpB,CAAC,EATW,OAAO,KAAP,OAAO,QASlB"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/result.d.ts b/node_modules/chromium-bidi/lib/utils/result.d.ts deleted file mode 100644 index e5f5db9..0000000 --- a/node_modules/chromium-bidi/lib/utils/result.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export type Result = { - kind: 'success'; - value: T; -} | { - kind: 'error'; - error: E; -}; diff --git a/node_modules/chromium-bidi/lib/utils/result.js b/node_modules/chromium-bidi/lib/utils/result.js deleted file mode 100644 index da1d8ed..0000000 --- a/node_modules/chromium-bidi/lib/utils/result.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=result.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/result.js.map b/node_modules/chromium-bidi/lib/utils/result.js.map deleted file mode 100644 index b86ea89..0000000 --- a/node_modules/chromium-bidi/lib/utils/result.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/utils/result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/time.d.ts b/node_modules/chromium-bidi/lib/utils/time.d.ts deleted file mode 100644 index 683e54b..0000000 --- a/node_modules/chromium-bidi/lib/utils/time.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare function getTimestamp(): number; diff --git a/node_modules/chromium-bidi/lib/utils/time.js b/node_modules/chromium-bidi/lib/utils/time.js deleted file mode 100644 index 28bde5a..0000000 --- a/node_modules/chromium-bidi/lib/utils/time.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export function getTimestamp() { - // `timestamp` from the event is MonotonicTime, not real time, so - // the best Mapper can do is to set the timestamp to the epoch time - // of the event arrived. - // https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-MonotonicTime - return new Date().getTime(); -} -//# sourceMappingURL=time.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/time.js.map b/node_modules/chromium-bidi/lib/utils/time.js.map deleted file mode 100644 index 67ce0a4..0000000 --- a/node_modules/chromium-bidi/lib/utils/time.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/utils/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,UAAU,YAAY;IAC1B,iEAAiE;IACjE,mEAAmE;IACnE,wBAAwB;IACxB,qFAAqF;IACrF,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/transport.d.ts b/node_modules/chromium-bidi/lib/utils/transport.d.ts deleted file mode 100644 index 9c16b47..0000000 --- a/node_modules/chromium-bidi/lib/utils/transport.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Represents a low-level transport mechanism for raw text messages like - * a WebSocket, pipe, or Window binding. - */ -export interface Transport { - setOnMessage: (handler: (message: string) => Promise | void) => void; - sendMessage: (message: string) => Promise | void; - close(): void; -} diff --git a/node_modules/chromium-bidi/lib/utils/transport.js b/node_modules/chromium-bidi/lib/utils/transport.js deleted file mode 100644 index b8f8068..0000000 --- a/node_modules/chromium-bidi/lib/utils/transport.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=transport.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/transport.js.map b/node_modules/chromium-bidi/lib/utils/transport.js.map deleted file mode 100644 index affc3df..0000000 --- a/node_modules/chromium-bidi/lib/utils/transport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/utils/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/unitConversions.d.ts b/node_modules/chromium-bidi/lib/utils/unitConversions.d.ts deleted file mode 100644 index 353437e..0000000 --- a/node_modules/chromium-bidi/lib/utils/unitConversions.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** @return Given an input in cm, convert it to inches. */ -export declare function inchesFromCm(cm: number): number; diff --git a/node_modules/chromium-bidi/lib/utils/unitConversions.js b/node_modules/chromium-bidi/lib/utils/unitConversions.js deleted file mode 100644 index eb72cf7..0000000 --- a/node_modules/chromium-bidi/lib/utils/unitConversions.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** @return Given an input in cm, convert it to inches. */ -export function inchesFromCm(cm) { - return cm / 2.54; -} -//# sourceMappingURL=unitConversions.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/unitConversions.js.map b/node_modules/chromium-bidi/lib/utils/unitConversions.js.map deleted file mode 100644 index f671f04..0000000 --- a/node_modules/chromium-bidi/lib/utils/unitConversions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"unitConversions.js","sourceRoot":"","sources":["../../src/utils/unitConversions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,OAAO,EAAE,GAAG,IAAI,CAAC;AACnB,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/urlHelpers.d.ts b/node_modules/chromium-bidi/lib/utils/urlHelpers.d.ts deleted file mode 100644 index 55081d3..0000000 --- a/node_modules/chromium-bidi/lib/utils/urlHelpers.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/** - * A URL matches about:blank if its scheme is "about", its path contains a single string - * "blank", its username and password are the empty string, and its host is null. - * https://html.spec.whatwg.org/multipage/urls-and-fetching.html#matches-about:blank - * @param {string} url - * @return {boolean} - */ -export declare function urlMatchesAboutBlank(url: string): boolean; diff --git a/node_modules/chromium-bidi/lib/utils/urlHelpers.js b/node_modules/chromium-bidi/lib/utils/urlHelpers.js deleted file mode 100644 index 1b234b7..0000000 --- a/node_modules/chromium-bidi/lib/utils/urlHelpers.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -/** - * A URL matches about:blank if its scheme is "about", its path contains a single string - * "blank", its username and password are the empty string, and its host is null. - * https://html.spec.whatwg.org/multipage/urls-and-fetching.html#matches-about:blank - * @param {string} url - * @return {boolean} - */ -export function urlMatchesAboutBlank(url) { - // An empty string is a special case, and considered to be about:blank. - // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window-open-steps - if (url === '') { - return true; - } - try { - const parsedUrl = new URL(url); - const schema = parsedUrl.protocol.replace(/:$/, ''); - return (schema.toLowerCase() === 'about' && - parsedUrl.pathname.toLowerCase() === 'blank' && - parsedUrl.username === '' && - parsedUrl.password === '' && - parsedUrl.host === ''); - } - catch (err) { - // Wrong URL considered do not match about:blank. - if (err instanceof TypeError) { - return false; - } - // Re-throw other unexpected errors. - throw err; - } -} -//# sourceMappingURL=urlHelpers.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/urlHelpers.js.map b/node_modules/chromium-bidi/lib/utils/urlHelpers.js.map deleted file mode 100644 index fcc2a9b..0000000 --- a/node_modules/chromium-bidi/lib/utils/urlHelpers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../src/utils/urlHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,uEAAuE;IACvE,iFAAiF;IACjF,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,CACL,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO;YAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO;YAC5C,SAAS,CAAC,QAAQ,KAAK,EAAE;YACzB,SAAS,CAAC,QAAQ,KAAK,EAAE;YACzB,SAAS,CAAC,IAAI,KAAK,EAAE,CACtB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,oCAAoC;QACpC,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/uuid.d.ts b/node_modules/chromium-bidi/lib/utils/uuid.d.ts deleted file mode 100644 index 29c26f7..0000000 --- a/node_modules/chromium-bidi/lib/utils/uuid.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Generates a random v4 UUID, as specified in RFC4122. - * - * Uses the native Web Crypto API if available, otherwise falls back to a - * polyfill. - * - * Example: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' - */ -export declare function uuidv4(): `${string}-${string}-${string}-${string}-${string}`; diff --git a/node_modules/chromium-bidi/lib/utils/uuid.js b/node_modules/chromium-bidi/lib/utils/uuid.js deleted file mode 100644 index db2d84d..0000000 --- a/node_modules/chromium-bidi/lib/utils/uuid.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -function bytesToHex(bytes) { - return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), ''); -} -/** - * Generates a random v4 UUID, as specified in RFC4122. - * - * Uses the native Web Crypto API if available, otherwise falls back to a - * polyfill. - * - * Example: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d' - */ -export function uuidv4() { - // Available only in secure contexts - // https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API - if ('crypto' in globalThis && 'randomUUID' in globalThis.crypto) { - // Node with - // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or - // secure browser context. - return globalThis.crypto.randomUUID(); - } - const randomValues = new Uint8Array(16); - if ('crypto' in globalThis && 'getRandomValues' in globalThis.crypto) { - // Node (>=18) with - // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or - // browser. - globalThis.crypto.getRandomValues(randomValues); - } - else { - // Node (<=16) without - // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1. - // eslint-disable-next-line @typescript-eslint/no-require-imports - require('crypto').webcrypto.getRandomValues(randomValues); - } - // Set version (4) and variant (RFC4122) bits. - randomValues[6] = (randomValues[6] & 0x0f) | 0x40; - randomValues[8] = (randomValues[8] & 0x3f) | 0x80; - return [ - bytesToHex(randomValues.subarray(0, 4)), - bytesToHex(randomValues.subarray(4, 6)), - bytesToHex(randomValues.subarray(6, 8)), - bytesToHex(randomValues.subarray(8, 10)), - bytesToHex(randomValues.subarray(10, 16)), - ].join('-'); -} -//# sourceMappingURL=uuid.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/utils/uuid.js.map b/node_modules/chromium-bidi/lib/utils/uuid.js.map deleted file mode 100644 index f251378..0000000 --- a/node_modules/chromium-bidi/lib/utils/uuid.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,SAAS,UAAU,CAAC,KAAiB;IACnC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EACvD,EAAE,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM;IACpB,oCAAoC;IACpC,kEAAkE;IAClE,IAAI,QAAQ,IAAI,UAAU,IAAI,YAAY,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAChE,YAAY;QACZ,yEAAyE;QACzE,0BAA0B;QAC1B,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAExC,IAAI,QAAQ,IAAI,UAAU,IAAI,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACrE,mBAAmB;QACnB,yEAAyE;QACzE,WAAW;QACX,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,sBAAsB;QACtB,uEAAuE;QACvE,iEAAiE;QACjE,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,8CAA8C;IAC9C,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEnD,OAAO;QACL,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAC1C,CAAC,IAAI,CAAC,GAAG,CAAwD,CAAC;AACrE,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/package.json b/node_modules/chromium-bidi/package.json deleted file mode 100644 index cdd9561..0000000 --- a/node_modules/chromium-bidi/package.json +++ /dev/null @@ -1,219 +0,0 @@ -{ - "name": "chromium-bidi", - "version": "16.0.1", - "description": "An implementation of the WebDriver BiDi protocol for Chromium implemented as a JavaScript layer translating between BiDi and CDP, running inside a Chrome tab.", - "engines": { - "node": ">=20.19.0 <22.0.0 || >=22.12.0" - }, - "scripts": { - "build": "wireit", - "clean": "node tools/clean.mjs", - "e2e:headful": "HEADLESS=false npm run e2e --", - "e2e:headless": "npm run e2e:new-headless --", - "e2e:new-headless": "HEADLESS=new npm run e2e --", - "e2e:old-headless": "HEADLESS=old npm run e2e --", - "e2e": "wireit", - "flake8": "flake8 examples/ tests/", - "format": "npm run pre-commit --", - "format:eslint": "eslint --cache --fix .", - "format:prettier": "prettier --cache --write .", - "pre-commit": "pre-commit run --hook-stage manual --all-files", - "prepare": "wireit", - "rollup": "wireit", - "server": "wireit", - "test": "wireit", - "tsc": "wireit", - "unit": "wireit", - "wpt": "wireit", - "wpt:all": "wireit", - "yapf": "yapf -i --parallel --recursive --exclude=wpt examples/ tests/" - }, - "type": "module", - "main": "./lib/index.js", - "wireit": { - "build": { - "dependencies": [ - "rollup", - "tsc" - ] - }, - "e2e": { - "command": "tools/run-e2e.mjs", - "files": [ - "tools/run-e2e.mjs ", - "pytest.ini", - "tests/**/*.py" - ], - "dependencies": [ - "build" - ] - }, - "prepare": { - "dependencies": [ - "build" - ] - }, - "rollup": { - "command": "rollup -c", - "dependencies": [ - "tsc" - ], - "files": [ - "lib/bidiMapper/", - "rollup.config.mjs" - ], - "output": [ - "lib/iife/mapperTab.js" - ] - }, - "server": { - "command": "tools/run-bidi-server.mjs", - "files": [ - "tools/run-bidi-server.mjs" - ], - "service": { - "readyWhen": { - "lineMatches": "(BiDi server|ChromeDriver) was started successfully" - } - }, - "dependencies": [ - "rollup" - ] - }, - "test": { - "dependencies": [ - "unit", - "e2e", - "wpt" - ] - }, - "tsc": { - "command": "tsc --build src/tsconfig.json --pretty", - "clean": "if-file-deleted", - "files": [ - "tsconfig.base.json", - "src/**/tsconfig*.json", - "src/**/*.ts" - ], - "output": [ - "lib/**" - ] - }, - "unit": { - "command": "mocha", - "dependencies": [ - "tsc" - ] - }, - "wpt": { - "command": "tools/run-wpt.mjs", - "files": [ - "tools/run-wpt.mjs", - "wpt/tools/webdriver/**/*.py", - "wpt/webdriver/tests/**/*.py", - "wpt-metadata/**/*.ini" - ], - "dependencies": [ - "rollup" - ] - }, - "wpt:all": { - "command": "tools/run-wpt-all.mjs", - "files": [ - "tools/run-wpt.mjs", - "tools/run-wpt-all.mjs", - "wpt/tools/webdriver/**/*.py", - "wpt/webdriver/tests/**/*.py", - "wpt-metadata/**/*.ini" - ], - "dependencies": [ - "rollup" - ] - } - }, - "files": [ - "lib", - "!lib/**/*.spec.*", - "!*.tsbuildinfo", - ".browser" - ], - "repository": { - "type": "git", - "url": "https://github.com/GoogleChromeLabs/chromium-bidi.git" - }, - "author": "The Chromium Authors", - "license": "Apache-2.0", - "peerDependencies": { - "devtools-protocol": "*" - }, - "devDependencies": { - "@actions/core": "3.0.0", - "@eslint/js": "10.0.1", - "@puppeteer/browsers": "2.13.0", - "@rollup/plugin-node-resolve": "16.0.3", - "@rollup/wasm-node": "4.59.0", - "@types/chai": "4.3.17", - "@types/chai-as-promised": "7.1.8", - "@types/debug": "4.1.12", - "@types/mocha": "10.0.10", - "@types/node": "20.19.35", - "@types/sinon": "21.0.0", - "@types/websocket": "1.0.10", - "@types/ws": "8.18.1", - "@types/yargs": "17.0.35", - "chai": "4.5.0", - "chai-as-promised": "7.1.2", - "debug": "4.4.3", - "devtools-protocol": "0.0.1624250", - "eslint": "10.0.2", - "eslint-config-prettier": "10.1.8", - "eslint-import-resolver-typescript": "4.4.4", - "eslint-plugin-import": "2.32.0", - "eslint-plugin-mocha": "11.2.0", - "eslint-plugin-prettier": "5.5.5", - "eslint-plugin-promise": "7.2.1", - "globals": "17.3.0", - "mocha": "11.7.5", - "package-directory": "8.2.0", - "prettier": "3.8.1", - "rimraf": "6.1.3", - "rollup": "4.59.0", - "rollup-plugin-cleanup": "3.2.1", - "rollup-plugin-license": "3.7.0", - "selenium-webdriver": "4.41.0", - "semver": "7.7.4", - "sinon": "21.0.1", - "source-map-support": "0.5.21", - "tslib": "2.8.1", - "typescript": "5.9.3", - "typescript-eslint": "8.56.1", - "webdriverio": "9.24.0", - "websocket": "1.0.35", - "wireit": "0.14.12", - "yargs": "18.0.0" - }, - "overrides": { - "eslint-plugin-import": { - "eslint": "$eslint" - }, - "eslint-plugin-promise": { - "eslint": "$eslint" - }, - "typescript-eslint": { - "eslint": "$eslint" - }, - "@typescript-eslint/eslint-plugin": { - "eslint": "$eslint" - }, - "@typescript-eslint/parser": { - "eslint": "$eslint" - }, - "@typescript-eslint/utils": { - "eslint": "$eslint" - } - }, - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - } -} diff --git a/node_modules/cliui/CHANGELOG.md b/node_modules/cliui/CHANGELOG.md deleted file mode 100644 index 61f06c3..0000000 --- a/node_modules/cliui/CHANGELOG.md +++ /dev/null @@ -1,139 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## [8.0.1](https://github.com/yargs/cliui/compare/v8.0.0...v8.0.1) (2022-10-01) - - -### Bug Fixes - -* **deps:** move rollup-plugin-ts to dev deps ([#124](https://github.com/yargs/cliui/issues/124)) ([7c8bd6b](https://github.com/yargs/cliui/commit/7c8bd6ba024d61e4eeae310c7959ab8ab6829081)) - -## [8.0.0](https://github.com/yargs/cliui/compare/v7.0.4...v8.0.0) (2022-09-30) - - -### ⚠ BREAKING CHANGES - -* **deps:** drop Node 10 to release CVE-2021-3807 patch (#122) - -### Bug Fixes - -* **deps:** drop Node 10 to release CVE-2021-3807 patch ([#122](https://github.com/yargs/cliui/issues/122)) ([f156571](https://github.com/yargs/cliui/commit/f156571ce4f2ebf313335e3a53ad905589da5a30)) - -### [7.0.4](https://www.github.com/yargs/cliui/compare/v7.0.3...v7.0.4) (2020-11-08) - - -### Bug Fixes - -* **deno:** import UIOptions from definitions ([#97](https://www.github.com/yargs/cliui/issues/97)) ([f04f343](https://www.github.com/yargs/cliui/commit/f04f3439bc78114c7e90f82ff56f5acf16268ea8)) - -### [7.0.3](https://www.github.com/yargs/cliui/compare/v7.0.2...v7.0.3) (2020-10-16) - - -### Bug Fixes - -* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#93](https://www.github.com/yargs/cliui/issues/93)) ([eca16fc](https://www.github.com/yargs/cliui/commit/eca16fc05d26255df3280906c36d7f0e5b05c6e9)) - -### [7.0.2](https://www.github.com/yargs/cliui/compare/v7.0.1...v7.0.2) (2020-10-14) - - -### Bug Fixes - -* **exports:** node 13.0-13.6 require a string fallback ([#91](https://www.github.com/yargs/cliui/issues/91)) ([b529d7e](https://www.github.com/yargs/cliui/commit/b529d7e432901af1af7848b23ed6cf634497d961)) - -### [7.0.1](https://www.github.com/yargs/cliui/compare/v7.0.0...v7.0.1) (2020-08-16) - - -### Bug Fixes - -* **build:** main should be build/index.cjs ([dc29a3c](https://www.github.com/yargs/cliui/commit/dc29a3cc617a410aa850e06337b5954b04f2cb4d)) - -## [7.0.0](https://www.github.com/yargs/cliui/compare/v6.0.0...v7.0.0) (2020-08-16) - - -### ⚠ BREAKING CHANGES - -* tsc/ESM/Deno support (#82) -* modernize deps and build (#80) - -### Build System - -* modernize deps and build ([#80](https://www.github.com/yargs/cliui/issues/80)) ([339d08d](https://www.github.com/yargs/cliui/commit/339d08dc71b15a3928aeab09042af94db2f43743)) - - -### Code Refactoring - -* tsc/ESM/Deno support ([#82](https://www.github.com/yargs/cliui/issues/82)) ([4b777a5](https://www.github.com/yargs/cliui/commit/4b777a5fe01c5d8958c6708695d6aab7dbe5706c)) - -## [6.0.0](https://www.github.com/yargs/cliui/compare/v5.0.0...v6.0.0) (2019-11-10) - - -### ⚠ BREAKING CHANGES - -* update deps, drop Node 6 - -### Code Refactoring - -* update deps, drop Node 6 ([62056df](https://www.github.com/yargs/cliui/commit/62056df)) - -## [5.0.0](https://github.com/yargs/cliui/compare/v4.1.0...v5.0.0) (2019-04-10) - - -### Bug Fixes - -* Update wrap-ansi to fix compatibility with latest versions of chalk. ([#60](https://github.com/yargs/cliui/issues/60)) ([7bf79ae](https://github.com/yargs/cliui/commit/7bf79ae)) - - -### BREAKING CHANGES - -* Drop support for node < 6. - - - - -## [4.1.0](https://github.com/yargs/cliui/compare/v4.0.0...v4.1.0) (2018-04-23) - - -### Features - -* add resetOutput method ([#57](https://github.com/yargs/cliui/issues/57)) ([7246902](https://github.com/yargs/cliui/commit/7246902)) - - - - -## [4.0.0](https://github.com/yargs/cliui/compare/v3.2.0...v4.0.0) (2017-12-18) - - -### Bug Fixes - -* downgrades strip-ansi to version 3.0.1 ([#54](https://github.com/yargs/cliui/issues/54)) ([5764c46](https://github.com/yargs/cliui/commit/5764c46)) -* set env variable FORCE_COLOR. ([#56](https://github.com/yargs/cliui/issues/56)) ([7350e36](https://github.com/yargs/cliui/commit/7350e36)) - - -### Chores - -* drop support for node < 4 ([#53](https://github.com/yargs/cliui/issues/53)) ([b105376](https://github.com/yargs/cliui/commit/b105376)) - - -### Features - -* add fallback for window width ([#45](https://github.com/yargs/cliui/issues/45)) ([d064922](https://github.com/yargs/cliui/commit/d064922)) - - -### BREAKING CHANGES - -* officially drop support for Node < 4 - - - - -## [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11) - - -### Bug Fixes - -* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33)) - -### Features - -* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32)) diff --git a/node_modules/cliui/LICENSE.txt b/node_modules/cliui/LICENSE.txt deleted file mode 100644 index c7e2747..0000000 --- a/node_modules/cliui/LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 2015, Contributors - -Permission to use, copy, modify, and/or distribute this software -for any purpose with or without fee is hereby granted, provided -that the above copyright notice and this permission notice -appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE -LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES -OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/cliui/README.md b/node_modules/cliui/README.md deleted file mode 100644 index 65b5672..0000000 --- a/node_modules/cliui/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# cliui - -![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg) -[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) -[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) -![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui) - -easily create complex multi-column command-line-interfaces. - -## Example - -```js -const ui = require('cliui')() - -ui.div('Usage: $0 [command] [options]') - -ui.div({ - text: 'Options:', - padding: [2, 0, 1, 0] -}) - -ui.div( - { - text: "-f, --file", - width: 20, - padding: [0, 4, 0, 4] - }, - { - text: "the file to load." + - chalk.green("(if this description is long it wraps).") - , - width: 20 - }, - { - text: chalk.red("[required]"), - align: 'right' - } -) - -console.log(ui.toString()) -``` - -## Deno/ESM Support - -As of `v7` `cliui` supports [Deno](https://github.com/denoland/deno) and -[ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules): - -```typescript -import cliui from "https://deno.land/x/cliui/deno.ts"; - -const ui = cliui({}) - -ui.div('Usage: $0 [command] [options]') - -ui.div({ - text: 'Options:', - padding: [2, 0, 1, 0] -}) - -ui.div({ - text: "-f, --file", - width: 20, - padding: [0, 4, 0, 4] -}) - -console.log(ui.toString()) -``` - - - -## Layout DSL - -cliui exposes a simple layout DSL: - -If you create a single `ui.div`, passing a string rather than an -object: - -* `\n`: characters will be interpreted as new rows. -* `\t`: characters will be interpreted as new columns. -* `\s`: characters will be interpreted as padding. - -**as an example...** - -```js -var ui = require('./')({ - width: 60 -}) - -ui.div( - 'Usage: node ./bin/foo.js\n' + - ' \t provide a regex\n' + - ' \t provide a glob\t [required]' -) - -console.log(ui.toString()) -``` - -**will output:** - -```shell -Usage: node ./bin/foo.js - provide a regex - provide a glob [required] -``` - -## Methods - -```js -cliui = require('cliui') -``` - -### cliui({width: integer}) - -Specify the maximum width of the UI being generated. -If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`. - -### cliui({wrap: boolean}) - -Enable or disable the wrapping of text in a column. - -### cliui.div(column, column, column) - -Create a row with any number of columns, a column -can either be a string, or an object with the following -options: - -* **text:** some text to place in the column. -* **width:** the width of a column. -* **align:** alignment, `right` or `center`. -* **padding:** `[top, right, bottom, left]`. -* **border:** should a border be placed around the div? - -### cliui.span(column, column, column) - -Similar to `div`, except the next row will be appended without -a new line being created. - -### cliui.resetOutput() - -Resets the UI elements of the current cliui instance, maintaining the values -set for `width` and `wrap`. diff --git a/node_modules/cliui/build/index.cjs b/node_modules/cliui/build/index.cjs deleted file mode 100644 index 82126b6..0000000 --- a/node_modules/cliui/build/index.cjs +++ /dev/null @@ -1,302 +0,0 @@ -'use strict'; - -const align = { - right: alignRight, - center: alignCenter -}; -const top = 0; -const right = 1; -const bottom = 2; -const left = 3; -class UI { - constructor(opts) { - var _a; - this.width = opts.width; - this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; - this.rows = []; - } - span(...args) { - const cols = this.div(...args); - cols.span = true; - } - resetOutput() { - this.rows = []; - } - div(...args) { - if (args.length === 0) { - this.div(''); - } - if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { - return this.applyLayoutDSL(args[0]); - } - const cols = args.map(arg => { - if (typeof arg === 'string') { - return this.colFromString(arg); - } - return arg; - }); - this.rows.push(cols); - return cols; - } - shouldApplyLayoutDSL(...args) { - return args.length === 1 && typeof args[0] === 'string' && - /[\t\n]/.test(args[0]); - } - applyLayoutDSL(str) { - const rows = str.split('\n').map(row => row.split('\t')); - let leftColumnWidth = 0; - // simple heuristic for layout, make sure the - // second column lines up along the left-hand. - // don't allow the first column to take up more - // than 50% of the screen. - rows.forEach(columns => { - if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { - leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); - } - }); - // generate a table: - // replacing ' ' with padding calculations. - // using the algorithmically generated width. - rows.forEach(columns => { - this.div(...columns.map((r, i) => { - return { - text: r.trim(), - padding: this.measurePadding(r), - width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined - }; - })); - }); - return this.rows[this.rows.length - 1]; - } - colFromString(text) { - return { - text, - padding: this.measurePadding(text) - }; - } - measurePadding(str) { - // measure padding without ansi escape codes - const noAnsi = mixin.stripAnsi(str); - return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; - } - toString() { - const lines = []; - this.rows.forEach(row => { - this.rowToString(row, lines); - }); - // don't display any lines with the - // hidden flag set. - return lines - .filter(line => !line.hidden) - .map(line => line.text) - .join('\n'); - } - rowToString(row, lines) { - this.rasterize(row).forEach((rrow, r) => { - let str = ''; - rrow.forEach((col, c) => { - const { width } = row[c]; // the width with padding. - const wrapWidth = this.negatePadding(row[c]); // the width without padding. - let ts = col; // temporary string used during alignment/padding. - if (wrapWidth > mixin.stringWidth(col)) { - ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); - } - // align the string within its column. - if (row[c].align && row[c].align !== 'left' && this.wrap) { - const fn = align[row[c].align]; - ts = fn(ts, wrapWidth); - if (mixin.stringWidth(ts) < wrapWidth) { - ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); - } - } - // apply border and padding to string. - const padding = row[c].padding || [0, 0, 0, 0]; - if (padding[left]) { - str += ' '.repeat(padding[left]); - } - str += addBorder(row[c], ts, '| '); - str += ts; - str += addBorder(row[c], ts, ' |'); - if (padding[right]) { - str += ' '.repeat(padding[right]); - } - // if prior row is span, try to render the - // current row on the prior line. - if (r === 0 && lines.length > 0) { - str = this.renderInline(str, lines[lines.length - 1]); - } - }); - // remove trailing whitespace. - lines.push({ - text: str.replace(/ +$/, ''), - span: row.span - }); - }); - return lines; - } - // if the full 'source' can render in - // the target line, do so. - renderInline(source, previousLine) { - const match = source.match(/^ */); - const leadingWhitespace = match ? match[0].length : 0; - const target = previousLine.text; - const targetTextWidth = mixin.stringWidth(target.trimRight()); - if (!previousLine.span) { - return source; - } - // if we're not applying wrapping logic, - // just always append to the span. - if (!this.wrap) { - previousLine.hidden = true; - return target + source; - } - if (leadingWhitespace < targetTextWidth) { - return source; - } - previousLine.hidden = true; - return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); - } - rasterize(row) { - const rrows = []; - const widths = this.columnWidths(row); - let wrapped; - // word wrap all columns, and create - // a data-structure that is easy to rasterize. - row.forEach((col, c) => { - // leave room for left and right padding. - col.width = widths[c]; - if (this.wrap) { - wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); - } - else { - wrapped = col.text.split('\n'); - } - if (col.border) { - wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); - wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); - } - // add top and bottom padding. - if (col.padding) { - wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); - wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); - } - wrapped.forEach((str, r) => { - if (!rrows[r]) { - rrows.push([]); - } - const rrow = rrows[r]; - for (let i = 0; i < c; i++) { - if (rrow[i] === undefined) { - rrow.push(''); - } - } - rrow.push(str); - }); - }); - return rrows; - } - negatePadding(col) { - let wrapWidth = col.width || 0; - if (col.padding) { - wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); - } - if (col.border) { - wrapWidth -= 4; - } - return wrapWidth; - } - columnWidths(row) { - if (!this.wrap) { - return row.map(col => { - return col.width || mixin.stringWidth(col.text); - }); - } - let unset = row.length; - let remainingWidth = this.width; - // column widths can be set in config. - const widths = row.map(col => { - if (col.width) { - unset--; - remainingWidth -= col.width; - return col.width; - } - return undefined; - }); - // any unset widths should be calculated. - const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; - return widths.map((w, i) => { - if (w === undefined) { - return Math.max(unsetWidth, _minWidth(row[i])); - } - return w; - }); - } -} -function addBorder(col, ts, style) { - if (col.border) { - if (/[.']-+[.']/.test(ts)) { - return ''; - } - if (ts.trim().length !== 0) { - return style; - } - return ' '; - } - return ''; -} -// calculates the minimum width of -// a column, based on padding preferences. -function _minWidth(col) { - const padding = col.padding || []; - const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); - if (col.border) { - return minWidth + 4; - } - return minWidth; -} -function getWindowWidth() { - /* istanbul ignore next: depends on terminal */ - if (typeof process === 'object' && process.stdout && process.stdout.columns) { - return process.stdout.columns; - } - return 80; -} -function alignRight(str, width) { - str = str.trim(); - const strWidth = mixin.stringWidth(str); - if (strWidth < width) { - return ' '.repeat(width - strWidth) + str; - } - return str; -} -function alignCenter(str, width) { - str = str.trim(); - const strWidth = mixin.stringWidth(str); - /* istanbul ignore next */ - if (strWidth >= width) { - return str; - } - return ' '.repeat((width - strWidth) >> 1) + str; -} -let mixin; -function cliui(opts, _mixin) { - mixin = _mixin; - return new UI({ - width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), - wrap: opts === null || opts === void 0 ? void 0 : opts.wrap - }); -} - -// Bootstrap cliui with CommonJS dependencies: -const stringWidth = require('string-width'); -const stripAnsi = require('strip-ansi'); -const wrap = require('wrap-ansi'); -function ui(opts) { - return cliui(opts, { - stringWidth, - stripAnsi, - wrap - }); -} - -module.exports = ui; diff --git a/node_modules/cliui/build/index.d.cts b/node_modules/cliui/build/index.d.cts deleted file mode 100644 index 4567f94..0000000 --- a/node_modules/cliui/build/index.d.cts +++ /dev/null @@ -1,43 +0,0 @@ -interface UIOptions { - width: number; - wrap?: boolean; - rows?: string[]; -} -interface Column { - text: string; - width?: number; - align?: "right" | "left" | "center"; - padding: number[]; - border?: boolean; -} -interface ColumnArray extends Array { - span: boolean; -} -interface Line { - hidden?: boolean; - text: string; - span?: boolean; -} -declare class UI { - width: number; - wrap: boolean; - rows: ColumnArray[]; - constructor(opts: UIOptions); - span(...args: ColumnArray): void; - resetOutput(): void; - div(...args: (Column | string)[]): ColumnArray; - private shouldApplyLayoutDSL; - private applyLayoutDSL; - private colFromString; - private measurePadding; - toString(): string; - rowToString(row: ColumnArray, lines: Line[]): Line[]; - // if the full 'source' can render in - // the target line, do so. - private renderInline; - private rasterize; - private negatePadding; - private columnWidths; -} -declare function ui(opts: UIOptions): UI; -export { ui as default }; diff --git a/node_modules/cliui/build/lib/index.js b/node_modules/cliui/build/lib/index.js deleted file mode 100644 index b6eb054..0000000 --- a/node_modules/cliui/build/lib/index.js +++ /dev/null @@ -1,287 +0,0 @@ -'use strict'; -const align = { - right: alignRight, - center: alignCenter -}; -const top = 0; -const right = 1; -const bottom = 2; -const left = 3; -export class UI { - constructor(opts) { - var _a; - this.width = opts.width; - this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; - this.rows = []; - } - span(...args) { - const cols = this.div(...args); - cols.span = true; - } - resetOutput() { - this.rows = []; - } - div(...args) { - if (args.length === 0) { - this.div(''); - } - if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { - return this.applyLayoutDSL(args[0]); - } - const cols = args.map(arg => { - if (typeof arg === 'string') { - return this.colFromString(arg); - } - return arg; - }); - this.rows.push(cols); - return cols; - } - shouldApplyLayoutDSL(...args) { - return args.length === 1 && typeof args[0] === 'string' && - /[\t\n]/.test(args[0]); - } - applyLayoutDSL(str) { - const rows = str.split('\n').map(row => row.split('\t')); - let leftColumnWidth = 0; - // simple heuristic for layout, make sure the - // second column lines up along the left-hand. - // don't allow the first column to take up more - // than 50% of the screen. - rows.forEach(columns => { - if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { - leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); - } - }); - // generate a table: - // replacing ' ' with padding calculations. - // using the algorithmically generated width. - rows.forEach(columns => { - this.div(...columns.map((r, i) => { - return { - text: r.trim(), - padding: this.measurePadding(r), - width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined - }; - })); - }); - return this.rows[this.rows.length - 1]; - } - colFromString(text) { - return { - text, - padding: this.measurePadding(text) - }; - } - measurePadding(str) { - // measure padding without ansi escape codes - const noAnsi = mixin.stripAnsi(str); - return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; - } - toString() { - const lines = []; - this.rows.forEach(row => { - this.rowToString(row, lines); - }); - // don't display any lines with the - // hidden flag set. - return lines - .filter(line => !line.hidden) - .map(line => line.text) - .join('\n'); - } - rowToString(row, lines) { - this.rasterize(row).forEach((rrow, r) => { - let str = ''; - rrow.forEach((col, c) => { - const { width } = row[c]; // the width with padding. - const wrapWidth = this.negatePadding(row[c]); // the width without padding. - let ts = col; // temporary string used during alignment/padding. - if (wrapWidth > mixin.stringWidth(col)) { - ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); - } - // align the string within its column. - if (row[c].align && row[c].align !== 'left' && this.wrap) { - const fn = align[row[c].align]; - ts = fn(ts, wrapWidth); - if (mixin.stringWidth(ts) < wrapWidth) { - ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); - } - } - // apply border and padding to string. - const padding = row[c].padding || [0, 0, 0, 0]; - if (padding[left]) { - str += ' '.repeat(padding[left]); - } - str += addBorder(row[c], ts, '| '); - str += ts; - str += addBorder(row[c], ts, ' |'); - if (padding[right]) { - str += ' '.repeat(padding[right]); - } - // if prior row is span, try to render the - // current row on the prior line. - if (r === 0 && lines.length > 0) { - str = this.renderInline(str, lines[lines.length - 1]); - } - }); - // remove trailing whitespace. - lines.push({ - text: str.replace(/ +$/, ''), - span: row.span - }); - }); - return lines; - } - // if the full 'source' can render in - // the target line, do so. - renderInline(source, previousLine) { - const match = source.match(/^ */); - const leadingWhitespace = match ? match[0].length : 0; - const target = previousLine.text; - const targetTextWidth = mixin.stringWidth(target.trimRight()); - if (!previousLine.span) { - return source; - } - // if we're not applying wrapping logic, - // just always append to the span. - if (!this.wrap) { - previousLine.hidden = true; - return target + source; - } - if (leadingWhitespace < targetTextWidth) { - return source; - } - previousLine.hidden = true; - return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); - } - rasterize(row) { - const rrows = []; - const widths = this.columnWidths(row); - let wrapped; - // word wrap all columns, and create - // a data-structure that is easy to rasterize. - row.forEach((col, c) => { - // leave room for left and right padding. - col.width = widths[c]; - if (this.wrap) { - wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); - } - else { - wrapped = col.text.split('\n'); - } - if (col.border) { - wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); - wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); - } - // add top and bottom padding. - if (col.padding) { - wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); - wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); - } - wrapped.forEach((str, r) => { - if (!rrows[r]) { - rrows.push([]); - } - const rrow = rrows[r]; - for (let i = 0; i < c; i++) { - if (rrow[i] === undefined) { - rrow.push(''); - } - } - rrow.push(str); - }); - }); - return rrows; - } - negatePadding(col) { - let wrapWidth = col.width || 0; - if (col.padding) { - wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); - } - if (col.border) { - wrapWidth -= 4; - } - return wrapWidth; - } - columnWidths(row) { - if (!this.wrap) { - return row.map(col => { - return col.width || mixin.stringWidth(col.text); - }); - } - let unset = row.length; - let remainingWidth = this.width; - // column widths can be set in config. - const widths = row.map(col => { - if (col.width) { - unset--; - remainingWidth -= col.width; - return col.width; - } - return undefined; - }); - // any unset widths should be calculated. - const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; - return widths.map((w, i) => { - if (w === undefined) { - return Math.max(unsetWidth, _minWidth(row[i])); - } - return w; - }); - } -} -function addBorder(col, ts, style) { - if (col.border) { - if (/[.']-+[.']/.test(ts)) { - return ''; - } - if (ts.trim().length !== 0) { - return style; - } - return ' '; - } - return ''; -} -// calculates the minimum width of -// a column, based on padding preferences. -function _minWidth(col) { - const padding = col.padding || []; - const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); - if (col.border) { - return minWidth + 4; - } - return minWidth; -} -function getWindowWidth() { - /* istanbul ignore next: depends on terminal */ - if (typeof process === 'object' && process.stdout && process.stdout.columns) { - return process.stdout.columns; - } - return 80; -} -function alignRight(str, width) { - str = str.trim(); - const strWidth = mixin.stringWidth(str); - if (strWidth < width) { - return ' '.repeat(width - strWidth) + str; - } - return str; -} -function alignCenter(str, width) { - str = str.trim(); - const strWidth = mixin.stringWidth(str); - /* istanbul ignore next */ - if (strWidth >= width) { - return str; - } - return ' '.repeat((width - strWidth) >> 1) + str; -} -let mixin; -export function cliui(opts, _mixin) { - mixin = _mixin; - return new UI({ - width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), - wrap: opts === null || opts === void 0 ? void 0 : opts.wrap - }); -} diff --git a/node_modules/cliui/build/lib/string-utils.js b/node_modules/cliui/build/lib/string-utils.js deleted file mode 100644 index 4b87453..0000000 --- a/node_modules/cliui/build/lib/string-utils.js +++ /dev/null @@ -1,27 +0,0 @@ -// Minimal replacement for ansi string helpers "wrap-ansi" and "strip-ansi". -// to facilitate ESM and Deno modules. -// TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM. -// The npm application -// Copyright (c) npm, Inc. and Contributors -// Licensed on the terms of The Artistic License 2.0 -// See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js -const ansi = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + - '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g'); -export function stripAnsi(str) { - return str.replace(ansi, ''); -} -export function wrap(str, width) { - const [start, end] = str.match(ansi) || ['', '']; - str = stripAnsi(str); - let wrapped = ''; - for (let i = 0; i < str.length; i++) { - if (i !== 0 && (i % width) === 0) { - wrapped += '\n'; - } - wrapped += str.charAt(i); - } - if (start && end) { - wrapped = `${start}${wrapped}${end}`; - } - return wrapped; -} diff --git a/node_modules/cliui/index.mjs b/node_modules/cliui/index.mjs deleted file mode 100644 index bc7a022..0000000 --- a/node_modules/cliui/index.mjs +++ /dev/null @@ -1,13 +0,0 @@ -// Bootstrap cliui with CommonJS dependencies: -import { cliui } from './build/lib/index.js' -import { wrap, stripAnsi } from './build/lib/string-utils.js' - -export default function ui (opts) { - return cliui(opts, { - stringWidth: (str) => { - return [...str].length - }, - stripAnsi, - wrap - }) -} diff --git a/node_modules/cliui/package.json b/node_modules/cliui/package.json deleted file mode 100644 index eab6bf4..0000000 --- a/node_modules/cliui/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "cliui", - "version": "8.0.1", - "description": "easily create complex multi-column command-line-interfaces", - "main": "build/index.cjs", - "exports": { - ".": [ - { - "import": "./index.mjs", - "require": "./build/index.cjs" - }, - "./build/index.cjs" - ] - }, - "type": "module", - "module": "./index.mjs", - "scripts": { - "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", - "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", - "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", - "test": "c8 mocha ./test/*.cjs", - "test:esm": "c8 mocha ./test/esm/cliui-test.mjs", - "postest": "check", - "coverage": "c8 report --check-coverage", - "precompile": "rimraf build", - "compile": "tsc", - "postcompile": "npm run build:cjs", - "build:cjs": "rollup -c", - "prepare": "npm run compile" - }, - "repository": "yargs/cliui", - "standard": { - "ignore": [ - "**/example/**" - ], - "globals": [ - "it" - ] - }, - "keywords": [ - "cli", - "command-line", - "layout", - "design", - "console", - "wrap", - "table" - ], - "author": "Ben Coe ", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "devDependencies": { - "@types/node": "^14.0.27", - "@typescript-eslint/eslint-plugin": "^4.0.0", - "@typescript-eslint/parser": "^4.0.0", - "c8": "^7.3.0", - "chai": "^4.2.0", - "chalk": "^4.1.0", - "cross-env": "^7.0.2", - "eslint": "^7.6.0", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "gts": "^3.0.0", - "mocha": "^10.0.0", - "rimraf": "^3.0.2", - "rollup": "^2.23.1", - "rollup-plugin-ts": "^3.0.2", - "standardx": "^7.0.0", - "typescript": "^4.0.0" - }, - "files": [ - "build", - "index.mjs", - "!*.d.ts" - ], - "engines": { - "node": ">=12" - } -} diff --git a/node_modules/clone-deep/LICENSE b/node_modules/clone-deep/LICENSE deleted file mode 100644 index fa30c4c..0000000 --- a/node_modules/clone-deep/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014-2015, Jon Schlinkert. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/clone-deep/README.md b/node_modules/clone-deep/README.md deleted file mode 100644 index 319df2b..0000000 --- a/node_modules/clone-deep/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# clone-deep [![NPM version](https://img.shields.io/npm/v/clone-deep.svg)](https://www.npmjs.com/package/clone-deep) [![Build Status](https://img.shields.io/travis/jonschlinkert/clone-deep.svg)](https://travis-ci.org/jonschlinkert/clone-deep) - -> Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives. - -The `instanceClone` function is invoked to clone objects that are not "plain" objects (as defined by [](#isPlainObject)`isPlainObject`) if it is provided. If `instanceClone` is not specified, it will not attempt to clone non-plain objects, and will copy the object reference. - -## Install - -Install with [npm](https://www.npmjs.com/) - -```sh -$ npm i clone-deep --save -``` - -## Usage - -```js -var cloneDeep = require('clone-deep'); - -var obj = {a: 'b'}; -var arr = [obj]; - -var copy = cloneDeep(arr); -obj.c = 'd'; - -console.log(copy); -//=> [{a: 'b'}] - -console.log(arr); -//=> [{a: 'b', c: 'd'}] -``` - -## Other object utils - -* [assign-deep](https://www.npmjs.com/package/assign-deep): Deeply assign the enumerable properties and/or es6 Symbol properies of source objects to the target… [more](https://www.npmjs.com/package/assign-deep) | [homepage](https://github.com/jonschlinkert/assign-deep) -* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow) -* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep) -* [mixin-deep](https://www.npmjs.com/package/mixin-deep): Deeply mix the properties of objects into the first object. Like merge-deep, but doesn't clone. | [homepage](https://github.com/jonschlinkert/mixin-deep) -* [mixin-object](https://www.npmjs.com/package/mixin-object): Mixin the own and inherited properties of other objects onto the first object. Pass an… [more](https://www.npmjs.com/package/mixin-object) | [homepage](https://github.com/jonschlinkert/mixin-object) -* [shallow-clone](https://www.npmjs.com/package/shallow-clone): Make a shallow clone of an object, array or primitive. | [homepage](https://github.com/jonschlinkert/shallow-clone) - -## Running tests - -Install dev dependencies: - -```sh -$ npm i -d && npm test -``` - -## Contributing - -Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/clone-deep/issues/new). - -## Author - -**Jon Schlinkert** - -* [github/jonschlinkert](https://github.com/jonschlinkert) -* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) - -Based on [mout's](https://github.com/mout/mout) implementation of deepClone. - -## License - -Copyright © 2014-2015 [Jon Schlinkert](https://github.com/jonschlinkert) -Released under the MIT license. - -*** - -_This file was generated by [verb](https://github.com/verbose/verb) on December 23, 2015._ - - \ No newline at end of file diff --git a/node_modules/clone-deep/index.js b/node_modules/clone-deep/index.js deleted file mode 100644 index a42d9b5..0000000 --- a/node_modules/clone-deep/index.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -/** - * Module dependenices - */ - -var utils = require('./utils'); - -/** - * Recursively clone native types. - */ - -function cloneDeep(val, instanceClone) { - switch (utils.typeOf(val)) { - case 'object': - return cloneObjectDeep(val, instanceClone); - case 'array': - return cloneArrayDeep(val, instanceClone); - default: - return utils.clone(val); - } -} - -function cloneObjectDeep(obj, instanceClone) { - if (utils.isObject(obj)) { - var res = {}; - utils.forOwn(obj, function(obj, key) { - this[key] = cloneDeep(obj, instanceClone); - }, res); - return res; - } else if (instanceClone) { - return instanceClone(obj); - } else { - return obj; - } -} - -function cloneArrayDeep(arr, instanceClone) { - var len = arr.length, res = []; - var i = -1; - while (++i < len) { - res[i] = cloneDeep(arr[i], instanceClone); - } - return res; -} - -/** - * Expose `cloneDeep` - */ - -module.exports = cloneDeep; diff --git a/node_modules/clone-deep/package.json b/node_modules/clone-deep/package.json deleted file mode 100644 index 481d58e..0000000 --- a/node_modules/clone-deep/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "clone-deep", - "description": "Recursively (deep) clone JavaScript native types, like Object, Array, RegExp, Date as well as primitives.", - "version": "0.2.4", - "homepage": "https://github.com/jonschlinkert/clone-deep", - "author": "Jon Schlinkert (https://github.com/jonschlinkert)", - "repository": "jonschlinkert/clone-deep", - "bugs": { - "url": "https://github.com/jonschlinkert/clone-deep/issues" - }, - "license": "MIT", - "files": [ - "index.js", - "utils.js" - ], - "main": "index.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "test": "mocha" - }, - "dependencies": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - }, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "keywords": [ - "array", - "clone", - "clone-array", - "clone-array-deep", - "clone-date", - "clone-deep", - "clone-object", - "clone-object-deep", - "clone-reg-exp", - "date", - "deep", - "exp", - "for", - "for-in", - "for-own", - "javascript", - "mixin", - "mixin-object", - "object", - "own", - "reg", - "util", - "utility" - ], - "verb": { - "related": { - "list": [] - }, - "plugins": [ - "gulp-format-md" - ] - } -} diff --git a/node_modules/clone-deep/utils.js b/node_modules/clone-deep/utils.js deleted file mode 100644 index d2a7570..0000000 --- a/node_modules/clone-deep/utils.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -/** - * Lazily required module dependencies - */ - -var utils = require('lazy-cache')(require); -var fn = require; - -require = utils; -require('is-plain-object', 'isObject'); -require('shallow-clone', 'clone'); -require('kind-of', 'typeOf'); -require('for-own'); -require = fn; - -/** - * Expose `utils` - */ - -module.exports = utils; diff --git a/node_modules/color-convert/CHANGELOG.md b/node_modules/color-convert/CHANGELOG.md deleted file mode 100644 index 0a7bce4..0000000 --- a/node_modules/color-convert/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# 1.0.0 - 2016-01-07 - -- Removed: unused speed test -- Added: Automatic routing between previously unsupported conversions -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Removed: `convert()` class -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Changed: all functions to lookup dictionary -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Changed: `ansi` to `ansi256` -([#27](https://github.com/Qix-/color-convert/pull/27)) -- Fixed: argument grouping for functions requiring only one argument -([#27](https://github.com/Qix-/color-convert/pull/27)) - -# 0.6.0 - 2015-07-23 - -- Added: methods to handle -[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: - - rgb2ansi16 - - rgb2ansi - - hsl2ansi16 - - hsl2ansi - - hsv2ansi16 - - hsv2ansi - - hwb2ansi16 - - hwb2ansi - - cmyk2ansi16 - - cmyk2ansi - - keyword2ansi16 - - keyword2ansi - - ansi162rgb - - ansi162hsl - - ansi162hsv - - ansi162hwb - - ansi162cmyk - - ansi162keyword - - ansi2rgb - - ansi2hsl - - ansi2hsv - - ansi2hwb - - ansi2cmyk - - ansi2keyword -([#18](https://github.com/harthur/color-convert/pull/18)) - -# 0.5.3 - 2015-06-02 - -- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` -([#15](https://github.com/harthur/color-convert/issues/15)) - ---- - -Check out commit logs for older releases diff --git a/node_modules/color-convert/LICENSE b/node_modules/color-convert/LICENSE deleted file mode 100644 index 5b4c386..0000000 --- a/node_modules/color-convert/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2011-2016 Heather Arthur - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/node_modules/color-convert/README.md b/node_modules/color-convert/README.md deleted file mode 100644 index d4b08fc..0000000 --- a/node_modules/color-convert/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# color-convert - -[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) - -Color-convert is a color conversion library for JavaScript and node. -It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): - -```js -var convert = require('color-convert'); - -convert.rgb.hsl(140, 200, 100); // [96, 48, 59] -convert.keyword.rgb('blue'); // [0, 0, 255] - -var rgbChannels = convert.rgb.channels; // 3 -var cmykChannels = convert.cmyk.channels; // 4 -var ansiChannels = convert.ansi16.channels; // 1 -``` - -# Install - -```console -$ npm install color-convert -``` - -# API - -Simply get the property of the _from_ and _to_ conversion that you're looking for. - -All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. - -All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). - -```js -var convert = require('color-convert'); - -// Hex to LAB -convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] -convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] - -// RGB to CMYK -convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] -convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] -``` - -### Arrays -All functions that accept multiple arguments also support passing an array. - -Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) - -```js -var convert = require('color-convert'); - -convert.rgb.hex(123, 45, 67); // '7B2D43' -convert.rgb.hex([123, 45, 67]); // '7B2D43' -``` - -## Routing - -Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). - -Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). - -# Contribute - -If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. - -# License -Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/node_modules/color-convert/conversions.js b/node_modules/color-convert/conversions.js deleted file mode 100644 index 2657f26..0000000 --- a/node_modules/color-convert/conversions.js +++ /dev/null @@ -1,839 +0,0 @@ -/* MIT license */ -/* eslint-disable no-mixed-operators */ -const cssKeywords = require('color-name'); - -// NOTE: conversions should only return primitive values (i.e. arrays, or -// values that give correct `typeof` results). -// do not use box values types (i.e. Number(), String(), etc.) - -const reverseKeywords = {}; -for (const key of Object.keys(cssKeywords)) { - reverseKeywords[cssKeywords[key]] = key; -} - -const convert = { - rgb: {channels: 3, labels: 'rgb'}, - hsl: {channels: 3, labels: 'hsl'}, - hsv: {channels: 3, labels: 'hsv'}, - hwb: {channels: 3, labels: 'hwb'}, - cmyk: {channels: 4, labels: 'cmyk'}, - xyz: {channels: 3, labels: 'xyz'}, - lab: {channels: 3, labels: 'lab'}, - lch: {channels: 3, labels: 'lch'}, - hex: {channels: 1, labels: ['hex']}, - keyword: {channels: 1, labels: ['keyword']}, - ansi16: {channels: 1, labels: ['ansi16']}, - ansi256: {channels: 1, labels: ['ansi256']}, - hcg: {channels: 3, labels: ['h', 'c', 'g']}, - apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, - gray: {channels: 1, labels: ['gray']} -}; - -module.exports = convert; - -// Hide .channels and .labels properties -for (const model of Object.keys(convert)) { - if (!('channels' in convert[model])) { - throw new Error('missing channels property: ' + model); - } - - if (!('labels' in convert[model])) { - throw new Error('missing channel labels property: ' + model); - } - - if (convert[model].labels.length !== convert[model].channels) { - throw new Error('channel and label counts mismatch: ' + model); - } - - const {channels, labels} = convert[model]; - delete convert[model].channels; - delete convert[model].labels; - Object.defineProperty(convert[model], 'channels', {value: channels}); - Object.defineProperty(convert[model], 'labels', {value: labels}); -} - -convert.rgb.hsl = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const min = Math.min(r, g, b); - const max = Math.max(r, g, b); - const delta = max - min; - let h; - let s; - - if (max === min) { - h = 0; - } else if (r === max) { - h = (g - b) / delta; - } else if (g === max) { - h = 2 + (b - r) / delta; - } else if (b === max) { - h = 4 + (r - g) / delta; - } - - h = Math.min(h * 60, 360); - - if (h < 0) { - h += 360; - } - - const l = (min + max) / 2; - - if (max === min) { - s = 0; - } else if (l <= 0.5) { - s = delta / (max + min); - } else { - s = delta / (2 - max - min); - } - - return [h, s * 100, l * 100]; -}; - -convert.rgb.hsv = function (rgb) { - let rdif; - let gdif; - let bdif; - let h; - let s; - - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const v = Math.max(r, g, b); - const diff = v - Math.min(r, g, b); - const diffc = function (c) { - return (v - c) / 6 / diff + 1 / 2; - }; - - if (diff === 0) { - h = 0; - s = 0; - } else { - s = diff / v; - rdif = diffc(r); - gdif = diffc(g); - bdif = diffc(b); - - if (r === v) { - h = bdif - gdif; - } else if (g === v) { - h = (1 / 3) + rdif - bdif; - } else if (b === v) { - h = (2 / 3) + gdif - rdif; - } - - if (h < 0) { - h += 1; - } else if (h > 1) { - h -= 1; - } - } - - return [ - h * 360, - s * 100, - v * 100 - ]; -}; - -convert.rgb.hwb = function (rgb) { - const r = rgb[0]; - const g = rgb[1]; - let b = rgb[2]; - const h = convert.rgb.hsl(rgb)[0]; - const w = 1 / 255 * Math.min(r, Math.min(g, b)); - - b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); - - return [h, w * 100, b * 100]; -}; - -convert.rgb.cmyk = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - - const k = Math.min(1 - r, 1 - g, 1 - b); - const c = (1 - r - k) / (1 - k) || 0; - const m = (1 - g - k) / (1 - k) || 0; - const y = (1 - b - k) / (1 - k) || 0; - - return [c * 100, m * 100, y * 100, k * 100]; -}; - -function comparativeDistance(x, y) { - /* - See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance - */ - return ( - ((x[0] - y[0]) ** 2) + - ((x[1] - y[1]) ** 2) + - ((x[2] - y[2]) ** 2) - ); -} - -convert.rgb.keyword = function (rgb) { - const reversed = reverseKeywords[rgb]; - if (reversed) { - return reversed; - } - - let currentClosestDistance = Infinity; - let currentClosestKeyword; - - for (const keyword of Object.keys(cssKeywords)) { - const value = cssKeywords[keyword]; - - // Compute comparative distance - const distance = comparativeDistance(rgb, value); - - // Check if its less, if so set as closest - if (distance < currentClosestDistance) { - currentClosestDistance = distance; - currentClosestKeyword = keyword; - } - } - - return currentClosestKeyword; -}; - -convert.keyword.rgb = function (keyword) { - return cssKeywords[keyword]; -}; - -convert.rgb.xyz = function (rgb) { - let r = rgb[0] / 255; - let g = rgb[1] / 255; - let b = rgb[2] / 255; - - // Assume sRGB - r = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92); - g = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92); - b = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92); - - const x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); - const y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); - const z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); - - return [x * 100, y * 100, z * 100]; -}; - -convert.rgb.lab = function (rgb) { - const xyz = convert.rgb.xyz(rgb); - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - - x /= 95.047; - y /= 100; - z /= 108.883; - - x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); - - const l = (116 * y) - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - - return [l, a, b]; -}; - -convert.hsl.rgb = function (hsl) { - const h = hsl[0] / 360; - const s = hsl[1] / 100; - const l = hsl[2] / 100; - let t2; - let t3; - let val; - - if (s === 0) { - val = l * 255; - return [val, val, val]; - } - - if (l < 0.5) { - t2 = l * (1 + s); - } else { - t2 = l + s - l * s; - } - - const t1 = 2 * l - t2; - - const rgb = [0, 0, 0]; - for (let i = 0; i < 3; i++) { - t3 = h + 1 / 3 * -(i - 1); - if (t3 < 0) { - t3++; - } - - if (t3 > 1) { - t3--; - } - - if (6 * t3 < 1) { - val = t1 + (t2 - t1) * 6 * t3; - } else if (2 * t3 < 1) { - val = t2; - } else if (3 * t3 < 2) { - val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; - } else { - val = t1; - } - - rgb[i] = val * 255; - } - - return rgb; -}; - -convert.hsl.hsv = function (hsl) { - const h = hsl[0]; - let s = hsl[1] / 100; - let l = hsl[2] / 100; - let smin = s; - const lmin = Math.max(l, 0.01); - - l *= 2; - s *= (l <= 1) ? l : 2 - l; - smin *= lmin <= 1 ? lmin : 2 - lmin; - const v = (l + s) / 2; - const sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); - - return [h, sv * 100, v * 100]; -}; - -convert.hsv.rgb = function (hsv) { - const h = hsv[0] / 60; - const s = hsv[1] / 100; - let v = hsv[2] / 100; - const hi = Math.floor(h) % 6; - - const f = h - Math.floor(h); - const p = 255 * v * (1 - s); - const q = 255 * v * (1 - (s * f)); - const t = 255 * v * (1 - (s * (1 - f))); - v *= 255; - - switch (hi) { - case 0: - return [v, t, p]; - case 1: - return [q, v, p]; - case 2: - return [p, v, t]; - case 3: - return [p, q, v]; - case 4: - return [t, p, v]; - case 5: - return [v, p, q]; - } -}; - -convert.hsv.hsl = function (hsv) { - const h = hsv[0]; - const s = hsv[1] / 100; - const v = hsv[2] / 100; - const vmin = Math.max(v, 0.01); - let sl; - let l; - - l = (2 - s) * v; - const lmin = (2 - s) * vmin; - sl = s * vmin; - sl /= (lmin <= 1) ? lmin : 2 - lmin; - sl = sl || 0; - l /= 2; - - return [h, sl * 100, l * 100]; -}; - -// http://dev.w3.org/csswg/css-color/#hwb-to-rgb -convert.hwb.rgb = function (hwb) { - const h = hwb[0] / 360; - let wh = hwb[1] / 100; - let bl = hwb[2] / 100; - const ratio = wh + bl; - let f; - - // Wh + bl cant be > 1 - if (ratio > 1) { - wh /= ratio; - bl /= ratio; - } - - const i = Math.floor(6 * h); - const v = 1 - bl; - f = 6 * h - i; - - if ((i & 0x01) !== 0) { - f = 1 - f; - } - - const n = wh + f * (v - wh); // Linear interpolation - - let r; - let g; - let b; - /* eslint-disable max-statements-per-line,no-multi-spaces */ - switch (i) { - default: - case 6: - case 0: r = v; g = n; b = wh; break; - case 1: r = n; g = v; b = wh; break; - case 2: r = wh; g = v; b = n; break; - case 3: r = wh; g = n; b = v; break; - case 4: r = n; g = wh; b = v; break; - case 5: r = v; g = wh; b = n; break; - } - /* eslint-enable max-statements-per-line,no-multi-spaces */ - - return [r * 255, g * 255, b * 255]; -}; - -convert.cmyk.rgb = function (cmyk) { - const c = cmyk[0] / 100; - const m = cmyk[1] / 100; - const y = cmyk[2] / 100; - const k = cmyk[3] / 100; - - const r = 1 - Math.min(1, c * (1 - k) + k); - const g = 1 - Math.min(1, m * (1 - k) + k); - const b = 1 - Math.min(1, y * (1 - k) + k); - - return [r * 255, g * 255, b * 255]; -}; - -convert.xyz.rgb = function (xyz) { - const x = xyz[0] / 100; - const y = xyz[1] / 100; - const z = xyz[2] / 100; - let r; - let g; - let b; - - r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); - g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); - b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); - - // Assume sRGB - r = r > 0.0031308 - ? ((1.055 * (r ** (1.0 / 2.4))) - 0.055) - : r * 12.92; - - g = g > 0.0031308 - ? ((1.055 * (g ** (1.0 / 2.4))) - 0.055) - : g * 12.92; - - b = b > 0.0031308 - ? ((1.055 * (b ** (1.0 / 2.4))) - 0.055) - : b * 12.92; - - r = Math.min(Math.max(0, r), 1); - g = Math.min(Math.max(0, g), 1); - b = Math.min(Math.max(0, b), 1); - - return [r * 255, g * 255, b * 255]; -}; - -convert.xyz.lab = function (xyz) { - let x = xyz[0]; - let y = xyz[1]; - let z = xyz[2]; - - x /= 95.047; - y /= 100; - z /= 108.883; - - x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); - y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); - z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); - - const l = (116 * y) - 16; - const a = 500 * (x - y); - const b = 200 * (y - z); - - return [l, a, b]; -}; - -convert.lab.xyz = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let x; - let y; - let z; - - y = (l + 16) / 116; - x = a / 500 + y; - z = y - b / 200; - - const y2 = y ** 3; - const x2 = x ** 3; - const z2 = z ** 3; - y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; - x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; - z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; - - x *= 95.047; - y *= 100; - z *= 108.883; - - return [x, y, z]; -}; - -convert.lab.lch = function (lab) { - const l = lab[0]; - const a = lab[1]; - const b = lab[2]; - let h; - - const hr = Math.atan2(b, a); - h = hr * 360 / 2 / Math.PI; - - if (h < 0) { - h += 360; - } - - const c = Math.sqrt(a * a + b * b); - - return [l, c, h]; -}; - -convert.lch.lab = function (lch) { - const l = lch[0]; - const c = lch[1]; - const h = lch[2]; - - const hr = h / 360 * 2 * Math.PI; - const a = c * Math.cos(hr); - const b = c * Math.sin(hr); - - return [l, a, b]; -}; - -convert.rgb.ansi16 = function (args, saturation = null) { - const [r, g, b] = args; - let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization - - value = Math.round(value / 50); - - if (value === 0) { - return 30; - } - - let ansi = 30 - + ((Math.round(b / 255) << 2) - | (Math.round(g / 255) << 1) - | Math.round(r / 255)); - - if (value === 2) { - ansi += 60; - } - - return ansi; -}; - -convert.hsv.ansi16 = function (args) { - // Optimization here; we already know the value and don't need to get - // it converted for us. - return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); -}; - -convert.rgb.ansi256 = function (args) { - const r = args[0]; - const g = args[1]; - const b = args[2]; - - // We use the extended greyscale palette here, with the exception of - // black and white. normal palette only has 4 greyscale shades. - if (r === g && g === b) { - if (r < 8) { - return 16; - } - - if (r > 248) { - return 231; - } - - return Math.round(((r - 8) / 247) * 24) + 232; - } - - const ansi = 16 - + (36 * Math.round(r / 255 * 5)) - + (6 * Math.round(g / 255 * 5)) - + Math.round(b / 255 * 5); - - return ansi; -}; - -convert.ansi16.rgb = function (args) { - let color = args % 10; - - // Handle greyscale - if (color === 0 || color === 7) { - if (args > 50) { - color += 3.5; - } - - color = color / 10.5 * 255; - - return [color, color, color]; - } - - const mult = (~~(args > 50) + 1) * 0.5; - const r = ((color & 1) * mult) * 255; - const g = (((color >> 1) & 1) * mult) * 255; - const b = (((color >> 2) & 1) * mult) * 255; - - return [r, g, b]; -}; - -convert.ansi256.rgb = function (args) { - // Handle greyscale - if (args >= 232) { - const c = (args - 232) * 10 + 8; - return [c, c, c]; - } - - args -= 16; - - let rem; - const r = Math.floor(args / 36) / 5 * 255; - const g = Math.floor((rem = args % 36) / 6) / 5 * 255; - const b = (rem % 6) / 5 * 255; - - return [r, g, b]; -}; - -convert.rgb.hex = function (args) { - const integer = ((Math.round(args[0]) & 0xFF) << 16) - + ((Math.round(args[1]) & 0xFF) << 8) - + (Math.round(args[2]) & 0xFF); - - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; - -convert.hex.rgb = function (args) { - const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); - if (!match) { - return [0, 0, 0]; - } - - let colorString = match[0]; - - if (match[0].length === 3) { - colorString = colorString.split('').map(char => { - return char + char; - }).join(''); - } - - const integer = parseInt(colorString, 16); - const r = (integer >> 16) & 0xFF; - const g = (integer >> 8) & 0xFF; - const b = integer & 0xFF; - - return [r, g, b]; -}; - -convert.rgb.hcg = function (rgb) { - const r = rgb[0] / 255; - const g = rgb[1] / 255; - const b = rgb[2] / 255; - const max = Math.max(Math.max(r, g), b); - const min = Math.min(Math.min(r, g), b); - const chroma = (max - min); - let grayscale; - let hue; - - if (chroma < 1) { - grayscale = min / (1 - chroma); - } else { - grayscale = 0; - } - - if (chroma <= 0) { - hue = 0; - } else - if (max === r) { - hue = ((g - b) / chroma) % 6; - } else - if (max === g) { - hue = 2 + (b - r) / chroma; - } else { - hue = 4 + (r - g) / chroma; - } - - hue /= 6; - hue %= 1; - - return [hue * 360, chroma * 100, grayscale * 100]; -}; - -convert.hsl.hcg = function (hsl) { - const s = hsl[1] / 100; - const l = hsl[2] / 100; - - const c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l)); - - let f = 0; - if (c < 1.0) { - f = (l - 0.5 * c) / (1.0 - c); - } - - return [hsl[0], c * 100, f * 100]; -}; - -convert.hsv.hcg = function (hsv) { - const s = hsv[1] / 100; - const v = hsv[2] / 100; - - const c = s * v; - let f = 0; - - if (c < 1.0) { - f = (v - c) / (1 - c); - } - - return [hsv[0], c * 100, f * 100]; -}; - -convert.hcg.rgb = function (hcg) { - const h = hcg[0] / 360; - const c = hcg[1] / 100; - const g = hcg[2] / 100; - - if (c === 0.0) { - return [g * 255, g * 255, g * 255]; - } - - const pure = [0, 0, 0]; - const hi = (h % 1) * 6; - const v = hi % 1; - const w = 1 - v; - let mg = 0; - - /* eslint-disable max-statements-per-line */ - switch (Math.floor(hi)) { - case 0: - pure[0] = 1; pure[1] = v; pure[2] = 0; break; - case 1: - pure[0] = w; pure[1] = 1; pure[2] = 0; break; - case 2: - pure[0] = 0; pure[1] = 1; pure[2] = v; break; - case 3: - pure[0] = 0; pure[1] = w; pure[2] = 1; break; - case 4: - pure[0] = v; pure[1] = 0; pure[2] = 1; break; - default: - pure[0] = 1; pure[1] = 0; pure[2] = w; - } - /* eslint-enable max-statements-per-line */ - - mg = (1.0 - c) * g; - - return [ - (c * pure[0] + mg) * 255, - (c * pure[1] + mg) * 255, - (c * pure[2] + mg) * 255 - ]; -}; - -convert.hcg.hsv = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - - const v = c + g * (1.0 - c); - let f = 0; - - if (v > 0.0) { - f = c / v; - } - - return [hcg[0], f * 100, v * 100]; -}; - -convert.hcg.hsl = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - - const l = g * (1.0 - c) + 0.5 * c; - let s = 0; - - if (l > 0.0 && l < 0.5) { - s = c / (2 * l); - } else - if (l >= 0.5 && l < 1.0) { - s = c / (2 * (1 - l)); - } - - return [hcg[0], s * 100, l * 100]; -}; - -convert.hcg.hwb = function (hcg) { - const c = hcg[1] / 100; - const g = hcg[2] / 100; - const v = c + g * (1.0 - c); - return [hcg[0], (v - c) * 100, (1 - v) * 100]; -}; - -convert.hwb.hcg = function (hwb) { - const w = hwb[1] / 100; - const b = hwb[2] / 100; - const v = 1 - b; - const c = v - w; - let g = 0; - - if (c < 1) { - g = (v - c) / (1 - c); - } - - return [hwb[0], c * 100, g * 100]; -}; - -convert.apple.rgb = function (apple) { - return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; -}; - -convert.rgb.apple = function (rgb) { - return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; -}; - -convert.gray.rgb = function (args) { - return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; -}; - -convert.gray.hsl = function (args) { - return [0, 0, args[0]]; -}; - -convert.gray.hsv = convert.gray.hsl; - -convert.gray.hwb = function (gray) { - return [0, 100, gray[0]]; -}; - -convert.gray.cmyk = function (gray) { - return [0, 0, 0, gray[0]]; -}; - -convert.gray.lab = function (gray) { - return [gray[0], 0, 0]; -}; - -convert.gray.hex = function (gray) { - const val = Math.round(gray[0] / 100 * 255) & 0xFF; - const integer = (val << 16) + (val << 8) + val; - - const string = integer.toString(16).toUpperCase(); - return '000000'.substring(string.length) + string; -}; - -convert.rgb.gray = function (rgb) { - const val = (rgb[0] + rgb[1] + rgb[2]) / 3; - return [val / 255 * 100]; -}; diff --git a/node_modules/color-convert/index.js b/node_modules/color-convert/index.js deleted file mode 100644 index b648e57..0000000 --- a/node_modules/color-convert/index.js +++ /dev/null @@ -1,81 +0,0 @@ -const conversions = require('./conversions'); -const route = require('./route'); - -const convert = {}; - -const models = Object.keys(conversions); - -function wrapRaw(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; - if (arg0 === undefined || arg0 === null) { - return arg0; - } - - if (arg0.length > 1) { - args = arg0; - } - - return fn(args); - }; - - // Preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -function wrapRounded(fn) { - const wrappedFn = function (...args) { - const arg0 = args[0]; - - if (arg0 === undefined || arg0 === null) { - return arg0; - } - - if (arg0.length > 1) { - args = arg0; - } - - const result = fn(args); - - // We're assuming the result is an array here. - // see notice in conversions.js; don't use box types - // in conversion functions. - if (typeof result === 'object') { - for (let len = result.length, i = 0; i < len; i++) { - result[i] = Math.round(result[i]); - } - } - - return result; - }; - - // Preserve .conversion property if there is one - if ('conversion' in fn) { - wrappedFn.conversion = fn.conversion; - } - - return wrappedFn; -} - -models.forEach(fromModel => { - convert[fromModel] = {}; - - Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); - Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); - - const routes = route(fromModel); - const routeModels = Object.keys(routes); - - routeModels.forEach(toModel => { - const fn = routes[toModel]; - - convert[fromModel][toModel] = wrapRounded(fn); - convert[fromModel][toModel].raw = wrapRaw(fn); - }); -}); - -module.exports = convert; diff --git a/node_modules/color-convert/package.json b/node_modules/color-convert/package.json deleted file mode 100644 index 6e48000..0000000 --- a/node_modules/color-convert/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "color-convert", - "description": "Plain color conversion functions", - "version": "2.0.1", - "author": "Heather Arthur ", - "license": "MIT", - "repository": "Qix-/color-convert", - "scripts": { - "pretest": "xo", - "test": "node test/basic.js" - }, - "engines": { - "node": ">=7.0.0" - }, - "keywords": [ - "color", - "colour", - "convert", - "converter", - "conversion", - "rgb", - "hsl", - "hsv", - "hwb", - "cmyk", - "ansi", - "ansi16" - ], - "files": [ - "index.js", - "conversions.js", - "route.js" - ], - "xo": { - "rules": { - "default-case": 0, - "no-inline-comments": 0, - "operator-linebreak": 0 - } - }, - "devDependencies": { - "chalk": "^2.4.2", - "xo": "^0.24.0" - }, - "dependencies": { - "color-name": "~1.1.4" - } -} diff --git a/node_modules/color-convert/route.js b/node_modules/color-convert/route.js deleted file mode 100644 index 1a08521..0000000 --- a/node_modules/color-convert/route.js +++ /dev/null @@ -1,97 +0,0 @@ -const conversions = require('./conversions'); - -/* - This function routes a model to all other models. - - all functions that are routed have a property `.conversion` attached - to the returned synthetic function. This property is an array - of strings, each with the steps in between the 'from' and 'to' - color models (inclusive). - - conversions that are not possible simply are not included. -*/ - -function buildGraph() { - const graph = {}; - // https://jsperf.com/object-keys-vs-for-in-with-closure/3 - const models = Object.keys(conversions); - - for (let len = models.length, i = 0; i < len; i++) { - graph[models[i]] = { - // http://jsperf.com/1-vs-infinity - // micro-opt, but this is simple. - distance: -1, - parent: null - }; - } - - return graph; -} - -// https://en.wikipedia.org/wiki/Breadth-first_search -function deriveBFS(fromModel) { - const graph = buildGraph(); - const queue = [fromModel]; // Unshift -> queue -> pop - - graph[fromModel].distance = 0; - - while (queue.length) { - const current = queue.pop(); - const adjacents = Object.keys(conversions[current]); - - for (let len = adjacents.length, i = 0; i < len; i++) { - const adjacent = adjacents[i]; - const node = graph[adjacent]; - - if (node.distance === -1) { - node.distance = graph[current].distance + 1; - node.parent = current; - queue.unshift(adjacent); - } - } - } - - return graph; -} - -function link(from, to) { - return function (args) { - return to(from(args)); - }; -} - -function wrapConversion(toModel, graph) { - const path = [graph[toModel].parent, toModel]; - let fn = conversions[graph[toModel].parent][toModel]; - - let cur = graph[toModel].parent; - while (graph[cur].parent) { - path.unshift(graph[cur].parent); - fn = link(conversions[graph[cur].parent][cur], fn); - cur = graph[cur].parent; - } - - fn.conversion = path; - return fn; -} - -module.exports = function (fromModel) { - const graph = deriveBFS(fromModel); - const conversion = {}; - - const models = Object.keys(graph); - for (let len = models.length, i = 0; i < len; i++) { - const toModel = models[i]; - const node = graph[toModel]; - - if (node.parent === null) { - // No possible conversion, or this node is the source model. - continue; - } - - conversion[toModel] = wrapConversion(toModel, graph); - } - - return conversion; -}; - diff --git a/node_modules/color-name/LICENSE b/node_modules/color-name/LICENSE deleted file mode 100644 index c6b1001..0000000 --- a/node_modules/color-name/LICENSE +++ /dev/null @@ -1,8 +0,0 @@ -The MIT License (MIT) -Copyright (c) 2015 Dmitry Ivanov - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/color-name/README.md b/node_modules/color-name/README.md deleted file mode 100644 index 932b979..0000000 --- a/node_modules/color-name/README.md +++ /dev/null @@ -1,11 +0,0 @@ -A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. - -[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) - - -```js -var colors = require('color-name'); -colors.red //[255,0,0] -``` - - diff --git a/node_modules/color-name/index.js b/node_modules/color-name/index.js deleted file mode 100644 index b7c198a..0000000 --- a/node_modules/color-name/index.js +++ /dev/null @@ -1,152 +0,0 @@ -'use strict' - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; diff --git a/node_modules/color-name/package.json b/node_modules/color-name/package.json deleted file mode 100644 index 782dd82..0000000 --- a/node_modules/color-name/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "color-name", - "version": "1.1.4", - "description": "A list of color names and its values", - "main": "index.js", - "files": [ - "index.js" - ], - "scripts": { - "test": "node test.js" - }, - "repository": { - "type": "git", - "url": "git@github.com:colorjs/color-name.git" - }, - "keywords": [ - "color-name", - "color", - "color-keyword", - "keyword" - ], - "author": "DY ", - "license": "MIT", - "bugs": { - "url": "https://github.com/colorjs/color-name/issues" - }, - "homepage": "https://github.com/colorjs/color-name" -} diff --git a/node_modules/combined-stream/License b/node_modules/combined-stream/License deleted file mode 100644 index 4804b7a..0000000 --- a/node_modules/combined-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/combined-stream/Readme.md b/node_modules/combined-stream/Readme.md deleted file mode 100644 index 9e367b5..0000000 --- a/node_modules/combined-stream/Readme.md +++ /dev/null @@ -1,138 +0,0 @@ -# combined-stream - -A stream that emits multiple other streams one after another. - -**NB** Currently `combined-stream` works with streams version 1 only. There is ongoing effort to switch this library to streams version 2. Any help is welcome. :) Meanwhile you can explore other libraries that provide streams2 support with more or less compatibility with `combined-stream`. - -- [combined-stream2](https://www.npmjs.com/package/combined-stream2): A drop-in streams2-compatible replacement for the combined-stream module. - -- [multistream](https://www.npmjs.com/package/multistream): A stream that emits multiple other streams one after another. - -## Installation - -``` bash -npm install combined-stream -``` - -## Usage - -Here is a simple example that shows how you can use combined-stream to combine -two files into one: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -While the example above works great, it will pause all source streams until -they are needed. If you don't want that to happen, you can set `pauseStreams` -to `false`: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create({pauseStreams: false}); -combinedStream.append(fs.createReadStream('file1.txt')); -combinedStream.append(fs.createReadStream('file2.txt')); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -However, what if you don't have all the source streams yet, or you don't want -to allocate the resources (file descriptors, memory, etc.) for them right away? -Well, in that case you can simply provide a callback that supplies the stream -by calling a `next()` function: - -``` javascript -var CombinedStream = require('combined-stream'); -var fs = require('fs'); - -var combinedStream = CombinedStream.create(); -combinedStream.append(function(next) { - next(fs.createReadStream('file1.txt')); -}); -combinedStream.append(function(next) { - next(fs.createReadStream('file2.txt')); -}); - -combinedStream.pipe(fs.createWriteStream('combined.txt')); -``` - -## API - -### CombinedStream.create([options]) - -Returns a new combined stream object. Available options are: - -* `maxDataSize` -* `pauseStreams` - -The effect of those options is described below. - -### combinedStream.pauseStreams = `true` - -Whether to apply back pressure to the underlaying streams. If set to `false`, -the underlaying streams will never be paused. If set to `true`, the -underlaying streams will be paused right after being appended, as well as when -`delayedStream.pipe()` wants to throttle. - -### combinedStream.maxDataSize = `2 * 1024 * 1024` - -The maximum amount of bytes (or characters) to buffer for all source streams. -If this value is exceeded, `combinedStream` emits an `'error'` event. - -### combinedStream.dataSize = `0` - -The amount of bytes (or characters) currently buffered by `combinedStream`. - -### combinedStream.append(stream) - -Appends the given `stream` to the combinedStream object. If `pauseStreams` is -set to `true, this stream will also be paused right away. - -`streams` can also be a function that takes one parameter called `next`. `next` -is a function that must be invoked in order to provide the `next` stream, see -example above. - -Regardless of how the `stream` is appended, combined-stream always attaches an -`'error'` listener to it, so you don't have to do that manually. - -Special case: `stream` can also be a String or Buffer. - -### combinedStream.write(data) - -You should not call this, `combinedStream` takes care of piping the appended -streams into itself for you. - -### combinedStream.resume() - -Causes `combinedStream` to start drain the streams it manages. The function is -idempotent, and also emits a `'resume'` event each time which usually goes to -the stream that is currently being drained. - -### combinedStream.pause(); - -If `combinedStream.pauseStreams` is set to `false`, this does nothing. -Otherwise a `'pause'` event is emitted, this goes to the stream that is -currently being drained, so you can use it to apply back pressure. - -### combinedStream.end(); - -Sets `combinedStream.writable` to false, emits an `'end'` event, and removes -all streams from the queue. - -### combinedStream.destroy(); - -Same as `combinedStream.end()`, except it emits a `'close'` event instead of -`'end'`. - -## License - -combined-stream is licensed under the MIT license. diff --git a/node_modules/combined-stream/lib/combined_stream.js b/node_modules/combined-stream/lib/combined_stream.js deleted file mode 100644 index 125f097..0000000 --- a/node_modules/combined-stream/lib/combined_stream.js +++ /dev/null @@ -1,208 +0,0 @@ -var util = require('util'); -var Stream = require('stream').Stream; -var DelayedStream = require('delayed-stream'); - -module.exports = CombinedStream; -function CombinedStream() { - this.writable = false; - this.readable = true; - this.dataSize = 0; - this.maxDataSize = 2 * 1024 * 1024; - this.pauseStreams = true; - - this._released = false; - this._streams = []; - this._currentStream = null; - this._insideLoop = false; - this._pendingNext = false; -} -util.inherits(CombinedStream, Stream); - -CombinedStream.create = function(options) { - var combinedStream = new this(); - - options = options || {}; - for (var option in options) { - combinedStream[option] = options[option]; - } - - return combinedStream; -}; - -CombinedStream.isStreamLike = function(stream) { - return (typeof stream !== 'function') - && (typeof stream !== 'string') - && (typeof stream !== 'boolean') - && (typeof stream !== 'number') - && (!Buffer.isBuffer(stream)); -}; - -CombinedStream.prototype.append = function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - - if (isStreamLike) { - if (!(stream instanceof DelayedStream)) { - var newStream = DelayedStream.create(stream, { - maxDataSize: Infinity, - pauseStream: this.pauseStreams, - }); - stream.on('data', this._checkDataSize.bind(this)); - stream = newStream; - } - - this._handleErrors(stream); - - if (this.pauseStreams) { - stream.pause(); - } - } - - this._streams.push(stream); - return this; -}; - -CombinedStream.prototype.pipe = function(dest, options) { - Stream.prototype.pipe.call(this, dest, options); - this.resume(); - return dest; -}; - -CombinedStream.prototype._getNext = function() { - this._currentStream = null; - - if (this._insideLoop) { - this._pendingNext = true; - return; // defer call - } - - this._insideLoop = true; - try { - do { - this._pendingNext = false; - this._realGetNext(); - } while (this._pendingNext); - } finally { - this._insideLoop = false; - } -}; - -CombinedStream.prototype._realGetNext = function() { - var stream = this._streams.shift(); - - - if (typeof stream == 'undefined') { - this.end(); - return; - } - - if (typeof stream !== 'function') { - this._pipeNext(stream); - return; - } - - var getStream = stream; - getStream(function(stream) { - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('data', this._checkDataSize.bind(this)); - this._handleErrors(stream); - } - - this._pipeNext(stream); - }.bind(this)); -}; - -CombinedStream.prototype._pipeNext = function(stream) { - this._currentStream = stream; - - var isStreamLike = CombinedStream.isStreamLike(stream); - if (isStreamLike) { - stream.on('end', this._getNext.bind(this)); - stream.pipe(this, {end: false}); - return; - } - - var value = stream; - this.write(value); - this._getNext(); -}; - -CombinedStream.prototype._handleErrors = function(stream) { - var self = this; - stream.on('error', function(err) { - self._emitError(err); - }); -}; - -CombinedStream.prototype.write = function(data) { - this.emit('data', data); -}; - -CombinedStream.prototype.pause = function() { - if (!this.pauseStreams) { - return; - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); - this.emit('pause'); -}; - -CombinedStream.prototype.resume = function() { - if (!this._released) { - this._released = true; - this.writable = true; - this._getNext(); - } - - if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); - this.emit('resume'); -}; - -CombinedStream.prototype.end = function() { - this._reset(); - this.emit('end'); -}; - -CombinedStream.prototype.destroy = function() { - this._reset(); - this.emit('close'); -}; - -CombinedStream.prototype._reset = function() { - this.writable = false; - this._streams = []; - this._currentStream = null; -}; - -CombinedStream.prototype._checkDataSize = function() { - this._updateDataSize(); - if (this.dataSize <= this.maxDataSize) { - return; - } - - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; - this._emitError(new Error(message)); -}; - -CombinedStream.prototype._updateDataSize = function() { - this.dataSize = 0; - - var self = this; - this._streams.forEach(function(stream) { - if (!stream.dataSize) { - return; - } - - self.dataSize += stream.dataSize; - }); - - if (this._currentStream && this._currentStream.dataSize) { - this.dataSize += this._currentStream.dataSize; - } -}; - -CombinedStream.prototype._emitError = function(err) { - this._reset(); - this.emit('error', err); -}; diff --git a/node_modules/combined-stream/package.json b/node_modules/combined-stream/package.json deleted file mode 100644 index 6982b6d..0000000 --- a/node_modules/combined-stream/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "author": "Felix Geisendörfer (http://debuggable.com/)", - "name": "combined-stream", - "description": "A stream that emits multiple other streams one after another.", - "version": "1.0.8", - "homepage": "https://github.com/felixge/node-combined-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-combined-stream.git" - }, - "main": "./lib/combined_stream", - "scripts": { - "test": "node test/run.js" - }, - "engines": { - "node": ">= 0.8" - }, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "devDependencies": { - "far": "~0.0.7" - }, - "license": "MIT" -} diff --git a/node_modules/combined-stream/yarn.lock b/node_modules/combined-stream/yarn.lock deleted file mode 100644 index 7edf418..0000000 --- a/node_modules/combined-stream/yarn.lock +++ /dev/null @@ -1,17 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -far@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/far/-/far-0.0.7.tgz#01c1fd362bcd26ce9cf161af3938aa34619f79a7" - dependencies: - oop "0.0.3" - -oop@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/oop/-/oop-0.0.3.tgz#70fa405a5650891a194fdc82ca68dad6dabf4401" diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml deleted file mode 100644 index f1d0f13..0000000 --- a/node_modules/concat-map/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.4 - - 0.6 diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE deleted file mode 100644 index ee27ba4..0000000 --- a/node_modules/concat-map/LICENSE +++ /dev/null @@ -1,18 +0,0 @@ -This software is released under the MIT license: - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/concat-map/README.markdown b/node_modules/concat-map/README.markdown deleted file mode 100644 index 408f70a..0000000 --- a/node_modules/concat-map/README.markdown +++ /dev/null @@ -1,62 +0,0 @@ -concat-map -========== - -Concatenative mapdashery. - -[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) - -[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) - -example -======= - -``` js -var concatMap = require('concat-map'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); -``` - -*** - -``` -[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] -``` - -methods -======= - -``` js -var concatMap = require('concat-map') -``` - -concatMap(xs, fn) ------------------ - -Return an array of concatenated elements by calling `fn(x, i)` for each element -`x` and each index `i` in the array `xs`. - -When `fn(x, i)` returns an array, its result will be concatenated with the -result array. If `fn(x, i)` returns anything else, that value will be pushed -onto the end of the result array. - -install -======= - -With [npm](http://npmjs.org) do: - -``` -npm install concat-map -``` - -license -======= - -MIT - -notes -===== - -This module was written while sitting high above the ground in a tree. diff --git a/node_modules/concat-map/example/map.js b/node_modules/concat-map/example/map.js deleted file mode 100644 index 3365621..0000000 --- a/node_modules/concat-map/example/map.js +++ /dev/null @@ -1,6 +0,0 @@ -var concatMap = require('../'); -var xs = [ 1, 2, 3, 4, 5, 6 ]; -var ys = concatMap(xs, function (x) { - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; -}); -console.dir(ys); diff --git a/node_modules/concat-map/index.js b/node_modules/concat-map/index.js deleted file mode 100644 index b29a781..0000000 --- a/node_modules/concat-map/index.js +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = function (xs, fn) { - var res = []; - for (var i = 0; i < xs.length; i++) { - var x = fn(xs[i], i); - if (isArray(x)) res.push.apply(res, x); - else res.push(x); - } - return res; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json deleted file mode 100644 index d3640e6..0000000 --- a/node_modules/concat-map/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name" : "concat-map", - "description" : "concatenative mapdashery", - "version" : "0.0.1", - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/node-concat-map.git" - }, - "main" : "index.js", - "keywords" : [ - "concat", - "concatMap", - "map", - "functional", - "higher-order" - ], - "directories" : { - "example" : "example", - "test" : "test" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "devDependencies" : { - "tape" : "~2.4.0" - }, - "license" : "MIT", - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "ie" : [ 6, 7, 8, 9 ], - "ff" : [ 3.5, 10, 15.0 ], - "chrome" : [ 10, 22 ], - "safari" : [ 5.1 ], - "opera" : [ 12 ] - } - } -} diff --git a/node_modules/concat-map/test/map.js b/node_modules/concat-map/test/map.js deleted file mode 100644 index fdbd702..0000000 --- a/node_modules/concat-map/test/map.js +++ /dev/null @@ -1,39 +0,0 @@ -var concatMap = require('../'); -var test = require('tape'); - -test('empty or not', function (t) { - var xs = [ 1, 2, 3, 4, 5, 6 ]; - var ixes = []; - var ys = concatMap(xs, function (x, ix) { - ixes.push(ix); - return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; - }); - t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); - t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); - t.end(); -}); - -test('always something', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('scalars', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function (x) { - return x === 'b' ? [ 'B', 'B', 'B' ] : x; - }); - t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); - t.end(); -}); - -test('undefs', function (t) { - var xs = [ 'a', 'b', 'c', 'd' ]; - var ys = concatMap(xs, function () {}); - t.same(ys, [ undefined, undefined, undefined, undefined ]); - t.end(); -}); diff --git a/node_modules/cosmiconfig/LICENSE b/node_modules/cosmiconfig/LICENSE deleted file mode 100644 index 6d347c0..0000000 --- a/node_modules/cosmiconfig/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 David Clark - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/cosmiconfig/README.md b/node_modules/cosmiconfig/README.md deleted file mode 100644 index 59b09d0..0000000 --- a/node_modules/cosmiconfig/README.md +++ /dev/null @@ -1,782 +0,0 @@ -# cosmiconfig - -[![codecov](https://codecov.io/gh/cosmiconfig/cosmiconfig/branch/main/graph/badge.svg)](https://codecov.io/gh/cosmiconfig/cosmiconfig) - -Cosmiconfig searches for and loads configuration for your program. - -It features smart defaults based on conventional expectations in the JavaScript ecosystem. -But it's also flexible enough to search wherever you'd like to search, and load whatever you'd like to load. - -By default, Cosmiconfig will check the current directory for the following: - -- a `package.json` property -- a JSON or YAML, extensionless "rc file" -- an "rc file" with the extensions `.json`, `.yaml`, `.yml`, `.js`, `.ts`, `.mjs`, or `.cjs` -- any of the above two inside a `.config` subdirectory -- a `.config.js`, `.config.ts`, `.config.mjs`, or `.config.cjs` file - -For example, if your module's name is "myapp", cosmiconfig will search up the directory tree for configuration in the following places: - -- a `myapp` property in `package.json` -- a `.myapprc` file in JSON or YAML format -- a `.myapprc.json`, `.myapprc.yaml`, `.myapprc.yml`, `.myapprc.js`, `.myapprc.ts`, `.myapprc.mjs`, or `.myapprc.cjs` file -- a `myapprc`, `myapprc.json`, `myapprc.yaml`, `myapprc.yml`, `myapprc.js`, `myapprc.ts`, `myapprc.mjs`, or `myapprc.cjs` file inside a `.config` subdirectory -- a `myapp.config.js`, `myapp.config.ts`, `myapp.config.mjs`, or `myapp.config.cjs` file - -Optionally, you can tell it to search up the directory tree using [search strategies], -checking each of these places in each directory, until it finds some acceptable configuration (or hits the home directory). - -## Table of contents - -- [Installation](#installation) -- [Usage for tooling developers](#usage-for-tooling-developers) -- [Result](#result) -- [Asynchronous API](#asynchronous-api) - - [cosmiconfig()](#cosmiconfig-1) - - [explorer.search()](#explorersearch) - - [explorer.load()](#explorerload) - - [explorer.clearLoadCache()](#explorerclearloadcache) - - [explorer.clearSearchCache()](#explorerclearsearchcache) - - [explorer.clearCaches()](#explorerclearcaches) -- [Synchronous API](#synchronous-api) - - [cosmiconfigSync()](#cosmiconfigsync) - - [explorerSync.search()](#explorersyncsearch) - - [explorerSync.load()](#explorersyncload) - - [explorerSync.clearLoadCache()](#explorersyncclearloadcache) - - [explorerSync.clearSearchCache()](#explorersyncclearsearchcache) - - [explorerSync.clearCaches()](#explorersyncclearcaches) -- [cosmiconfigOptions](#cosmiconfigoptions) - - [searchStrategy](#searchstrategy) - - [searchPlaces](#searchplaces) - - [loaders](#loaders) - - [packageProp](#packageprop) - - [stopDir](#stopdir) - - [cache](#cache) - - [transform](#transform) - - [ignoreEmptySearchPlaces](#ignoreemptysearchplaces) -- [Loading JS modules](#loading-js-modules) -- [Caching](#caching) -- [Differences from rc](#differences-from-rc) -- [Usage for end users](#usage-for-end-users) - - [Imports](#imports) -- [Contributing & Development](#contributing--development) - -## Installation - -``` -npm install cosmiconfig -``` - -Tested in Node 14+. - -## Usage for tooling developers - -*If you are an end user (i.e. a user of a tool that uses cosmiconfig, like `prettier` or `stylelint`), -you can skip down to [the end user section](#usage-for-end-users).* - -Create a Cosmiconfig explorer, then either `search` for or directly `load` a configuration file. - -```js -const { cosmiconfig, cosmiconfigSync } = require('cosmiconfig'); -// ... -const explorer = cosmiconfig(moduleName); - -// Search for a configuration by walking up directories. -// See documentation for search, below. -explorer.search() - .then((result) => { - // result.config is the parsed configuration object. - // result.filepath is the path to the config file that was found. - // result.isEmpty is true if there was nothing to parse in the config file. - }) - .catch((error) => { - // Do something constructive. - }); - -// Load a configuration directly when you know where it should be. -// The result object is the same as for search. -// See documentation for load, below. -explorer.load(pathToConfig).then(/* ... */); - -// You can also search and load synchronously. -const explorerSync = cosmiconfigSync(moduleName); - -const searchedFor = explorerSync.search(); -const loaded = explorerSync.load(pathToConfig); -``` - -## Result - -The result object you get from `search` or `load` has the following properties: - -- **config:** The parsed configuration object. `undefined` if the file is empty. -- **filepath:** The path to the configuration file that was found. -- **isEmpty:** `true` if the configuration file is empty. This property will not be present if the configuration file is not empty. - -## Asynchronous API - -### cosmiconfig() - -```js -const { cosmiconfig } = require('cosmiconfig'); -const explorer = cosmiconfig(moduleName, /* optional */ cosmiconfigOptions) -``` - -Creates a cosmiconfig instance ("explorer") configured according to the arguments, and initializes its caches. - -#### moduleName - -Type: `string`. **Required.** - -Your module name. This is used to create the default [`searchPlaces`] and [`packageProp`]. - -If your [`searchPlaces`] value will include files, as it does by default (e.g. `${moduleName}rc`), your `moduleName` must consist of characters allowed in filenames. That means you should not copy scoped package names, such as `@my-org/my-package`, directly into `moduleName`. - -**[`cosmiconfigOptions`] are documented below.** -You may not need them, and should first read about the functions you'll use. - -### explorer.search() - -```js -explorer.search([searchFrom]).then(result => { /* ... */ }) -``` - -Searches for a configuration file. Returns a Promise that resolves with a [result] or with `null`, if no configuration file is found. - -You can do the same thing synchronously with [`explorerSync.search()`]. - -Let's say your module name is `goldengrahams` so you initialized with `const explorer = cosmiconfig('goldengrahams');`. -Here's how your default [`search()`] will work: - -- Starting from `process.cwd()` (or some other directory defined by the `searchFrom` argument to [`search()`]), look for configuration objects in the following places: - 1. A `goldengrahams` property in a `package.json` file. - 2. A `.goldengrahamsrc` file with JSON or YAML syntax. - 3. A `.goldengrahamsrc.json`, `.goldengrahamsrc.yaml`, `.goldengrahamsrc.yml`, `.goldengrahamsrc.js`, `.goldengrahamsrc.ts`, `.goldengrahamsrc.mjs`, or `.goldengrahamsrc.cjs` file. (To learn more about how JS files are loaded, see ["Loading JS modules"].) - 4. A `goldengrahamsrc`, `goldengrahamsrc.json`, `goldengrahamsrc.yaml`, `goldengrahamsrc.yml`, `goldengrahamsrc.js`, `goldengrahamsrc.ts`, `goldengrahamsrc.mjs`, or `goldengrahamsrc.cjs` file in the `.config` subdirectory. - 5. A `goldengrahams.config.js`, `goldengrahams.config.ts`, `goldengrahams.config.mjs`, or `goldengrahams.config.cjs` file. (To learn more about how JS files are loaded, see ["Loading JS modules"].) -- If none of those searches reveal a configuration object, continue depending on the current search strategy: - - If it's `none` (which is the default if you don't specify a [`stopDir`] option), stop here and return/resolve with `null`. - - If it's `global` (which is the default if you specify a [`stopDir`] option), move up one directory level and try again, - recursing until arriving at the configured [`stopDir`] option, which defaults to the user's home directory. - - After arriving at the [`stopDir`], the global configuration directory (as defined by [`env-paths`] without prefix) is also checked, - looking at the files `config`, `config.json`, `config.yaml`, `config.yml`, `config.js`, `config.ts`, `config.cjs`, and `config.mjs` - in the directory `~/.config/goldengrahams/` (on Linux; see [`env-paths`] documentation for other OSs). - - If it's `project`, check whether a `package.json` file is present in the current directory, and if not, - move up one directory level and try again, recursing until there is one. -- If at any point a parsable configuration is found, the [`search()`] Promise resolves with its [result] \(or, with [`explorerSync.search()`], the [result] is returned). -- If no configuration object is found, the [`search()`] Promise resolves with `null` (or, with [`explorerSync.search()`], `null` is returned). -- If a configuration object is found *but is malformed* (causing a parsing error), the [`search()`] Promise rejects with that error (so you should `.catch()` it). (Or, with [`explorerSync.search()`], the error is thrown.) - -**If you know exactly where your configuration file should be, you can use [`load()`], instead.** - -**The search process is highly customizable.** -Use the cosmiconfig options [`searchPlaces`] and [`loaders`] to precisely define where you want to look for configurations and how you want to load them. - -#### searchFrom - -Type: `string`. -Default: `process.cwd()`. - -A filename. -[`search()`] will start its search here. - -If the value is a directory, that's where the search starts. -If it's a file, the search starts in that file's directory. - -### explorer.load() - -```js -explorer.load(loadPath).then(result => { /* ... */ }) -``` - -Loads a configuration file. Returns a Promise that resolves with a [result] or rejects with an error (if the file does not exist or cannot be loaded). - -Use `load` if you already know where the configuration file is and you just need to load it. - -```js -explorer.load('load/this/file.json'); // Tries to load load/this/file.json. -``` - -If you load a `package.json` file, the result will be derived from whatever property is specified as your [`packageProp`]. -`package.yaml` will work as well if you specify these file names in your [`searchPlaces`]. - -You can do the same thing synchronously with [`explorerSync.load()`]. - -### explorer.clearLoadCache() - -Clears the cache used in [`load()`]. - -### explorer.clearSearchCache() - -Clears the cache used in [`search()`]. - -### explorer.clearCaches() - -Performs both [`clearLoadCache()`] and [`clearSearchCache()`]. - -## Synchronous API - -### cosmiconfigSync() - -```js -const { cosmiconfigSync } = require('cosmiconfig'); -const explorerSync = cosmiconfigSync(moduleName, /* optional */ cosmiconfigOptions) -``` - -Creates a *synchronous* cosmiconfig instance ("explorerSync") configured according to the arguments, and initializes its caches. - -See [`cosmiconfig()`](#cosmiconfig-1). - -### explorerSync.search() - -```js -const result = explorerSync.search([searchFrom]); -``` - -Synchronous version of [`explorer.search()`]. - -Returns a [result] or `null`. - -### explorerSync.load() - -```js -const result = explorerSync.load(loadPath); -``` - -Synchronous version of [`explorer.load()`]. - -Returns a [result]. - -### explorerSync.clearLoadCache() - -Clears the cache used in [`load()`]. - -### explorerSync.clearSearchCache() - -Clears the cache used in [`search()`]. - -### explorerSync.clearCaches() - -Performs both [`clearLoadCache()`] and [`clearSearchCache()`]. - -## cosmiconfigOptions - -Type: `Object`. - -Possible options are documented below. - -### searchStrategy - -Type: `string` -Default: `global` if [`stopDir`] is specified, `none` otherwise. - -The strategy that should be used to determine which directories to check for configuration files. - -- `none`: Only checks in the current working directory. -- `project`: Starts in the current working directory, traversing upwards until a `package.{json,yaml}` file is found. -- `global`: Starts in the current working directory, traversing upwards until the configured [`stopDir`] - (or the current user's home directory if none is given). Then, if no configuration is found, also look in the - operating system's default configuration directory (according to [`env-paths`] without prefix), - where a different set of file names is checked: - -```js -[ - `config`, - `config.json`, - `config.yaml`, - `config.yml`, - `config.js`, - `config.ts`, - `config.cjs`, - `config.mjs` -] -``` - -### searchPlaces - -Type: `Array`. -Default: See below. - -An array of places that [`search()`] will check in each directory as it moves up the directory tree. -Each place is relative to the directory being searched, and the places are checked in the specified order. - -**Default `searchPlaces`:** - -For the [asynchronous API](#asynchronous-api), these are the default `searchPlaces`: - -```js -[ - 'package.json', - `.${moduleName}rc`, - `.${moduleName}rc.json`, - `.${moduleName}rc.yaml`, - `.${moduleName}rc.yml`, - `.${moduleName}rc.js`, - `.${moduleName}rc.ts`, - `.${moduleName}rc.mjs`, - `.${moduleName}rc.cjs`, - `.config/${moduleName}rc`, - `.config/${moduleName}rc.json`, - `.config/${moduleName}rc.yaml`, - `.config/${moduleName}rc.yml`, - `.config/${moduleName}rc.js`, - `.config/${moduleName}rc.ts`, - `.config/${moduleName}rc.mjs`, - `.config/${moduleName}rc.cjs`, - `${moduleName}.config.js`, - `${moduleName}.config.ts`, - `${moduleName}.config.mjs`, - `${moduleName}.config.cjs`, -]; -``` - -For the [synchronous API](#synchronous-api), the only difference is that `.mjs` files are not included. See ["Loading JS modules"] for more information. - -Create your own array to search more, fewer, or altogether different places. - -Every item in `searchPlaces` needs to have a loader in [`loaders`] that corresponds to its extension. -(Common extensions are covered by default loaders.) -Read more about [`loaders`] below. - -`package.json` is a special value: When it is included in `searchPlaces`, Cosmiconfig will always parse it as JSON and load a property within it, not the whole file. -That property is defined with the [`packageProp`] option, and defaults to your module name. - -`package.yaml` (used by pnpm) works the same way. - -Examples, with a module named `porgy`: - -```js -// Disallow extensions on rc files: -['package.json', '.porgyrc', 'porgy.config.js'] -``` - -```js -// Limit the options dramatically: -['package.json', '.porgyrc'] -``` - -```js -// Maybe you want to look for a wide variety of JS flavors: -[ - 'porgy.config.js', - 'porgy.config.mjs', - 'porgy.config.ts', - 'porgy.config.coffee' -] -// ^^ You will need to designate a custom loader to tell -// Cosmiconfig how to handle `.coffee` files. -``` - -```js -// Look within a .config/ subdirectory of every searched directory: -[ - 'package.json', - '.porgyrc', - '.config/.porgyrc', - '.porgyrc.json', - '.config/.porgyrc.json' -] -``` - -### loaders - -Type: `Object`. -Default: See below. - -An object that maps extensions to the loader functions responsible for loading and parsing files with those extensions. - -Cosmiconfig exposes its default loaders on the named export `defaultLoaders` and `defaultLoadersSync`. - -**Default `loaders`:** - -```js -const { defaultLoaders, defaultLoadersSync } = require('cosmiconfig'); - -console.log(Object.entries(defaultLoaders)); -// [ -// [ '.mjs', [Function: loadJs] ], -// [ '.cjs', [Function: loadJs] ], -// [ '.js', [Function: loadJs] ], -// [ '.ts', [Function: loadTs] ], -// [ '.json', [Function: loadJson] ], -// [ '.yaml', [Function: loadYaml] ], -// [ '.yml', [Function: loadYaml] ], -// [ 'noExt', [Function: loadYaml] ] -// ] - -console.log(Object.entries(defaultLoadersSync)); -// [ -// [ '.cjs', [Function: loadJsSync] ], -// [ '.js', [Function: loadJsSync] ], -// [ '.ts', [Function: loadTsSync] ], -// [ '.json', [Function: loadJson] ], -// [ '.yaml', [Function: loadYaml] ], -// [ '.yml', [Function: loadYaml] ], -// [ 'noExt', [Function: loadYaml] ] -// ] -``` - -(YAML is a superset of JSON; which means YAML parsers can parse JSON; which is how extensionless files can be either YAML *or* JSON with only one parser.) - -**If you provide a `loaders` object, your object will be *merged* with the defaults.** -So you can override one or two without having to override them all. - -**Keys in `loaders`** are extensions (starting with a period), or `noExt` to specify the loader for files *without* extensions, like `.myapprc`. - -**Values in `loaders`** are a loader function (described below) whose values are loader functions. - -**The most common use case for custom loaders value is to load extensionless `rc` files as strict JSON**, instead of JSON *or* YAML (the default). -To accomplish that, provide the following `loaders` value: - -```js -{ - noExt: defaultLoaders['.json']; -} -``` - -If you want to load files that are not handled by the loader functions Cosmiconfig exposes, you can write a custom loader function or use one from NPM if it exists. - -**Use cases for custom loader function:** - -- Allow configuration syntaxes that aren't handled by Cosmiconfig's defaults, like JSON5, INI, or XML. -- Parse JS files with Babel before deriving the configuration. - -**Custom loader functions** have the following signature: - -```ts -// Sync -type SyncLoader = (filepath: string, content: string) => Object | null - -// Async -type AsyncLoader = (filepath: string, content: string) => Object | null | Promise -``` - -Cosmiconfig reads the file when it checks whether the file exists, so it will provide you with both the file's path and its content. -Do whatever you need to, and return either a configuration object or `null` (or, for async-only loaders, a Promise that resolves with one of those). -`null` indicates that no real configuration was found and the search should continue. - -A few things to note: - -- If you use a custom loader, be aware of whether it's sync or async: you cannot use async customer loaders with the sync API ([`cosmiconfigSync()`]). -- **Special JS syntax can also be handled by using a `require` hook**, because `defaultLoaders['.js']` just uses `require`. - Whether you use custom loaders or a `require` hook is up to you. - -Examples: - -```js -// Allow JSON5 syntax: -cosmiconfig('foo', { - loaders: { - '.json': json5Loader - } -}); - -// Allow a special configuration syntax of your own creation: -cosmiconfig('foo', { - loaders: { - '.special': specialLoader - } -}); - -// Allow many flavors of JS, using custom loaders: -cosmiconfig('foo', { - loaders: { - '.coffee': coffeeScriptLoader - } -}); - -// Allow many flavors of JS but rely on require hooks: -cosmiconfig('foo', { - loaders: { - '.coffee': defaultLoaders['.js'] - } -}); -``` - -### packageProp - -Type: `string | Array`. -Default: `` `${moduleName}` ``. - -Name of the property in `package.json` (or `package.yaml`) to look for. - -Use a period-delimited string or an array of strings to describe a path to nested properties. - -For example, the value `'configs.myPackage'` or `['configs', 'myPackage']` will get you the `"myPackage"` value in a `package.json` like this: - -```json -{ - "configs": { - "myPackage": {"option": "value"} - } -} -``` - -If nested property names within the path include periods, you need to use an array of strings. For example, the value `['configs', 'foo.bar', 'baz']` will get you the `"baz"` value in a `package.json` like this: - -```json -{ - "configs": { - "foo.bar": { - "baz": {"option": "value"} - } - } -} -``` - -If a string includes period but corresponds to a top-level property name, it will not be interpreted as a period-delimited path. For example, the value `'one.two'` will get you the `"three"` value in a `package.json` like this: - -```json -{ - "one.two": "three", - "one": { - "two": "four" - } -} -``` - -### stopDir - -Type: `string`. -Default: Absolute path to your home directory. - -Directory where the search will stop. - -### cache - -Type: `boolean`. -Default: `true`. - -If `false`, no caches will be used. -Read more about ["Caching"](#caching) below. - -### transform - -Type: `(Result) => Promise | Result`. - -A function that transforms the parsed configuration. Receives the [result]. - -If using [`search()`] or [`load()`] \(which are async), the transform function can return the transformed result or return a Promise that resolves with the transformed result. -If using `cosmiconfigSync`, [`search()`] or [`load()`], the function must be synchronous and return the transformed result. - -The reason you might use this option — instead of simply applying your transform function some other way — is that *the transformed result will be cached*. If your transformation involves additional filesystem I/O or other potentially slow processing, you can use this option to avoid repeating those steps every time a given configuration is searched or loaded. - -### ignoreEmptySearchPlaces - -Type: `boolean`. -Default: `true`. - -By default, if [`search()`] encounters an empty file (containing nothing but whitespace) in one of the [`searchPlaces`], it will ignore the empty file and move on. -If you'd like to load empty configuration files, instead, set this option to `false`. - -Why might you want to load empty configuration files? -If you want to throw an error, or if an empty configuration file means something to your program. - -## Loading JS modules - -Your end users can provide JS configuration files as ECMAScript modules (ESM) under the following conditions: - -- You (the cosmiconfig user) use cosmiconfig's [asynchronous API](#asynchronous-api). -- Your end user runs a version of Node that supports ESM ([>=12.17.0](https://nodejs.org/en/blog/release/v12.17.0/), or earlier with the `--experimental-modules` flag). -- Your end user provides an `.mjs` configuration file, or a `.js` file whose nearest parent `package.json` file contains `"type": "module"`. (See [Node's method for determining a file's module system](https://nodejs.org/api/packages.html#packages_determining_module_system).) - -With cosmiconfig's [asynchronous API](#asynchronous-api), the default [`searchPlaces`] include `.js`, `.ts`, `.mjs`, and `.cjs` files. Cosmiconfig loads all these file types with the [dynamic `import` function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#dynamic_imports). - -With the [synchronous API](#synchronous-api), JS configuration files are always treated as CommonJS, and `.mjs` files are ignored, because there is no synchronous API for the dynamic `import` function. - -## Caching - -As of v2, cosmiconfig uses caching to reduce the need for repetitious reading of the filesystem or expensive transforms. Every new cosmiconfig instance (created with `cosmiconfig()`) has its own caches. - -To avoid or work around caching, you can do the following: - -- Set the `cosmiconfig` option [`cache`] to `false`. -- Use the cache-clearing methods [`clearLoadCache()`], [`clearSearchCache()`], and [`clearCaches()`]. -- Create separate instances of cosmiconfig (separate "explorers"). - -## Differences from [rc](https://github.com/dominictarr/rc) - -[rc](https://github.com/dominictarr/rc) serves its focused purpose well. cosmiconfig differs in a few key ways — making it more useful for some projects, less useful for others: - -- Looks for configuration in some different places: in a `package.json` property, an rc file, a `.config.js` file, and rc files with extensions. -- Built-in support for JSON, YAML, and CommonJS formats. -- Stops at the first configuration found, instead of finding all that can be found up the directory tree and merging them automatically. -- Options. -- Asynchronous by default (though can be run synchronously). - -## Usage for end users - -When configuring a tool, you can use multiple file formats and put these in multiple places. - -Usually, a tool would mention this in its own README file, -but by default, these are the following places, where `{NAME}` represents the name of the tool: - -``` -package.json -.{NAME}rc -.{NAME}rc.json -.{NAME}rc.yaml -.{NAME}rc.yml -.{NAME}rc.js -.{NAME}rc.ts -.{NAME}rc.cjs -.config/{NAME}rc -.config/{NAME}rc.json -.config/{NAME}rc.yaml -.config/{NAME}rc.yml -.config/{NAME}rc.js -.config/{NAME}rc.ts -.config/{NAME}rc.mjs -.config/{NAME}rc.cjs -{NAME}.config.js -{NAME}.config.ts -{NAME}.config.mjs -{NAME}.config.cjs -``` - -The contents of these files are defined by the tool. -For example, you can configure prettier to enforce semicolons at the end of the line -using a file named `.config/prettierrc.yml`: - -```yaml -semi: true -``` - -Additionally, you have the option to put a property named after the tool in your `package.json` file, -with the contents of that property being the same as the file contents. To use the same example as above: - -```json -{ - "name": "your-project", - "dependencies": {}, - "prettier": { - "semi": true - } -} -``` - -This has the advantage that you can put the configuration of all tools -(at least the ones that use cosmiconfig) in one file. - -You can also add a `cosmiconfig` key within your `package.json` file or create one of the following files -to configure `cosmiconfig` itself: - -``` -.config/config.json -.config/config.yaml -.config/config.yml -.config/config.js -.config/config.ts -.config/config.cjs -``` - -The following properties are currently actively supported in these places: - -```yaml -cosmiconfig: - # adds places where configuration files are being searched - searchPlaces: - - .config/{name}.yml - # to enforce a custom naming convention and format, don't merge the above with the tool-defined search places - # (`true` is the default setting) - mergeSearchPlaces: false -``` - -> **Note:** technically, you can overwrite all options described in [cosmiconfigOptions](#cosmiconfigoptions) here, -> but everything not listed above should be used at your own risk, as it has not been tested explicitly. -> The only exceptions to this are the `loaders` property, which is explicitly not supported at this time, -> and the `searchStrategy` property, which is intentionally disallowed. - -You can also add more root properties outside the `cosmiconfig` property -to configure your tools, entirely eliminating the need to look for additional configuration files: - -```yaml -cosmiconfig: - searchPlaces: [] - -prettier: - semi: true -``` - -### Imports - -Wherever you put your configuration (the package.json file, a root config file or a package-specific config file), -you can use the special `$import` key to import another file as a base. - -For example, you can import from an npm package (in this example, `@foocorp/config`). - -`.prettierrc.base.yml` in said npm package could define some company-wide defaults: - -```yaml -printWidth: 120 -semi: true -tabWidth: 2 -``` - -And then, the `.prettierrc.yml` file in the project itself would just reference that file, -optionally overriding the defaults with project-specific settings: - -```yaml -$import: node_modules/@foocorp/config/.prettierrc.base.yml -# we want more space! -printWidth: 200 -``` - -It is possible to import multiple base files by specifying an array of paths, -which will be processed in declaration order; -that means that the last entry will win if there are conflicting properties. - -It is also possible to import file formats other than the importing format -as long as they are supported by the loaders specified by the developer of the tool you're configuring. - -```yaml -$import: [first.yml, second.json, third.config.js] -``` - -## Contributing & Development - -Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. - -And please do participate! - -[result]: #result - -[`load()`]: #explorerload - -[`search()`]: #explorersearch - -[`clearloadcache()`]: #explorerclearloadcache - -[`clearsearchcache()`]: #explorerclearsearchcache - -[`cosmiconfig()`]: #cosmiconfig - -[`cosmiconfigSync()`]: #cosmiconfigsync - -[`clearcaches()`]: #explorerclearcaches - -[`packageprop`]: #packageprop - -[`cache`]: #cache - -[`stopdir`]: #stopdir - -[`searchplaces`]: #searchplaces - -[`loaders`]: #loaders - -[`cosmiconfigoptions`]: #cosmiconfigoptions - -[`explorerSync.search()`]: #explorersyncsearch - -[`explorerSync.load()`]: #explorersyncload - -[`explorer.search()`]: #explorersearch - -[`explorer.load()`]: #explorerload - -["Loading JS modules"]: #loading-js-modules - -[`env-paths`]: https://github.com/sindresorhus/env-paths - -[search strategies]: #searchstrategy diff --git a/node_modules/cosmiconfig/dist/Explorer.d.ts b/node_modules/cosmiconfig/dist/Explorer.d.ts deleted file mode 100644 index 38da566..0000000 --- a/node_modules/cosmiconfig/dist/Explorer.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=Explorer.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/Explorer.js b/node_modules/cosmiconfig/dist/Explorer.js deleted file mode 100644 index fa5fb98..0000000 --- a/node_modules/cosmiconfig/dist/Explorer.js +++ /dev/null @@ -1,170 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Explorer = void 0; -const promises_1 = __importDefault(require("fs/promises")); -const path_1 = __importDefault(require("path")); -const defaults_1 = require("./defaults"); -const ExplorerBase_js_1 = require("./ExplorerBase.js"); -const merge_1 = require("./merge"); -const util_js_1 = require("./util.js"); -/** - * @internal - */ -class Explorer extends ExplorerBase_js_1.ExplorerBase { - async load(filepath) { - filepath = path_1.default.resolve(filepath); - const load = async () => { - return await this.config.transform(await this.#readConfiguration(filepath)); - }; - if (this.loadCache) { - return await (0, util_js_1.emplace)(this.loadCache, filepath, load); - } - return await load(); - } - async search(from = '') { - if (this.config.metaConfigFilePath) { - this.loadingMetaConfig = true; - const config = await this.load(this.config.metaConfigFilePath); - this.loadingMetaConfig = false; - if (config && !config.isEmpty) { - return config; - } - } - from = path_1.default.resolve(from); - const dirs = this.#getDirs(from); - const firstDirIter = await dirs.next(); - /* istanbul ignore if -- @preserve */ - if (firstDirIter.done) { - // this should never happen - throw new Error(`Could not find any folders to iterate through (start from ${from})`); - } - let currentDir = firstDirIter.value; - const search = async () => { - /* istanbul ignore if -- @preserve */ - if (await (0, util_js_1.isDirectory)(currentDir.path)) { - for (const filepath of this.getSearchPlacesForDir(currentDir, defaults_1.globalConfigSearchPlaces)) { - try { - const result = await this.#readConfiguration(filepath); - if (result !== null && - !(result.isEmpty && this.config.ignoreEmptySearchPlaces)) { - return await this.config.transform(result); - } - } - catch (error) { - if (error.code === 'ENOENT' || - error.code === 'EISDIR' || - error.code === 'ENOTDIR' || - error.code === 'EACCES') { - continue; - } - throw error; - } - } - } - const nextDirIter = await dirs.next(); - if (!nextDirIter.done) { - currentDir = nextDirIter.value; - if (this.searchCache) { - return await (0, util_js_1.emplace)(this.searchCache, currentDir.path, search); - } - return await search(); - } - return await this.config.transform(null); - }; - if (this.searchCache) { - return await (0, util_js_1.emplace)(this.searchCache, from, search); - } - return await search(); - } - async #readConfiguration(filepath, importStack = []) { - const contents = await promises_1.default.readFile(filepath, { encoding: 'utf-8' }); - return this.toCosmiconfigResult(filepath, await this.#loadConfigFileWithImports(filepath, contents, importStack)); - } - async #loadConfigFileWithImports(filepath, contents, importStack) { - const loadedContent = await this.#loadConfiguration(filepath, contents); - if (!loadedContent || !(0, merge_1.hasOwn)(loadedContent, '$import')) { - return loadedContent; - } - const fileDirectory = path_1.default.dirname(filepath); - const { $import: imports, ...ownContent } = loadedContent; - const importPaths = Array.isArray(imports) ? imports : [imports]; - const newImportStack = [...importStack, filepath]; - this.validateImports(filepath, importPaths, newImportStack); - const importedConfigs = await Promise.all(importPaths.map(async (importPath) => { - const fullPath = path_1.default.resolve(fileDirectory, importPath); - const result = await this.#readConfiguration(fullPath, newImportStack); - return result?.config; - })); - return (0, merge_1.mergeAll)([...importedConfigs, ownContent], { - mergeArrays: this.config.mergeImportArrays, - }); - } - async #loadConfiguration(filepath, contents) { - if (contents.trim() === '') { - return; - } - const extension = path_1.default.extname(filepath); - const loader = this.config.loaders[extension || 'noExt'] ?? - this.config.loaders['default']; - if (!loader) { - throw new Error(`No loader specified for ${(0, ExplorerBase_js_1.getExtensionDescription)(extension)}`); - } - try { - const loadedContents = await loader(filepath, contents); - if (path_1.default.basename(filepath, extension) !== 'package') { - return loadedContents; - } - return ((0, util_js_1.getPropertyByPath)(loadedContents, this.config.packageProp ?? this.config.moduleName) ?? null); - } - catch (error) { - error.filepath = filepath; - throw error; - } - } - async #fileExists(path) { - try { - await promises_1.default.stat(path); - return true; - } - catch (e) { - return false; - } - } - async *#getDirs(startDir) { - switch (this.config.searchStrategy) { - case 'none': { - // only check in the passed directory (defaults to working directory) - yield { path: startDir, isGlobalConfig: false }; - return; - } - case 'project': { - let currentDir = startDir; - while (true) { - yield { path: currentDir, isGlobalConfig: false }; - for (const ext of ['json', 'yaml']) { - const packageFile = path_1.default.join(currentDir, `package.${ext}`); - if (await this.#fileExists(packageFile)) { - break; - } - } - const parentDir = path_1.default.dirname(currentDir); - /* istanbul ignore if -- @preserve */ - if (parentDir === currentDir) { - // we're probably at the root of the directory structure - break; - } - currentDir = parentDir; - } - return; - } - case 'global': { - yield* this.getGlobalDirs(startDir); - } - } - } -} -exports.Explorer = Explorer; -//# sourceMappingURL=Explorer.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/ExplorerBase.d.ts b/node_modules/cosmiconfig/dist/ExplorerBase.d.ts deleted file mode 100644 index 6a73371..0000000 --- a/node_modules/cosmiconfig/dist/ExplorerBase.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ExplorerBase.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/ExplorerBase.js b/node_modules/cosmiconfig/dist/ExplorerBase.js deleted file mode 100644 index 3a45b38..0000000 --- a/node_modules/cosmiconfig/dist/ExplorerBase.js +++ /dev/null @@ -1,126 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getExtensionDescription = exports.ExplorerBase = void 0; -const env_paths_1 = __importDefault(require("env-paths")); -const os_1 = __importDefault(require("os")); -const path_1 = __importDefault(require("path")); -const util_js_1 = require("./util.js"); -/** - * @internal - */ -class ExplorerBase { - #loadingMetaConfig = false; - config; - loadCache; - searchCache; - constructor(options) { - this.config = options; - if (options.cache) { - this.loadCache = new Map(); - this.searchCache = new Map(); - } - this.#validateConfig(); - } - set loadingMetaConfig(value) { - this.#loadingMetaConfig = value; - } - #validateConfig() { - const config = this.config; - for (const place of config.searchPlaces) { - const extension = path_1.default.extname(place); - const loader = this.config.loaders[extension || 'noExt'] ?? - this.config.loaders['default']; - if (loader === undefined) { - throw new Error(`Missing loader for ${getExtensionDescription(place)}.`); - } - if (typeof loader !== 'function') { - throw new Error(`Loader for ${getExtensionDescription(place)} is not a function: Received ${typeof loader}.`); - } - } - } - clearLoadCache() { - if (this.loadCache) { - this.loadCache.clear(); - } - } - clearSearchCache() { - if (this.searchCache) { - this.searchCache.clear(); - } - } - clearCaches() { - this.clearLoadCache(); - this.clearSearchCache(); - } - toCosmiconfigResult(filepath, config) { - if (config === null) { - return null; - } - if (config === undefined) { - return { filepath, config: undefined, isEmpty: true }; - } - if (this.config.applyPackagePropertyPathToConfiguration || - this.#loadingMetaConfig) { - const packageProp = this.config.packageProp ?? this.config.moduleName; - config = (0, util_js_1.getPropertyByPath)(config, packageProp); - } - if (config === undefined) { - return { filepath, config: undefined, isEmpty: true }; - } - return { config, filepath }; - } - validateImports(containingFilePath, imports, importStack) { - const fileDirectory = path_1.default.dirname(containingFilePath); - for (const importPath of imports) { - if (typeof importPath !== 'string') { - throw new Error(`${containingFilePath}: Key $import must contain a string or a list of strings`); - } - const fullPath = path_1.default.resolve(fileDirectory, importPath); - if (fullPath === containingFilePath) { - throw new Error(`Self-import detected in ${containingFilePath}`); - } - const idx = importStack.indexOf(fullPath); - if (idx !== -1) { - throw new Error(`Circular import detected: -${[...importStack, fullPath] - .map((path, i) => `${i + 1}. ${path}`) - .join('\n')} (same as ${idx + 1}.)`); - } - } - } - getSearchPlacesForDir(dir, globalConfigPlaces) { - return (dir.isGlobalConfig ? globalConfigPlaces : this.config.searchPlaces).map((place) => path_1.default.join(dir.path, place)); - } - getGlobalConfigDir() { - return (0, env_paths_1.default)(this.config.moduleName, { suffix: '' }).config; - } - *getGlobalDirs(startDir) { - const stopDir = path_1.default.resolve(this.config.stopDir ?? os_1.default.homedir()); - yield { path: startDir, isGlobalConfig: false }; - let currentDir = startDir; - while (currentDir !== stopDir) { - const parentDir = path_1.default.dirname(currentDir); - /* istanbul ignore if -- @preserve */ - if (parentDir === currentDir) { - // we're probably at the root of the directory structure - break; - } - yield { path: parentDir, isGlobalConfig: false }; - currentDir = parentDir; - } - yield { path: this.getGlobalConfigDir(), isGlobalConfig: true }; - } -} -exports.ExplorerBase = ExplorerBase; -/** - * @internal - */ -function getExtensionDescription(extension) { - /* istanbul ignore next -- @preserve */ - return extension ? `extension "${extension}"` : 'files without extensions'; -} -exports.getExtensionDescription = getExtensionDescription; -//# sourceMappingURL=ExplorerBase.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/ExplorerSync.d.ts b/node_modules/cosmiconfig/dist/ExplorerSync.d.ts deleted file mode 100644 index 3194cb1..0000000 --- a/node_modules/cosmiconfig/dist/ExplorerSync.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ExplorerSync.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/ExplorerSync.js b/node_modules/cosmiconfig/dist/ExplorerSync.js deleted file mode 100644 index 2be8aee..0000000 --- a/node_modules/cosmiconfig/dist/ExplorerSync.js +++ /dev/null @@ -1,184 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ExplorerSync = void 0; -const fs_1 = __importDefault(require("fs")); -const path_1 = __importDefault(require("path")); -const defaults_1 = require("./defaults"); -const ExplorerBase_js_1 = require("./ExplorerBase.js"); -const merge_1 = require("./merge"); -const util_js_1 = require("./util.js"); -/** - * @internal - */ -class ExplorerSync extends ExplorerBase_js_1.ExplorerBase { - load(filepath) { - filepath = path_1.default.resolve(filepath); - const load = () => { - return this.config.transform(this.#readConfiguration(filepath)); - }; - if (this.loadCache) { - return (0, util_js_1.emplace)(this.loadCache, filepath, load); - } - return load(); - } - search(from = '') { - if (this.config.metaConfigFilePath) { - this.loadingMetaConfig = true; - const config = this.load(this.config.metaConfigFilePath); - this.loadingMetaConfig = false; - if (config && !config.isEmpty) { - return config; - } - } - from = path_1.default.resolve(from); - const dirs = this.#getDirs(from); - const firstDirIter = dirs.next(); - /* istanbul ignore if -- @preserve */ - if (firstDirIter.done) { - // this should never happen - throw new Error(`Could not find any folders to iterate through (start from ${from})`); - } - let currentDir = firstDirIter.value; - const search = () => { - /* istanbul ignore if -- @preserve */ - if ((0, util_js_1.isDirectorySync)(currentDir.path)) { - for (const filepath of this.getSearchPlacesForDir(currentDir, defaults_1.globalConfigSearchPlacesSync)) { - try { - const result = this.#readConfiguration(filepath); - if (result !== null && - !(result.isEmpty && this.config.ignoreEmptySearchPlaces)) { - return this.config.transform(result); - } - } - catch (error) { - if (error.code === 'ENOENT' || - error.code === 'EISDIR' || - error.code === 'ENOTDIR' || - error.code === 'EACCES') { - continue; - } - throw error; - } - } - } - const nextDirIter = dirs.next(); - if (!nextDirIter.done) { - currentDir = nextDirIter.value; - if (this.searchCache) { - return (0, util_js_1.emplace)(this.searchCache, currentDir.path, search); - } - return search(); - } - return this.config.transform(null); - }; - if (this.searchCache) { - return (0, util_js_1.emplace)(this.searchCache, from, search); - } - return search(); - } - #readConfiguration(filepath, importStack = []) { - const contents = fs_1.default.readFileSync(filepath, 'utf8'); - return this.toCosmiconfigResult(filepath, this.#loadConfigFileWithImports(filepath, contents, importStack)); - } - #loadConfigFileWithImports(filepath, contents, importStack) { - const loadedContent = this.#loadConfiguration(filepath, contents); - if (!loadedContent || !(0, merge_1.hasOwn)(loadedContent, '$import')) { - return loadedContent; - } - const fileDirectory = path_1.default.dirname(filepath); - const { $import: imports, ...ownContent } = loadedContent; - const importPaths = Array.isArray(imports) ? imports : [imports]; - const newImportStack = [...importStack, filepath]; - this.validateImports(filepath, importPaths, newImportStack); - const importedConfigs = importPaths.map((importPath) => { - const fullPath = path_1.default.resolve(fileDirectory, importPath); - const result = this.#readConfiguration(fullPath, newImportStack); - return result?.config; - }); - return (0, merge_1.mergeAll)([...importedConfigs, ownContent], { - mergeArrays: this.config.mergeImportArrays, - }); - } - #loadConfiguration(filepath, contents) { - if (contents.trim() === '') { - return; - } - const extension = path_1.default.extname(filepath); - const loader = this.config.loaders[extension || 'noExt'] ?? - this.config.loaders['default']; - if (!loader) { - throw new Error(`No loader specified for ${(0, ExplorerBase_js_1.getExtensionDescription)(extension)}`); - } - try { - const loadedContents = loader(filepath, contents); - if (path_1.default.basename(filepath, extension) !== 'package') { - return loadedContents; - } - return ((0, util_js_1.getPropertyByPath)(loadedContents, this.config.packageProp ?? this.config.moduleName) ?? null); - } - catch (error) { - error.filepath = filepath; - throw error; - } - } - #fileExists(path) { - try { - fs_1.default.statSync(path); - return true; - } - catch (e) { - return false; - } - } - *#getDirs(startDir) { - switch (this.config.searchStrategy) { - case 'none': { - // there is no next dir - yield { path: startDir, isGlobalConfig: false }; - return; - } - case 'project': { - let currentDir = startDir; - while (true) { - yield { path: currentDir, isGlobalConfig: false }; - for (const ext of ['json', 'yaml']) { - const packageFile = path_1.default.join(currentDir, `package.${ext}`); - if (this.#fileExists(packageFile)) { - break; - } - } - const parentDir = path_1.default.dirname(currentDir); - /* istanbul ignore if -- @preserve */ - if (parentDir === currentDir) { - // we're probably at the root of the directory structure - break; - } - currentDir = parentDir; - } - return; - } - case 'global': { - yield* this.getGlobalDirs(startDir); - } - } - } - /** - * @deprecated Use {@link ExplorerSync.prototype.load}. - */ - /* istanbul ignore next */ - loadSync(filepath) { - return this.load(filepath); - } - /** - * @deprecated Use {@link ExplorerSync.prototype.search}. - */ - /* istanbul ignore next */ - searchSync(from = '') { - return this.search(from); - } -} -exports.ExplorerSync = ExplorerSync; -//# sourceMappingURL=ExplorerSync.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/cacheWrapper.d.ts b/node_modules/cosmiconfig/dist/cacheWrapper.d.ts deleted file mode 100644 index adb569e..0000000 --- a/node_modules/cosmiconfig/dist/cacheWrapper.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Cache, CosmiconfigResult } from './types'; -declare function cacheWrapper(cache: Cache, key: string, fn: () => Promise): Promise; -declare function cacheWrapperSync(cache: Cache, key: string, fn: () => CosmiconfigResult): CosmiconfigResult; -export { cacheWrapper, cacheWrapperSync }; -//# sourceMappingURL=cacheWrapper.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/cacheWrapper.js b/node_modules/cosmiconfig/dist/cacheWrapper.js deleted file mode 100644 index 712db92..0000000 --- a/node_modules/cosmiconfig/dist/cacheWrapper.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.cacheWrapper = cacheWrapper; -exports.cacheWrapperSync = cacheWrapperSync; - -async function cacheWrapper(cache, key, fn) { - const cached = cache.get(key); - - if (cached !== undefined) { - return cached; - } - - const result = await fn(); - cache.set(key, result); - return result; -} - -function cacheWrapperSync(cache, key, fn) { - const cached = cache.get(key); - - if (cached !== undefined) { - return cached; - } - - const result = fn(); - cache.set(key, result); - return result; -} -//# sourceMappingURL=cacheWrapper.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/canUseDynamicImport.d.ts b/node_modules/cosmiconfig/dist/canUseDynamicImport.d.ts deleted file mode 100644 index a06e2bc..0000000 --- a/node_modules/cosmiconfig/dist/canUseDynamicImport.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare function canUseDynamicImport(): boolean; -export { canUseDynamicImport }; -//# sourceMappingURL=canUseDynamicImport.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/canUseDynamicImport.js b/node_modules/cosmiconfig/dist/canUseDynamicImport.js deleted file mode 100644 index 31a44e9..0000000 --- a/node_modules/cosmiconfig/dist/canUseDynamicImport.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.canUseDynamicImport = canUseDynamicImport; - -/* istanbul ignore file -- @preserve */ -let result; - -function canUseDynamicImport() { - if (result === undefined) { - try { - new Function('id', 'return import(id);'); - result = true; - } catch (e) { - result = false; - } - } - - return result; -} -//# sourceMappingURL=canUseDynamicImport.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/defaults.d.ts b/node_modules/cosmiconfig/dist/defaults.d.ts deleted file mode 100644 index 1020ba0..0000000 --- a/node_modules/cosmiconfig/dist/defaults.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -export declare function getDefaultSearchPlaces(moduleName: string): Array; -export declare function getDefaultSearchPlacesSync(moduleName: string): Array; -export declare const globalConfigSearchPlaces: string[]; -export declare const globalConfigSearchPlacesSync: string[]; -export declare const metaSearchPlaces: string[]; -export declare const defaultLoaders: Readonly<{ - readonly '.mjs': import("./types").Loader; - readonly '.cjs': import("./types").Loader; - readonly '.js': import("./types").Loader; - readonly '.ts': import("./types").Loader; - readonly '.json': import("./types").LoaderSync; - readonly '.yaml': import("./types").LoaderSync; - readonly '.yml': import("./types").LoaderSync; - readonly noExt: import("./types").LoaderSync; -}>; -export declare const defaultLoadersSync: Readonly<{ - readonly '.cjs': import("./types").LoaderSync; - readonly '.js': import("./types").LoaderSync; - readonly '.ts': import("./types").LoaderSync; - readonly '.json': import("./types").LoaderSync; - readonly '.yaml': import("./types").LoaderSync; - readonly '.yml': import("./types").LoaderSync; - readonly noExt: import("./types").LoaderSync; -}>; -//# sourceMappingURL=defaults.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/defaults.js b/node_modules/cosmiconfig/dist/defaults.js deleted file mode 100644 index 7b20d0a..0000000 --- a/node_modules/cosmiconfig/dist/defaults.js +++ /dev/null @@ -1,105 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultLoadersSync = exports.defaultLoaders = exports.metaSearchPlaces = exports.globalConfigSearchPlacesSync = exports.globalConfigSearchPlaces = exports.getDefaultSearchPlacesSync = exports.getDefaultSearchPlaces = void 0; -const loaders_1 = require("./loaders"); -function getDefaultSearchPlaces(moduleName) { - return [ - 'package.json', - `.${moduleName}rc`, - `.${moduleName}rc.json`, - `.${moduleName}rc.yaml`, - `.${moduleName}rc.yml`, - `.${moduleName}rc.js`, - `.${moduleName}rc.ts`, - `.${moduleName}rc.cjs`, - `.${moduleName}rc.mjs`, - `.config/${moduleName}rc`, - `.config/${moduleName}rc.json`, - `.config/${moduleName}rc.yaml`, - `.config/${moduleName}rc.yml`, - `.config/${moduleName}rc.js`, - `.config/${moduleName}rc.ts`, - `.config/${moduleName}rc.cjs`, - `.config/${moduleName}rc.mjs`, - `${moduleName}.config.js`, - `${moduleName}.config.ts`, - `${moduleName}.config.cjs`, - `${moduleName}.config.mjs`, - ]; -} -exports.getDefaultSearchPlaces = getDefaultSearchPlaces; -function getDefaultSearchPlacesSync(moduleName) { - return [ - 'package.json', - `.${moduleName}rc`, - `.${moduleName}rc.json`, - `.${moduleName}rc.yaml`, - `.${moduleName}rc.yml`, - `.${moduleName}rc.js`, - `.${moduleName}rc.ts`, - `.${moduleName}rc.cjs`, - `.config/${moduleName}rc`, - `.config/${moduleName}rc.json`, - `.config/${moduleName}rc.yaml`, - `.config/${moduleName}rc.yml`, - `.config/${moduleName}rc.js`, - `.config/${moduleName}rc.ts`, - `.config/${moduleName}rc.cjs`, - `${moduleName}.config.js`, - `${moduleName}.config.ts`, - `${moduleName}.config.cjs`, - ]; -} -exports.getDefaultSearchPlacesSync = getDefaultSearchPlacesSync; -exports.globalConfigSearchPlaces = [ - 'config', - 'config.json', - 'config.yaml', - 'config.yml', - 'config.js', - 'config.ts', - 'config.cjs', - 'config.mjs', -]; -exports.globalConfigSearchPlacesSync = [ - 'config', - 'config.json', - 'config.yaml', - 'config.yml', - 'config.js', - 'config.ts', - 'config.cjs', -]; -// this needs to be hardcoded, as this is intended for end users, who can't supply options at this point -exports.metaSearchPlaces = [ - 'package.json', - 'package.yaml', - '.config/config.json', - '.config/config.yaml', - '.config/config.yml', - '.config/config.js', - '.config/config.ts', - '.config/config.cjs', - '.config/config.mjs', -]; -// do not allow mutation of default loaders. Make sure it is set inside options -exports.defaultLoaders = Object.freeze({ - '.mjs': loaders_1.loadJs, - '.cjs': loaders_1.loadJs, - '.js': loaders_1.loadJs, - '.ts': loaders_1.loadTs, - '.json': loaders_1.loadJson, - '.yaml': loaders_1.loadYaml, - '.yml': loaders_1.loadYaml, - noExt: loaders_1.loadYaml, -}); -exports.defaultLoadersSync = Object.freeze({ - '.cjs': loaders_1.loadJsSync, - '.js': loaders_1.loadJsSync, - '.ts': loaders_1.loadTsSync, - '.json': loaders_1.loadJson, - '.yaml': loaders_1.loadYaml, - '.yml': loaders_1.loadYaml, - noExt: loaders_1.loadYaml, -}); -//# sourceMappingURL=defaults.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/getDirectory.d.ts b/node_modules/cosmiconfig/dist/getDirectory.d.ts deleted file mode 100644 index 3b53068..0000000 --- a/node_modules/cosmiconfig/dist/getDirectory.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare function getDirectory(filepath: string): Promise; -declare function getDirectorySync(filepath: string): string; -export { getDirectory, getDirectorySync }; -//# sourceMappingURL=getDirectory.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/getDirectory.js b/node_modules/cosmiconfig/dist/getDirectory.js deleted file mode 100644 index e0f0a69..0000000 --- a/node_modules/cosmiconfig/dist/getDirectory.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getDirectory = getDirectory; -exports.getDirectorySync = getDirectorySync; - -var _path = _interopRequireDefault(require("path")); - -var _pathType = require("path-type"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function getDirectory(filepath) { - const filePathIsDirectory = await (0, _pathType.isDirectory)(filepath); - - if (filePathIsDirectory === true) { - return filepath; - } - - const directory = _path.default.dirname(filepath); - - return directory; -} - -function getDirectorySync(filepath) { - const filePathIsDirectory = (0, _pathType.isDirectorySync)(filepath); - - if (filePathIsDirectory === true) { - return filepath; - } - - const directory = _path.default.dirname(filepath); - - return directory; -} -//# sourceMappingURL=getDirectory.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/getPropertyByPath.d.ts b/node_modules/cosmiconfig/dist/getPropertyByPath.d.ts deleted file mode 100644 index 0b89fa7..0000000 --- a/node_modules/cosmiconfig/dist/getPropertyByPath.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare function getPropertyByPath(source: { - [key: string]: unknown; -}, path: string | Array): unknown; -export { getPropertyByPath }; -//# sourceMappingURL=getPropertyByPath.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/getPropertyByPath.js b/node_modules/cosmiconfig/dist/getPropertyByPath.js deleted file mode 100644 index 564972c..0000000 --- a/node_modules/cosmiconfig/dist/getPropertyByPath.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getPropertyByPath = getPropertyByPath; - -// Resolves property names or property paths defined with period-delimited -// strings or arrays of strings. Property names that are found on the source -// object are used directly (even if they include a period). -// Nested property names that include periods, within a path, are only -// understood in array paths. -function getPropertyByPath(source, path) { - if (typeof path === 'string' && Object.prototype.hasOwnProperty.call(source, path)) { - return source[path]; - } - - const parsedPath = typeof path === 'string' ? path.split('.') : path; // eslint-disable-next-line @typescript-eslint/no-explicit-any - - return parsedPath.reduce((previous, key) => { - if (previous === undefined) { - return previous; - } - - return previous[key]; - }, source); -} -//# sourceMappingURL=getPropertyByPath.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/index.d.ts b/node_modules/cosmiconfig/dist/index.d.ts deleted file mode 100644 index b241da0..0000000 --- a/node_modules/cosmiconfig/dist/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defaultLoaders, defaultLoadersSync, getDefaultSearchPlaces, getDefaultSearchPlacesSync, globalConfigSearchPlaces, globalConfigSearchPlacesSync } from './defaults'; -import { CommonOptions, Config, CosmiconfigResult, Loader, LoaderResult, Loaders, LoadersSync, LoaderSync, Options, OptionsSync, PublicExplorer, PublicExplorerBase, PublicExplorerSync, SearchStrategy, Transform, TransformSync } from './types.js'; -export declare function cosmiconfig(moduleName: string, options?: Readonly>): PublicExplorer; -export declare function cosmiconfigSync(moduleName: string, options?: Readonly>): PublicExplorerSync; -export { Config, CosmiconfigResult, LoaderResult, Loader, Loaders, LoaderSync, LoadersSync, Transform, TransformSync, SearchStrategy, CommonOptions, Options, OptionsSync, PublicExplorerBase, PublicExplorer, PublicExplorerSync, getDefaultSearchPlaces, getDefaultSearchPlacesSync, globalConfigSearchPlaces, globalConfigSearchPlacesSync, defaultLoaders, defaultLoadersSync, }; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/index.js b/node_modules/cosmiconfig/dist/index.js deleted file mode 100644 index bfb95f9..0000000 --- a/node_modules/cosmiconfig/dist/index.js +++ /dev/null @@ -1,148 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultLoadersSync = exports.defaultLoaders = exports.globalConfigSearchPlacesSync = exports.globalConfigSearchPlaces = exports.getDefaultSearchPlacesSync = exports.getDefaultSearchPlaces = exports.cosmiconfigSync = exports.cosmiconfig = void 0; -const defaults_1 = require("./defaults"); -Object.defineProperty(exports, "defaultLoaders", { enumerable: true, get: function () { return defaults_1.defaultLoaders; } }); -Object.defineProperty(exports, "defaultLoadersSync", { enumerable: true, get: function () { return defaults_1.defaultLoadersSync; } }); -Object.defineProperty(exports, "getDefaultSearchPlaces", { enumerable: true, get: function () { return defaults_1.getDefaultSearchPlaces; } }); -Object.defineProperty(exports, "getDefaultSearchPlacesSync", { enumerable: true, get: function () { return defaults_1.getDefaultSearchPlacesSync; } }); -Object.defineProperty(exports, "globalConfigSearchPlaces", { enumerable: true, get: function () { return defaults_1.globalConfigSearchPlaces; } }); -Object.defineProperty(exports, "globalConfigSearchPlacesSync", { enumerable: true, get: function () { return defaults_1.globalConfigSearchPlacesSync; } }); -const Explorer_js_1 = require("./Explorer.js"); -const ExplorerSync_js_1 = require("./ExplorerSync.js"); -const util_1 = require("./util"); -const identity = function identity(x) { - return x; -}; -function getUserDefinedOptionsFromMetaConfig() { - const metaExplorer = new ExplorerSync_js_1.ExplorerSync({ - moduleName: 'cosmiconfig', - stopDir: process.cwd(), - searchPlaces: defaults_1.metaSearchPlaces, - ignoreEmptySearchPlaces: false, - applyPackagePropertyPathToConfiguration: true, - loaders: defaults_1.defaultLoaders, - transform: identity, - cache: true, - metaConfigFilePath: null, - mergeImportArrays: true, - mergeSearchPlaces: true, - searchStrategy: 'none', - }); - const metaConfig = metaExplorer.search(); - if (!metaConfig) { - return null; - } - if (metaConfig.config?.loaders) { - throw new Error('Can not specify loaders in meta config file'); - } - if (metaConfig.config?.searchStrategy) { - throw new Error('Can not specify searchStrategy in meta config file'); - } - const overrideOptions = { - mergeSearchPlaces: true, - ...(metaConfig.config ?? {}), - }; - return { - config: (0, util_1.removeUndefinedValuesFromObject)(overrideOptions), - filepath: metaConfig.filepath, - }; -} -function getResolvedSearchPlaces(moduleName, toolDefinedSearchPlaces, userConfiguredOptions) { - const userConfiguredSearchPlaces = userConfiguredOptions.searchPlaces?.map((path) => path.replace('{name}', moduleName)); - if (userConfiguredOptions.mergeSearchPlaces) { - return [...(userConfiguredSearchPlaces ?? []), ...toolDefinedSearchPlaces]; - } - return (userConfiguredSearchPlaces ?? - /* istanbul ignore next */ toolDefinedSearchPlaces); -} -function mergeOptionsBase(moduleName, defaults, options) { - const userDefinedConfig = getUserDefinedOptionsFromMetaConfig(); - if (!userDefinedConfig) { - return { - ...defaults, - ...(0, util_1.removeUndefinedValuesFromObject)(options), - loaders: { - ...defaults.loaders, - ...options.loaders, - }, - }; - } - const userConfiguredOptions = userDefinedConfig.config; - const toolDefinedSearchPlaces = options.searchPlaces ?? defaults.searchPlaces; - return { - ...defaults, - ...(0, util_1.removeUndefinedValuesFromObject)(options), - metaConfigFilePath: userDefinedConfig.filepath, - ...userConfiguredOptions, - searchPlaces: getResolvedSearchPlaces(moduleName, toolDefinedSearchPlaces, userConfiguredOptions), - loaders: { - ...defaults.loaders, - ...options.loaders, - }, - }; -} -function validateOptions(options) { - if (options.searchStrategy != null && - options.searchStrategy !== 'global' && - options.stopDir) { - throw new Error('Can not supply `stopDir` option with `searchStrategy` other than "global"'); - } -} -function mergeOptions(moduleName, options) { - validateOptions(options); - const defaults = { - moduleName, - searchPlaces: (0, defaults_1.getDefaultSearchPlaces)(moduleName), - ignoreEmptySearchPlaces: true, - cache: true, - transform: identity, - loaders: defaults_1.defaultLoaders, - metaConfigFilePath: null, - mergeImportArrays: true, - mergeSearchPlaces: true, - searchStrategy: options.stopDir ? 'global' : 'none', - }; - return mergeOptionsBase(moduleName, defaults, options); -} -function mergeOptionsSync(moduleName, options) { - validateOptions(options); - const defaults = { - moduleName, - searchPlaces: (0, defaults_1.getDefaultSearchPlacesSync)(moduleName), - ignoreEmptySearchPlaces: true, - cache: true, - transform: identity, - loaders: defaults_1.defaultLoadersSync, - metaConfigFilePath: null, - mergeImportArrays: true, - mergeSearchPlaces: true, - searchStrategy: options.stopDir ? 'global' : 'none', - }; - return mergeOptionsBase(moduleName, defaults, options); -} -function cosmiconfig(moduleName, options = {}) { - const normalizedOptions = mergeOptions(moduleName, options); - const explorer = new Explorer_js_1.Explorer(normalizedOptions); - return { - search: explorer.search.bind(explorer), - load: explorer.load.bind(explorer), - clearLoadCache: explorer.clearLoadCache.bind(explorer), - clearSearchCache: explorer.clearSearchCache.bind(explorer), - clearCaches: explorer.clearCaches.bind(explorer), - }; -} -exports.cosmiconfig = cosmiconfig; -function cosmiconfigSync(moduleName, options = {}) { - const normalizedOptions = mergeOptionsSync(moduleName, options); - const explorerSync = new ExplorerSync_js_1.ExplorerSync(normalizedOptions); - return { - search: explorerSync.search.bind(explorerSync), - load: explorerSync.load.bind(explorerSync), - clearLoadCache: explorerSync.clearLoadCache.bind(explorerSync), - clearSearchCache: explorerSync.clearSearchCache.bind(explorerSync), - clearCaches: explorerSync.clearCaches.bind(explorerSync), - }; -} -exports.cosmiconfigSync = cosmiconfigSync; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/loaders.d.ts b/node_modules/cosmiconfig/dist/loaders.d.ts deleted file mode 100644 index 96640a5..0000000 --- a/node_modules/cosmiconfig/dist/loaders.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Loader, LoaderSync } from './types.js'; -export declare const loadJsSync: LoaderSync; -export declare const loadJs: Loader; -export declare const loadJson: LoaderSync; -export declare const loadYaml: LoaderSync; -export declare const loadTsSync: LoaderSync; -export declare const loadTs: Loader; -//# sourceMappingURL=loaders.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/loaders.js b/node_modules/cosmiconfig/dist/loaders.js deleted file mode 100644 index f0f6d87..0000000 --- a/node_modules/cosmiconfig/dist/loaders.js +++ /dev/null @@ -1,150 +0,0 @@ -"use strict"; -/* eslint-disable @typescript-eslint/no-require-imports */ -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.loadTs = exports.loadTsSync = exports.loadYaml = exports.loadJson = exports.loadJs = exports.loadJsSync = void 0; -const fs_1 = require("fs"); -const promises_1 = require("fs/promises"); -const path_1 = __importDefault(require("path")); -const url_1 = require("url"); -const crypto_1 = require("crypto"); -let importFresh; -const loadJsSync = function loadJsSync(filepath) { - if (importFresh === undefined) { - importFresh = require('import-fresh'); - } - return importFresh(filepath); -}; -exports.loadJsSync = loadJsSync; -const loadJs = async function loadJs(filepath) { - try { - const { href } = (0, url_1.pathToFileURL)(await (0, promises_1.realpath)(filepath)); - return (await import(href)).default; - } - catch (error) { - try { - return (0, exports.loadJsSync)(filepath, ''); - } - catch (requireError) { - /* istanbul ignore next -- @preserve */ - if (requireError.code === 'ERR_REQUIRE_ESM' || - (requireError instanceof SyntaxError && - requireError - .toString() - .includes('Cannot use import statement outside a module'))) { - throw error; - } - throw requireError; - } - } -}; -exports.loadJs = loadJs; -let parseJson; -const loadJson = function loadJson(filepath, content) { - if (parseJson === undefined) { - parseJson = require('parse-json'); - } - try { - return parseJson(content); - } - catch (error) { - error.message = `JSON Error in ${filepath}:\n${error.message}`; - throw error; - } -}; -exports.loadJson = loadJson; -let yaml; -const loadYaml = function loadYaml(filepath, content) { - if (yaml === undefined) { - yaml = require('js-yaml'); - } - try { - return yaml.load(content); - } - catch (error) { - error.message = `YAML Error in ${filepath}:\n${error.message}`; - throw error; - } -}; -exports.loadYaml = loadYaml; -let typescript; -const loadTsSync = function loadTsSync(filepath, content) { - /* istanbul ignore next -- @preserve */ - if (typescript === undefined) { - typescript = require('typescript'); - } - const compiledFilepath = `${filepath}.${(0, crypto_1.randomUUID)()}.cjs`; - try { - const config = resolveTsConfig(path_1.default.dirname(filepath)) ?? {}; - config.compilerOptions = { - ...config.compilerOptions, - module: typescript.ModuleKind.NodeNext, - moduleResolution: typescript.ModuleResolutionKind.NodeNext, - target: typescript.ScriptTarget.ES2022, - noEmit: false, - }; - content = typescript.transpileModule(content, config).outputText; - (0, fs_1.writeFileSync)(compiledFilepath, content); - return (0, exports.loadJsSync)(compiledFilepath, content).default; - } - catch (error) { - error.message = `TypeScript Error in ${filepath}:\n${error.message}`; - throw error; - } - finally { - if ((0, fs_1.existsSync)(compiledFilepath)) { - (0, fs_1.rmSync)(compiledFilepath); - } - } -}; -exports.loadTsSync = loadTsSync; -const loadTs = async function loadTs(filepath, content) { - if (typescript === undefined) { - typescript = (await import('typescript')).default; - } - const compiledFilepath = `${filepath}.${(0, crypto_1.randomUUID)()}.mjs`; - let transpiledContent; - try { - try { - const config = resolveTsConfig(path_1.default.dirname(filepath)) ?? {}; - config.compilerOptions = { - ...config.compilerOptions, - module: typescript.ModuleKind.ES2022, - moduleResolution: typescript.ModuleResolutionKind.Bundler, - target: typescript.ScriptTarget.ES2022, - noEmit: false, - }; - transpiledContent = typescript.transpileModule(content, config).outputText; - await (0, promises_1.writeFile)(compiledFilepath, transpiledContent); - } - catch (error) { - error.message = `TypeScript Error in ${filepath}:\n${error.message}`; - throw error; - } - // eslint-disable-next-line @typescript-eslint/return-await - return await (0, exports.loadJs)(compiledFilepath, transpiledContent); - } - finally { - if ((0, fs_1.existsSync)(compiledFilepath)) { - await (0, promises_1.rm)(compiledFilepath); - } - } -}; -exports.loadTs = loadTs; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function resolveTsConfig(directory) { - const filePath = typescript.findConfigFile(directory, (fileName) => { - return typescript.sys.fileExists(fileName); - }); - if (filePath !== undefined) { - const { config, error } = typescript.readConfigFile(filePath, (path) => typescript.sys.readFile(path)); - if (error) { - throw new Error(`Error in ${filePath}: ${error.messageText.toString()}`); - } - return config; - } - return; -} -//# sourceMappingURL=loaders.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/merge.d.ts b/node_modules/cosmiconfig/dist/merge.d.ts deleted file mode 100644 index 0d05f63..0000000 --- a/node_modules/cosmiconfig/dist/merge.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export declare const hasOwn: (thisArg: any, ...argArray: any[]) => any; -export interface MergeOptions { - mergeArrays: boolean; -} -/** - * Merges multiple objects. Doesn't care about cloning non-primitives, as we load all these objects fresh from a file. - */ -export declare function mergeAll(objects: ReadonlyArray, options: MergeOptions): any; -//# sourceMappingURL=merge.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/merge.js b/node_modules/cosmiconfig/dist/merge.js deleted file mode 100644 index 0e76ae6..0000000 --- a/node_modules/cosmiconfig/dist/merge.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.mergeAll = exports.hasOwn = void 0; -/* eslint-disable @typescript-eslint/unbound-method */ -exports.hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty); -const objToString = Function.prototype.call.bind(Object.prototype.toString); -/* eslint-enable @typescript-eslint/unbound-method */ -function isPlainObject(obj) { - return objToString(obj) === '[object Object]'; -} -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function merge(target, source, options) { - for (const key of Object.keys(source)) { - const newValue = source[key]; - if ((0, exports.hasOwn)(target, key)) { - if (Array.isArray(target[key]) && Array.isArray(newValue)) { - if (options.mergeArrays) { - target[key].push(...newValue); - continue; - } - } - else if (isPlainObject(target[key]) && isPlainObject(newValue)) { - target[key] = merge(target[key], newValue, options); - continue; - } - } - target[key] = newValue; - } - return target; -} -/** - * Merges multiple objects. Doesn't care about cloning non-primitives, as we load all these objects fresh from a file. - */ -function mergeAll( -// eslint-disable-next-line @typescript-eslint/no-explicit-any -objects, options) { - return objects.reduce((target, source) => merge(target, source, options), {}); -} -exports.mergeAll = mergeAll; -//# sourceMappingURL=merge.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/readFile.d.ts b/node_modules/cosmiconfig/dist/readFile.d.ts deleted file mode 100644 index c59e12e..0000000 --- a/node_modules/cosmiconfig/dist/readFile.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -interface Options { - throwNotFound?: boolean; -} -declare function readFile(filepath: string, options?: Options): Promise; -declare function readFileSync(filepath: string, options?: Options): string | null; -export { readFile, readFileSync }; -//# sourceMappingURL=readFile.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/readFile.js b/node_modules/cosmiconfig/dist/readFile.js deleted file mode 100644 index 954081e..0000000 --- a/node_modules/cosmiconfig/dist/readFile.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.readFile = readFile; -exports.readFileSync = readFileSync; - -var _fs = _interopRequireDefault(require("fs")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -async function fsReadFileAsync(pathname, encoding) { - return new Promise((resolve, reject) => { - _fs.default.readFile(pathname, encoding, (error, contents) => { - if (error) { - reject(error); - return; - } - - resolve(contents); - }); - }); -} - -async function readFile(filepath, options = {}) { - const throwNotFound = options.throwNotFound === true; - - try { - const content = await fsReadFileAsync(filepath, 'utf8'); - return content; - } catch (error) { - if (throwNotFound === false && (error.code === 'ENOENT' || error.code === 'EISDIR')) { - return null; - } - - throw error; - } -} - -function readFileSync(filepath, options = {}) { - const throwNotFound = options.throwNotFound === true; - - try { - const content = _fs.default.readFileSync(filepath, 'utf8'); - - return content; - } catch (error) { - if (throwNotFound === false && (error.code === 'ENOENT' || error.code === 'EISDIR')) { - return null; - } - - throw error; - } -} -//# sourceMappingURL=readFile.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/types.d.ts b/node_modules/cosmiconfig/dist/types.d.ts deleted file mode 100644 index a7ddb91..0000000 --- a/node_modules/cosmiconfig/dist/types.d.ts +++ /dev/null @@ -1,98 +0,0 @@ -/** - * @public - */ -export type Config = any; -/** - * @public - */ -export type CosmiconfigResult = { - config: Config; - filepath: string; - isEmpty?: boolean; -} | null; -/** - * @public - */ -export type LoaderResult = Config | null; -/** - * @public - */ -export type Loader = ((filepath: string, content: string) => Promise) | LoaderSync; -/** - * @public - */ -export type LoaderSync = (filepath: string, content: string) => LoaderResult; -/** - * @public - */ -export type Transform = ((CosmiconfigResult: CosmiconfigResult) => Promise) | TransformSync; -/** - * @public - */ -export type TransformSync = (CosmiconfigResult: CosmiconfigResult) => CosmiconfigResult; -/** - * @public - */ -export type SearchStrategy = 'none' | 'project' | 'global'; -/** - * @public - */ -export interface CommonOptions { - packageProp?: string | Array; - searchPlaces: Array; - ignoreEmptySearchPlaces: boolean; - stopDir?: string; - cache: boolean; - mergeImportArrays: boolean; - mergeSearchPlaces: boolean; - searchStrategy: SearchStrategy; -} -/** - * @public - */ -export interface Options extends CommonOptions { - loaders: Loaders; - transform: Transform; -} -/** - * @public - */ -export interface OptionsSync extends CommonOptions { - loaders: LoadersSync; - transform: TransformSync; -} -/** - * @public - */ -export interface Loaders { - [key: string]: Loader; -} -/** - * @public - */ -export interface LoadersSync { - [key: string]: LoaderSync; -} -/** - * @public - */ -export interface PublicExplorerBase { - clearLoadCache: () => void; - clearSearchCache: () => void; - clearCaches: () => void; -} -/** - * @public - */ -export interface PublicExplorer extends PublicExplorerBase { - search: (searchFrom?: string) => Promise; - load: (filepath: string) => Promise; -} -/** - * @public - */ -export interface PublicExplorerSync extends PublicExplorerBase { - search: (searchFrom?: string) => CosmiconfigResult; - load: (filepath: string) => CosmiconfigResult; -} -//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/types.js b/node_modules/cosmiconfig/dist/types.js deleted file mode 100644 index 11e638d..0000000 --- a/node_modules/cosmiconfig/dist/types.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/util.d.ts b/node_modules/cosmiconfig/dist/util.d.ts deleted file mode 100644 index d184935..0000000 --- a/node_modules/cosmiconfig/dist/util.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=util.d.ts.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/dist/util.js b/node_modules/cosmiconfig/dist/util.js deleted file mode 100644 index 987375a..0000000 --- a/node_modules/cosmiconfig/dist/util.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isDirectorySync = exports.isDirectory = exports.removeUndefinedValuesFromObject = exports.getPropertyByPath = exports.emplace = void 0; -const fs_1 = __importStar(require("fs")); -/** - * @internal - */ -function emplace(map, key, fn) { - const cached = map.get(key); - if (cached !== undefined) { - return cached; - } - const result = fn(); - map.set(key, result); - return result; -} -exports.emplace = emplace; -// Resolves property names or property paths defined with period-delimited -// strings or arrays of strings. Property names that are found on the source -// object are used directly (even if they include a period). -// Nested property names that include periods, within a path, are only -// understood in array paths. -/** - * @internal - */ -function getPropertyByPath(source, path) { - if (typeof path === 'string' && - Object.prototype.hasOwnProperty.call(source, path)) { - return source[path]; - } - const parsedPath = typeof path === 'string' ? path.split('.') : path; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - return parsedPath.reduce((previous, key) => { - if (previous === undefined) { - return previous; - } - return previous[key]; - }, source); -} -exports.getPropertyByPath = getPropertyByPath; -/** @internal */ -function removeUndefinedValuesFromObject(options) { - return Object.fromEntries(Object.entries(options).filter(([, value]) => value !== undefined)); -} -exports.removeUndefinedValuesFromObject = removeUndefinedValuesFromObject; -/** @internal */ -/* istanbul ignore next -- @preserve */ -async function isDirectory(path) { - try { - const stat = await fs_1.promises.stat(path); - return stat.isDirectory(); - } - catch (e) { - if (e.code === 'ENOENT') { - return false; - } - throw e; - } -} -exports.isDirectory = isDirectory; -/** @internal */ -/* istanbul ignore next -- @preserve */ -function isDirectorySync(path) { - try { - const stat = fs_1.default.statSync(path); - return stat.isDirectory(); - } - catch (e) { - if (e.code === 'ENOENT') { - return false; - } - throw e; - } -} -exports.isDirectorySync = isDirectorySync; -//# sourceMappingURL=util.js.map \ No newline at end of file diff --git a/node_modules/cosmiconfig/package.json b/node_modules/cosmiconfig/package.json deleted file mode 100644 index 809fdcf..0000000 --- a/node_modules/cosmiconfig/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "cosmiconfig", - "version": "9.0.1", - "description": "Find and load configuration from a package.json property, rc file, TypeScript module, and more!", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "files": [ - "dist", - "!dist/**/*.map" - ], - "scripts": { - "clean": "git clean -Xdf -e '!node_modules' .", - "build": "npm run build:tsc", - "build:tsc": "cross-env NODE_ENV=production tsc -b", - "dev": "npm run build:tsc -- --watch", - "lint": "eslint --ext .js,.ts .", - "lint:fix": "eslint --ext .js,.ts . --fix", - "lint:md": "remark-preset-davidtheclark", - "format": "prettier \"**/*.{js,ts,json,yml,yaml}\" --write", - "format:md": "remark-preset-davidtheclark --format", - "format:check": "prettier \"**/*.{js,ts,json,yml,yaml}\" --check", - "test": "vitest run --coverage", - "test:watch": "vitest", - "check:all": "npm run test && npm run lint && npm run format:check", - "prepublishOnly": "npm run check:all && npm run build", - "prepare": "husky install" - }, - "lint-staged": { - "*.{js,ts}": [ - "eslint --fix", - "prettier --write" - ], - "*.{json,yml,yaml}": [ - "prettier --write" - ], - "*.md": [ - "remark-preset-davidtheclark", - "remark-preset-davidtheclark --format" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/cosmiconfig/cosmiconfig.git" - }, - "keywords": [ - "load", - "configuration", - "config" - ], - "author": "Daniel Fischer ", - "contributors": [ - "Randolf J ", - "David Clark ", - "Bogdan Chadkin ", - "Suhas Karanth " - ], - "funding": "https://github.com/sponsors/d-fischer", - "license": "MIT", - "bugs": { - "url": "https://github.com/cosmiconfig/cosmiconfig/issues" - }, - "homepage": "https://github.com/cosmiconfig/cosmiconfig#readme", - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - }, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "devDependencies": { - "@types/js-yaml": "^4.0.5", - "@types/node": "^14", - "@types/parse-json": "^4.0.0", - "@typescript-eslint/eslint-plugin": "^6.5.0", - "@typescript-eslint/parser": "^6.5.0", - "@vitest/coverage-istanbul": "^0.34.3", - "cross-env": "^7.0.3", - "eslint": "^8.48.0", - "eslint-config-davidtheclark-node": "^0.2.2", - "eslint-config-prettier": "^9.0.0", - "eslint-import-resolver-typescript": "^3.6.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-vitest": "^0.2.8", - "husky": "^8.0.3", - "lint-staged": "^14.0.1", - "parent-module": "^3.0.0", - "prettier": "^3.0.3", - "remark-preset-davidtheclark": "^0.12.0", - "typescript": "^5.2.2", - "vitest": "^0.34.3" - }, - "engines": { - "node": ">=14" - } -} diff --git a/node_modules/debug/LICENSE b/node_modules/debug/LICENSE deleted file mode 100644 index 1a9820e..0000000 --- a/node_modules/debug/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk -Copyright (c) 2018-2021 Josh Junon - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the 'Software'), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/node_modules/debug/README.md b/node_modules/debug/README.md deleted file mode 100644 index 9ebdfbf..0000000 --- a/node_modules/debug/README.md +++ /dev/null @@ -1,481 +0,0 @@ -# debug -[![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny JavaScript debugging utility modelled after Node.js core's debugging -technique. Works in Node.js and web browsers. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example [_app.js_](./examples/node/app.js): - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %o', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example [_worker.js_](./examples/node/worker.js): - -```js -var a = require('debug')('worker:a') - , b = require('debug')('worker:b'); - -function work() { - a('doing lots of uninteresting work'); - setTimeout(work, Math.random() * 1000); -} - -work(); - -function workb() { - b('doing some work'); - setTimeout(workb, Math.random() * 2000); -} - -workb(); -``` - -The `DEBUG` environment variable is then used to enable these based on space or -comma-delimited names. - -Here are some examples: - -screen shot 2017-08-08 at 12 53 04 pm -screen shot 2017-08-08 at 12 53 38 pm -screen shot 2017-08-08 at 12 53 25 pm - -#### Windows command prompt notes - -##### CMD - -On Windows the environment variable is set using the `set` command. - -```cmd -set DEBUG=*,-not_this -``` - -Example: - -```cmd -set DEBUG=* & node app.js -``` - -##### PowerShell (VS Code default) - -PowerShell uses different syntax to set environment variables. - -```cmd -$env:DEBUG = "*,-not_this" -``` - -Example: - -```cmd -$env:DEBUG='app';node app.js -``` - -Then, run the program to be debugged as usual. - -npm script example: -```js - "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", -``` - -## Namespace Colors - -Every debug instance has a color generated for it based on its namespace name. -This helps when visually parsing the debug output to identify which debug instance -a debug line belongs to. - -#### Node.js - -In Node.js, colors are enabled when stderr is a TTY. You also _should_ install -the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, -otherwise debug will only use a small handful of basic colors. - - - -#### Web Browser - -Colors are also enabled on "Web Inspectors" that understand the `%c` formatting -option. These are WebKit web inspectors, Firefox ([since version -31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) -and the Firebug plugin for Firefox (any version). - - - - -## Millisecond diff - -When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - - -When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - - - - -## Conventions - -If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. - -## Wildcards - -The `*` character may be used as a wildcard. Suppose for example your library has -debuggers named "connect:bodyParser", "connect:compress", "connect:session", -instead of listing all three with -`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do -`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - -You can also exclude specific debuggers by prefixing them with a "-" character. -For example, `DEBUG=*,-connect:*` would include all debuggers except those -starting with "connect:". - -## Environment Variables - -When running through Node.js, you can set a few environment variables that will -change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - -__Note:__ The environment variables beginning with `DEBUG_` end up being -converted into an Options object that gets used with `%o`/`%O` formatters. -See the Node.js documentation for -[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) -for the complete list. - -## Formatters - -Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. -Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - - -### Custom formatters - -You can add custom formatters by extending the `debug.formatters` object. -For example, if you wanted to add support for rendering a Buffer as hex with -`%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - - -## Browser Support - -You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), -or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), -if you don't want to build it yourself. - -Debug's enable state is currently persisted by `localStorage`. -Consider the situation shown below where you have `worker:a` and `worker:b`, -and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -In Chromium-based web browsers (e.g. Brave, Chrome, and Electron), the JavaScript console will—by default—only show messages logged by `debug` if the "Verbose" log level is _enabled_. - - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example [_stdout.js_](./examples/node/stdout.js): - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -## Extend -You can simply extend debugger -```js -const log = require('debug')('auth'); - -//creates new debug instance with extended namespace -const logSign = log.extend('sign'); -const logLogin = log.extend('login'); - -log('hello'); // auth hello -logSign('hello'); //auth:sign hello -logLogin('hello'); //auth:login hello -``` - -## Set dynamically - -You can also enable debug dynamically by calling the `enable()` method : - -```js -let debug = require('debug'); - -console.log(1, debug.enabled('test')); - -debug.enable('test'); -console.log(2, debug.enabled('test')); - -debug.disable(); -console.log(3, debug.enabled('test')); - -``` - -print : -``` -1 false -2 true -3 false -``` - -Usage : -`enable(namespaces)` -`namespaces` can include modes separated by a colon and wildcards. - -Note that calling `enable()` completely overrides previously set DEBUG variable : - -``` -$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' -=> false -``` - -`disable()` - -Will disable all namespaces. The functions returns the namespaces currently -enabled (and skipped). This can be useful if you want to disable debugging -temporarily without knowing what was enabled to begin with. - -For example: - -```js -let debug = require('debug'); -debug.enable('foo:*,-foo:bar'); -let namespaces = debug.disable(); -debug.enable(namespaces); -``` - -Note: There is no guarantee that the string will be identical to the initial -enable string, but semantically they will be identical. - -## Checking whether a debug target is enabled - -After you've created a debug instance, you can determine whether or not it is -enabled by checking the `enabled` property: - -```javascript -const debug = require('debug')('http'); - -if (debug.enabled) { - // do stuff... -} -``` - -You can also manually toggle this property to force the debug instance to be -enabled or disabled. - -## Usage in child processes - -Due to the way `debug` detects if the output is a TTY or not, colors are not shown in child processes when `stderr` is piped. A solution is to pass the `DEBUG_COLORS=1` environment variable to the child process. -For example: - -```javascript -worker = fork(WORKER_WRAP_PATH, [workerPath], { - stdio: [ - /* stdin: */ 0, - /* stdout: */ 'pipe', - /* stderr: */ 'pipe', - 'ipc', - ], - env: Object.assign({}, process.env, { - DEBUG_COLORS: 1 // without this settings, colors won't be shown - }), -}); - -worker.stderr.pipe(process.stderr, { end: false }); -``` - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - - Josh Junon - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> -Copyright (c) 2018-2021 Josh Junon - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/debug/package.json b/node_modules/debug/package.json deleted file mode 100644 index ee8abb5..0000000 --- a/node_modules/debug/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "debug", - "version": "4.4.3", - "repository": { - "type": "git", - "url": "git://github.com/debug-js/debug.git" - }, - "description": "Lightweight debugging utility for Node.js and the browser", - "keywords": [ - "debug", - "log", - "debugger" - ], - "files": [ - "src", - "LICENSE", - "README.md" - ], - "author": "Josh Junon (https://github.com/qix-)", - "contributors": [ - "TJ Holowaychuk ", - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " - ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "mocha test.js test.node.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, - "dependencies": { - "ms": "^2.1.3" - }, - "devDependencies": { - "brfs": "^2.0.1", - "browserify": "^16.2.3", - "coveralls": "^3.0.2", - "karma": "^3.1.4", - "karma-browserify": "^6.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "sinon": "^14.0.0", - "xo": "^0.23.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - }, - "xo": { - "rules": { - "import/extensions": "off" - } - } -} diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js deleted file mode 100644 index 5993451..0000000 --- a/node_modules/debug/src/browser.js +++ /dev/null @@ -1,272 +0,0 @@ -/* eslint-env browser */ - -/** - * This is the web browser implementation of `debug()`. - */ - -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - let m; - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - // eslint-disable-next-line no-return-assign - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; diff --git a/node_modules/debug/src/common.js b/node_modules/debug/src/common.js deleted file mode 100644 index 141cb57..0000000 --- a/node_modules/debug/src/common.js +++ /dev/null @@ -1,292 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require('ms'); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - const split = (typeof namespaces === 'string' ? namespaces : '') - .trim() - .replace(/\s+/g, ',') - .split(',') - .filter(Boolean); - - for (const ns of split) { - if (ns[0] === '-') { - createDebug.skips.push(ns.slice(1)); - } else { - createDebug.names.push(ns); - } - } - } - - /** - * Checks if the given string matches a namespace template, honoring - * asterisks as wildcards. - * - * @param {String} search - * @param {String} template - * @return {Boolean} - */ - function matchesTemplate(search, template) { - let searchIndex = 0; - let templateIndex = 0; - let starIndex = -1; - let matchIndex = 0; - - while (searchIndex < search.length) { - if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { - // Match character or proceed with wildcard - if (template[templateIndex] === '*') { - starIndex = templateIndex; - matchIndex = searchIndex; - templateIndex++; // Skip the '*' - } else { - searchIndex++; - templateIndex++; - } - } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition - // Backtrack to the last '*' and try to match more characters - templateIndex = starIndex + 1; - matchIndex++; - searchIndex = matchIndex; - } else { - return false; // No match - } - } - - // Handle trailing '*' in template - while (templateIndex < template.length && template[templateIndex] === '*') { - templateIndex++; - } - - return templateIndex === template.length; - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names, - ...createDebug.skips.map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - for (const skip of createDebug.skips) { - if (matchesTemplate(name, skip)) { - return false; - } - } - - for (const ns of createDebug.names) { - if (matchesTemplate(name, ns)) { - return true; - } - } - - return false; - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; diff --git a/node_modules/debug/src/index.js b/node_modules/debug/src/index.js deleted file mode 100644 index bf4c57f..0000000 --- a/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/node_modules/debug/src/node.js b/node_modules/debug/src/node.js deleted file mode 100644 index 715560a..0000000 --- a/node_modules/debug/src/node.js +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Module dependencies. - */ - -const tty = require('tty'); -const util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - */ - -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = require('supports-color'); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init(debug) { - debug.inspectOpts = {}; - - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; - -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ - -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; diff --git a/node_modules/deepmerge/.editorconfig b/node_modules/deepmerge/.editorconfig deleted file mode 100644 index 6244e1b..0000000 --- a/node_modules/deepmerge/.editorconfig +++ /dev/null @@ -1,7 +0,0 @@ -root = true - -[*] -indent_style = tab -end_of_line = lf -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/node_modules/deepmerge/.eslintcache b/node_modules/deepmerge/.eslintcache deleted file mode 100644 index c1321eb..0000000 --- a/node_modules/deepmerge/.eslintcache +++ /dev/null @@ -1 +0,0 @@ -[{"/Users/joshduff/code/deepmerge/test/custom-is-mergeable-object.js":"1"},{"size":1990,"mtime":1679007485753,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","suppressedMessages":"6","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ktjd5k","/Users/joshduff/code/deepmerge/test/custom-is-mergeable-object.js",[],[]] \ No newline at end of file diff --git a/node_modules/deepmerge/changelog.md b/node_modules/deepmerge/changelog.md deleted file mode 100644 index 082e0dd..0000000 --- a/node_modules/deepmerge/changelog.md +++ /dev/null @@ -1,167 +0,0 @@ -# [4.3.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.3.1) - -- Fix type definition for arrayMerge options. [#239](https://github.com/TehShrike/deepmerge/pull/239) - -# [4.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.3.0) - -- Avoid thrown errors if the target doesn't have `propertyIsEnumerable`. [#252](https://github.com/TehShrike/deepmerge/pull/252) - -# [4.2.2](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.2) - -- `isMergeableObject` is now only called if there are two values that could be merged. [a34dd4d2](https://github.com/TehShrike/deepmerge/commit/a34dd4d25bf5e250653540a2022bc832c7b00a19) - -# [4.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.1) - -- Fix: falsey values can now be merged. [#170](https://github.com/TehShrike/deepmerge/issues/170) - -# [4.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.0) - -- Properties are now only overwritten if they exist on the target object and are enumerable. [#164](https://github.com/TehShrike/deepmerge/pull/164) - -Technically this could probably be a patch release since "which properties get overwritten" wasn't documented and accidentally overwriting a built-in function or some function up the property chain would almost certainly be undesirable, but it feels like a gray area, so here we are with a feature version bump. - -# [4.1.2](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.2) - -- Rolled back #167 since `Object.assign` breaks ES5 support. [55067352](https://github.com/TehShrike/deepmerge/commit/55067352a92c65a6c44a5165f3387720aae1e192) - -# [4.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.1) - -- The `options` argument is no longer mutated [#167](https://github.com/TehShrike/deepmerge/pull/167) - -# [4.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.0) - -- `cloneUnlessOtherwiseSpecified` is now exposed to the `arrayMerge` function [#165](https://github.com/TehShrike/deepmerge/pull/165) - -# [4.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.0.0) - -- The `main` entry point in `package.json` is now a CommonJS module instead of a UMD module [#155](https://github.com/TehShrike/deepmerge/pull/155) - -# [3.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.3.0) - -- Enumerable Symbol properties are now copied [#151](https://github.com/TehShrike/deepmerge/pull/151) - -# [3.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.1) - -- bumping dev dependency versions to try to shut up bogus security warnings from Github/npm [#149](https://github.com/TehShrike/deepmerge/pull/149) - -# [3.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.0) - -- feature: added the [`customMerge`](https://github.com/TehShrike/deepmerge#custommerge) option [#133](https://github.com/TehShrike/deepmerge/pull/133) - -# [3.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.1.0) - -- typescript typing: make the `all` function generic [#129](https://github.com/TehShrike/deepmerge/pull/129) - -# [3.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.0.0) - -- drop ES module build [#123](https://github.com/TehShrike/deepmerge/issues/123) - -# [2.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.2.1) - -- bug: typescript export type was wrong [#121](https://github.com/TehShrike/deepmerge/pull/121) - -# [2.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.2.0) - -- feature: added TypeScript typings [#119](https://github.com/TehShrike/deepmerge/pull/119) - -# [2.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.1.1) - -- documentation: Rename "methods" to "api", note ESM syntax [#103](https://github.com/TehShrike/deepmerge/pull/103) -- documentation: Fix grammar [#107](https://github.com/TehShrike/deepmerge/pull/107) -- documentation: Restructure headers for clarity + some wording tweaks [108](https://github.com/TehShrike/deepmerge/pull/108) + [109](https://github.com/TehShrike/deepmerge/pull/109) - - -# [2.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.1.0) - -- feature: Support a custom `isMergeableObject` function [#96](https://github.com/TehShrike/deepmerge/pull/96) -- documentation: note a Webpack bug that some users might need to work around [#100](https://github.com/TehShrike/deepmerge/pull/100) - -# [2.0.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.0.1) - -- documentation: fix the old array merge algorithm in the readme. [#84](https://github.com/TehShrike/deepmerge/pull/84) - -# [2.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.0.0) - -- breaking: the array merge algorithm has changed from a complicated thing to `target.concat(source).map(element => cloneUnlessOtherwiseSpecified(element, optionsArgument))` -- breaking: The `clone` option now defaults to `true` -- feature: `merge.all` now accepts an array of any size, even 0 or 1 elements - -See [pull request 77](https://github.com/TehShrike/deepmerge/pull/77). - -# [1.5.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.2) - -- fix: no longer attempts to merge React elements [#76](https://github.com/TehShrike/deepmerge/issues/76) - -# [1.5.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.1) - -- bower support: officially dropping bower support. If you use bower, please depend on the [unpkg distribution](https://unpkg.com/deepmerge/dist/umd.js). See [#63](https://github.com/TehShrike/deepmerge/issues/63) - -# [1.5.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.0) - -- bug fix: merging objects into arrays was allowed, and doesn't make any sense. [#65](https://github.com/TehShrike/deepmerge/issues/65) published as a feature release instead of a patch because it is a decent behavior change. - -# [1.4.4](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.4) - -- bower support: updated `main` in bower.json - -# [1.4.3](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.3) - -- bower support: inline is-mergeable-object in a new CommonJS build, so that people using both bower and CommonJS can bundle the library [0b34e6](https://github.com/TehShrike/deepmerge/commit/0b34e6e95f989f2fc8091d25f0d291c08f3d2d24) - -# [1.4.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.2) - -- performance: bump is-mergeable-object dependency version for a slight performance improvement [5906c7](https://github.com/TehShrike/deepmerge/commit/5906c765d691d48e83d76efbb0d4b9ca150dc12c) - -# [1.4.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.1) - -- documentation: fix unpkg link [acc45b](https://github.com/TehShrike/deepmerge/commit/acc45be85519c1df906a72ecb24764b622d18d47) - -# [1.4.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.0) - -- api: instead of only exporting a UMD module, expose a UMD module with `pkg.main`, a CJS module with `pkg.browser`, and an ES module with `pkg.module` [#62](https://github.com/TehShrike/deepmerge/pull/62) - -# [1.3.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.2) - -- documentation: note the minified/gzipped file sizes [56](https://github.com/TehShrike/deepmerge/pull/56) -- documentation: make data structures more readable in merge example: pull request [57](https://github.com/TehShrike/deepmerge/pull/57) - -# [1.3.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.1) - -- documentation: clarify and test some array merging documentation: pull request [51](https://github.com/TehShrike/deepmerge/pull/51) - -# [1.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.0) - -- feature: `merge.all`, a merge function that merges any number of objects: pull request [50](https://github.com/TehShrike/deepmerge/pull/50) - -# [1.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.2.0) - -- fix: an error that would be thrown when an array would be merged onto a truthy non-array value: pull request [46](https://github.com/TehShrike/deepmerge/pull/46) -- feature: the ability to clone: Issue [28](https://github.com/TehShrike/deepmerge/issues/28), pull requests [44](https://github.com/TehShrike/deepmerge/pull/44) and [48](https://github.com/TehShrike/deepmerge/pull/48) -- maintenance: added tests + travis to `.npmignore`: pull request [47](https://github.com/TehShrike/deepmerge/pull/47) - -# [1.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.1.1) - -- fix an issue where an error was thrown when merging an array onto a non-array: [Pull request 46](https://github.com/TehShrike/deepmerge/pull/46) - -# [1.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.1.0) - -- allow consumers to specify their own array merging algorithm: [Pull request 37](https://github.com/TehShrike/deepmerge/pull/37) - -# [1.0.3](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.3) - -- adding bower.json back: [Issue 38](https://github.com/TehShrike/deepmerge/pull/38) -- updating keywords and Github links in package.json [bc3898e](https://github.com/TehShrike/deepmerge/commit/bc3898e587a56f74591328f40f656b0152c1d5eb) - -# [1.0.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.2) - -- Updating the readme: dropping bower, testing that the example works: [7102fc](https://github.com/TehShrike/deepmerge/commit/7102fcc4ddec11e2d33205866f9f18df14e5aeb5) - -# [1.0.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.1) - -- `null`, dates, and regular expressions are now properly merged in arrays: [Issue 18](https://github.com/TehShrike/deepmerge/pull/18), plus commit: [ef1c6b](https://github.com/TehShrike/deepmerge/commit/ef1c6bac8350ba12a24966f0bc7da02560827586) - -# 1.0.0 - -- Should only be a patch change, because this module is READY. [Issue 15](https://github.com/TehShrike/deepmerge/issues/15) -- Regular expressions are now treated like primitive values when merging: [Issue 30](https://github.com/TehShrike/deepmerge/pull/30) -- Dates are now treated like primitives when merging: [Issue 31](https://github.com/TehShrike/deepmerge/issues/31) diff --git a/node_modules/deepmerge/dist/cjs.js b/node_modules/deepmerge/dist/cjs.js deleted file mode 100644 index 7c36cbd..0000000 --- a/node_modules/deepmerge/dist/cjs.js +++ /dev/null @@ -1,133 +0,0 @@ -'use strict'; - -var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) - && !isSpecial(value) -}; - -function isNonNullObject(value) { - return !!value && typeof value === 'object' -} - -function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); - - return stringValue === '[object RegExp]' - || stringValue === '[object Date]' - || isReactElement(value) -} - -// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 -var canUseSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; - -function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE -} - -function emptyTarget(val) { - return Array.isArray(val) ? [] : {} -} - -function cloneUnlessOtherwiseSpecified(value, options) { - return (options.clone !== false && options.isMergeableObject(value)) - ? deepmerge(emptyTarget(value), value, options) - : value -} - -function defaultArrayMerge(target, source, options) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, options) - }) -} - -function getMergeFunction(key, options) { - if (!options.customMerge) { - return deepmerge - } - var customMerge = options.customMerge(key); - return typeof customMerge === 'function' ? customMerge : deepmerge -} - -function getEnumerableOwnPropertySymbols(target) { - return Object.getOwnPropertySymbols - ? Object.getOwnPropertySymbols(target).filter(function(symbol) { - return Object.propertyIsEnumerable.call(target, symbol) - }) - : [] -} - -function getKeys(target) { - return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) -} - -function propertyIsOnObject(object, property) { - try { - return property in object - } catch(_) { - return false - } -} - -// Protects from prototype poisoning and unexpected merging up the prototype chain. -function propertyIsUnsafe(target, key) { - return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, - && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, - && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. -} - -function mergeObject(target, source, options) { - var destination = {}; - if (options.isMergeableObject(target)) { - getKeys(target).forEach(function(key) { - destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); - }); - } - getKeys(source).forEach(function(key) { - if (propertyIsUnsafe(target, key)) { - return - } - - if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { - destination[key] = getMergeFunction(key, options)(target[key], source[key], options); - } else { - destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); - } - }); - return destination -} - -function deepmerge(target, source, options) { - options = options || {}; - options.arrayMerge = options.arrayMerge || defaultArrayMerge; - options.isMergeableObject = options.isMergeableObject || isMergeableObject; - // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() - // implementations can use it. The caller may not replace it. - options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; - - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, options) - } else if (sourceIsArray) { - return options.arrayMerge(target, source, options) - } else { - return mergeObject(target, source, options) - } -} - -deepmerge.all = function deepmergeAll(array, options) { - if (!Array.isArray(array)) { - throw new Error('first argument should be an array') - } - - return array.reduce(function(prev, next) { - return deepmerge(prev, next, options) - }, {}) -}; - -var deepmerge_1 = deepmerge; - -module.exports = deepmerge_1; diff --git a/node_modules/deepmerge/dist/umd.js b/node_modules/deepmerge/dist/umd.js deleted file mode 100644 index 4071e7c..0000000 --- a/node_modules/deepmerge/dist/umd.js +++ /dev/null @@ -1,139 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.deepmerge = factory()); -}(this, function () { 'use strict'; - - var isMergeableObject = function isMergeableObject(value) { - return isNonNullObject(value) - && !isSpecial(value) - }; - - function isNonNullObject(value) { - return !!value && typeof value === 'object' - } - - function isSpecial(value) { - var stringValue = Object.prototype.toString.call(value); - - return stringValue === '[object RegExp]' - || stringValue === '[object Date]' - || isReactElement(value) - } - - // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 - var canUseSymbol = typeof Symbol === 'function' && Symbol.for; - var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; - - function isReactElement(value) { - return value.$$typeof === REACT_ELEMENT_TYPE - } - - function emptyTarget(val) { - return Array.isArray(val) ? [] : {} - } - - function cloneUnlessOtherwiseSpecified(value, options) { - return (options.clone !== false && options.isMergeableObject(value)) - ? deepmerge(emptyTarget(value), value, options) - : value - } - - function defaultArrayMerge(target, source, options) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, options) - }) - } - - function getMergeFunction(key, options) { - if (!options.customMerge) { - return deepmerge - } - var customMerge = options.customMerge(key); - return typeof customMerge === 'function' ? customMerge : deepmerge - } - - function getEnumerableOwnPropertySymbols(target) { - return Object.getOwnPropertySymbols - ? Object.getOwnPropertySymbols(target).filter(function(symbol) { - return Object.propertyIsEnumerable.call(target, symbol) - }) - : [] - } - - function getKeys(target) { - return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) - } - - function propertyIsOnObject(object, property) { - try { - return property in object - } catch(_) { - return false - } - } - - // Protects from prototype poisoning and unexpected merging up the prototype chain. - function propertyIsUnsafe(target, key) { - return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, - && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, - && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. - } - - function mergeObject(target, source, options) { - var destination = {}; - if (options.isMergeableObject(target)) { - getKeys(target).forEach(function(key) { - destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); - }); - } - getKeys(source).forEach(function(key) { - if (propertyIsUnsafe(target, key)) { - return - } - - if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { - destination[key] = getMergeFunction(key, options)(target[key], source[key], options); - } else { - destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); - } - }); - return destination - } - - function deepmerge(target, source, options) { - options = options || {}; - options.arrayMerge = options.arrayMerge || defaultArrayMerge; - options.isMergeableObject = options.isMergeableObject || isMergeableObject; - // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() - // implementations can use it. The caller may not replace it. - options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; - - var sourceIsArray = Array.isArray(source); - var targetIsArray = Array.isArray(target); - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; - - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, options) - } else if (sourceIsArray) { - return options.arrayMerge(target, source, options) - } else { - return mergeObject(target, source, options) - } - } - - deepmerge.all = function deepmergeAll(array, options) { - if (!Array.isArray(array)) { - throw new Error('first argument should be an array') - } - - return array.reduce(function(prev, next) { - return deepmerge(prev, next, options) - }, {}) - }; - - var deepmerge_1 = deepmerge; - - return deepmerge_1; - -})); diff --git a/node_modules/deepmerge/index.d.ts b/node_modules/deepmerge/index.d.ts deleted file mode 100644 index 46784de..0000000 --- a/node_modules/deepmerge/index.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T; -declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T1 & T2; - -declare namespace deepmerge { - export interface Options { - arrayMerge?(target: any[], source: any[], options?: ArrayMergeOptions): any[]; - clone?: boolean; - customMerge?: (key: string, options?: Options) => ((x: any, y: any) => any) | undefined; - isMergeableObject?(value: object): boolean; - } - export interface ArrayMergeOptions { - isMergeableObject(value: object): boolean; - cloneUnlessOtherwiseSpecified(value: object, options?: Options): object; - } - - export function all (objects: object[], options?: Options): object; - export function all (objects: Partial[], options?: Options): T; -} - -export = deepmerge; diff --git a/node_modules/deepmerge/index.js b/node_modules/deepmerge/index.js deleted file mode 100644 index 77968ae..0000000 --- a/node_modules/deepmerge/index.js +++ /dev/null @@ -1,106 +0,0 @@ -var defaultIsMergeableObject = require('is-mergeable-object') - -function emptyTarget(val) { - return Array.isArray(val) ? [] : {} -} - -function cloneUnlessOtherwiseSpecified(value, options) { - return (options.clone !== false && options.isMergeableObject(value)) - ? deepmerge(emptyTarget(value), value, options) - : value -} - -function defaultArrayMerge(target, source, options) { - return target.concat(source).map(function(element) { - return cloneUnlessOtherwiseSpecified(element, options) - }) -} - -function getMergeFunction(key, options) { - if (!options.customMerge) { - return deepmerge - } - var customMerge = options.customMerge(key) - return typeof customMerge === 'function' ? customMerge : deepmerge -} - -function getEnumerableOwnPropertySymbols(target) { - return Object.getOwnPropertySymbols - ? Object.getOwnPropertySymbols(target).filter(function(symbol) { - return Object.propertyIsEnumerable.call(target, symbol) - }) - : [] -} - -function getKeys(target) { - return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) -} - -function propertyIsOnObject(object, property) { - try { - return property in object - } catch(_) { - return false - } -} - -// Protects from prototype poisoning and unexpected merging up the prototype chain. -function propertyIsUnsafe(target, key) { - return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, - && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, - && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. -} - -function mergeObject(target, source, options) { - var destination = {} - if (options.isMergeableObject(target)) { - getKeys(target).forEach(function(key) { - destination[key] = cloneUnlessOtherwiseSpecified(target[key], options) - }) - } - getKeys(source).forEach(function(key) { - if (propertyIsUnsafe(target, key)) { - return - } - - if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { - destination[key] = getMergeFunction(key, options)(target[key], source[key], options) - } else { - destination[key] = cloneUnlessOtherwiseSpecified(source[key], options) - } - }) - return destination -} - -function deepmerge(target, source, options) { - options = options || {} - options.arrayMerge = options.arrayMerge || defaultArrayMerge - options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject - // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() - // implementations can use it. The caller may not replace it. - options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified - - var sourceIsArray = Array.isArray(source) - var targetIsArray = Array.isArray(target) - var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray - - if (!sourceAndTargetTypesMatch) { - return cloneUnlessOtherwiseSpecified(source, options) - } else if (sourceIsArray) { - return options.arrayMerge(target, source, options) - } else { - return mergeObject(target, source, options) - } -} - -deepmerge.all = function deepmergeAll(array, options) { - if (!Array.isArray(array)) { - throw new Error('first argument should be an array') - } - - return array.reduce(function(prev, next) { - return deepmerge(prev, next, options) - }, {}) -} - -module.exports = deepmerge diff --git a/node_modules/deepmerge/license.txt b/node_modules/deepmerge/license.txt deleted file mode 100644 index 5003078..0000000 --- a/node_modules/deepmerge/license.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2012 James Halliday, Josh Duff, and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/deepmerge/package.json b/node_modules/deepmerge/package.json deleted file mode 100644 index 2b7b1be..0000000 --- a/node_modules/deepmerge/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "deepmerge", - "description": "A library for deep (recursive) merging of Javascript objects", - "keywords": [ - "merge", - "deep", - "extend", - "copy", - "clone", - "recursive" - ], - "version": "4.3.1", - "homepage": "https://github.com/TehShrike/deepmerge", - "repository": { - "type": "git", - "url": "git://github.com/TehShrike/deepmerge.git" - }, - "main": "dist/cjs.js", - "engines": { - "node": ">=0.10.0" - }, - "scripts": { - "build": "rollup -c", - "test": "npm run build && tape test/*.js && jsmd readme.md && npm run test:typescript", - "test:typescript": "tsc --noEmit test/typescript.ts && ts-node test/typescript.ts", - "size": "npm run build && uglifyjs --compress --mangle -- ./dist/umd.js | gzip -c | wc -c" - }, - "devDependencies": { - "@types/node": "^8.10.54", - "is-mergeable-object": "1.1.0", - "is-plain-object": "^5.0.0", - "jsmd": "^1.0.2", - "rollup": "^1.23.1", - "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-node-resolve": "^5.2.0", - "tape": "^4.11.0", - "ts-node": "7.0.1", - "typescript": "=2.2.2", - "uglify-js": "^3.6.1" - }, - "license": "MIT" -} diff --git a/node_modules/deepmerge/readme.md b/node_modules/deepmerge/readme.md deleted file mode 100644 index 79e4e30..0000000 --- a/node_modules/deepmerge/readme.md +++ /dev/null @@ -1,264 +0,0 @@ -# deepmerge - -Merges the enumerable properties of two or more objects deeply. - -> UMD bundle is 723B minified+gzipped - -## Getting Started - -### Example Usage - - -```js -const x = { - foo: { bar: 3 }, - array: [{ - does: 'work', - too: [ 1, 2, 3 ] - }] -} - -const y = { - foo: { baz: 4 }, - quux: 5, - array: [{ - does: 'work', - too: [ 4, 5, 6 ] - }, { - really: 'yes' - }] -} - -const output = { - foo: { - bar: 3, - baz: 4 - }, - array: [{ - does: 'work', - too: [ 1, 2, 3 ] - }, { - does: 'work', - too: [ 4, 5, 6 ] - }, { - really: 'yes' - }], - quux: 5 -} - -merge(x, y) // => output -``` - - -### Installation - -With [npm](http://npmjs.org) do: - -```sh -npm install deepmerge -``` - -deepmerge can be used directly in the browser without the use of package managers/bundlers as well: [UMD version from unpkg.com](https://unpkg.com/deepmerge/dist/umd.js). - - -### Include - -deepmerge exposes a CommonJS entry point: - -``` -const merge = require('deepmerge') -``` - -The ESM entry point was dropped due to a [Webpack bug](https://github.com/webpack/webpack/issues/6584). - -# API - - -## `merge(x, y, [options])` - -Merge two objects `x` and `y` deeply, returning a new merged object with the -elements from both `x` and `y`. - -If an element at the same key is present for both `x` and `y`, the value from -`y` will appear in the result. - -Merging creates a new object, so that neither `x` or `y` is modified. - -**Note:** By default, arrays are merged by concatenating them. - -## `merge.all(arrayOfObjects, [options])` - -Merges any number of objects into a single result object. - -```js -const foobar = { foo: { bar: 3 } } -const foobaz = { foo: { baz: 4 } } -const bar = { bar: 'yay!' } - -merge.all([ foobar, foobaz, bar ]) // => { foo: { bar: 3, baz: 4 }, bar: 'yay!' } -``` - - -## Options - -### `arrayMerge` - -There are multiple ways to merge two arrays, below are a few examples but you can also create your own custom function. - -Your `arrayMerge` function will be called with three arguments: a `target` array, the `source` array, and an `options` object with these properties: - -- `isMergeableObject(value)` -- `cloneUnlessOtherwiseSpecified(value, options)` - -#### `arrayMerge` example: overwrite target array - -Overwrites the existing array values completely rather than concatenating them: - -```js -const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray - -merge( - [1, 2, 3], - [3, 2, 1], - { arrayMerge: overwriteMerge } -) // => [3, 2, 1] -``` - -#### `arrayMerge` example: combine arrays - -Combines objects at the same index in the two arrays. - -This was the default array merging algorithm pre-version-2.0.0. - -```js -const combineMerge = (target, source, options) => { - const destination = target.slice() - - source.forEach((item, index) => { - if (typeof destination[index] === 'undefined') { - destination[index] = options.cloneUnlessOtherwiseSpecified(item, options) - } else if (options.isMergeableObject(item)) { - destination[index] = merge(target[index], item, options) - } else if (target.indexOf(item) === -1) { - destination.push(item) - } - }) - return destination -} - -merge( - [{ a: true }], - [{ b: true }, 'ah yup'], - { arrayMerge: combineMerge } -) // => [{ a: true, b: true }, 'ah yup'] -``` - -### `isMergeableObject` - -By default, deepmerge clones every property from almost every kind of object. - -You may not want this, if your objects are of special types, and you want to copy the whole object instead of just copying its properties. - -You can accomplish this by passing in a function for the `isMergeableObject` option. - -If you only want to clone properties of plain objects, and ignore all "special" kinds of instantiated objects, you probably want to drop in [`is-plain-object`](https://github.com/jonschlinkert/is-plain-object). - -```js -const { isPlainObject } = require('is-plain-object') - -function SuperSpecial() { - this.special = 'oh yeah man totally' -} - -const instantiatedSpecialObject = new SuperSpecial() - -const target = { - someProperty: { - cool: 'oh for sure' - } -} - -const source = { - someProperty: instantiatedSpecialObject -} - -const defaultOutput = merge(target, source) - -defaultOutput.someProperty.cool // => 'oh for sure' -defaultOutput.someProperty.special // => 'oh yeah man totally' -defaultOutput.someProperty instanceof SuperSpecial // => false - -const customMergeOutput = merge(target, source, { - isMergeableObject: isPlainObject -}) - -customMergeOutput.someProperty.cool // => undefined -customMergeOutput.someProperty.special // => 'oh yeah man totally' -customMergeOutput.someProperty instanceof SuperSpecial // => true -``` - -### `customMerge` - -Specifies a function which can be used to override the default merge behavior for a property, based on the property name. - -The `customMerge` function will be passed the key for each property, and should return the function which should be used to merge the values for that property. - -It may also return undefined, in which case the default merge behaviour will be used. - -```js -const alex = { - name: { - first: 'Alex', - last: 'Alexson' - }, - pets: ['Cat', 'Parrot'] -} - -const tony = { - name: { - first: 'Tony', - last: 'Tonison' - }, - pets: ['Dog'] -} - -const mergeNames = (nameA, nameB) => `${nameA.first} and ${nameB.first}` - -const options = { - customMerge: (key) => { - if (key === 'name') { - return mergeNames - } - } -} - -const result = merge(alex, tony, options) - -result.name // => 'Alex and Tony' -result.pets // => ['Cat', 'Parrot', 'Dog'] -``` - - -### `clone` - -*Deprecated.* - -Defaults to `true`. - -If `clone` is `false` then child objects will be copied directly instead of being cloned. This was the default behavior before version 2.x. - - -# Testing - -With [npm](http://npmjs.org) do: - -```sh -npm test -``` - - -# License - -MIT diff --git a/node_modules/deepmerge/rollup.config.js b/node_modules/deepmerge/rollup.config.js deleted file mode 100644 index 8323ab2..0000000 --- a/node_modules/deepmerge/rollup.config.js +++ /dev/null @@ -1,22 +0,0 @@ -import resolve from 'rollup-plugin-node-resolve' -import commonjs from 'rollup-plugin-commonjs' -import pkg from './package.json' - -export default { - input: `index.js`, - plugins: [ - commonjs(), - resolve(), - ], - output: [ - { - file: pkg.main, - format: `cjs` - }, - { - name: 'deepmerge', - file: 'dist/umd.js', - format: `umd` - }, - ], -} diff --git a/node_modules/delayed-stream/.npmignore b/node_modules/delayed-stream/.npmignore deleted file mode 100644 index 9daeafb..0000000 --- a/node_modules/delayed-stream/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/node_modules/delayed-stream/License b/node_modules/delayed-stream/License deleted file mode 100644 index 4804b7a..0000000 --- a/node_modules/delayed-stream/License +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011 Debuggable Limited - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/node_modules/delayed-stream/Makefile b/node_modules/delayed-stream/Makefile deleted file mode 100644 index b4ff85a..0000000 --- a/node_modules/delayed-stream/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SHELL := /bin/bash - -test: - @./test/run.js - -.PHONY: test - diff --git a/node_modules/delayed-stream/Readme.md b/node_modules/delayed-stream/Readme.md deleted file mode 100644 index aca36f9..0000000 --- a/node_modules/delayed-stream/Readme.md +++ /dev/null @@ -1,141 +0,0 @@ -# delayed-stream - -Buffers events from a stream until you are ready to handle them. - -## Installation - -``` bash -npm install delayed-stream -``` - -## Usage - -The following example shows how to write a http echo server that delays its -response by 1000 ms. - -``` javascript -var DelayedStream = require('delayed-stream'); -var http = require('http'); - -http.createServer(function(req, res) { - var delayed = DelayedStream.create(req); - - setTimeout(function() { - res.writeHead(200); - delayed.pipe(res); - }, 1000); -}); -``` - -If you are not using `Stream#pipe`, you can also manually release the buffered -events by calling `delayedStream.resume()`: - -``` javascript -var delayed = DelayedStream.create(req); - -setTimeout(function() { - // Emit all buffered events and resume underlaying source - delayed.resume(); -}, 1000); -``` - -## Implementation - -In order to use this meta stream properly, here are a few things you should -know about the implementation. - -### Event Buffering / Proxying - -All events of the `source` stream are hijacked by overwriting the `source.emit` -method. Until node implements a catch-all event listener, this is the only way. - -However, delayed-stream still continues to emit all events it captures on the -`source`, regardless of whether you have released the delayed stream yet or -not. - -Upon creation, delayed-stream captures all `source` events and stores them in -an internal event buffer. Once `delayedStream.release()` is called, all -buffered events are emitted on the `delayedStream`, and the event buffer is -cleared. After that, delayed-stream merely acts as a proxy for the underlaying -source. - -### Error handling - -Error events on `source` are buffered / proxied just like any other events. -However, `delayedStream.create` attaches a no-op `'error'` listener to the -`source`. This way you only have to handle errors on the `delayedStream` -object, rather than in two places. - -### Buffer limits - -delayed-stream provides a `maxDataSize` property that can be used to limit -the amount of data being buffered. In order to protect you from bad `source` -streams that don't react to `source.pause()`, this feature is enabled by -default. - -## API - -### DelayedStream.create(source, [options]) - -Returns a new `delayedStream`. Available options are: - -* `pauseStream` -* `maxDataSize` - -The description for those properties can be found below. - -### delayedStream.source - -The `source` stream managed by this object. This is useful if you are -passing your `delayedStream` around, and you still want to access properties -on the `source` object. - -### delayedStream.pauseStream = true - -Whether to pause the underlaying `source` when calling -`DelayedStream.create()`. Modifying this property afterwards has no effect. - -### delayedStream.maxDataSize = 1024 * 1024 - -The amount of data to buffer before emitting an `error`. - -If the underlaying source is emitting `Buffer` objects, the `maxDataSize` -refers to bytes. - -If the underlaying source is emitting JavaScript strings, the size refers to -characters. - -If you know what you are doing, you can set this property to `Infinity` to -disable this feature. You can also modify this property during runtime. - -### delayedStream.dataSize = 0 - -The amount of data buffered so far. - -### delayedStream.readable - -An ECMA5 getter that returns the value of `source.readable`. - -### delayedStream.resume() - -If the `delayedStream` has not been released so far, `delayedStream.release()` -is called. - -In either case, `source.resume()` is called. - -### delayedStream.pause() - -Calls `source.pause()`. - -### delayedStream.pipe(dest) - -Calls `delayedStream.resume()` and then proxies the arguments to `source.pipe`. - -### delayedStream.release() - -Emits and clears all events that have been buffered up so far. This does not -resume the underlaying source, use `delayedStream.resume()` instead. - -## License - -delayed-stream is licensed under the MIT license. diff --git a/node_modules/delayed-stream/lib/delayed_stream.js b/node_modules/delayed-stream/lib/delayed_stream.js deleted file mode 100644 index b38fc85..0000000 --- a/node_modules/delayed-stream/lib/delayed_stream.js +++ /dev/null @@ -1,107 +0,0 @@ -var Stream = require('stream').Stream; -var util = require('util'); - -module.exports = DelayedStream; -function DelayedStream() { - this.source = null; - this.dataSize = 0; - this.maxDataSize = 1024 * 1024; - this.pauseStream = true; - - this._maxDataSizeExceeded = false; - this._released = false; - this._bufferedEvents = []; -} -util.inherits(DelayedStream, Stream); - -DelayedStream.create = function(source, options) { - var delayedStream = new this(); - - options = options || {}; - for (var option in options) { - delayedStream[option] = options[option]; - } - - delayedStream.source = source; - - var realEmit = source.emit; - source.emit = function() { - delayedStream._handleEmit(arguments); - return realEmit.apply(source, arguments); - }; - - source.on('error', function() {}); - if (delayedStream.pauseStream) { - source.pause(); - } - - return delayedStream; -}; - -Object.defineProperty(DelayedStream.prototype, 'readable', { - configurable: true, - enumerable: true, - get: function() { - return this.source.readable; - } -}); - -DelayedStream.prototype.setEncoding = function() { - return this.source.setEncoding.apply(this.source, arguments); -}; - -DelayedStream.prototype.resume = function() { - if (!this._released) { - this.release(); - } - - this.source.resume(); -}; - -DelayedStream.prototype.pause = function() { - this.source.pause(); -}; - -DelayedStream.prototype.release = function() { - this._released = true; - - this._bufferedEvents.forEach(function(args) { - this.emit.apply(this, args); - }.bind(this)); - this._bufferedEvents = []; -}; - -DelayedStream.prototype.pipe = function() { - var r = Stream.prototype.pipe.apply(this, arguments); - this.resume(); - return r; -}; - -DelayedStream.prototype._handleEmit = function(args) { - if (this._released) { - this.emit.apply(this, args); - return; - } - - if (args[0] === 'data') { - this.dataSize += args[1].length; - this._checkIfMaxDataSizeExceeded(); - } - - this._bufferedEvents.push(args); -}; - -DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { - if (this._maxDataSizeExceeded) { - return; - } - - if (this.dataSize <= this.maxDataSize) { - return; - } - - this._maxDataSizeExceeded = true; - var message = - 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' - this.emit('error', new Error(message)); -}; diff --git a/node_modules/delayed-stream/package.json b/node_modules/delayed-stream/package.json deleted file mode 100644 index eea3291..0000000 --- a/node_modules/delayed-stream/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "author": "Felix Geisendörfer (http://debuggable.com/)", - "contributors": [ - "Mike Atkins " - ], - "name": "delayed-stream", - "description": "Buffers events from a stream until you are ready to handle them.", - "license": "MIT", - "version": "1.0.0", - "homepage": "https://github.com/felixge/node-delayed-stream", - "repository": { - "type": "git", - "url": "git://github.com/felixge/node-delayed-stream.git" - }, - "main": "./lib/delayed_stream", - "engines": { - "node": ">=0.4.0" - }, - "scripts": { - "test": "make test" - }, - "dependencies": {}, - "devDependencies": { - "fake": "0.2.0", - "far": "0.0.1" - } -} diff --git a/node_modules/devtools-protocol/LICENSE b/node_modules/devtools-protocol/LICENSE deleted file mode 100644 index 972bb2e..0000000 --- a/node_modules/devtools-protocol/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/devtools-protocol/README.md b/node_modules/devtools-protocol/README.md deleted file mode 100644 index 155e078..0000000 --- a/node_modules/devtools-protocol/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# devtools-protocol [![devtools-protocol on npm](https://img.shields.io/npm/v/devtools-protocol)](https://www.npmjs.com/package/devtools-protocol) - -:warning: -This repository is related to Chrome DevTools Protocol, but does not track issues regarding its definition or implementation. -If you want to file an issue for the Chrome DevTools Protocol, please open an issue on https://crbug.com under [`component: Platform>DevTools>Platform`](https://bugs.chromium.org/p/chromium/issues/entry?components=Platform%3EDevTools%3EPlatform). - -Use the [protocol viewer](https://chromedevtools.github.io/devtools-protocol/) for navigating the protocol. - -TypeScript definitions for the protocol's types are available in ['types/protocol.d.ts'](https://github.com/ChromeDevTools/devtools-protocol/tree/master/types). Mappings from Commands and events to these types are available in either generated `DomainApi` style in [`types/protocol-proxy-api.d.ts`](https://github.com/ChromeDevTools/devtools-protocol/blob/master/types/protocol-proxy-api.d.ts) or in simple name-to-type-interface style in [`types/protocol-mapping.d.ts`](https://github.com/ChromeDevTools/devtools-protocol/blob/master/types/protocol-mapping.d.ts). - -Also, this repo is published as the [`devtools-protocol`](https://www.npmjs.com/package/devtools-protocol) npm module. diff --git a/node_modules/devtools-protocol/json/browser_protocol.json b/node_modules/devtools-protocol/json/browser_protocol.json deleted file mode 100644 index 7590ec6..0000000 --- a/node_modules/devtools-protocol/json/browser_protocol.json +++ /dev/null @@ -1,30874 +0,0 @@ -{ - "version": { - "major": "1", - "minor": "3" - }, - "domains": [ - { - "domain": "Accessibility", - "experimental": true, - "dependencies": [ - "DOM" - ], - "types": [ - { - "id": "AXNodeId", - "description": "Unique accessibility node identifier.", - "type": "string" - }, - { - "id": "AXValueType", - "description": "Enum of possible property types.", - "type": "string", - "enum": [ - "boolean", - "tristate", - "booleanOrUndefined", - "idref", - "idrefList", - "integer", - "node", - "nodeList", - "number", - "string", - "computedString", - "token", - "tokenList", - "domRelation", - "role", - "internalRole", - "valueUndefined" - ] - }, - { - "id": "AXValueSourceType", - "description": "Enum of possible property sources.", - "type": "string", - "enum": [ - "attribute", - "implicit", - "style", - "contents", - "placeholder", - "relatedElement" - ] - }, - { - "id": "AXValueNativeSourceType", - "description": "Enum of possible native property sources (as a subtype of a particular AXValueSourceType).", - "type": "string", - "enum": [ - "description", - "figcaption", - "label", - "labelfor", - "labelwrapped", - "legend", - "rubyannotation", - "tablecaption", - "title", - "other" - ] - }, - { - "id": "AXValueSource", - "description": "A single source for a computed AX property.", - "type": "object", - "properties": [ - { - "name": "type", - "description": "What type of source this is.", - "$ref": "AXValueSourceType" - }, - { - "name": "value", - "description": "The value of this property source.", - "optional": true, - "$ref": "AXValue" - }, - { - "name": "attribute", - "description": "The name of the relevant attribute, if any.", - "optional": true, - "type": "string" - }, - { - "name": "attributeValue", - "description": "The value of the relevant attribute, if any.", - "optional": true, - "$ref": "AXValue" - }, - { - "name": "superseded", - "description": "Whether this source is superseded by a higher priority source.", - "optional": true, - "type": "boolean" - }, - { - "name": "nativeSource", - "description": "The native markup source for this value, e.g. a `

BpMc`a+@ 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%0DTLS*LTrkT*b*>W>p3vmbMZE_ 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 E0rO*`MF0Q* diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE deleted file mode 100644 index de32266..0000000 --- a/node_modules/brace-expansion/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013 Julian Gruber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/brace-expansion/README.md b/node_modules/brace-expansion/README.md deleted file mode 100644 index 6b4e0e1..0000000 --- a/node_modules/brace-expansion/README.md +++ /dev/null @@ -1,129 +0,0 @@ -# brace-expansion - -[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), -as known from sh/bash, in JavaScript. - -[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) -[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) -[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) - -[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) - -## Example - -```js -var expand = require('brace-expansion'); - -expand('file-{a,b,c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('-v{,,}') -// => ['-v', '-v', '-v'] - -expand('file{0..2}.jpg') -// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] - -expand('file-{a..c}.jpg') -// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] - -expand('file{2..0}.jpg') -// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] - -expand('file{0..4..2}.jpg') -// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] - -expand('file-{a..e..2}.jpg') -// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] - -expand('file{00..10..5}.jpg') -// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] - -expand('{{A..C},{a..c}}') -// => ['A', 'B', 'C', 'a', 'b', 'c'] - -expand('ppp{,config,oe{,conf}}') -// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] -``` - -## API - -```js -var expand = require('brace-expansion'); -``` - -### var expanded = expand(str) - -Return an array of all possible and valid expansions of `str`. If none are -found, `[str]` is returned. - -Valid expansions are: - -```js -/^(.*,)+(.+)?$/ -// {a,b,...} -``` - -A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -A numeric sequence from `x` to `y` inclusive, with optional increment. -If `x` or `y` start with a leading `0`, all the numbers will be padded -to have equal length. Negative numbers and backwards iteration work too. - -```js -/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ -// {x..y[..incr]} -``` - -An alphabetic sequence from `x` to `y` inclusive, with optional increment. -`x` and `y` must be exactly one character, and if given, `incr` must be a -number. - -For compatibility reasons, the string `${` is not eligible for brace expansion. - -## Installation - -With [npm](https://npmjs.org) do: - -```bash -npm install brace-expansion -``` - -## Contributors - -- [Julian Gruber](https://github.com/juliangruber) -- [Isaac Z. Schlueter](https://github.com/isaacs) - -## Sponsors - -This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! - -Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! - -## License - -(MIT) - -Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/brace-expansion/index.js b/node_modules/brace-expansion/index.js deleted file mode 100644 index 87ecd30..0000000 --- a/node_modules/brace-expansion/index.js +++ /dev/null @@ -1,203 +0,0 @@ -var concatMap = require('concat-map'); -var balanced = require('balanced-match'); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str, options) { - if (!str) - return []; - - options = options || {}; - var max = options.max == null ? Infinity : options.max; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), max, true).map(unescapeBraces); -} - -function identity(e) { - return e; -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, max, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m || /\$$/.test(m.pre)) return [str]; - - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,(?!,).*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str, max, true); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], max, false).map(embrace); - if (n.length === 1) { - var post = m.post.length - ? expand(m.post, max, false) - : ['']; - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, max, false) - : ['']; - - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.max(Math.abs(numeric(n[2])), 1) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = concatMap(n, function(el) { return expand(el, max, false) }); - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length && expansions.length < max; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - - return expansions; -} diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json deleted file mode 100644 index ff14975..0000000 --- a/node_modules/brace-expansion/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "brace-expansion", - "description": "Brace expansion as known from sh/bash", - "version": "1.1.14", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/brace-expansion.git" - }, - "homepage": "https://github.com/juliangruber/brace-expansion", - "main": "index.js", - "scripts": { - "test": "tape test/*.js", - "gentest": "bash test/generate.sh", - "bench": "matcha test/perf/bench.js" - }, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "devDependencies": { - "matcha": "^0.7.0", - "tape": "^4.6.0" - }, - "keywords": [], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT", - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/8..latest", - "firefox/20..latest", - "firefox/nightly", - "chrome/25..latest", - "chrome/canary", - "opera/12..latest", - "opera/next", - "safari/5.1..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2..latest" - ] - }, - "publishConfig": { - "tag": "1.x" - } -} diff --git a/node_modules/call-bind-apply-helpers/.eslintrc b/node_modules/call-bind-apply-helpers/.eslintrc deleted file mode 100644 index 201e859..0000000 --- a/node_modules/call-bind-apply-helpers/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "id-length": 0, - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - "no-extra-parens": 0, - "no-magic-numbers": 0, - }, -} diff --git a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml b/node_modules/call-bind-apply-helpers/.github/FUNDING.yml deleted file mode 100644 index 0011e9d..0000000 --- a/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/call-bind-apply-helpers -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/call-bind-apply-helpers/.nycrc b/node_modules/call-bind-apply-helpers/.nycrc deleted file mode 100644 index bdd626c..0000000 --- a/node_modules/call-bind-apply-helpers/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/call-bind-apply-helpers/CHANGELOG.md b/node_modules/call-bind-apply-helpers/CHANGELOG.md deleted file mode 100644 index 2484942..0000000 --- a/node_modules/call-bind-apply-helpers/CHANGELOG.md +++ /dev/null @@ -1,30 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.2](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.1...v1.0.2) - 2025-02-12 - -### Commits - -- [types] improve inferred types [`e6f9586`](https://github.com/ljharb/call-bind-apply-helpers/commit/e6f95860a3c72879cb861a858cdfb8138fbedec1) -- [Dev Deps] update `@arethetypeswrong/cli`, `@ljharb/tsconfig`, `@types/tape`, `es-value-fixtures`, `for-each`, `has-strict-mode`, `object-inspect` [`e43d540`](https://github.com/ljharb/call-bind-apply-helpers/commit/e43d5409f97543bfbb11f345d47d8ce4e066d8c1) - -## [v1.0.1](https://github.com/ljharb/call-bind-apply-helpers/compare/v1.0.0...v1.0.1) - 2024-12-08 - -### Commits - -- [types] `reflectApply`: fix types [`4efc396`](https://github.com/ljharb/call-bind-apply-helpers/commit/4efc3965351a4f02cc55e836fa391d3d11ef2ef8) -- [Fix] `reflectApply`: oops, Reflect is not a function [`83cc739`](https://github.com/ljharb/call-bind-apply-helpers/commit/83cc7395de6b79b7730bdf092f1436f0b1263c75) -- [Dev Deps] update `@arethetypeswrong/cli` [`80bd5d3`](https://github.com/ljharb/call-bind-apply-helpers/commit/80bd5d3ae58b4f6b6995ce439dd5a1bcb178a940) - -## v1.0.0 - 2024-12-05 - -### Commits - -- Initial implementation, tests, readme [`7879629`](https://github.com/ljharb/call-bind-apply-helpers/commit/78796290f9b7430c9934d6f33d94ae9bc89fce04) -- Initial commit [`3f1dc16`](https://github.com/ljharb/call-bind-apply-helpers/commit/3f1dc164afc43285631b114a5f9dd9137b2b952f) -- npm init [`081df04`](https://github.com/ljharb/call-bind-apply-helpers/commit/081df048c312fcee400922026f6e97281200a603) -- Only apps should have lockfiles [`5b9ca0f`](https://github.com/ljharb/call-bind-apply-helpers/commit/5b9ca0fe8101ebfaf309c549caac4e0a017ed930) diff --git a/node_modules/call-bind-apply-helpers/LICENSE b/node_modules/call-bind-apply-helpers/LICENSE deleted file mode 100644 index f82f389..0000000 --- a/node_modules/call-bind-apply-helpers/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/call-bind-apply-helpers/README.md b/node_modules/call-bind-apply-helpers/README.md deleted file mode 100644 index 8fc0dae..0000000 --- a/node_modules/call-bind-apply-helpers/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# call-bind-apply-helpers [![Version Badge][npm-version-svg]][package-url] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -Helper functions around Function call/apply/bind, for use in `call-bind`. - -The only packages that should likely ever use this package directly are `call-bind` and `get-intrinsic`. -Please use `call-bind` unless you have a very good reason not to. - -## Getting started - -```sh -npm install --save call-bind-apply-helpers -``` - -## Usage/Examples - -```js -const assert = require('assert'); -const callBindBasic = require('call-bind-apply-helpers'); - -function f(a, b) { - assert.equal(this, 1); - assert.equal(a, 2); - assert.equal(b, 3); - assert.equal(arguments.length, 2); -} - -const fBound = callBindBasic([f, 1]); - -delete Function.prototype.call; -delete Function.prototype.bind; - -fBound(2, 3); -``` - -## Tests - -Clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/call-bind-apply-helpers -[npm-version-svg]: https://versionbadg.es/ljharb/call-bind-apply-helpers.svg -[deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers.svg -[deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers -[dev-deps-svg]: https://david-dm.org/ljharb/call-bind-apply-helpers/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/call-bind-apply-helpers#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/call-bind-apply-helpers.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/call-bind-apply-helpers.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/call-bind-apply-helpers.svg -[downloads-url]: https://npm-stat.com/charts.html?package=call-bind-apply-helpers -[codecov-image]: https://codecov.io/gh/ljharb/call-bind-apply-helpers/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/ljharb/call-bind-apply-helpers/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/call-bind-apply-helpers -[actions-url]: https://github.com/ljharb/call-bind-apply-helpers/actions diff --git a/node_modules/call-bind-apply-helpers/actualApply.d.ts b/node_modules/call-bind-apply-helpers/actualApply.d.ts deleted file mode 100644 index b87286a..0000000 --- a/node_modules/call-bind-apply-helpers/actualApply.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Reflect.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/actualApply.js b/node_modules/call-bind-apply-helpers/actualApply.js deleted file mode 100644 index ffa5135..0000000 --- a/node_modules/call-bind-apply-helpers/actualApply.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); - -var $apply = require('./functionApply'); -var $call = require('./functionCall'); -var $reflectApply = require('./reflectApply'); - -/** @type {import('./actualApply')} */ -module.exports = $reflectApply || bind.call($call, $apply); diff --git a/node_modules/call-bind-apply-helpers/applyBind.d.ts b/node_modules/call-bind-apply-helpers/applyBind.d.ts deleted file mode 100644 index d176c1a..0000000 --- a/node_modules/call-bind-apply-helpers/applyBind.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import actualApply from './actualApply'; - -type TupleSplitHead = T['length'] extends N - ? T - : T extends [...infer R, any] - ? TupleSplitHead - : never - -type TupleSplitTail = O['length'] extends N - ? T - : T extends [infer F, ...infer R] - ? TupleSplitTail<[...R], N, [...O, F]> - : never - -type TupleSplit = [TupleSplitHead, TupleSplitTail] - -declare function applyBind(...args: TupleSplit, 2>[1]): ReturnType; - -export = applyBind; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/applyBind.js b/node_modules/call-bind-apply-helpers/applyBind.js deleted file mode 100644 index d2b7723..0000000 --- a/node_modules/call-bind-apply-helpers/applyBind.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var $apply = require('./functionApply'); -var actualApply = require('./actualApply'); - -/** @type {import('./applyBind')} */ -module.exports = function applyBind() { - return actualApply(bind, $apply, arguments); -}; diff --git a/node_modules/call-bind-apply-helpers/functionApply.d.ts b/node_modules/call-bind-apply-helpers/functionApply.d.ts deleted file mode 100644 index 1f6e11b..0000000 --- a/node_modules/call-bind-apply-helpers/functionApply.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Function.prototype.apply; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionApply.js b/node_modules/call-bind-apply-helpers/functionApply.js deleted file mode 100644 index c71df9c..0000000 --- a/node_modules/call-bind-apply-helpers/functionApply.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./functionApply')} */ -module.exports = Function.prototype.apply; diff --git a/node_modules/call-bind-apply-helpers/functionCall.d.ts b/node_modules/call-bind-apply-helpers/functionCall.d.ts deleted file mode 100644 index 15e93df..0000000 --- a/node_modules/call-bind-apply-helpers/functionCall.d.ts +++ /dev/null @@ -1 +0,0 @@ -export = Function.prototype.call; \ No newline at end of file diff --git a/node_modules/call-bind-apply-helpers/functionCall.js b/node_modules/call-bind-apply-helpers/functionCall.js deleted file mode 100644 index 7a8d873..0000000 --- a/node_modules/call-bind-apply-helpers/functionCall.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./functionCall')} */ -module.exports = Function.prototype.call; diff --git a/node_modules/call-bind-apply-helpers/index.d.ts b/node_modules/call-bind-apply-helpers/index.d.ts deleted file mode 100644 index 541516b..0000000 --- a/node_modules/call-bind-apply-helpers/index.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -type RemoveFromTuple< - Tuple extends readonly unknown[], - RemoveCount extends number, - Index extends 1[] = [] -> = Index["length"] extends RemoveCount - ? Tuple - : Tuple extends [infer First, ...infer Rest] - ? RemoveFromTuple - : Tuple; - -type ConcatTuples< - Prefix extends readonly unknown[], - Suffix extends readonly unknown[] -> = [...Prefix, ...Suffix]; - -type ExtractFunctionParams = T extends (this: infer TThis, ...args: infer P extends readonly unknown[]) => infer R - ? { thisArg: TThis; params: P; returnType: R } - : never; - -type BindFunction< - T extends (this: any, ...args: any[]) => any, - TThis, - TBoundArgs extends readonly unknown[], - ReceiverBound extends boolean -> = ExtractFunctionParams extends { - thisArg: infer OrigThis; - params: infer P extends readonly unknown[]; - returnType: infer R; -} - ? ReceiverBound extends true - ? (...args: RemoveFromTuple>) => R extends [OrigThis, ...infer Rest] - ? [TThis, ...Rest] // Replace `this` with `thisArg` - : R - : >>( - thisArg: U, - ...args: RemainingArgs - ) => R extends [OrigThis, ...infer Rest] - ? [U, ...ConcatTuples] // Preserve bound args in return type - : R - : never; - -declare function callBind< - const T extends (this: any, ...args: any[]) => any, - Extracted extends ExtractFunctionParams, - const TBoundArgs extends Partial & readonly unknown[], - const TThis extends Extracted["thisArg"] ->( - args: [fn: T, thisArg: TThis, ...boundArgs: TBoundArgs] -): BindFunction; - -declare function callBind< - const T extends (this: any, ...args: any[]) => any, - Extracted extends ExtractFunctionParams, - const TBoundArgs extends Partial & readonly unknown[] ->( - args: [fn: T, ...boundArgs: TBoundArgs] -): BindFunction; - -declare function callBind( - args: [fn: Exclude, ...rest: TArgs] -): never; - -// export as namespace callBind; -export = callBind; diff --git a/node_modules/call-bind-apply-helpers/index.js b/node_modules/call-bind-apply-helpers/index.js deleted file mode 100644 index 2f6dab4..0000000 --- a/node_modules/call-bind-apply-helpers/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var $TypeError = require('es-errors/type'); - -var $call = require('./functionCall'); -var $actualApply = require('./actualApply'); - -/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ -module.exports = function callBindBasic(args) { - if (args.length < 1 || typeof args[0] !== 'function') { - throw new $TypeError('a function is required'); - } - return $actualApply(bind, $call, args); -}; diff --git a/node_modules/call-bind-apply-helpers/package.json b/node_modules/call-bind-apply-helpers/package.json deleted file mode 100644 index 923b8be..0000000 --- a/node_modules/call-bind-apply-helpers/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "name": "call-bind-apply-helpers", - "version": "1.0.2", - "description": "Helper functions around Function call/apply/bind, for use in `call-bind`", - "main": "index.js", - "exports": { - ".": "./index.js", - "./actualApply": "./actualApply.js", - "./applyBind": "./applyBind.js", - "./functionApply": "./functionApply.js", - "./functionCall": "./functionCall.js", - "./reflectApply": "./reflectApply.js", - "./package.json": "./package.json" - }, - "scripts": { - "prepack": "npmignore --auto --commentLines=auto", - "prepublish": "not-in-publish || npm run prepublishOnly", - "prepublishOnly": "safe-publish-latest", - "prelint": "evalmd README.md", - "lint": "eslint --ext=.js,.mjs .", - "postlint": "tsc -p . && attw -P", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/**/*.js'", - "test": "npm run tests-only", - "posttest": "npx npm@'>=10.2' audit --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/call-bind-apply-helpers.git" - }, - "author": "Jordan Harband ", - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/call-bind-apply-helpers/issues" - }, - "homepage": "https://github.com/ljharb/call-bind-apply-helpers#readme", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "devDependencies": { - "@arethetypeswrong/cli": "^0.17.3", - "@ljharb/eslint-config": "^21.1.1", - "@ljharb/tsconfig": "^0.2.3", - "@types/for-each": "^0.3.3", - "@types/function-bind": "^1.1.10", - "@types/object-inspect": "^1.13.0", - "@types/tape": "^5.8.1", - "auto-changelog": "^2.5.0", - "encoding": "^0.1.13", - "es-value-fixtures": "^1.7.1", - "eslint": "=8.8.0", - "evalmd": "^0.0.19", - "for-each": "^0.3.5", - "has-strict-mode": "^1.1.0", - "in-publish": "^2.0.1", - "npmignore": "^0.3.1", - "nyc": "^10.3.2", - "object-inspect": "^1.13.4", - "safe-publish-latest": "^2.0.0", - "tape": "^5.9.0", - "typescript": "next" - }, - "testling": { - "files": "test/index.js" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - }, - "publishConfig": { - "ignore": [ - ".github/workflows" - ] - }, - "engines": { - "node": ">= 0.4" - } -} diff --git a/node_modules/call-bind-apply-helpers/reflectApply.d.ts b/node_modules/call-bind-apply-helpers/reflectApply.d.ts deleted file mode 100644 index 6b2ae76..0000000 --- a/node_modules/call-bind-apply-helpers/reflectApply.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare const reflectApply: false | typeof Reflect.apply; - -export = reflectApply; diff --git a/node_modules/call-bind-apply-helpers/reflectApply.js b/node_modules/call-bind-apply-helpers/reflectApply.js deleted file mode 100644 index 3d03caa..0000000 --- a/node_modules/call-bind-apply-helpers/reflectApply.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -/** @type {import('./reflectApply')} */ -module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; diff --git a/node_modules/call-bind-apply-helpers/test/index.js b/node_modules/call-bind-apply-helpers/test/index.js deleted file mode 100644 index 1cdc89e..0000000 --- a/node_modules/call-bind-apply-helpers/test/index.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var callBind = require('../'); -var hasStrictMode = require('has-strict-mode')(); -var forEach = require('for-each'); -var inspect = require('object-inspect'); -var v = require('es-value-fixtures'); - -var test = require('tape'); - -test('callBindBasic', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - // @ts-expect-error - function () { callBind([nonFunction]); }, - TypeError, - inspect(nonFunction) + ' is not a function' - ); - }); - - var sentinel = { sentinel: true }; - /** @type {(this: T, a: A, b: B) => [T | undefined, A, B]} */ - var func = function (a, b) { - // eslint-disable-next-line no-invalid-this - return [!hasStrictMode && this === global ? undefined : this, a, b]; - }; - t.equal(func.length, 2, 'original function length is 2'); - - /** type {(thisArg: unknown, a: number, b: number) => [unknown, number, number]} */ - var bound = callBind([func]); - /** type {((a: number, b: number) => [typeof sentinel, typeof a, typeof b])} */ - var boundR = callBind([func, sentinel]); - /** type {((b: number) => [typeof sentinel, number, typeof b])} */ - var boundArg = callBind([func, sentinel, /** @type {const} */ (1)]); - - // @ts-expect-error - t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with no args'); - - // @ts-expect-error - t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); - // @ts-expect-error - t.deepEqual(bound(1, 2), [hasStrictMode ? 1 : Object(1), 2, undefined], 'bound func too few args'); - // @ts-expect-error - t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); - // @ts-expect-error - t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); - - t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); - t.deepEqual(bound(1, 2, 3), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with right args'); - t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); - t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); - - // @ts-expect-error - t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); - // @ts-expect-error - t.deepEqual(bound(1, 2, 3, 4), [hasStrictMode ? 1 : Object(1), 2, 3], 'bound func with too many args'); - // @ts-expect-error - t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); - // @ts-expect-error - t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); - - t.end(); -}); diff --git a/node_modules/call-bind-apply-helpers/tsconfig.json b/node_modules/call-bind-apply-helpers/tsconfig.json deleted file mode 100644 index aef9993..0000000 --- a/node_modules/call-bind-apply-helpers/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@ljharb/tsconfig", - "compilerOptions": { - "target": "es2021", - }, - "exclude": [ - "coverage", - ], -} \ No newline at end of file diff --git a/node_modules/callsites/index.d.ts b/node_modules/callsites/index.d.ts deleted file mode 100644 index 61f597c..0000000 --- a/node_modules/callsites/index.d.ts +++ /dev/null @@ -1,96 +0,0 @@ -declare namespace callsites { - interface CallSite { - /** - Returns the value of `this`. - */ - getThis(): unknown | undefined; - - /** - Returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. - */ - getTypeName(): string | null; - - /** - Returns the current function. - */ - getFunction(): Function | undefined; - - /** - Returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. - */ - getFunctionName(): string | null; - - /** - Returns the name of the property of `this` or one of its prototypes that holds the current function. - */ - getMethodName(): string | undefined; - - /** - Returns the name of the script if this function was defined in a script. - */ - getFileName(): string | null; - - /** - Returns the current line number if this function was defined in a script. - */ - getLineNumber(): number | null; - - /** - Returns the current column number if this function was defined in a script. - */ - getColumnNumber(): number | null; - - /** - Returns a string representing the location where `eval` was called if this function was created using a call to `eval`. - */ - getEvalOrigin(): string | undefined; - - /** - Returns `true` if this is a top-level invocation, that is, if it's a global object. - */ - isToplevel(): boolean; - - /** - Returns `true` if this call takes place in code defined by a call to `eval`. - */ - isEval(): boolean; - - /** - Returns `true` if this call is in native V8 code. - */ - isNative(): boolean; - - /** - Returns `true` if this is a constructor call. - */ - isConstructor(): boolean; - } -} - -declare const callsites: { - /** - Get callsites from the V8 stack trace API. - - @returns An array of `CallSite` objects. - - @example - ``` - import callsites = require('callsites'); - - function unicorn() { - console.log(callsites()[0].getFileName()); - //=> '/Users/sindresorhus/dev/callsites/test.js' - } - - unicorn(); - ``` - */ - (): callsites.CallSite[]; - - // TODO: Remove this for the next major release, refactor the whole definition to: - // declare function callsites(): callsites.CallSite[]; - // export = callsites; - default: typeof callsites; -}; - -export = callsites; diff --git a/node_modules/callsites/index.js b/node_modules/callsites/index.js deleted file mode 100644 index 486c241..0000000 --- a/node_modules/callsites/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -const callsites = () => { - const _prepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = (_, stack) => stack; - const stack = new Error().stack.slice(1); - Error.prepareStackTrace = _prepareStackTrace; - return stack; -}; - -module.exports = callsites; -// TODO: Remove this for the next major release -module.exports.default = callsites; diff --git a/node_modules/callsites/license b/node_modules/callsites/license deleted file mode 100644 index e7af2f7..0000000 --- a/node_modules/callsites/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/callsites/package.json b/node_modules/callsites/package.json deleted file mode 100644 index 93463c3..0000000 --- a/node_modules/callsites/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "callsites", - "version": "3.1.0", - "description": "Get callsites from the V8 stack trace API", - "license": "MIT", - "repository": "sindresorhus/callsites", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "engines": { - "node": ">=6" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "stacktrace", - "v8", - "callsite", - "callsites", - "stack", - "trace", - "function", - "file", - "line", - "debug" - ], - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - } -} diff --git a/node_modules/callsites/readme.md b/node_modules/callsites/readme.md deleted file mode 100644 index fc84613..0000000 --- a/node_modules/callsites/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -# callsites [![Build Status](https://travis-ci.org/sindresorhus/callsites.svg?branch=master)](https://travis-ci.org/sindresorhus/callsites) - -> Get callsites from the [V8 stack trace API](https://v8.dev/docs/stack-trace-api) - - -## Install - -``` -$ npm install callsites -``` - - -## Usage - -```js -const callsites = require('callsites'); - -function unicorn() { - console.log(callsites()[0].getFileName()); - //=> '/Users/sindresorhus/dev/callsites/test.js' -} - -unicorn(); -``` - - -## API - -Returns an array of callsite objects with the following methods: - -- `getThis`: returns the value of `this`. -- `getTypeName`: returns the type of `this` as a string. This is the name of the function stored in the constructor field of `this`, if available, otherwise the object's `[[Class]]` internal property. -- `getFunction`: returns the current function. -- `getFunctionName`: returns the name of the current function, typically its `name` property. If a name property is not available an attempt will be made to try to infer a name from the function's context. -- `getMethodName`: returns the name of the property of `this` or one of its prototypes that holds the current function. -- `getFileName`: if this function was defined in a script returns the name of the script. -- `getLineNumber`: if this function was defined in a script returns the current line number. -- `getColumnNumber`: if this function was defined in a script returns the current column number -- `getEvalOrigin`: if this function was created using a call to `eval` returns a string representing the location where `eval` was called. -- `isToplevel`: is this a top-level invocation, that is, is this the global object? -- `isEval`: does this call take place in code defined by a call to `eval`? -- `isNative`: is this call in native V8 code? -- `isConstructor`: is this a constructor call? - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/chromium-bidi/.browser b/node_modules/chromium-bidi/.browser deleted file mode 100644 index 6f8a904..0000000 --- a/node_modules/chromium-bidi/.browser +++ /dev/null @@ -1 +0,0 @@ -chrome@149.0.7826.0 \ No newline at end of file diff --git a/node_modules/chromium-bidi/LICENSE b/node_modules/chromium-bidi/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/node_modules/chromium-bidi/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/node_modules/chromium-bidi/README.md b/node_modules/chromium-bidi/README.md deleted file mode 100644 index d4cffe3..0000000 --- a/node_modules/chromium-bidi/README.md +++ /dev/null @@ -1,635 +0,0 @@ -# WebDriver BiDi for Chromium [![chromium-bidi on npm](https://img.shields.io/npm/v/chromium-bidi)](https://www.npmjs.com/package/chromium-bidi) - -## CI status - -![E2E Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/e2e.yml/badge.svg) -![Unit Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/unit.yml/badge.svg) -![WPT Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/wpt.yml/badge.svg) - -![Pre-commit](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/pre-commit.yml/badge.svg) - -This is an implementation of the -[WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) protocol with some -extensions (**BiDi+**) -for Chromium, implemented as a JavaScript layer translating between BiDi and CDP, -running inside a Chrome tab. - -Current status can be checked -at [WPT WebDriver BiDi status](https://wpt.fyi/results/webdriver/tests/bidi). - -## Performance Benchmarks - -The project continuously monitors the performance and overhead of the WebDriver BiDi implementation. - -- **Dashboard:** [Chromium-BiDi Performance Benchmarks](https://googlechromelabs.github.io/chromium-bidi/bench/) -- **Details:** Refer to [docs/benchmark.md](docs/benchmark.md) for detailed information about the benchmarking infrastructure, methodology, and statistical analysis. - -Note that performance data can be sensitive to CI environment fluctuations, especially on macOS. - -## BiDi+ - -**"BiDi+"** is an extension of the WebDriver BiDi protocol. In addition to [WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) it has: - -### Command `goog:cdp.sendCommand` - -```cddl -CdpSendCommandCommand = { - method: "goog:cdp.sendCommand", - params: CdpSendCommandParameters, -} - -CdpSendCommandParameters = { - method: text, - params: any, - session?: text, -} - -CdpSendCommandResult = { - result: any, - session: text, -} -``` - -The command runs the -described [CDP command](https://chromedevtools.github.io/devtools-protocol) -and returns the result. - -### Command `goog:cdp.getSession` - -```cddl -CdpGetSessionCommand = { - method: "goog:cdp.getSession", - params: CdpGetSessionParameters, -} - -CdpGetSessionParameters = { - context: BrowsingContext, -} - -CdpGetSessionResult = { - session: text, -} -``` - -The command returns the default CDP session for the selected browsing context. - -### Command `goog:cdp.resolveRealm` - -```cddl -CdpResolveRealmCommand = { - method: "goog:cdp.resolveRealm", - params: CdpResolveRealmParameters, -} - -CdpResolveRealmParameters = { - realm: Script.Realm, -} - -CdpResolveRealmResult = { - executionContextId: text, -} -``` - -The command returns resolves a BiDi realm to its CDP execution context ID. - -### Events `goog:cdp` - -```cddl -CdpEventReceivedEvent = { - method: "goog:cdp.", - params: CdpEventReceivedParameters, -} - -CdpEventReceivedParameters = { - event: text, - params: any, - session: text, -} -``` - -The event contains a CDP event. - -### Field `goog:channel` - -Each command can be extended with a `goog:channel`: - -```cddl -Command = { - id: js-uint, - "goog:channel"?: text, - CommandData, - Extensible, -} -``` - -If provided and non-empty string, the very same `goog:channel` is added to the response: - -```cddl -CommandResponse = { - id: js-uint, - "goog:channel"?: text, - result: ResultData, - Extensible, -} - -ErrorResponse = { - id: js-uint / null, - "goog:channel"?: text, - error: ErrorCode, - message: text, - ?stacktrace: text, - Extensible -} -``` - -When client uses -commands [`session.subscribe`](https://w3c.github.io/webdriver-bidi/#command-session-subscribe) -and [`session.unsubscribe`](https://w3c.github.io/webdriver-bidi/#command-session-unsubscribe) -with `goog:channel`, the subscriptions are handled per channel, and the corresponding -`goog:channel` filed is added to the event message: - -```cddl -Event = { - "goog:channel"?: text, - EventData, - Extensible, -} -``` - -## Dev Setup - -### `npm` - -This is a Node.js project, so install dependencies as usual: - -```sh -npm install -``` - -### `cargo` - - - -We use [cddlconv](https://github.com/google/cddlconv) to generate our WebDriverBiDi types before building. - -1. Install [Rust](https://rustup.rs/). -2. Run `cargo install --git https://github.com/google/cddlconv.git cddlconv` - -### pre-commit.com integration - -Refer to the documentation at [.pre-commit-config.yaml](.pre-commit-config.yaml). - -```sh -pre-commit install --hook-type pre-push -``` - -Re-installing pre-commit locally: - -``` -pre-commit clean && pip install pre-commit -``` - -### Starting WebDriver BiDi Server - -This will run the server on port `8080`: - -```sh -npm run server -``` - -Use the `PORT=` environment variable or `--port=` argument to run it on another port: - -```sh -PORT=8081 npm run server -npm run server -- --port=8081 -``` - -Use the `DEBUG` environment variable to see debug info: - -```sh -DEBUG=* npm run server -``` - -Use the `DEBUG_DEPTH` (default: `10`) environment variable to see debug deeply nested objects: - -```sh -DEBUG_DEPTH=100 DEBUG=* npm run server -``` - -Use the `CHANNEL=...` environment variable with one of the following values to run -the specific Chrome channel: `stable`, `beta`, `canary`, `dev`, `local`. Default is -`local`. The `local` channel means the pinned in `.browser` Chrome version will be -downloaded if it is not yet in cache. Otherwise, the requested Chrome version should -be installed. - -```sh -CHANNEL=dev npm run server -``` - -Use the CLI argument `--verbose` to have CDP events printed to the console. Note: you have to enable debugging output `bidi:mapper:debug:*` as well. - -```sh -DEBUG=bidi:mapper:debug:* npm run server -- --verbose -``` - -or - -```sh -DEBUG=* npm run server -- --verbose -``` - -### Starting on Linux and Mac - -TODO: verify it works on Windows. - -You can also run the server by using `npm run server`. It will write -output to the file `log.txt`: - -```sh -npm run server -- --port=8081 --headless=false -``` - -### Running with in other project - -Sometimes it good to verify that a change will not affect thing downstream for other packages. -There is a useful `puppeteer` label you can add to any PR to run Puppeteer test with your changes. -It will bundle `chromium-bidi` and install it in Puppeteer project then run that package test. - -## Running - -### Unit tests - -Running: - -```sh -npm run unit -``` - -### E2E tests - -The e2e tests serve the following purposes: - -1. Brief checks of the scenarios (the detailed check is done in WPT) -2. Test Chromium-specific behavior nuances -3. Add a simple setup for engaging the specific command - -The E2E tests are written using Python, in order to more-or-less align with the web-platform-tests. - -#### Installation - -Python 3.10+ and some dependencies are required: - -```sh -python -m pip install --user pipenv -pipenv install -``` - -#### Running - -The E2E tests require BiDi server running on the same host. By default, tests -try to connect to the port `8080`. The server can be run from the project root: - -```sh -npm run e2e # alias to to e2e:headless -npm run e2e:headful -npm run e2e:headless -``` - -This commands will run `./tools/run-e2e.mjs`, which will log the PyTest output to console, -Additionally the output is also recorded under `./logs/.e2e.log`, this will contain -both the PyTest logs and in the event of `FAILED` test all the Chromium-BiDi logs. - -If you need to see the logs for all test run the command with `VERBOSE=true`. - -Simply pass `npm run e2e -- tests/` and the e2e will run only the selected one. -You run a specific test by running `npm run e2e -- -k `. - -Use `CHROMEDRIVER` environment to run tests in `chromedriver` instead of NodeJS runner: - -```shell -CHROMEDRIVER=true npm run e2e -``` - -Use the `PORT` environment variable to connect to another port: - -```sh -PORT=8081 npm run e2e -``` - -Use the `HEADLESS` to run the tests in headless (new or old) or headful modes. -Values: `new`, `old`, `false`, default: `new`. - -```sh -HEADLESS=new npm run e2e -``` - -#### Updating snapshots - -```sh -npm run e2e -- --snapshot-update true -``` - -See https://github.com/tophat/syrupy for more information. - -### Local http server - -E2E tests use local http -server [`pytest-httpserver`](https://pytest-httpserver.readthedocs.io/), which is run -automatically with the tests. However, -sometimes it is useful to run the http server outside the test -case, for example for manual debugging. This can be done by running: - -```sh -pipenv run local_http_server -``` - -...or directly: - -```sh -python tests/tools/local_http_server.py -``` - -### Examples - -Refer to [examples/README.md](examples/README.md). - -## WPT (Web Platform Tests) - -WPT is added as -a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules). To get run -WPT tests: - -### Check out and setup WPT - -#### 1. Check out WPT - -```sh -git submodule update --init -``` - -#### 2. Go to the WPT folder - -```sh -cd wpt -``` - -#### 3. Set up virtualenv - -Follow the [_System -Setup_](https://web-platform-tests.org/running-tests/from-local-system.html#system-setup) -instructions. - -#### 4. Setup `hosts` file - -Follow -the [`hosts` File Setup](https://web-platform-tests.org/running-tests/from-local-system.html#hosts-file-setup) -instructions. - -##### 4.a On Linux, macOS or other UNIX-like system - -```sh -./wpt make-hosts-file | sudo tee -a /etc/hosts -``` - -##### 4.b On **Windows** - -This must be run in a PowerShell session with Administrator privileges: - -```sh -python wpt make-hosts-file | Out-File $env:SystemRoot\System32\drivers\etc\hosts -Encoding ascii -Append -``` - -If you are behind a proxy, you also need to make sure the domains above are excluded -from your proxy lookups. - -#### 5. Set `BROWSER_BIN` - -Set the `BROWSER_BIN` environment variable to a Chrome, Edge or Chromium binary to launch. -For example, on macOS: - -```sh -# Chrome -export BROWSER_BIN="/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" -export BROWSER_BIN="/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev" -export BROWSER_BIN="/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta" -export BROWSER_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" -export BROWSER_BIN="/Applications/Chromium.app/Contents/MacOS/Chromium" - -# Edge -export BROWSER_BIN="/Applications/Microsoft Edge Canary.app/Contents/MacOS/Microsoft Edge Canary" -export BROWSER_BIN="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge" -``` - -### Run WPT tests - -#### 1. Make sure you have Chrome Dev installed - -https://www.google.com/chrome/dev/ - -#### 2. Build Chromedriver BiDi - -Oneshot: - -```sh -npm run build -``` - -Continuously: - -```sh -npm run build --watch -``` - -#### 3. Run - -```sh -npm run wpt -- webdriver/tests/bidi/ -``` - -### Update WPT expectations if needed - -```sh -UPDATE_EXPECTATIONS=true npm run wpt -- webdriver/tests/bidi/ -``` - -## How does it work? - -The architecture is described in the -[WebDriver BiDi in Chrome Context implementation plan](https://docs.google.com/document/d/1VfQ9tv0wPSnb5TI-MOobjoQ5CXLnJJx9F_PxOMQc8kY) -. - -There are 2 main modules: - -1. backend WS server in `src`. It runs webSocket server, and for each ws connection - runs an instance of browser with BiDi Mapper. -2. front-end BiDi Mapper in `src/bidiMapper`. Gets BiDi commands from the backend, - and map them to CDP commands. - -## Contributing - -The BiDi commands are processed in the `src/bidiMapper/commandProcessor.ts`. To add a -new command, add it to `_processCommand`, write and call processor for it. - -### Publish new `npm` release - -#### Release branches - -`chromium-bidi` maintains release branches corresponding to Chrome releases. The -branches are named using the following pattern: `releases/m$MAJOR_VERSION`. - -The new release branch is created as soon a new major browser version is -published by the -[update-browser-version](https://github.com/GoogleChromeLabs/chromium-bidi/blob/main/.github/workflows/update-browser-version.yml) -job: - -- the PR created by this job should be marked as a feature and it should cause the - major package version to be bumped. -- once the browser version is bumped, the commit preceding the version bump - should be used to create a release branch for major version pinned before the bump. - -Changes that need to be cherry-picked into the release branch should be marked -as patches. Either major or minor version bumps are not allowed on the release -branch. - -Example workflow: - -```mermaid -gitGraph - commit id: "feat: featA" - commit id: "release: v0.5.0" - branch release/m129 - checkout main - commit id: "feat: roll Chrome to M130 from 129" - commit id: "release: v0.6.0" - commit id: "fix: for m129" - checkout release/m129 - cherry-pick id: "fix: for m129" - commit id: "release: v0.5.1 " -``` - -Currently, the releases from release branches are not automated. - -#### Automatic release - -We use [release-please](https://github.com/googleapis/release-please) to automate releases. When a release should be done, check for the release PR in our [pull requests](https://github.com/GoogleChromeLabs/chromium-bidi/pulls) and merge it. - -#### Manual release - -1. Dry-run - - ```sh - npm publish --dry-run - ``` - -1. Open a PR bumping the chromium-bidi version number in `package.json` for review: - - ```sh - npm version patch -m 'chore: Release v%s' --no-git-tag-version - ``` - - Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/). - -1. After the PR is reviewed, [create a GitHub release](https://github.com/GoogleChromeLabs/chromium-bidi/releases/new) specifying the tag name matching the bumped version. - Our CI then automatically publishes the new release to npm based on the tag name. - -#### Roll into Chromium - -This section assumes you already have a Chromium set-up locally, -and knowledge on [how to submit changes to the repo](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/contributing.md). -Otherwise submit an issue for a project maintainer. - -1. Create a new branch in chromium `src/`. -2. Update the mapper version: - -```shell -third_party/bidimapper/roll_bidimapper -``` - -3. Submit a CL with bug `42323268` ([link](https://crbug.com/42323268)). - -4. [Regenerate WPT expectations or baselines](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/run_web_platform_tests.md#test-expectations-and-baselines): - - 4.1. Trigger a build and test run: - - ```shell - third_party/blink/tools/blink_tool.py rebaseline-cl --build="linux-blink-rel" --verbose - ``` - - 4.2. Once the test completes on the builder, rerun that command to update the - baselines. Update test expectations if there are any crashes or timeouts. - Commit the changes (if any), and upload the new patch to the CL. - -5. Add appropriate reviewers or comment the CL link on the PR. - -## Adding new command - -Want to add a shiny new command to WebDriver BiDi for Chromium? Here's the playbook: - -### Prerequisites - -#### Specification - -The WebDriver BiDi [module](https://w3c.github.io/webdriver-bidi/#protocol-modules), [command](https://w3c.github.io/webdriver-bidi/#commands), or [event](https://w3c.github.io/webdriver-bidi/#events) must be specified either in the [WebDriver BiDi specification](https://w3c.github.io/webdriver-bidi) or as an extension in a separate specification (e.g., the [Permissions specification](https://www.w3.org/TR/permissions/#automation-webdriver-bidi)). The specification should include the command's type definitions in valid [CDDL](https://datatracker.ietf.org/doc/html/rfc8610) format. - -#### WPT wdspec tests - -You'll need tests to prove your command works as expected. These tests should be written using [WPT wdspec](https://web-platform-tests.org/writing-tests/wdspec.html) and submitted along with the spec itself. Don't forget to roll the WPT repo into the Mapper ([dependabot](https://github.com/GoogleChromeLabs/chromium-bidi/network/updates/10663151/jobs) can help, and you will likely need to tweak some expectations afterward). - -#### CDP implementation - -Make sure Chromium already has the CDP methods your command will rely on. - -### Update CDDL types - -1. If your command lives in a separate spec, add a link to that spec in the ["Build WebDriverBiDi types"](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/.github/workflows/update-bidi-types.yml#L27) GitHub action (check out the ["bluetooth" pull request](https://github.com/GoogleChromeLabs/chromium-bidi/pull/2585) for an example). -2. Run the ["Update WebdriverBiDi types"](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/update-bidi-types.yml) GitHub action. This will create a pull request with your new types. If you added a command, this PR will have a failing check complaining about a non-exhaustive switch statement: - > error: Switch is not exhaustive. Cases not matched: "{NEW_COMMAND_NAME}" @typescript-eslint/switch-exhaustiveness-check -3. Update the created pull request. Add your new command to [`CommandProcessor.#processCommand`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L140). For now, just have it throw an UnknownErrorException (see the [example](https://github.com/GoogleChromeLabs/chromium-bidi/pull/2647/files#diff-7f06ce28b8514fd75b759d217bff9f5a471b657bcf78bd893cc291c7945c1cacR169) for how to do this). - -```typescript -case '{NEW_COMMAND_NAME}': - throw new UnknownErrorException( - `Method ${command.method} is not implemented.`, - ); -``` - -4. Merge it! Standard PR process: create, review, merge. - -### Implement the new command - -[`CommandProcessor.#processCommand`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L140) handles parsing parameters and running your command. - -#### (only if the new command has non-empty parameters) parse command parameters - -If your command has parameters, update the [`BidiCommandParameterParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiParser.ts#L31) and implement the parsing logic in [`BidiNoOpParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiNoOpParser.ts#L209), [`BidiParser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiTab/BidiParser.ts#L182) and [`protocol-parser`](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/protocol-parser/protocol-parser.ts#L386). Look at the [example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/BidiParser.ts#L97) for guidance. - -#### Implement the new command - -Write the core logic for your command in the appropriate domain processor. Again, [example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/modules/permissions/PermissionsProcessor.ts#L32) is your friend. - -#### Call the module processor's method - -Call your new module processor method from `CommandProcessor.#processCommand`, passing in the parsed parameters. [Example](https://github.com/GoogleChromeLabs/chromium-bidi/blob/0f971303281aba1910786035facc5eb54a833232/src/bidiMapper/CommandProcessor.ts#L313). - -#### Add e2e tests - -Write end-to-end tests for your command, including the happy path and any edge cases that might trip things up. Focus on testing the code in the mapper. - -#### Update WPT expectations - -Your WPT tests will probably fail now. - -> Tests with unexpected results: PASS [expected FAIL] ... - -Update the expectations in a draft PR with the "update-expectations" label. This will trigger an automated PR "test: update the expectations for PR" that you'll need to merge to your branch. - -#### Merge it! - -Mark your PR as ready, get it reviewed, and merge it in. - -### Roll in ChromeDriver - -This bit usually involves the core devs: - -1. [Release](#automatic-release) your changes. -2. [Roll the changes into ChromeDriver](#roll-into-chromium). diff --git a/node_modules/chromium-bidi/lib/THIRD_PARTY_NOTICES b/node_modules/chromium-bidi/lib/THIRD_PARTY_NOTICES deleted file mode 100644 index 5c8cf5e..0000000 --- a/node_modules/chromium-bidi/lib/THIRD_PARTY_NOTICES +++ /dev/null @@ -1,56 +0,0 @@ -Name: mitt -URL: https://github.com/developit/mitt -Version: 3.0.1 -License: MIT - -MIT License - -Copyright (c) 2021 Jason Miller - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - --------------------- DEPENDENCY DIVIDER -------------------- - -Name: zod -URL: https://zod.dev -Version: 3.25.76 -License: MIT - -MIT License - -Copyright (c) 2025 Colin McDonnell - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.d.ts deleted file mode 100644 index 8520592..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @fileoverview The entry point to the BiDi Mapper namespace. - * Other modules should only access exports defined in this file. - * XXX: Add ESlint rule for this (https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md) - */ -export { BidiServer } from './BidiServer.js'; -export { MapperOptions } from './MapperOptions.js'; -export type { CdpConnection } from '../cdp/CdpConnection.js'; -export type { CdpClient } from '../cdp/CdpClient.js'; -export { EventEmitter } from '../utils/EventEmitter.js'; -export type { BidiTransport } from './BidiTransport.js'; -export { OutgoingMessage } from './OutgoingMessage.js'; -export type { BidiCommandParameterParser } from './BidiParser.js'; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js b/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js deleted file mode 100644 index 10f21ab..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * @fileoverview The entry point to the BiDi Mapper namespace. - * Other modules should only access exports defined in this file. - * XXX: Add ESlint rule for this (https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md) - */ -export { BidiServer } from './BidiServer.js'; -export { EventEmitter } from '../utils/EventEmitter.js'; -export { OutgoingMessage } from './OutgoingMessage.js'; -//# sourceMappingURL=BidiMapper.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js.map b/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js.map deleted file mode 100644 index aa38cd5..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiMapper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiMapper.js","sourceRoot":"","sources":["../../src/bidiMapper/BidiMapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAI3C,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.d.ts deleted file mode 100644 index 2015ace..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Browser, BrowsingContext, Cdp, Emulation, Input, Network, Script, Session, Storage, Permissions, Bluetooth, WebExtension, UAClientHints } from '../protocol/protocol.js'; -import type { BidiCommandParameterParser } from './BidiParser.js'; -export declare class BidiNoOpParser implements BidiCommandParameterParser { - parseDisableSimulationParameters(params: unknown): Bluetooth.DisableSimulationParameters; - parseHandleRequestDevicePromptParams(params: unknown): Bluetooth.HandleRequestDevicePromptParameters; - parseSimulateAdapterParameters(params: unknown): Bluetooth.SimulateAdapterParameters; - parseSimulateAdvertisementParameters(params: unknown): Bluetooth.SimulateAdvertisementParameters; - parseSimulateCharacteristicParameters(params: unknown): Bluetooth.SimulateCharacteristicParameters; - parseSimulateCharacteristicResponseParameters(params: unknown): Bluetooth.SimulateCharacteristicResponseParameters; - parseSimulateDescriptorParameters(params: unknown): Bluetooth.SimulateDescriptorParameters; - parseSimulateDescriptorResponseParameters(params: unknown): Bluetooth.SimulateDescriptorResponseParameters; - parseSimulateGattConnectionResponseParameters(params: unknown): Bluetooth.SimulateGattConnectionResponseParameters; - parseSimulateGattDisconnectionParameters(params: unknown): Bluetooth.SimulateGattDisconnectionParameters; - parseSimulatePreconnectedPeripheralParameters(params: unknown): Bluetooth.SimulatePreconnectedPeripheralParameters; - parseSimulateServiceParameters(params: unknown): Bluetooth.SimulateServiceParameters; - parseCreateUserContextParameters(params: unknown): Browser.CreateUserContextParameters; - parseRemoveUserContextParameters(params: unknown): Browser.RemoveUserContextParameters; - parseSetClientWindowStateParameters(params: unknown): Browser.SetClientWindowStateParameters; - parseSetDownloadBehaviorParameters(params: unknown): Browser.SetDownloadBehaviorParameters; - parseActivateParams(params: unknown): BrowsingContext.ActivateParameters; - parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters; - parseCloseParams(params: unknown): BrowsingContext.CloseParameters; - parseCreateParams(params: unknown): BrowsingContext.CreateParameters; - parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters; - parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters; - parseLocateNodesParams(params: unknown): BrowsingContext.LocateNodesParameters; - parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters; - parsePrintParams(params: unknown): BrowsingContext.PrintParameters; - parseReloadParams(params: unknown): BrowsingContext.ReloadParameters; - parseSetBypassCspParams(params: unknown): BrowsingContext.SetBypassCspParameters; - parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters; - parseTraverseHistoryParams(params: unknown): BrowsingContext.TraverseHistoryParameters; - parseGetSessionParams(params: unknown): Cdp.GetSessionParameters; - parseResolveRealmParams(params: unknown): Cdp.ResolveRealmParameters; - parseSendCommandParams(params: unknown): Cdp.SendCommandParameters; - parseSetClientHintsOverrideParams(params: unknown): UAClientHints.UserAgentClientHints.SetClientHintsOverrideCommand['params']; - parseSetForcedColorsModeThemeOverrideParams(params: unknown): Emulation.SetForcedColorsModeThemeOverrideParameters; - parseSetGeolocationOverrideParams(params: unknown): Emulation.SetGeolocationOverrideParameters; - parseSetLocaleOverrideParams(params: unknown): Emulation.SetLocaleOverrideParameters; - parseSetNetworkConditionsParams(params: unknown): Emulation.SetNetworkConditionsParameters; - parseSetScreenOrientationOverrideParams(params: unknown): Emulation.SetScreenOrientationOverrideParameters; - parseSetScreenSettingsOverrideParams(params: unknown): Emulation.SetScreenSettingsOverrideParameters; - parseSetScriptingEnabledParams(params: unknown): Emulation.SetScriptingEnabledParameters; - parseSetScrollbarTypeOverrideParams(params: unknown): Emulation.SetScrollbarTypeOverrideParameters; - parseSetTimezoneOverrideParams(params: unknown): Emulation.SetTimezoneOverrideParameters; - parseSetTouchOverrideParams(params: unknown): Emulation.SetTouchOverrideParameters; - parseSetUserAgentOverrideParams(params: unknown): Emulation.SetUserAgentOverrideParameters; - parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters; - parseCallFunctionParams(params: unknown): Script.CallFunctionParameters; - parseDisownParams(params: unknown): Script.DisownParameters; - parseEvaluateParams(params: unknown): Script.EvaluateParameters; - parseGetRealmsParams(params: unknown): Script.GetRealmsParameters; - parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters; - parsePerformActionsParams(params: unknown): Input.PerformActionsParameters; - parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters; - parseSetFilesParams(params: unknown): Input.SetFilesParameters; - parseAddDataCollectorParams(params: unknown): Network.AddDataCollectorParameters; - parseAddInterceptParams(params: unknown): Network.AddInterceptParameters; - parseContinueRequestParams(params: unknown): Network.ContinueRequestParameters; - parseContinueResponseParams(params: unknown): Network.ContinueResponseParameters; - parseContinueWithAuthParams(params: unknown): Network.ContinueWithAuthParameters; - parseDisownDataParams(params: unknown): Network.DisownDataParameters; - parseFailRequestParams(params: unknown): Network.FailRequestParameters; - parseGetDataParams(params: unknown): Network.GetDataParameters; - parseProvideResponseParams(params: unknown): Network.ProvideResponseParameters; - parseRemoveDataCollectorParams(params: unknown): Network.RemoveDataCollectorParameters; - parseRemoveInterceptParams(params: unknown): Network.RemoveInterceptParameters; - parseSetCacheBehaviorParams(params: unknown): Network.SetCacheBehaviorParameters; - parseSetExtraHeadersParams(params: unknown): Network.SetExtraHeadersParameters; - parseSetPermissionsParams(params: unknown): Permissions.SetPermissionParameters; - parseSubscribeParams(params: unknown): Session.SubscribeParameters; - parseUnsubscribeParams(params: unknown): Session.UnsubscribeByAttributesRequest | Session.UnsubscribeByIdRequest; - parseDeleteCookiesParams(params: unknown): Storage.DeleteCookiesParameters; - parseGetCookiesParams(params: unknown): Storage.GetCookiesParameters; - parseSetCookieParams(params: unknown): Storage.SetCookieParameters; - parseInstallParams(params: unknown): WebExtension.InstallParameters; - parseUninstallParams(params: unknown): WebExtension.UninstallParameters; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js b/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js deleted file mode 100644 index 27a9f3f..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js +++ /dev/null @@ -1,276 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export class BidiNoOpParser { - // Bluetooth module - // keep-sorted start block=yes - parseDisableSimulationParameters(params) { - return params; - } - parseHandleRequestDevicePromptParams(params) { - return params; - } - parseSimulateAdapterParameters(params) { - return params; - } - parseSimulateAdvertisementParameters(params) { - return params; - } - parseSimulateCharacteristicParameters(params) { - return params; - } - parseSimulateCharacteristicResponseParameters(params) { - return params; - } - parseSimulateDescriptorParameters(params) { - return params; - } - parseSimulateDescriptorResponseParameters(params) { - return params; - } - parseSimulateGattConnectionResponseParameters(params) { - return params; - } - parseSimulateGattDisconnectionParameters(params) { - return params; - } - parseSimulatePreconnectedPeripheralParameters(params) { - return params; - } - parseSimulateServiceParameters(params) { - return params; - } - // keep-sorted end - // Browser module - // keep-sorted start block=yes - parseCreateUserContextParameters(params) { - return params; - } - parseRemoveUserContextParameters(params) { - return params; - } - parseSetClientWindowStateParameters(params) { - return params; - } - parseSetDownloadBehaviorParameters(params) { - return params; - } - // keep-sorted end - // Browsing Context module - // keep-sorted start block=yes - parseActivateParams(params) { - return params; - } - parseCaptureScreenshotParams(params) { - return params; - } - parseCloseParams(params) { - return params; - } - parseCreateParams(params) { - return params; - } - parseGetTreeParams(params) { - return params; - } - parseHandleUserPromptParams(params) { - return params; - } - parseLocateNodesParams(params) { - return params; - } - parseNavigateParams(params) { - return params; - } - parsePrintParams(params) { - return params; - } - parseReloadParams(params) { - return params; - } - parseSetBypassCspParams(params) { - return params; - } - parseSetViewportParams(params) { - return params; - } - parseTraverseHistoryParams(params) { - return params; - } - // keep-sorted end - // CDP module - // keep-sorted start block=yes - parseGetSessionParams(params) { - return params; - } - parseResolveRealmParams(params) { - return params; - } - parseSendCommandParams(params) { - return params; - } - // keep-sorted end - // Emulation module - // keep-sorted start block=yes - parseSetClientHintsOverrideParams(params) { - return params; - } - parseSetForcedColorsModeThemeOverrideParams(params) { - return params; - } - parseSetGeolocationOverrideParams(params) { - return params; - } - parseSetLocaleOverrideParams(params) { - return params; - } - parseSetNetworkConditionsParams(params) { - return params; - } - parseSetScreenOrientationOverrideParams(params) { - return params; - } - parseSetScreenSettingsOverrideParams(params) { - return params; - } - parseSetScriptingEnabledParams(params) { - return params; - } - parseSetScrollbarTypeOverrideParams(params) { - return params; - } - parseSetTimezoneOverrideParams(params) { - return params; - } - parseSetTouchOverrideParams(params) { - return params; - } - parseSetUserAgentOverrideParams(params) { - return params; - } - // keep-sorted end - // Script module - // keep-sorted start block=yes - parseAddPreloadScriptParams(params) { - return params; - } - parseCallFunctionParams(params) { - return params; - } - parseDisownParams(params) { - return params; - } - parseEvaluateParams(params) { - return params; - } - parseGetRealmsParams(params) { - return params; - } - parseRemovePreloadScriptParams(params) { - return params; - } - // keep-sorted end - // Input module - // keep-sorted start block=yes - parsePerformActionsParams(params) { - return params; - } - parseReleaseActionsParams(params) { - return params; - } - parseSetFilesParams(params) { - return params; - } - // keep-sorted end - // Network module - // keep-sorted start block=yes - parseAddDataCollectorParams(params) { - return params; - } - parseAddInterceptParams(params) { - return params; - } - parseContinueRequestParams(params) { - return params; - } - parseContinueResponseParams(params) { - return params; - } - parseContinueWithAuthParams(params) { - return params; - } - parseDisownDataParams(params) { - return params; - } - parseFailRequestParams(params) { - return params; - } - parseGetDataParams(params) { - return params; - } - parseProvideResponseParams(params) { - return params; - } - parseRemoveDataCollectorParams(params) { - return params; - } - parseRemoveInterceptParams(params) { - return params; - } - parseSetCacheBehaviorParams(params) { - return params; - } - parseSetExtraHeadersParams(params) { - return params; - } - // keep-sorted end - // Permissions module - // keep-sorted start block=yes - parseSetPermissionsParams(params) { - return params; - } - // keep-sorted end - // Session module - // keep-sorted start block=yes - parseSubscribeParams(params) { - return params; - } - parseUnsubscribeParams(params) { - return params; - } - // keep-sorted end - // Storage module - // keep-sorted start block=yes - parseDeleteCookiesParams(params) { - return params; - } - parseGetCookiesParams(params) { - return params; - } - parseSetCookieParams(params) { - return params; - } - // keep-sorted end - // WebExtenstion module - // keep-sorted start block=yes - parseInstallParams(params) { - return params; - } - parseUninstallParams(params) { - return params; - } -} -//# sourceMappingURL=BidiNoOpParser.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js.map b/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js.map deleted file mode 100644 index 42afbf6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiNoOpParser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiNoOpParser.js","sourceRoot":"","sources":["../../src/bidiMapper/BidiNoOpParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.d.ts deleted file mode 100644 index ba1f5cb..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.d.ts +++ /dev/null @@ -1,93 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Bluetooth, Browser, BrowsingContext, Cdp, Emulation, Input, Network, Permissions, Script, Session, Storage, WebExtension, UAClientHints } from '../protocol/protocol.js'; -export interface BidiCommandParameterParser { - parseDisableSimulationParameters(params: unknown): Bluetooth.DisableSimulationParameters; - parseHandleRequestDevicePromptParams(params: unknown): Bluetooth.HandleRequestDevicePromptParameters; - parseSimulateAdapterParameters(params: unknown): Bluetooth.SimulateAdapterParameters; - parseSimulateAdvertisementParameters(params: unknown): Bluetooth.SimulateAdvertisementParameters; - parseSimulateCharacteristicParameters(params: unknown): Bluetooth.SimulateCharacteristicParameters; - parseSimulateCharacteristicResponseParameters(params: unknown): Bluetooth.SimulateCharacteristicResponseParameters; - parseSimulateDescriptorParameters(params: unknown): Bluetooth.SimulateDescriptorParameters; - parseSimulateDescriptorResponseParameters(params: unknown): Bluetooth.SimulateDescriptorResponseParameters; - parseSimulateGattConnectionResponseParameters(params: unknown): Bluetooth.SimulateGattConnectionResponseParameters; - parseSimulateGattDisconnectionParameters(params: unknown): Bluetooth.SimulateGattDisconnectionParameters; - parseSimulatePreconnectedPeripheralParameters(params: unknown): Bluetooth.SimulatePreconnectedPeripheralParameters; - parseSimulateServiceParameters(params: unknown): Bluetooth.SimulateServiceParameters; - parseCreateUserContextParameters(params: unknown): Browser.CreateUserContextParameters; - parseRemoveUserContextParameters(params: unknown): Browser.RemoveUserContextParameters; - parseSetClientWindowStateParameters(params: unknown): Browser.SetClientWindowStateParameters; - parseSetDownloadBehaviorParameters(params: unknown): Browser.SetDownloadBehaviorParameters; - parseActivateParams(params: unknown): BrowsingContext.ActivateParameters; - parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters; - parseCloseParams(params: unknown): BrowsingContext.CloseParameters; - parseCreateParams(params: unknown): BrowsingContext.CreateParameters; - parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters; - parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters; - parseLocateNodesParams(params: unknown): BrowsingContext.LocateNodesParameters; - parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters; - parsePrintParams(params: unknown): BrowsingContext.PrintParameters; - parseReloadParams(params: unknown): BrowsingContext.ReloadParameters; - parseSetBypassCspParams(params: unknown): BrowsingContext.SetBypassCspParameters; - parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters; - parseTraverseHistoryParams(params: unknown): BrowsingContext.TraverseHistoryParameters; - parseGetSessionParams(params: unknown): Cdp.GetSessionParameters; - parseResolveRealmParams(params: unknown): Cdp.ResolveRealmParameters; - parseSendCommandParams(params: unknown): Cdp.SendCommandParameters; - parseSetClientHintsOverrideParams(params: unknown): UAClientHints.UserAgentClientHints.SetClientHintsOverrideCommand['params']; - parseSetForcedColorsModeThemeOverrideParams(params: unknown): Emulation.SetForcedColorsModeThemeOverrideParameters; - parseSetGeolocationOverrideParams(params: unknown): Emulation.SetGeolocationOverrideParameters; - parseSetLocaleOverrideParams(params: unknown): Emulation.SetLocaleOverrideParameters; - parseSetNetworkConditionsParams(params: unknown): Emulation.SetNetworkConditionsParameters; - parseSetScreenOrientationOverrideParams(params: unknown): Emulation.SetScreenOrientationOverrideParameters; - parseSetScreenSettingsOverrideParams(params: unknown): Emulation.SetScreenSettingsOverrideParameters; - parseSetScriptingEnabledParams(params: unknown): Emulation.SetScriptingEnabledParameters; - parseSetScrollbarTypeOverrideParams(params: unknown): Emulation.SetScrollbarTypeOverrideParameters; - parseSetTimezoneOverrideParams(params: unknown): Emulation.SetTimezoneOverrideParameters; - parseSetTouchOverrideParams(params: unknown): Emulation.SetTouchOverrideParameters; - parseSetUserAgentOverrideParams(params: unknown): Emulation.SetUserAgentOverrideParameters; - parsePerformActionsParams(params: unknown): Input.PerformActionsParameters; - parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters; - parseSetFilesParams(params: unknown): Input.SetFilesParameters; - parseSetPermissionsParams(params: unknown): Permissions.SetPermissionParameters; - parseAddDataCollectorParams(params: unknown): Network.AddDataCollectorParameters; - parseAddInterceptParams(params: unknown): Network.AddInterceptParameters; - parseContinueRequestParams(params: unknown): Network.ContinueRequestParameters; - parseContinueResponseParams(params: unknown): Network.ContinueResponseParameters; - parseContinueWithAuthParams(params: unknown): Network.ContinueWithAuthParameters; - parseDisownDataParams(params: unknown): Network.DisownDataParameters; - parseFailRequestParams(params: unknown): Network.FailRequestParameters; - parseGetDataParams(params: unknown): Network.GetDataParameters; - parseProvideResponseParams(params: unknown): Network.ProvideResponseParameters; - parseRemoveDataCollectorParams(params: unknown): Network.RemoveDataCollectorParameters; - parseRemoveInterceptParams(params: unknown): Network.RemoveInterceptParameters; - parseSetCacheBehaviorParams(params: unknown): Network.SetCacheBehaviorParameters; - parseSetExtraHeadersParams(params: unknown): Network.SetExtraHeadersParameters; - parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters; - parseCallFunctionParams(params: unknown): Script.CallFunctionParameters; - parseDisownParams(params: unknown): Script.DisownParameters; - parseEvaluateParams(params: unknown): Script.EvaluateParameters; - parseGetRealmsParams(params: unknown): Script.GetRealmsParameters; - parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters; - parseSubscribeParams(params: unknown): Session.SubscribeParameters; - parseUnsubscribeParams(params: unknown): Session.UnsubscribeParameters; - parseDeleteCookiesParams(params: unknown): Storage.DeleteCookiesParameters; - parseGetCookiesParams(params: unknown): Storage.GetCookiesParameters; - parseSetCookieParams(params: unknown): Storage.SetCookieParameters; - parseInstallParams(params: unknown): WebExtension.InstallParameters; - parseUninstallParams(params: unknown): WebExtension.UninstallParameters; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js b/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js deleted file mode 100644 index 9a65f9a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=BidiParser.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js.map b/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js.map deleted file mode 100644 index 5ef2e1d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiParser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiParser.js","sourceRoot":"","sources":["../../src/bidiMapper/BidiParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.d.ts deleted file mode 100644 index de23cdf..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../cdp/CdpClient.js'; -import type { CdpConnection } from '../cdp/CdpConnection.js'; -import type { ChromiumBidi } from '../protocol/protocol.js'; -import { EventEmitter } from '../utils/EventEmitter.js'; -import { type LoggerFn } from '../utils/log.js'; -import type { Result } from '../utils/result.js'; -import type { BidiCommandParameterParser } from './BidiParser.js'; -import type { BidiTransport } from './BidiTransport.js'; -import type { OutgoingMessage } from './OutgoingMessage.js'; -interface BidiServerEvent extends Record { - message: ChromiumBidi.Command; -} -export declare class BidiServer extends EventEmitter { - #private; - private constructor(); - /** - * Creates and starts BiDi Mapper instance. - */ - static createAndStart(bidiTransport: BidiTransport, cdpConnection: CdpConnection, browserCdpClient: CdpClient, selfTargetId: string, parser?: BidiCommandParameterParser, logger?: LoggerFn): Promise; - /** - * Sends BiDi message. - */ - emitOutgoingMessage(messageEntry: Promise>, event: string): void; - close(): void; -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js b/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js deleted file mode 100644 index f921637..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js +++ /dev/null @@ -1,165 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { EventEmitter } from '../utils/EventEmitter.js'; -import { LogType } from '../utils/log.js'; -import { ProcessingQueue } from '../utils/ProcessingQueue.js'; -import { CommandProcessor } from './CommandProcessor.js'; -import { BluetoothProcessor } from './modules/bluetooth/BluetoothProcessor.js'; -import { ContextConfigStorage } from './modules/browser/ContextConfigStorage.js'; -import { UserContextStorage } from './modules/browser/UserContextStorage.js'; -import { CdpTargetManager } from './modules/cdp/CdpTargetManager.js'; -import { BrowsingContextStorage } from './modules/context/BrowsingContextStorage.js'; -import { NetworkStorage } from './modules/network/NetworkStorage.js'; -import { PreloadScriptStorage } from './modules/script/PreloadScriptStorage.js'; -import { RealmStorage } from './modules/script/RealmStorage.js'; -import { EventManager, } from './modules/session/EventManager.js'; -import { SpeculationProcessor } from './modules/speculation/SpeculationProcessor.js'; -export class BidiServer extends EventEmitter { - #messageQueue; - #transport; - #commandProcessor; - #eventManager; - #browsingContextStorage = new BrowsingContextStorage(); - #realmStorage = new RealmStorage(); - #preloadScriptStorage = new PreloadScriptStorage(); - #bluetoothProcessor; - #speculationProcessor; - #logger; - #handleIncomingMessage = (message) => { - void this.#commandProcessor.processCommand(message).catch((error) => { - this.#logger?.(LogType.debugError, error); - }); - }; - #processOutgoingMessage = async (messageEntry) => { - const message = messageEntry.message; - if (messageEntry.googChannel !== null) { - message['goog:channel'] = messageEntry.googChannel; - } - await this.#transport.sendMessage(message); - }; - constructor(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, defaultUserAgent, parser, logger) { - super(); - this.#logger = logger; - this.#messageQueue = new ProcessingQueue(this.#processOutgoingMessage, this.#logger); - this.#transport = bidiTransport; - this.#transport.setOnMessage(this.#handleIncomingMessage); - const contextConfigStorage = new ContextConfigStorage(); - const userContextStorage = new UserContextStorage(browserCdpClient); - this.#eventManager = new EventManager(this.#browsingContextStorage, userContextStorage); - const networkStorage = new NetworkStorage(this.#eventManager, this.#browsingContextStorage, browserCdpClient, logger); - this.#bluetoothProcessor = new BluetoothProcessor(this.#eventManager, this.#browsingContextStorage); - this.#speculationProcessor = new SpeculationProcessor(this.#eventManager, this.#logger); - this.#commandProcessor = new CommandProcessor(cdpConnection, browserCdpClient, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#preloadScriptStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, userContextStorage, parser, async (options) => { - // This is required to ignore certificate errors when service worker is fetched. - await browserCdpClient.sendCommand('Security.setIgnoreCertificateErrors', { - ignore: options.acceptInsecureCerts ?? false, - }); - contextConfigStorage.updateGlobalConfig({ - acceptInsecureCerts: options.acceptInsecureCerts ?? false, - userPromptHandler: options.unhandledPromptBehavior, - prerenderingDisabled: options?.['goog:prerenderingDisabled'] ?? false, - disableNetworkDurableMessages: options?.['goog:disableNetworkDurableMessages'], - }); - new CdpTargetManager(cdpConnection, browserCdpClient, selfTargetId, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, networkStorage, contextConfigStorage, this.#bluetoothProcessor, this.#speculationProcessor, this.#preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger); - // Needed to get events about new targets. - await browserCdpClient.sendCommand('Target.setDiscoverTargets', { - discover: true, - }); - // Needed to automatically attach to new targets. - await browserCdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - // Browser session should attach to tab instead of the page, so that - // prerendering is not blocked. - filter: [ - { - type: 'page', - exclude: true, - }, - {}, - ], - }); - await this.#topLevelContextsLoaded(); - }, this.#logger); - this.#eventManager.on("event" /* EventManagerEvents.Event */, ({ message, event }) => { - this.emitOutgoingMessage(message, event); - }); - this.#commandProcessor.on("response" /* CommandProcessorEvents.Response */, ({ message, event }) => { - this.emitOutgoingMessage(message, event); - }); - } - /** - * Creates and starts BiDi Mapper instance. - */ - static async createAndStart(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, parser, logger) { - const [defaultUserContextId, version] = await Promise.all([ - this.#getDefaultUserContextId(browserCdpClient), - // Fetch the default User Agent to be used in `CdpTarget`. This allows to avoid - // round trips to the browser for every target override. - browserCdpClient.sendCommand('Browser.getVersion'), - // Required for `Browser.downloadWillBegin` events. - browserCdpClient.sendCommand('Browser.setDownloadBehavior', { - behavior: 'default', - eventsEnabled: true, - }), - ]); - const server = new BidiServer(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, version.userAgent, parser, logger); - return server; - } - static async #getDefaultUserContextId(browserCdpClient) { - // In chromium before `145.0.7578.0`, the default context is not exposed in - // `Target.getBrowserContexts`, but can be observed via `Target.getTargets`. - // If so, try to determine the default browser context by checking which one - // is mentioned in `Target.getTargets` and not in - // `Target.getBrowserContexts`. - // TODO(after 2026-02-24): rely only on `defaultBrowserContextId` from - // `Target.getBrowserContexts` after Chromium 145 reaches stable. - const [{ defaultBrowserContextId, browserContextIds }, { targetInfos }] = await Promise.all([ - browserCdpClient.sendCommand('Target.getBrowserContexts'), - browserCdpClient.sendCommand('Target.getTargets'), - ]); - if (defaultBrowserContextId) { - return defaultBrowserContextId; - } - for (const info of targetInfos) { - if (info.browserContextId && - !browserContextIds.includes(info.browserContextId)) { - // The target belongs to a browser context that is not mentioned in - // `Target.getBrowserContexts`. This is the default browser context. - return info.browserContextId; - } - } - // The browser context is unknown. - return 'default'; - } - /** - * Sends BiDi message. - */ - emitOutgoingMessage(messageEntry, event) { - this.#messageQueue.add(messageEntry, event); - } - close() { - this.#transport.close(); - } - async #topLevelContextsLoaded() { - await Promise.all(this.#browsingContextStorage - .getTopLevelContexts() - .map((c) => c.lifecycleLoaded())); - } -} -//# sourceMappingURL=BidiServer.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js.map b/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js.map deleted file mode 100644 index 3643714..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiServer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.d.ts deleted file mode 100644 index 6824b83..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { ChromiumBidi } from '../protocol/protocol.js'; -export interface BidiTransport { - setOnMessage: (handler: (message: ChromiumBidi.Command) => Promise | void) => void; - sendMessage: (message: ChromiumBidi.Message) => Promise | void; - close(): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js b/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js deleted file mode 100644 index bf8f5e7..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=BidiTransport.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js.map b/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js.map deleted file mode 100644 index 387b68a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/BidiTransport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiTransport.js","sourceRoot":"","sources":["../../src/bidiMapper/BidiTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.d.ts deleted file mode 100644 index e8a3471..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../cdp/CdpClient.js'; -import type { CdpConnection } from '../cdp/CdpConnection.js'; -import { type ChromiumBidi } from '../protocol/protocol.js'; -import { EventEmitter } from '../utils/EventEmitter.js'; -import { type LoggerFn } from '../utils/log.js'; -import type { Result } from '../utils/result.js'; -import type { BidiCommandParameterParser } from './BidiParser.js'; -import type { MapperOptions } from './MapperOptions.js'; -import type { BluetoothProcessor } from './modules/bluetooth/BluetoothProcessor.js'; -import type { ContextConfigStorage } from './modules/browser/ContextConfigStorage.js'; -import type { UserContextStorage } from './modules/browser/UserContextStorage.js'; -import type { BrowsingContextStorage } from './modules/context/BrowsingContextStorage.js'; -import type { NetworkStorage } from './modules/network/NetworkStorage.js'; -import type { PreloadScriptStorage } from './modules/script/PreloadScriptStorage.js'; -import type { RealmStorage } from './modules/script/RealmStorage.js'; -import type { EventManager } from './modules/session/EventManager.js'; -import { OutgoingMessage } from './OutgoingMessage.js'; -export declare const enum CommandProcessorEvents { - Response = "response" -} -interface CommandProcessorEventsMap extends Record { - [CommandProcessorEvents.Response]: { - message: Promise>; - event: string; - }; -} -export declare class CommandProcessor extends EventEmitter { - #private; - constructor(cdpConnection: CdpConnection, browserCdpClient: CdpClient, eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage, networkStorage: NetworkStorage, contextConfigStorage: ContextConfigStorage, bluetoothProcessor: BluetoothProcessor, userContextStorage: UserContextStorage, parser: BidiCommandParameterParser | undefined, initConnection: (options: MapperOptions) => Promise, logger?: LoggerFn); - processCommand(command: ChromiumBidi.Command): Promise; -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js deleted file mode 100644 index be403f1..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js +++ /dev/null @@ -1,327 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Exception, UnknownCommandException, UnknownErrorException, NoSuchFrameException, UnsupportedOperationException, } from '../protocol/protocol.js'; -import { EventEmitter } from '../utils/EventEmitter.js'; -import { LogType } from '../utils/log.js'; -import { BidiNoOpParser } from './BidiNoOpParser.js'; -import { BrowserProcessor } from './modules/browser/BrowserProcessor.js'; -import { CdpProcessor } from './modules/cdp/CdpProcessor.js'; -import { BrowsingContextProcessor } from './modules/context/BrowsingContextProcessor.js'; -import { EmulationProcessor } from './modules/emulation/EmulationProcessor.js'; -import { InputProcessor } from './modules/input/InputProcessor.js'; -import { NetworkProcessor } from './modules/network/NetworkProcessor.js'; -import { PermissionsProcessor } from './modules/permissions/PermissionsProcessor.js'; -import { ScriptProcessor } from './modules/script/ScriptProcessor.js'; -import { SessionProcessor } from './modules/session/SessionProcessor.js'; -import { StorageProcessor } from './modules/storage/StorageProcessor.js'; -import { WebExtensionProcessor } from './modules/webExtension/WebExtensionProcessor.js'; -import { OutgoingMessage } from './OutgoingMessage.js'; -export class CommandProcessor extends EventEmitter { - // keep-sorted start - #bluetoothProcessor; - #browserCdpClient; - #browserProcessor; - #browsingContextProcessor; - #cdpProcessor; - #emulationProcessor; - #inputProcessor; - #networkProcessor; - #permissionsProcessor; - #scriptProcessor; - #sessionProcessor; - #storageProcessor; - #webExtensionProcessor; - // keep-sorted end - #parser; - #logger; - constructor(cdpConnection, browserCdpClient, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, networkStorage, contextConfigStorage, bluetoothProcessor, userContextStorage, parser = new BidiNoOpParser(), initConnection, logger) { - super(); - this.#browserCdpClient = browserCdpClient; - this.#parser = parser; - this.#logger = logger; - this.#bluetoothProcessor = bluetoothProcessor; - // keep-sorted start block=yes - this.#browserProcessor = new BrowserProcessor(browserCdpClient, browsingContextStorage, contextConfigStorage, userContextStorage); - this.#browsingContextProcessor = new BrowsingContextProcessor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager); - this.#cdpProcessor = new CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient); - this.#emulationProcessor = new EmulationProcessor(browsingContextStorage, userContextStorage, contextConfigStorage); - this.#inputProcessor = new InputProcessor(browsingContextStorage); - this.#networkProcessor = new NetworkProcessor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage); - this.#permissionsProcessor = new PermissionsProcessor(browserCdpClient); - this.#scriptProcessor = new ScriptProcessor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger); - this.#sessionProcessor = new SessionProcessor(eventManager, browserCdpClient, initConnection); - this.#storageProcessor = new StorageProcessor(browserCdpClient, browsingContextStorage, logger); - this.#webExtensionProcessor = new WebExtensionProcessor(browserCdpClient); - // keep-sorted end - } - async #processCommand(command) { - switch (command.method) { - // Bluetooth module - // keep-sorted start block=yes - case 'bluetooth.disableSimulation': - return await this.#bluetoothProcessor.disableSimulation(this.#parser.parseDisableSimulationParameters(command.params)); - case 'bluetooth.handleRequestDevicePrompt': - return await this.#bluetoothProcessor.handleRequestDevicePrompt(this.#parser.parseHandleRequestDevicePromptParams(command.params)); - case 'bluetooth.simulateAdapter': - return await this.#bluetoothProcessor.simulateAdapter(this.#parser.parseSimulateAdapterParameters(command.params)); - case 'bluetooth.simulateAdvertisement': - return await this.#bluetoothProcessor.simulateAdvertisement(this.#parser.parseSimulateAdvertisementParameters(command.params)); - case 'bluetooth.simulateCharacteristic': - return await this.#bluetoothProcessor.simulateCharacteristic(this.#parser.parseSimulateCharacteristicParameters(command.params)); - case 'bluetooth.simulateCharacteristicResponse': - return await this.#bluetoothProcessor.simulateCharacteristicResponse(this.#parser.parseSimulateCharacteristicResponseParameters(command.params)); - case 'bluetooth.simulateDescriptor': - return await this.#bluetoothProcessor.simulateDescriptor(this.#parser.parseSimulateDescriptorParameters(command.params)); - case 'bluetooth.simulateDescriptorResponse': - return await this.#bluetoothProcessor.simulateDescriptorResponse(this.#parser.parseSimulateDescriptorResponseParameters(command.params)); - case 'bluetooth.simulateGattConnectionResponse': - return await this.#bluetoothProcessor.simulateGattConnectionResponse(this.#parser.parseSimulateGattConnectionResponseParameters(command.params)); - case 'bluetooth.simulateGattDisconnection': - return await this.#bluetoothProcessor.simulateGattDisconnection(this.#parser.parseSimulateGattDisconnectionParameters(command.params)); - case 'bluetooth.simulatePreconnectedPeripheral': - return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(this.#parser.parseSimulatePreconnectedPeripheralParameters(command.params)); - case 'bluetooth.simulateService': - return await this.#bluetoothProcessor.simulateService(this.#parser.parseSimulateServiceParameters(command.params)); - // keep-sorted end - // Browser module - // keep-sorted start block=yes - case 'browser.close': - return this.#browserProcessor.close(); - case 'browser.createUserContext': - return await this.#browserProcessor.createUserContext(this.#parser.parseCreateUserContextParameters(command.params)); - case 'browser.getClientWindows': - return await this.#browserProcessor.getClientWindows(); - case 'browser.getUserContexts': - return await this.#browserProcessor.getUserContexts(); - case 'browser.removeUserContext': - return await this.#browserProcessor.removeUserContext(this.#parser.parseRemoveUserContextParameters(command.params)); - case 'browser.setClientWindowState': - return await this.#browserProcessor.setClientWindowState(this.#parser.parseSetClientWindowStateParameters(command.params)); - case 'browser.setDownloadBehavior': - return await this.#browserProcessor.setDownloadBehavior(this.#parser.parseSetDownloadBehaviorParameters(command.params)); - // keep-sorted end - // Browsing Context module - // keep-sorted start block=yes - case 'browsingContext.activate': - return await this.#browsingContextProcessor.activate(this.#parser.parseActivateParams(command.params)); - case 'browsingContext.captureScreenshot': - return await this.#browsingContextProcessor.captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params)); - case 'browsingContext.close': - return await this.#browsingContextProcessor.close(this.#parser.parseCloseParams(command.params)); - case 'browsingContext.create': - return await this.#browsingContextProcessor.create(this.#parser.parseCreateParams(command.params)); - case 'browsingContext.getTree': - return this.#browsingContextProcessor.getTree(this.#parser.parseGetTreeParams(command.params)); - case 'browsingContext.handleUserPrompt': - return await this.#browsingContextProcessor.handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params)); - case 'browsingContext.locateNodes': - return await this.#browsingContextProcessor.locateNodes(this.#parser.parseLocateNodesParams(command.params)); - case 'browsingContext.navigate': - return await this.#browsingContextProcessor.navigate(this.#parser.parseNavigateParams(command.params)); - case 'browsingContext.print': - return await this.#browsingContextProcessor.print(this.#parser.parsePrintParams(command.params)); - case 'browsingContext.reload': - return await this.#browsingContextProcessor.reload(this.#parser.parseReloadParams(command.params)); - case 'browsingContext.setBypassCSP': - this.#parser.parseSetBypassCspParams(command.params); - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'browsingContext.setViewport': - return await this.#browsingContextProcessor.setViewport(this.#parser.parseSetViewportParams(command.params)); - case 'browsingContext.traverseHistory': - return await this.#browsingContextProcessor.traverseHistory(this.#parser.parseTraverseHistoryParams(command.params)); - // keep-sorted end - // CDP module - // keep-sorted start block=yes - case 'goog:cdp.getSession': - return this.#cdpProcessor.getSession(this.#parser.parseGetSessionParams(command.params)); - case 'goog:cdp.resolveRealm': - return this.#cdpProcessor.resolveRealm(this.#parser.parseResolveRealmParams(command.params)); - case 'goog:cdp.sendCommand': - return await this.#cdpProcessor.sendCommand(this.#parser.parseSendCommandParams(command.params)); - // keep-sorted end - // Emulation module - // keep-sorted start block=yes - case 'emulation.setForcedColorsModeThemeOverride': - this.#parser.parseSetForcedColorsModeThemeOverrideParams(command.params); - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'emulation.setGeolocationOverride': - return await this.#emulationProcessor.setGeolocationOverride(this.#parser.parseSetGeolocationOverrideParams(command.params)); - case 'emulation.setLocaleOverride': - return await this.#emulationProcessor.setLocaleOverride(this.#parser.parseSetLocaleOverrideParams(command.params)); - case 'emulation.setNetworkConditions': - return await this.#emulationProcessor.setNetworkConditions(this.#parser.parseSetNetworkConditionsParams(command.params)); - case 'emulation.setScreenOrientationOverride': - return await this.#emulationProcessor.setScreenOrientationOverride(this.#parser.parseSetScreenOrientationOverrideParams(command.params)); - case 'emulation.setScreenSettingsOverride': - return await this.#emulationProcessor.setScreenSettingsOverride(this.#parser.parseSetScreenSettingsOverrideParams(command.params)); - case 'emulation.setScriptingEnabled': - return await this.#emulationProcessor.setScriptingEnabled(this.#parser.parseSetScriptingEnabledParams(command.params)); - case 'emulation.setScrollbarTypeOverride': - return await this.#emulationProcessor.setScrollbarTypeOverride(this.#parser.parseSetScrollbarTypeOverrideParams(command.params)); - case 'emulation.setTimezoneOverride': - return await this.#emulationProcessor.setTimezoneOverride(this.#parser.parseSetTimezoneOverrideParams(command.params)); - case 'emulation.setTouchOverride': - return await this.#emulationProcessor.setTouchOverride(this.#parser.parseSetTouchOverrideParams(command.params)); - case 'emulation.setUserAgentOverride': - return await this.#emulationProcessor.setUserAgentOverrideParams(this.#parser.parseSetUserAgentOverrideParams(command.params)); - case 'userAgentClientHints.setClientHintsOverride': - return await this.#emulationProcessor.setClientHintsOverride(this.#parser.parseSetClientHintsOverrideParams(command.params)); - // keep-sorted end - // Input module - // keep-sorted start block=yes - case 'input.performActions': - return await this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params)); - case 'input.releaseActions': - return await this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params)); - case 'input.setFiles': - return await this.#inputProcessor.setFiles(this.#parser.parseSetFilesParams(command.params)); - // keep-sorted end - // Network module - // keep-sorted start block=yes - case 'network.addDataCollector': - return await this.#networkProcessor.addDataCollector(this.#parser.parseAddDataCollectorParams(command.params)); - case 'network.addIntercept': - return await this.#networkProcessor.addIntercept(this.#parser.parseAddInterceptParams(command.params)); - case 'network.continueRequest': - return await this.#networkProcessor.continueRequest(this.#parser.parseContinueRequestParams(command.params)); - case 'network.continueResponse': - return await this.#networkProcessor.continueResponse(this.#parser.parseContinueResponseParams(command.params)); - case 'network.continueWithAuth': - return await this.#networkProcessor.continueWithAuth(this.#parser.parseContinueWithAuthParams(command.params)); - case 'network.disownData': - return this.#networkProcessor.disownData(this.#parser.parseDisownDataParams(command.params)); - case 'network.failRequest': - return await this.#networkProcessor.failRequest(this.#parser.parseFailRequestParams(command.params)); - case 'network.getData': - return await this.#networkProcessor.getData(this.#parser.parseGetDataParams(command.params)); - case 'network.provideResponse': - return await this.#networkProcessor.provideResponse(this.#parser.parseProvideResponseParams(command.params)); - case 'network.removeDataCollector': - return await this.#networkProcessor.removeDataCollector(this.#parser.parseRemoveDataCollectorParams(command.params)); - case 'network.removeIntercept': - return await this.#networkProcessor.removeIntercept(this.#parser.parseRemoveInterceptParams(command.params)); - case 'network.setCacheBehavior': - return await this.#networkProcessor.setCacheBehavior(this.#parser.parseSetCacheBehaviorParams(command.params)); - case 'network.setExtraHeaders': - return await this.#networkProcessor.setExtraHeaders(this.#parser.parseSetExtraHeadersParams(command.params)); - // keep-sorted end - // Permissions module - // keep-sorted start block=yes - case 'permissions.setPermission': - return await this.#permissionsProcessor.setPermissions(this.#parser.parseSetPermissionsParams(command.params)); - // keep-sorted end - // Script module - // keep-sorted start block=yes - case 'script.addPreloadScript': - return await this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params)); - case 'script.callFunction': - return await this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(this.#processTargetParams(command.params))); - case 'script.disown': - return await this.#scriptProcessor.disown(this.#parser.parseDisownParams(this.#processTargetParams(command.params))); - case 'script.evaluate': - return await this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(this.#processTargetParams(command.params))); - case 'script.getRealms': - return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params)); - case 'script.removePreloadScript': - return await this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params)); - // keep-sorted end - // Session module - // keep-sorted start block=yes - case 'session.end': - throw new UnsupportedOperationException(`Method ${command.method} is not implemented.`); - case 'session.new': - return await this.#sessionProcessor.new(command.params); - case 'session.status': - return this.#sessionProcessor.status(); - case 'session.subscribe': - return await this.#sessionProcessor.subscribe(this.#parser.parseSubscribeParams(command.params), command['goog:channel']); - case 'session.unsubscribe': - return await this.#sessionProcessor.unsubscribe(this.#parser.parseUnsubscribeParams(command.params), command['goog:channel']); - // keep-sorted end - // Storage module - // keep-sorted start block=yes - case 'storage.deleteCookies': - return await this.#storageProcessor.deleteCookies(this.#parser.parseDeleteCookiesParams(command.params)); - case 'storage.getCookies': - return await this.#storageProcessor.getCookies(this.#parser.parseGetCookiesParams(command.params)); - case 'storage.setCookie': - return await this.#storageProcessor.setCookie(this.#parser.parseSetCookieParams(command.params)); - // keep-sorted end - // WebExtension module - // keep-sorted start block=yes - case 'webExtension.install': - return await this.#webExtensionProcessor.install(this.#parser.parseInstallParams(command.params)); - case 'webExtension.uninstall': - return await this.#webExtensionProcessor.uninstall(this.#parser.parseUninstallParams(command.params)); - // keep-sorted end - } - // Intentionally kept outside the switch statement to ensure that - // ESLint @typescript-eslint/switch-exhaustiveness-check triggers if a new - // command is added. - throw new UnknownCommandException(`Unknown command '${command?.method}'.`); - } - // Workaround for as zod.union always take the first schema - // https://github.com/w3c/webdriver-bidi/issues/635 - #processTargetParams(params) { - if (typeof params === 'object' && - params && - 'target' in params && - typeof params.target === 'object' && - params.target && - 'context' in params.target) { - delete params.target['realm']; - } - return params; - } - async processCommand(command) { - try { - const result = await this.#processCommand(command); - const response = { - type: 'success', - id: command.id, - result, - }; - this.emit("response" /* CommandProcessorEvents.Response */, { - message: OutgoingMessage.createResolved(response, command['goog:channel']), - event: command.method, - }); - } - catch (e) { - if (e instanceof Exception) { - this.emit("response" /* CommandProcessorEvents.Response */, { - message: OutgoingMessage.createResolved(e.toErrorResponse(command.id), command['goog:channel']), - event: command.method, - }); - } - else { - const error = e; - this.#logger?.(LogType.bidi, error); - // Heuristic required for processing cases when a browsing context is gone - // during the command processing, e.g. like in test - // `test_input_keyDown_closes_browsing_context`. - const errorException = this.#browserCdpClient.isCloseError(e) - ? new NoSuchFrameException(`Browsing context is gone`) - : new UnknownErrorException(error.message, error.stack); - this.emit("response" /* CommandProcessorEvents.Response */, { - message: OutgoingMessage.createResolved(errorException.toErrorResponse(command.id), command['goog:channel']), - event: command.method, - }); - } - } - } -} -//# sourceMappingURL=CommandProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js.map deleted file mode 100644 index bf4b025..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/CommandProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.d.ts deleted file mode 100644 index 01a18c6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Session } from '../protocol/generated/webdriver-bidi.js'; -export interface MapperOptions { - acceptInsecureCerts?: boolean; - unhandledPromptBehavior?: Session.UserPromptHandler; - 'goog:prerenderingDisabled'?: boolean; - 'goog:disableNetworkDurableMessages'?: true; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js b/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js deleted file mode 100644 index e64b6c9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -export {}; -//# sourceMappingURL=MapperOptions.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js.map b/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js.map deleted file mode 100644 index 433a79c..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/MapperOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MapperOptions.js","sourceRoot":"","sources":["../../src/bidiMapper/MapperOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.d.ts deleted file mode 100644 index 3ef8ae1..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { GoogChannel } from '../protocol/chromium-bidi.js'; -import type { ChromiumBidi } from '../protocol/protocol.js'; -import type { Result } from '../utils/result.js'; -export declare class OutgoingMessage { - #private; - private constructor(); - static createFromPromise(messagePromise: Promise>, googChannel: GoogChannel): Promise>; - static createResolved(message: ChromiumBidi.Message, googChannel?: GoogChannel): Promise>; - get message(): ChromiumBidi.Message; - get googChannel(): GoogChannel; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js b/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js deleted file mode 100644 index c6d37f5..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export class OutgoingMessage { - #message; - #googChannel; - constructor(message, googChannel = null) { - this.#message = message; - this.#googChannel = googChannel; - } - static createFromPromise(messagePromise, googChannel) { - return messagePromise.then((message) => { - if (message.kind === 'success') { - return { - kind: 'success', - value: new OutgoingMessage(message.value, googChannel), - }; - } - return message; - }); - } - static createResolved(message, googChannel = null) { - return Promise.resolve({ - kind: 'success', - value: new OutgoingMessage(message, googChannel), - }); - } - get message() { - return this.#message; - } - get googChannel() { - return this.#googChannel; - } -} -//# sourceMappingURL=OutgoingMessage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js.map deleted file mode 100644 index d93b857..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/OutgoingMessage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"OutgoingMessage.js","sourceRoot":"","sources":["../../src/bidiMapper/OutgoingMessage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,MAAM,OAAO,eAAe;IACjB,QAAQ,CAAuB;IAC/B,YAAY,CAAc;IAEnC,YACE,OAA6B,EAC7B,cAA2B,IAAI;QAE/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,iBAAiB,CACtB,cAAqD,EACrD,WAAwB;QAExB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;iBACvD,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CACnB,OAA6B,EAC7B,cAA2B,IAAI;QAE/B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.d.ts deleted file mode 100644 index 9b5b6e9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type Bluetooth, type EmptyResult } from '../../../protocol/protocol.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -export declare class BluetoothProcessor { - #private; - constructor(eventManager: EventManager, browsingContextStorage: BrowsingContextStorage); - simulateAdapter(params: Bluetooth.SimulateAdapterParameters): Promise; - disableSimulation(params: Bluetooth.DisableSimulationParameters): Promise; - simulatePreconnectedPeripheral(params: Bluetooth.SimulatePreconnectedPeripheralParameters): Promise; - simulateAdvertisement(params: Bluetooth.SimulateAdvertisementParameters): Promise; - simulateCharacteristic(params: Bluetooth.SimulateCharacteristicParameters): Promise; - simulateCharacteristicResponse(params: Bluetooth.SimulateCharacteristicResponseParameters): Promise; - simulateDescriptor(params: Bluetooth.SimulateDescriptorParameters): Promise; - simulateDescriptorResponse(params: Bluetooth.SimulateDescriptorResponseParameters): Promise; - simulateGattConnectionResponse(params: Bluetooth.SimulateGattConnectionResponseParameters): Promise; - simulateGattDisconnection(params: Bluetooth.SimulateGattDisconnectionParameters): Promise; - simulateService(params: Bluetooth.SimulateServiceParameters): Promise; - onCdpTargetCreated(cdpTarget: CdpTarget): void; - handleRequestDevicePrompt(params: Bluetooth.HandleRequestDevicePromptParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js deleted file mode 100644 index 671236a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js +++ /dev/null @@ -1,407 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, } from '../../../protocol/protocol.js'; -/** Represents a base Bluetooth GATT item. */ -class BluetoothGattItem { - id; - uuid; - constructor(id, uuid) { - this.id = id; - this.uuid = uuid; - } -} -/** Represents a Bluetooth descriptor. */ -class BluetoothDescriptor extends BluetoothGattItem { - characteristic; - constructor(id, uuid, characteristic) { - super(id, uuid); - this.characteristic = characteristic; - } -} -/** Represents a Bluetooth characteristic. */ -class BluetoothCharacteristic extends BluetoothGattItem { - descriptors = new Map(); - service; - constructor(id, uuid, service) { - super(id, uuid); - this.service = service; - } -} -/** Represents a Bluetooth service. */ -class BluetoothService extends BluetoothGattItem { - characteristics = new Map(); - device; - constructor(id, uuid, device) { - super(id, uuid); - this.device = device; - } -} -/** Represents a Bluetooth device. */ -class BluetoothDevice { - address; - services = new Map(); - constructor(address) { - this.address = address; - } -} -export class BluetoothProcessor { - #eventManager; - #browsingContextStorage; - #bluetoothDevices = new Map(); - // A map from a characteristic id from CDP to its BluetoothCharacteristic object. - #bluetoothCharacteristics = new Map(); - // A map from a descriptor id from CDP to its BluetoothDescriptor object. - #bluetoothDescriptors = new Map(); - constructor(eventManager, browsingContextStorage) { - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - } - #getDevice(address) { - const device = this.#bluetoothDevices.get(address); - if (!device) { - throw new InvalidArgumentException(`Bluetooth device with address ${address} does not exist`); - } - return device; - } - #getService(device, serviceUuid) { - const service = device.services.get(serviceUuid); - if (!service) { - throw new InvalidArgumentException(`Service with UUID ${serviceUuid} on device ${device.address} does not exist`); - } - return service; - } - #getCharacteristic(service, characteristicUuid) { - const characteristic = service.characteristics.get(characteristicUuid); - if (!characteristic) { - throw new InvalidArgumentException(`Characteristic with UUID ${characteristicUuid} does not exist for service ${service.uuid} on device ${service.device.address}`); - } - return characteristic; - } - #getDescriptor(characteristic, descriptorUuid) { - const descriptor = characteristic.descriptors.get(descriptorUuid); - if (!descriptor) { - throw new InvalidArgumentException(`Descriptor with UUID ${descriptorUuid} does not exist for characteristic ${characteristic.uuid} on service ${characteristic.service.uuid} on device ${characteristic.service.device.address}`); - } - return descriptor; - } - async simulateAdapter(params) { - if (params.state === undefined) { - // The bluetooth.simulateAdapter Command - // Step 4.2. If params["state"] does not exist, return error with error code invalid argument. - // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command - throw new InvalidArgumentException(`Parameter "state" is required for creating a Bluetooth adapter`); - } - const context = this.#browsingContextStorage.getContext(params.context); - // Bluetooth spec requires overriding the existing adapter (step 6). From the CDP - // perspective, we need to disable the emulation first. - // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable'); - this.#bluetoothDevices.clear(); - this.#bluetoothCharacteristics.clear(); - this.#bluetoothDescriptors.clear(); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.enable', { - state: params.state, - leSupported: params.leSupported ?? true, - }); - return {}; - } - async disableSimulation(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable'); - this.#bluetoothDevices.clear(); - this.#bluetoothCharacteristics.clear(); - this.#bluetoothDescriptors.clear(); - return {}; - } - async simulatePreconnectedPeripheral(params) { - if (this.#bluetoothDevices.has(params.address)) { - throw new InvalidArgumentException(`Bluetooth device with address ${params.address} already exists`); - } - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulatePreconnectedPeripheral', { - address: params.address, - name: params.name, - knownServiceUuids: params.knownServiceUuids, - manufacturerData: params.manufacturerData, - }); - this.#bluetoothDevices.set(params.address, new BluetoothDevice(params.address)); - return {}; - } - async simulateAdvertisement(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateAdvertisement', { - entry: params.scanEntry, - }); - return {}; - } - async simulateCharacteristic(params) { - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (params.characteristicProperties === undefined) { - throw new InvalidArgumentException(`Parameter "characteristicProperties" is required for adding a Bluetooth characteristic`); - } - if (service.characteristics.has(params.characteristicUuid)) { - throw new InvalidArgumentException(`Characteristic with UUID ${params.characteristicUuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addCharacteristic', { - serviceId: service.id, - characteristicUuid: params.characteristicUuid, - properties: params.characteristicProperties, - }); - const characteristic = new BluetoothCharacteristic(response.characteristicId, params.characteristicUuid, service); - service.characteristics.set(params.characteristicUuid, characteristic); - this.#bluetoothCharacteristics.set(characteristic.id, characteristic); - return {}; - } - case 'remove': { - if (params.characteristicProperties !== undefined) { - throw new InvalidArgumentException(`Parameter "characteristicProperties" should not be provided for removing a Bluetooth characteristic`); - } - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeCharacteristic', { - characteristicId: characteristic.id, - }); - service.characteristics.delete(params.characteristicUuid); - this.#bluetoothCharacteristics.delete(characteristic.id); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - async simulateCharacteristicResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateCharacteristicOperationResponse', { - characteristicId: characteristic.id, - type: params.type, - code: params.code, - ...(params.data && { - data: btoa(String.fromCharCode(...params.data)), - }), - }); - return {}; - } - async simulateDescriptor(params) { - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (characteristic.descriptors.has(params.descriptorUuid)) { - throw new InvalidArgumentException(`Descriptor with UUID ${params.descriptorUuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addDescriptor', { - characteristicId: characteristic.id, - descriptorUuid: params.descriptorUuid, - }); - const descriptor = new BluetoothDescriptor(response.descriptorId, params.descriptorUuid, characteristic); - characteristic.descriptors.set(params.descriptorUuid, descriptor); - this.#bluetoothDescriptors.set(descriptor.id, descriptor); - return {}; - } - case 'remove': { - const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeDescriptor', { - descriptorId: descriptor.id, - }); - characteristic.descriptors.delete(params.descriptorUuid); - this.#bluetoothDescriptors.delete(descriptor.id); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - async simulateDescriptorResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const device = this.#getDevice(params.address); - const service = this.#getService(device, params.serviceUuid); - const characteristic = this.#getCharacteristic(service, params.characteristicUuid); - const descriptor = this.#getDescriptor(characteristic, params.descriptorUuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateDescriptorOperationResponse', { - descriptorId: descriptor.id, - type: params.type, - code: params.code, - ...(params.data && { - data: btoa(String.fromCharCode(...params.data)), - }), - }); - return {}; - } - async simulateGattConnectionResponse(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', { - address: params.address, - type: 'connection', - code: params.code, - }); - return {}; - } - async simulateGattDisconnection(params) { - const context = this.#browsingContextStorage.getContext(params.context); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTDisconnection', { - address: params.address, - }); - return {}; - } - async simulateService(params) { - const device = this.#getDevice(params.address); - const context = this.#browsingContextStorage.getContext(params.context); - switch (params.type) { - case 'add': { - if (device.services.has(params.uuid)) { - throw new InvalidArgumentException(`Service with UUID ${params.uuid} already exists`); - } - const response = await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.addService', { - address: params.address, - serviceUuid: params.uuid, - }); - device.services.set(params.uuid, new BluetoothService(response.serviceId, params.uuid, device)); - return {}; - } - case 'remove': { - const service = this.#getService(device, params.uuid); - await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.removeService', { - serviceId: service.id, - }); - device.services.delete(params.uuid); - return {}; - } - default: - throw new InvalidArgumentException(`Parameter "type" of ${params.type} is not supported`); - } - } - onCdpTargetCreated(cdpTarget) { - cdpTarget.cdpClient.on('DeviceAccess.deviceRequestPrompted', (event) => { - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.requestDevicePromptUpdated', - params: { - context: cdpTarget.id, - prompt: event.id, - devices: event.devices, - }, - }, cdpTarget.id); - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.gattOperationReceived', async (event) => { - switch (event.type) { - case 'connection': - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.gattConnectionAttempted', - params: { - context: cdpTarget.id, - address: event.address, - }, - }, cdpTarget.id); - return; - case 'discovery': - // Chromium Web Bluetooth simulation generates this GATT discovery event when - // a page attempts to get services for a given Bluetooth device for the first time. - // This 'get services' operation is put on hold until a GATT discovery response - // is sent to the simulation. - // Note: Web Bluetooth automation (see https://webbluetoothcg.github.io/web-bluetooth/#automated-testing) - // does not support simulating a GATT discovery response. This is because simulated services, characteristics, - // or descriptors are immediately visible to the simulation, meaning it doesn't have a distinct - // DISCOVERY state. Therefore, this code simulates a successful GATT discovery - // response upon receiving this event. - await cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', { - address: event.address, - type: 'discovery', - code: 0x0, - }); - } - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.characteristicOperationReceived', (event) => { - if (!this.#bluetoothCharacteristics.has(event.characteristicId)) { - return; - } - let type; - if (event.type === 'write') { - // write-default-deprecated comes from - // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-writevalue, - // which is deprecated so not supported. - if (event.writeType === 'write-default-deprecated') { - return; - } - type = event.writeType; - } - else { - type = event.type; - } - const characteristic = this.#bluetoothCharacteristics.get(event.characteristicId); - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.characteristicEventGenerated', - params: { - context: cdpTarget.id, - address: characteristic.service.device.address, - serviceUuid: characteristic.service.uuid, - characteristicUuid: characteristic.uuid, - type, - ...(event.data && { - data: Array.from(atob(event.data), (c) => c.charCodeAt(0)), - }), - }, - }, cdpTarget.id); - }); - cdpTarget.browserCdpClient.on('BluetoothEmulation.descriptorOperationReceived', (event) => { - if (!this.#bluetoothDescriptors.has(event.descriptorId)) { - return; - } - const descriptor = this.#bluetoothDescriptors.get(event.descriptorId); - this.#eventManager.registerEvent({ - type: 'event', - method: 'bluetooth.descriptorEventGenerated', - params: { - context: cdpTarget.id, - address: descriptor.characteristic.service.device.address, - serviceUuid: descriptor.characteristic.service.uuid, - characteristicUuid: descriptor.characteristic.uuid, - descriptorUuid: descriptor.uuid, - type: event.type, - ...(event.data && { - data: Array.from(atob(event.data), (c) => c.charCodeAt(0)), - }), - }, - }, cdpTarget.id); - }); - } - async handleRequestDevicePrompt(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (params.accept) { - await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.selectPrompt', { - id: params.prompt, - deviceId: params.device, - }); - } - else { - await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.cancelPrompt', { - id: params.prompt, - }); - } - return {}; - } -} -//# sourceMappingURL=BluetoothProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map deleted file mode 100644 index 38b0f65..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/bluetooth/BluetoothProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BluetoothProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/bluetooth/BluetoothProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.d.ts deleted file mode 100644 index bae4408..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type Browser, type EmptyResult, type Session } from '../../../protocol/protocol.js'; -import type { CdpClient } from '../../BidiMapper.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { ContextConfigStorage } from './ContextConfigStorage.js'; -import type { UserContextStorage } from './UserContextStorage.js'; -export declare class BrowserProcessor { - #private; - constructor(browserCdpClient: CdpClient, browsingContextStorage: BrowsingContextStorage, configStorage: ContextConfigStorage, userContextStorage: UserContextStorage); - close(): EmptyResult; - createUserContext(params: Record): Promise; - removeUserContext(params: Browser.RemoveUserContextParameters): Promise; - getUserContexts(): Promise; - setClientWindowState(params: Browser.SetClientWindowStateParameters): Promise; - getClientWindows(): Promise; - setDownloadBehavior(params: Browser.SetDownloadBehaviorParameters): Promise; -} -/** - * Proxy config parse implementation: - * https://source.chromium.org/chromium/chromium/src/+/main:net/proxy_resolution/proxy_config.h;drc=743a82d08e59d803c94ee1b8564b8b11dd7b462f;l=107 - */ -export declare function getProxyStr(proxyConfig: Session.ProxyConfiguration): string | undefined; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js deleted file mode 100644 index 7c77f80..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js +++ /dev/null @@ -1,289 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, NoSuchUserContextException, UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -export class BrowserProcessor { - #browserCdpClient; - #browsingContextStorage; - #configStorage; - #userContextStorage; - constructor(browserCdpClient, browsingContextStorage, configStorage, userContextStorage) { - this.#browserCdpClient = browserCdpClient; - this.#browsingContextStorage = browsingContextStorage; - this.#configStorage = configStorage; - this.#userContextStorage = userContextStorage; - } - close() { - // Ensure that it is put at the end of the event loop. - // This way we send back the response before closing the tab. - // Always catch uncaught exceptions. - setTimeout(() => this.#browserCdpClient.sendCommand('Browser.close').catch(() => { }), 0); - return {}; - } - async createUserContext(params) { - // `params` is a record to provide legacy `goog:` parameters. Now as the `proxy` - // parameter is specified, we should get rid of `goog:proxyServer` and - // `goog:proxyBypassList` and make the params of type - // `Browser.CreateUserContextParameters`. - const w3cParams = params; - const globalConfig = this.#configStorage.getGlobalConfig(); - if (w3cParams.acceptInsecureCerts !== undefined) { - if (w3cParams.acceptInsecureCerts === false && - globalConfig.acceptInsecureCerts === true) - // TODO: https://github.com/GoogleChromeLabs/chromium-bidi/issues/3398 - throw new UnknownErrorException(`Cannot set user context's "acceptInsecureCerts" to false, when a capability "acceptInsecureCerts" is set to true`); - } - const request = {}; - if (w3cParams.proxy) { - const proxyStr = getProxyStr(w3cParams.proxy); - if (proxyStr) { - request.proxyServer = proxyStr; - } - if (w3cParams.proxy.noProxy) { - request.proxyBypassList = w3cParams.proxy.noProxy.join(','); - } - } - else { - // TODO: remove after Puppeteer stops using it. - if (params['goog:proxyServer'] !== undefined) { - request.proxyServer = params['goog:proxyServer']; - } - const proxyBypassList = params['goog:proxyBypassList'] ?? undefined; - if (proxyBypassList) { - request.proxyBypassList = proxyBypassList.join(','); - } - } - const context = await this.#browserCdpClient.sendCommand('Target.createBrowserContext', request); - await this.#applyDownloadBehavior(globalConfig.downloadBehavior ?? null, context.browserContextId); - this.#configStorage.updateUserContextConfig(context.browserContextId, { - acceptInsecureCerts: params['acceptInsecureCerts'], - userPromptHandler: params['unhandledPromptBehavior'], - }); - return { - userContext: context.browserContextId, - }; - } - async removeUserContext(params) { - const userContext = params.userContext; - if (userContext === 'default') { - throw new InvalidArgumentException('`default` user context cannot be removed'); - } - try { - await this.#browserCdpClient.sendCommand('Target.disposeBrowserContext', { - browserContextId: userContext, - }); - } - catch (err) { - // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/target_handler.cc;l=1424;drc=c686e8f4fd379312469fe018f5c390e9c8f20d0d - if (err.message.startsWith('Failed to find context with id')) { - throw new NoSuchUserContextException(err.message); - } - throw err; - } - return {}; - } - async getUserContexts() { - return { - userContexts: await this.#userContextStorage.getUserContexts(), - }; - } - async #getWindowInfo(targetId) { - const windowInfo = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId }); - return { - // `active` is not supported in CDP yet. - active: false, - clientWindow: `${windowInfo.windowId}`, - state: windowInfo.bounds.windowState ?? 'normal', - height: windowInfo.bounds.height ?? 0, - width: windowInfo.bounds.width ?? 0, - x: windowInfo.bounds.left ?? 0, - y: windowInfo.bounds.top ?? 0, - }; - } - async setClientWindowState(params) { - const { clientWindow } = params; - const bounds = { - windowState: params.state, - }; - if (params.state === 'normal') { - if (params.width !== undefined) { - bounds.width = params.width; - } - if (params.height !== undefined) { - bounds.height = params.height; - } - if (params.x !== undefined) { - bounds.left = params.x; - } - if (params.y !== undefined) { - bounds.top = params.y; - } - } - const windowId = Number.parseInt(clientWindow); - if (isNaN(windowId)) { - throw new InvalidArgumentException('no such client window'); - } - await this.#browserCdpClient.sendCommand('Browser.setWindowBounds', { - windowId, - bounds, - }); - const result = await this.#browserCdpClient.sendCommand('Browser.getWindowBounds', { - windowId, - }); - return { - active: false, - clientWindow: `${windowId}`, - state: result.bounds.windowState ?? 'normal', - height: result.bounds.height ?? 0, - width: result.bounds.width ?? 0, - x: result.bounds.left ?? 0, - y: result.bounds.top ?? 0, - }; - } - async getClientWindows() { - const topLevelTargetIds = this.#browsingContextStorage - .getTopLevelContexts() - .map((b) => b.cdpTarget.id); - const clientWindows = await Promise.all(topLevelTargetIds.map(async (targetId) => await this.#getWindowInfo(targetId))); - const uniqueClientWindowIds = new Set(); - const uniqueClientWindows = new Array(); - // Filter out duplicated client windows. - for (const window of clientWindows) { - if (!uniqueClientWindowIds.has(window.clientWindow)) { - uniqueClientWindowIds.add(window.clientWindow); - uniqueClientWindows.push(window); - } - } - return { clientWindows: uniqueClientWindows }; - } - #toCdpDownloadBehavior(downloadBehavior) { - if (downloadBehavior === null) - // CDP "default" behavior. - return { - behavior: 'default', - }; - if (downloadBehavior?.type === 'denied') - // Deny all the downloads. - return { - behavior: 'deny', - }; - if (downloadBehavior?.type === 'allowed') { - // CDP behavior "allow" means "save downloaded files to the specific download path". - return { - behavior: 'allow', - downloadPath: downloadBehavior.destinationFolder, - }; - } - // Unreachable. Handled by params parser. - throw new UnknownErrorException('Unexpected download behavior'); - } - async #applyDownloadBehavior(downloadBehavior, userContext) { - await this.#browserCdpClient.sendCommand('Browser.setDownloadBehavior', { - ...this.#toCdpDownloadBehavior(downloadBehavior), - browserContextId: userContext === 'default' ? undefined : userContext, - // Required for enabling download events. - eventsEnabled: true, - }); - } - async setDownloadBehavior(params) { - let userContexts; - if (params.userContexts === undefined) { - // Global download behavior. - userContexts = (await this.#userContextStorage.getUserContexts()).map((c) => c.userContext); - } - else { - // Download behavior for the specific user contexts. - userContexts = Array.from(await this.#userContextStorage.verifyUserContextIdList(params.userContexts)); - } - if (params.userContexts === undefined) { - // Store the global setting to be applied for the future user contexts. - this.#configStorage.updateGlobalConfig({ - downloadBehavior: params.downloadBehavior, - }); - } - else { - params.userContexts.map((userContext) => this.#configStorage.updateUserContextConfig(userContext, { - downloadBehavior: params.downloadBehavior, - })); - } - await Promise.all(userContexts.map(async (userContext) => { - // Download behavior can be already set per user context, in which case the global - // one should not be applied. - const downloadBehavior = this.#configStorage.getActiveConfig(undefined, userContext) - .downloadBehavior ?? null; - await this.#applyDownloadBehavior(downloadBehavior, userContext); - })); - return {}; - } -} -/** - * Proxy config parse implementation: - * https://source.chromium.org/chromium/chromium/src/+/main:net/proxy_resolution/proxy_config.h;drc=743a82d08e59d803c94ee1b8564b8b11dd7b462f;l=107 - */ -export function getProxyStr(proxyConfig) { - if (proxyConfig.proxyType === 'direct' || - proxyConfig.proxyType === 'system') { - // These types imply that Chrome should use its default behavior (e.g., direct - // connection or system-configured proxy). No specific `proxyServer` string is - // needed. - return undefined; - } - if (proxyConfig.proxyType === 'pac') { - throw new UnsupportedOperationException(`PAC proxy configuration is not supported per user context`); - } - if (proxyConfig.proxyType === 'autodetect') { - throw new UnsupportedOperationException(`Autodetect proxy is not supported per user context`); - } - if (proxyConfig.proxyType === 'manual') { - const servers = []; - // HTTP Proxy - if (proxyConfig.httpProxy !== undefined) { - // servers.push(proxyConfig.httpProxy); - servers.push(`http=${proxyConfig.httpProxy}`); - } - // SSL Proxy (uses 'https' scheme) - if (proxyConfig.sslProxy !== undefined) { - // servers.push(proxyConfig.sslProxy); - servers.push(`https=${proxyConfig.sslProxy}`); - } - // SOCKS Proxy - if (proxyConfig.socksProxy !== undefined || - proxyConfig.socksVersion !== undefined) { - // socksVersion is mandatory and must be a valid integer if socksProxy is - // specified. - if (proxyConfig.socksProxy === undefined) { - throw new InvalidArgumentException(`'socksVersion' cannot be set without 'socksProxy'`); - } - if (proxyConfig.socksVersion === undefined || - typeof proxyConfig.socksVersion !== 'number' || - !Number.isInteger(proxyConfig.socksVersion) || - proxyConfig.socksVersion < 0 || - proxyConfig.socksVersion > 255) { - throw new InvalidArgumentException(`'socksVersion' must be between 0 and 255`); - } - servers.push(`socks=socks${proxyConfig.socksVersion}://${proxyConfig.socksProxy}`); - } - if (servers.length === 0) { - // If 'manual' proxyType is chosen but no specific proxy servers (http, ssl, socks) - // are provided, it means no proxy server should be configured. - return undefined; - } - return servers.join(';'); - } - // Unreachable. - throw new UnknownErrorException(`Unknown proxy type`); -} -//# sourceMappingURL=BrowserProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js.map deleted file mode 100644 index 3ff03a0..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/BrowserProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BrowserProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/browser/BrowserProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.d.ts deleted file mode 100644 index 42c78aa..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.d.ts +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { Browser, BrowsingContext, Emulation, Session, UAClientHints } from '../../../protocol/protocol.js'; -/** - * Represents a context configurations. It can be global, per User Context, or per - * Browsing Context. The undefined value means the config will be taken from the upstream - * config. `null` values means the value should be default regardless of the upstream. - */ -export declare class ContextConfig { - acceptInsecureCerts?: boolean; - clientHints?: UAClientHints.UserAgentClientHints.ClientHintsMetadata | null; - devicePixelRatio?: number | null; - disableNetworkDurableMessages?: true; - downloadBehavior?: Browser.DownloadBehavior | null; - emulatedNetworkConditions?: Emulation.NetworkConditions | null; - extraHeaders?: Protocol.Network.Headers; - geolocation?: Emulation.GeolocationCoordinates | Emulation.GeolocationPositionError | null; - locale?: string | null; - maxTouchPoints?: number | null; - prerenderingDisabled?: boolean; - screenArea?: Emulation.ScreenArea | null; - screenOrientation?: Emulation.ScreenOrientation | null; - scriptingEnabled?: false | null; - scrollbarType?: 'classic' | 'overlay' | null; - timezone?: string | null; - userAgent?: string | null; - userPromptHandler?: Session.UserPromptHandler; - viewport?: BrowsingContext.Viewport | null; - /** - * Merges multiple `ContextConfig` objects. The configs are merged in the order they are - * provided. For each property, the value from the last config that defines it will be - * used. The final result will not contain any `undefined` or `null` properties. - * `undefined` values are ignored. `null` values remove the already set value. - */ - static merge(...configs: (ContextConfig | undefined)[]): ContextConfig; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js deleted file mode 100644 index ab897c9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Represents a context configurations. It can be global, per User Context, or per - * Browsing Context. The undefined value means the config will be taken from the upstream - * config. `null` values means the value should be default regardless of the upstream. - */ -export class ContextConfig { - // keep-sorted start block=yes - acceptInsecureCerts; - clientHints; - devicePixelRatio; - disableNetworkDurableMessages; - downloadBehavior; - emulatedNetworkConditions; - // Extra headers are kept in CDP format. - extraHeaders; - geolocation; - locale; - maxTouchPoints; - prerenderingDisabled; - screenArea; - screenOrientation; - scriptingEnabled; - scrollbarType; - // Timezone is kept in CDP format with GMT prefix for offset values. - timezone; - userAgent; - userPromptHandler; - viewport; - // keep-sorted end - /** - * Merges multiple `ContextConfig` objects. The configs are merged in the order they are - * provided. For each property, the value from the last config that defines it will be - * used. The final result will not contain any `undefined` or `null` properties. - * `undefined` values are ignored. `null` values remove the already set value. - */ - static merge(...configs) { - const result = new ContextConfig(); - for (const config of configs) { - if (!config) { - continue; - } - for (const key in config) { - const value = config[key]; - if (value === null) { - delete result[key]; - } - else if (value !== undefined) { - result[key] = value; - } - } - } - return result; - } -} -//# sourceMappingURL=ContextConfig.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js.map deleted file mode 100644 index 788a041..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ContextConfig.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/browser/ContextConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAYH;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACxB,8BAA8B;IAC9B,mBAAmB,CAAW;IAC9B,WAAW,CAAiE;IAC5E,gBAAgB,CAAiB;IACjC,6BAA6B,CAAQ;IACrC,gBAAgB,CAAmC;IACnD,yBAAyB,CAAsC;IAC/D,wCAAwC;IACxC,YAAY,CAA4B;IACxC,WAAW,CAGF;IACT,MAAM,CAAiB;IACvB,cAAc,CAAiB;IAC/B,oBAAoB,CAAW;IAC/B,UAAU,CAA+B;IACzC,iBAAiB,CAAsC;IACvD,gBAAgB,CAAgB;IAChC,aAAa,CAAgC;IAC7C,oEAAoE;IACpE,QAAQ,CAAiB;IACzB,SAAS,CAAiB;IAC1B,iBAAiB,CAA6B;IAC9C,QAAQ,CAAmC;IAC3C,kBAAkB;IAElB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,OAAsC;QACpD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAA0B,CAAC,CAAC;gBACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,OAAQ,MAAc,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.d.ts deleted file mode 100644 index 21dbf70..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ContextConfig } from './ContextConfig.js'; -/** - * Manages context-specific configurations. This class allows setting - * configurations at three levels: global, user context, and browsing context. - * - * When `getActiveConfig` is called, it merges the configurations in a specific - * order of precedence: `global -> user context -> browsing context`. For each - * configuration property, the value from the highest-precedence level that has a - * non-`undefined` value is used. - * - * The `update` methods (`updateGlobalConfig`, `updateUserContextConfig`, - * `updateBrowsingContextConfig`) merge the provided configuration with the - * existing one at the corresponding level. Properties with `undefined` values in - * the provided configuration are ignored, preserving the existing value. - */ -export declare class ContextConfigStorage { - #private; - /** - * Updates the global configuration. Properties with `undefined` values in the - * provided `config` are ignored. - */ - updateGlobalConfig(config: ContextConfig): void; - /** - * Updates the configuration for a specific browsing context. Properties with - * `undefined` values in the provided `config` are ignored. - */ - updateBrowsingContextConfig(browsingContextId: string, config: ContextConfig): void; - /** - * Updates the configuration for a specific user context. Properties with - * `undefined` values in the provided `config` are ignored. - */ - updateUserContextConfig(userContext: string, config: ContextConfig): void; - /** - * Returns the current global configuration. - */ - getGlobalConfig(): ContextConfig; - /** - * Calculates the active configuration by merging global, user context, and - * browsing context settings. - */ - getActiveConfig(topLevelBrowsingContextId: string | undefined, userContext: string): ContextConfig; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js deleted file mode 100644 index 49235e6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ContextConfig } from './ContextConfig.js'; -/** - * Manages context-specific configurations. This class allows setting - * configurations at three levels: global, user context, and browsing context. - * - * When `getActiveConfig` is called, it merges the configurations in a specific - * order of precedence: `global -> user context -> browsing context`. For each - * configuration property, the value from the highest-precedence level that has a - * non-`undefined` value is used. - * - * The `update` methods (`updateGlobalConfig`, `updateUserContextConfig`, - * `updateBrowsingContextConfig`) merge the provided configuration with the - * existing one at the corresponding level. Properties with `undefined` values in - * the provided configuration are ignored, preserving the existing value. - */ -export class ContextConfigStorage { - #global = new ContextConfig(); - #userContextConfigs = new Map(); - #browsingContextConfigs = new Map(); - /** - * Updates the global configuration. Properties with `undefined` values in the - * provided `config` are ignored. - */ - updateGlobalConfig(config) { - this.#global = ContextConfig.merge(this.#global, config); - } - /** - * Updates the configuration for a specific browsing context. Properties with - * `undefined` values in the provided `config` are ignored. - */ - updateBrowsingContextConfig(browsingContextId, config) { - this.#browsingContextConfigs.set(browsingContextId, ContextConfig.merge(this.#browsingContextConfigs.get(browsingContextId), config)); - } - /** - * Updates the configuration for a specific user context. Properties with - * `undefined` values in the provided `config` are ignored. - */ - updateUserContextConfig(userContext, config) { - this.#userContextConfigs.set(userContext, ContextConfig.merge(this.#userContextConfigs.get(userContext), config)); - } - /** - * Returns the current global configuration. - */ - getGlobalConfig() { - return this.#global; - } - /** - * Extra headers is a special case. The headers from the different levels have to be - * merged instead of being overridden. - */ - #getExtraHeaders(topLevelBrowsingContextId, userContext) { - const globalHeaders = this.#global.extraHeaders ?? {}; - const userContextHeaders = this.#userContextConfigs.get(userContext)?.extraHeaders ?? {}; - const browsingContextHeaders = topLevelBrowsingContextId === undefined - ? {} - : (this.#browsingContextConfigs.get(topLevelBrowsingContextId) - ?.extraHeaders ?? {}); - return { ...globalHeaders, ...userContextHeaders, ...browsingContextHeaders }; - } - /** - * Calculates the active configuration by merging global, user context, and - * browsing context settings. - */ - getActiveConfig(topLevelBrowsingContextId, userContext) { - let result = ContextConfig.merge(this.#global, this.#userContextConfigs.get(userContext)); - if (topLevelBrowsingContextId !== undefined) { - result = ContextConfig.merge(result, this.#browsingContextConfigs.get(topLevelBrowsingContextId)); - } - // Extra headers is a special case which have to be treated in a special way. - const extraHeaders = this.#getExtraHeaders(topLevelBrowsingContextId, userContext); - result.extraHeaders = - Object.keys(extraHeaders).length > 0 ? extraHeaders : undefined; - return result; - } -} -//# sourceMappingURL=ContextConfigStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js.map deleted file mode 100644 index 6475c23..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/ContextConfigStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ContextConfigStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/browser/ContextConfigStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAoB;IAC/B,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAC9B,mBAAmB,GAAG,IAAI,GAAG,EAAyB,CAAC;IACvD,uBAAuB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE3D;;;OAGG;IACH,kBAAkB,CAAC,MAAqB;QACtC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,2BAA2B,CACzB,iBAAyB,EACzB,MAAqB;QAErB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAC9B,iBAAiB,EACjB,aAAa,CAAC,KAAK,CACjB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EACnD,MAAM,CACP,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,WAAmB,EAAE,MAAqB;QAChE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAC1B,WAAW,EACX,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CACvE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,yBAA6C,EAC7C,WAAmB;QAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QACtD,MAAM,kBAAkB,GACtB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;QAChE,MAAM,sBAAsB,GAC1B,yBAAyB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,yBAAyB,CAAC;gBAC1D,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;QAE9B,OAAO,EAAC,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAG,sBAAsB,EAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,eAAe,CACb,yBAA6C,EAC7C,WAAmB;QAEnB,IAAI,MAAM,GAAG,aAAa,CAAC,KAAK,CAC9B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAC1C,CAAC;QACF,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,GAAG,aAAa,CAAC,KAAK,CAC1B,MAAM,EACN,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CACxC,yBAAyB,EACzB,WAAW,CACZ,CAAC;QACF,MAAM,CAAC,YAAY;YACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.d.ts deleted file mode 100644 index 8917817..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { type Browser } from '../../../protocol/protocol.js'; -export declare class UserContextStorage { - #private; - constructor(browserClient: CdpClient); - getUserContexts(): Promise<[ - Browser.UserContextInfo, - ...Browser.UserContextInfo[] - ]>; - verifyUserContextIdList(userContextIds: Browser.UserContext[]): Promise>; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js deleted file mode 100644 index 6642919..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoSuchUserContextException, } from '../../../protocol/protocol.js'; -export class UserContextStorage { - #browserClient; - constructor(browserClient) { - this.#browserClient = browserClient; - } - async getUserContexts() { - const result = await this.#browserClient.sendCommand('Target.getBrowserContexts'); - return [ - { - userContext: 'default', - }, - ...result.browserContextIds.map((id) => { - return { - userContext: id, - }; - }), - ]; - } - async verifyUserContextIdList(userContextIds) { - const foundContexts = new Set(); - if (!userContextIds.length) { - return foundContexts; - } - const userContexts = await this.getUserContexts(); - const knownUserContextIds = new Set(userContexts.map((userContext) => userContext.userContext)); - for (const userContextId of userContextIds) { - if (!knownUserContextIds.has(userContextId)) { - throw new NoSuchUserContextException(`User context ${userContextId} not found`); - } - foundContexts.add(userContextId); - } - return foundContexts; - } -} -//# sourceMappingURL=UserContextStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js.map deleted file mode 100644 index 8f97472..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/browser/UserContextStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserContextStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/browser/UserContextStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,0BAA0B,GAE3B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,kBAAkB;IAC7B,cAAc,CAAY;IAC1B,YAAY,aAAwB;QAClC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe;QAGnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAClD,2BAA2B,CAC5B,CAAC;QACF,OAAO;YACL;gBACE,WAAW,EAAE,SAAS;aACvB;YACD,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACrC,OAAO;oBACL,WAAW,EAAE,EAAE;iBAChB,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,cAAqC;QACjE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAC3D,CAAC;QACF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,0BAA0B,CAClC,gBAAgB,aAAa,YAAY,CAC1C,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.d.ts deleted file mode 100644 index 5ffde76..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type Cdp } from '../../../protocol/protocol.js'; -import type { CdpClient, CdpConnection } from '../../BidiMapper.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { RealmStorage } from '../script/RealmStorage.js'; -export declare class CdpProcessor { - #private; - constructor(browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, cdpConnection: CdpConnection, browserCdpClient: CdpClient); - getSession(params: Cdp.GetSessionParameters): Cdp.GetSessionResult; - resolveRealm(params: Cdp.ResolveRealmParameters): Cdp.ResolveRealmResult; - sendCommand(params: Cdp.SendCommandParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js deleted file mode 100644 index 8b1845d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { UnknownErrorException } from '../../../protocol/protocol.js'; -export class CdpProcessor { - #browsingContextStorage; - #realmStorage; - #cdpConnection; - #browserCdpClient; - constructor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient) { - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#cdpConnection = cdpConnection; - this.#browserCdpClient = browserCdpClient; - } - getSession(params) { - const context = params.context; - const sessionId = this.#browsingContextStorage.getContext(context).cdpTarget.cdpSessionId; - if (sessionId === undefined) { - return {}; - } - return { session: sessionId }; - } - resolveRealm(params) { - const context = params.realm; - const realm = this.#realmStorage.getRealm({ realmId: context }); - if (realm === undefined) { - throw new UnknownErrorException(`Could not find realm ${params.realm}`); - } - return { executionContextId: realm.executionContextId }; - } - async sendCommand(params) { - const client = params.session - ? this.#cdpConnection.getCdpClient(params.session) - : this.#browserCdpClient; - const result = await client.sendCommand(params.method, params.params); - return { - result, - session: params.session, - }; - } -} -//# sourceMappingURL=CdpProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js.map deleted file mode 100644 index 698c900..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CdpProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/cdp/CdpProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,qBAAqB,EAAW,MAAM,+BAA+B,CAAC;AAK9E,MAAM,OAAO,YAAY;IACd,uBAAuB,CAAyB;IAChD,aAAa,CAAe;IAC5B,cAAc,CAAgB;IAC9B,iBAAiB,CAAY;IAEtC,YACE,sBAA8C,EAC9C,YAA0B,EAC1B,aAA4B,EAC5B,gBAA2B;QAE3B,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,MAAgC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,SAAS,GACb,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;QAC1E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,MAAkC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,EAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;YAC3B,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YAClD,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO;YACL,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.d.ts deleted file mode 100644 index 10e85e8..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { Protocol } from 'devtools-protocol'; -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { type Browser, type BrowsingContext, type ChromiumBidi, Emulation, type UAClientHints } from '../../../protocol/protocol.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { Result } from '../../../utils/result.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import { type NetworkStorage } from '../network/NetworkStorage.js'; -import type { ChannelProxy } from '../script/ChannelProxy.js'; -import type { PreloadScriptStorage } from '../script/PreloadScriptStorage.js'; -import type { RealmStorage } from '../script/RealmStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -export declare class CdpTarget { - #private; - readonly userContext: Browser.UserContext; - readonly contextConfigStorage: ContextConfigStorage; - static create(targetId: Protocol.Target.TargetID, cdpClient: CdpClient, browserCdpClient: CdpClient, parentCdpClient: CdpClient, realmStorage: RealmStorage, eventManager: EventManager, preloadScriptStorage: PreloadScriptStorage, browsingContextStorage: BrowsingContextStorage, networkStorage: NetworkStorage, configStorage: ContextConfigStorage, userContext: Browser.UserContext, defaultUserAgent: string, logger?: LoggerFn): CdpTarget; - constructor(targetId: Protocol.Target.TargetID, cdpClient: CdpClient, browserCdpClient: CdpClient, parentCdpClient: CdpClient, eventManager: EventManager, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage, browsingContextStorage: BrowsingContextStorage, configStorage: ContextConfigStorage, networkStorage: NetworkStorage, userContext: Browser.UserContext, defaultUserAgent: string, logger: LoggerFn | undefined); - /** Returns a deferred that resolves when the target is unblocked. */ - get unblocked(): Deferred>; - get id(): Protocol.Target.TargetID; - get cdpClient(): CdpClient; - get parentCdpClient(): CdpClient; - get browserCdpClient(): CdpClient; - /** Needed for CDP escape path. */ - get cdpSessionId(): Protocol.Target.SessionID; - /** - * Window id the target belongs to. If not known, returns 0. - */ - get windowId(): number; - toggleFetchIfNeeded(): Promise; - /** - * Toggles CDP "Fetch" domain and enable/disable network cache. - */ - toggleNetworkIfNeeded(): Promise; - toggleSetCacheDisabled(disable?: boolean): Promise; - toggleDeviceAccessIfNeeded(): Promise; - togglePreloadIfNeeded(): Promise; - toggleNetwork(): Promise; - /** - * All the ProxyChannels from all the preload scripts of the given - * BrowsingContext. - */ - getChannels(): ChannelProxy[]; - setDeviceMetricsOverride(viewport: BrowsingContext.Viewport | null, devicePixelRatio: number | null, screenOrientation: Emulation.ScreenOrientation | null, screenArea: Emulation.ScreenArea | null, scrollbarType?: 'classic' | 'overlay' | null): Promise; - get topLevelId(): string; - isSubscribedTo(moduleOrEvent: ChromiumBidi.EventNames): boolean; - setGeolocationOverride(geolocation: Emulation.GeolocationCoordinates | Emulation.GeolocationPositionError | null): Promise; - setTouchOverride(maxTouchPoints: number | null): Promise; - setLocaleOverride(locale: string | null): Promise; - setScriptingEnabled(scriptingEnabled: false | null): Promise; - setTimezoneOverride(timezone: string | null): Promise; - setExtraHeaders(headers: Protocol.Network.Headers): Promise; - setUserAgentAndAcceptLanguage(userAgent: string | null | undefined, acceptLanguage: string | null | undefined, clientHints?: UAClientHints.UserAgentClientHints.ClientHintsMetadata | null): Promise; - setEmulatedNetworkConditions(networkConditions: Emulation.NetworkConditions | null): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js deleted file mode 100644 index 0a78dbc..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js +++ /dev/null @@ -1,693 +0,0 @@ -import { Bluetooth, Speculation } from '../../../protocol/chromium-bidi.js'; -import { UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { LogType } from '../../../utils/log.js'; -import { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import { LogManager } from '../log/LogManager.js'; -import { MAX_TOTAL_COLLECTED_SIZE, } from '../network/NetworkStorage.js'; -export class CdpTarget { - #id; - userContext; - #cdpClient; - #browserCdpClient; - #parentCdpClient; - #realmStorage; - #eventManager; - #preloadScriptStorage; - #browsingContextStorage; - #networkStorage; - contextConfigStorage; - #unblocked = new Deferred(); - // Default user agent for the target. Required, as emulating client hints without user - // agent is not possible. Cache it to avoid round trips to the browser for every target override. - #defaultUserAgent; - #logger; - /** - * Target's window id. Is filled when the CDP target is created and do not reflect - * moving targets from one window to another. The actual values - * will be set during `#unblock`. - * */ - #windowId; - #deviceAccessEnabled = false; - #cacheDisableState = false; - #preloadEnabled = false; - #fetchDomainStages = { - request: false, - response: false, - auth: false, - }; - static create(targetId, cdpClient, browserCdpClient, parentCdpClient, realmStorage, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, configStorage, userContext, defaultUserAgent, logger) { - const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger); - LogManager.create(cdpTarget, realmStorage, eventManager, logger); - cdpTarget.#setEventListeners(); - // No need to await. - // Deferred will be resolved when the target is unblocked. - void cdpTarget.#unblock(); - return cdpTarget; - } - constructor(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, configStorage, networkStorage, userContext, defaultUserAgent, logger) { - this.#defaultUserAgent = defaultUserAgent; - this.userContext = userContext; - this.#id = targetId; - this.#cdpClient = cdpClient; - this.#browserCdpClient = browserCdpClient; - this.#parentCdpClient = parentCdpClient; - this.#eventManager = eventManager; - this.#realmStorage = realmStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#networkStorage = networkStorage; - this.#browsingContextStorage = browsingContextStorage; - this.contextConfigStorage = configStorage; - this.#logger = logger; - } - /** Returns a deferred that resolves when the target is unblocked. */ - get unblocked() { - return this.#unblocked; - } - get id() { - return this.#id; - } - get cdpClient() { - return this.#cdpClient; - } - get parentCdpClient() { - return this.#parentCdpClient; - } - get browserCdpClient() { - return this.#browserCdpClient; - } - /** Needed for CDP escape path. */ - get cdpSessionId() { - // SAFETY we got the client by it's id for creating - return this.#cdpClient.sessionId; - } - /** - * Window id the target belongs to. If not known, returns 0. - */ - get windowId() { - if (this.#windowId === undefined) { - this.#logger?.(LogType.debugError, 'Getting windowId before it was set, returning 0'); - } - return this.#windowId ?? 0; - } - /** - * Enables all the required CDP domains and unblocks the target. - */ - async #unblock() { - const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext); - const results = await Promise.allSettled([ - this.#cdpClient.sendCommand('Page.enable', { - enableFileChooserOpenedEvent: true, - }), - ...(this.#ignoreFileDialog() - ? [] - : [ - this.#cdpClient.sendCommand('Page.setInterceptFileChooserDialog', { - enabled: true, - // The intercepted dialog should be canceled. - cancel: true, - }), - ]), - // There can be some existing frames in the target, if reconnecting to an - // existing browser instance, e.g. via Puppeteer. Need to restore the browsing - // contexts for the frames to correctly handle further events, like - // `Runtime.executionContextCreated`. - // It's important to schedule this task together with enabling domains commands to - // prepare the tree before the events (e.g. Runtime.executionContextCreated) start - // coming. - // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2282 - this.#cdpClient - .sendCommand('Page.getFrameTree') - .then((frameTree) => this.#restoreFrameTreeState(frameTree.frameTree)), - this.#cdpClient.sendCommand('Runtime.enable'), - this.#cdpClient.sendCommand('Page.setLifecycleEventsEnabled', { - enabled: true, - }), - // Enabling CDP Network domain is required for navigation detection: - // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2856. - this.#cdpClient - .sendCommand('Network.enable', { - // If `googDisableNetworkDurableMessages` flag is set, do not enable durable - // messages. - enableDurableMessages: config.disableNetworkDurableMessages !== true, - maxTotalBufferSize: MAX_TOTAL_COLLECTED_SIZE, - }) - .then(() => this.toggleNetworkIfNeeded()), - this.#cdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - }), - this.#updateWindowId(), - this.#setUserContextConfig(config), - this.#initAndEvaluatePreloadScripts(), - this.#cdpClient.sendCommand('Runtime.runIfWaitingForDebugger'), - // Resume tab execution as well if it was paused by the debugger. - this.#parentCdpClient.sendCommand('Runtime.runIfWaitingForDebugger'), - this.toggleDeviceAccessIfNeeded(), - this.togglePreloadIfNeeded(), - ]); - for (const result of results) { - if (result instanceof Error) { - // Ignore errors during configuring targets, just log them. - this.#logger?.(LogType.debugError, 'Error happened when configuring a new target', result); - } - } - this.#unblocked.resolve({ - kind: 'success', - value: undefined, - }); - } - #restoreFrameTreeState(frameTree) { - const frame = frameTree.frame; - const maybeContext = this.#browsingContextStorage.findContext(frame.id); - if (maybeContext !== undefined) { - // Restoring parent of already known browsing context. This means the target is - // OOPiF and the BiDi session was connected to already existing browser instance. - if (maybeContext.parentId === null && - frame.parentId !== null && - frame.parentId !== undefined) { - maybeContext.parentId = frame.parentId; - } - } - if (maybeContext === undefined && frame.parentId !== undefined) { - // Restore not yet known nested frames. The top-level frame is created when the - // target is attached. - const parentBrowsingContext = this.#browsingContextStorage.getContext(frame.parentId); - BrowsingContextImpl.create(frame.id, frame.parentId, this.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.contextConfigStorage, frame.url, undefined, this.#logger); - } - frameTree.childFrames?.map((frameTree) => this.#restoreFrameTreeState(frameTree)); - } - async toggleFetchIfNeeded() { - const stages = this.#networkStorage.getInterceptionStages(this.topLevelId); - if (this.#fetchDomainStages.request === stages.request && - this.#fetchDomainStages.response === stages.response && - this.#fetchDomainStages.auth === stages.auth) { - return; - } - const patterns = []; - this.#fetchDomainStages = stages; - if (stages.request || stages.auth) { - // CDP quirk we need request interception when we intercept auth - patterns.push({ - urlPattern: '*', - requestStage: 'Request', - }); - } - if (stages.response) { - patterns.push({ - urlPattern: '*', - requestStage: 'Response', - }); - } - if (patterns.length) { - await this.#cdpClient.sendCommand('Fetch.enable', { - patterns, - handleAuthRequests: stages.auth, - }); - } - else { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - void Promise.allSettled(blockedRequest.map((request) => request.waitNextPhase)) - .then(async () => { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - if (blockedRequest.length) { - return await this.toggleFetchIfNeeded(); - } - return await this.#cdpClient.sendCommand('Fetch.disable'); - }) - .catch((error) => { - this.#logger?.(LogType.bidi, 'Disable failed', error); - }); - } - } - /** - * Toggles CDP "Fetch" domain and enable/disable network cache. - */ - async toggleNetworkIfNeeded() { - // Although the Network domain remains active, Fetch domain activation and caching - // settings should be managed dynamically. - try { - await Promise.all([ - this.toggleSetCacheDisabled(), - this.toggleFetchIfNeeded(), - ]); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async toggleSetCacheDisabled(disable) { - const defaultCacheDisabled = this.#networkStorage.defaultCacheBehavior === 'bypass'; - const cacheDisabled = disable ?? defaultCacheDisabled; - if (this.#cacheDisableState === cacheDisabled) { - return; - } - this.#cacheDisableState = cacheDisabled; - try { - await this.#cdpClient.sendCommand('Network.setCacheDisabled', { - cacheDisabled, - }); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#cacheDisableState = !cacheDisabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async toggleDeviceAccessIfNeeded() { - const enabled = this.isSubscribedTo(Bluetooth.EventNames.RequestDevicePromptUpdated); - if (this.#deviceAccessEnabled === enabled) { - return; - } - this.#deviceAccessEnabled = enabled; - try { - await this.#cdpClient.sendCommand(enabled ? 'DeviceAccess.enable' : 'DeviceAccess.disable'); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#deviceAccessEnabled = !enabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - async togglePreloadIfNeeded() { - const enabled = this.isSubscribedTo(Speculation.EventNames.PrefetchStatusUpdated); - if (this.#preloadEnabled === enabled) { - return; - } - this.#preloadEnabled = enabled; - try { - await this.#cdpClient.sendCommand(enabled ? 'Preload.enable' : 'Preload.disable'); - } - catch (err) { - this.#logger?.(LogType.debugError, err); - this.#preloadEnabled = !enabled; - if (!this.#isExpectedError(err)) { - throw err; - } - } - } - /** - * Heuristic checking if the error is due to the session being closed. If so, ignore the - * error. - */ - #isExpectedError(err) { - const error = err; - return ((error.code === -32001 && - error.message === 'Session with given id not found.') || - this.#cdpClient.isCloseError(err)); - } - #setEventListeners() { - this.#cdpClient.on('*', (event, params) => { - // We may encounter uses for EventEmitter other than CDP events, - // which we want to skip. - if (typeof event !== 'string') { - return; - } - this.#eventManager.registerEvent({ - type: 'event', - method: `goog:cdp.${event}`, - params: { - event, - params, - session: this.cdpSessionId, - }, - }, this.id); - }); - } - async #enableFetch(stages) { - const patterns = []; - if (stages.request || stages.auth) { - // CDP quirk we need request interception when we intercept auth - patterns.push({ - urlPattern: '*', - requestStage: 'Request', - }); - } - if (stages.response) { - patterns.push({ - urlPattern: '*', - requestStage: 'Response', - }); - } - if (patterns.length) { - const oldStages = this.#fetchDomainStages; - this.#fetchDomainStages = stages; - try { - await this.#cdpClient.sendCommand('Fetch.enable', { - patterns, - handleAuthRequests: stages.auth, - }); - } - catch { - this.#fetchDomainStages = oldStages; - } - } - } - async #disableFetch() { - const blockedRequest = this.#networkStorage - .getRequestsByTarget(this) - .filter((request) => request.interceptPhase); - if (blockedRequest.length === 0) { - this.#fetchDomainStages = { - request: false, - response: false, - auth: false, - }; - await this.#cdpClient.sendCommand('Fetch.disable'); - } - } - async toggleNetwork() { - // TODO: respect the data collectors once CDP Network domain is enabled on-demand: - // const networkEnable = this.#networkStorage.getCollectorsForBrowsingContext(this.topLevelId).length > 0; - const stages = this.#networkStorage.getInterceptionStages(this.topLevelId); - const fetchEnable = Object.values(stages).some((value) => value); - const fetchChanged = this.#fetchDomainStages.request !== stages.request || - this.#fetchDomainStages.response !== stages.response || - this.#fetchDomainStages.auth !== stages.auth; - this.#logger?.(LogType.debugInfo, 'Toggle Network', `Fetch (${fetchEnable}) ${fetchChanged}`); - if (fetchEnable && fetchChanged) { - await this.#enableFetch(stages); - } - if (!fetchEnable && fetchChanged) { - await this.#disableFetch(); - } - } - /** - * All the ProxyChannels from all the preload scripts of the given - * BrowsingContext. - */ - getChannels() { - return this.#preloadScriptStorage - .find() - .flatMap((script) => script.channels); - } - async #updateWindowId() { - const { windowId } = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId: this.id }); - this.#windowId = windowId; - } - /** Loads all top-level preload scripts. */ - async #initAndEvaluatePreloadScripts() { - await Promise.all(this.#preloadScriptStorage - .find({ - // Needed for OOPIF - targetId: this.topLevelId, - }) - .map((script) => { - return script.initInTarget(this, true); - })); - } - async setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, screenArea, scrollbarType = null) { - if (viewport === null && - devicePixelRatio === null && - screenOrientation === null && - screenArea === null && - scrollbarType === null) { - await this.cdpClient.sendCommand('Emulation.clearDeviceMetricsOverride'); - return; - } - const metricsOverride = { - width: viewport?.width ?? 0, - height: viewport?.height ?? 0, - deviceScaleFactor: devicePixelRatio ?? 0, - screenOrientation: this.#toCdpScreenOrientationAngle(screenOrientation) ?? undefined, - mobile: false, - screenWidth: screenArea?.width, - screenHeight: screenArea?.height, - scrollbarType: scrollbarType === 'overlay' ? 'overlay' : 'default', - }; - await this.cdpClient.sendCommand('Emulation.setDeviceMetricsOverride', metricsOverride); - } - /** - * Immediately schedules all the required commands to configure user context - * configuration and waits for them to finish. It's important to schedule them - * in parallel, so that they are enqueued before any page's scripts. - */ - async #setUserContextConfig(config) { - const promises = []; - promises.push(this.#cdpClient - .sendCommand('Page.setPrerenderingAllowed', { - isAllowed: !config.prerenderingDisabled, - }) - .catch(() => { - // Ignore CDP errors, as the command is not supported by iframe targets or - // prerendered pages. Generic catch, as the error can vary between CdpClient - // implementations: Tab vs Puppeteer. - })); - if (config.viewport !== undefined || - config.devicePixelRatio !== undefined || - config.screenOrientation !== undefined || - config.screenArea !== undefined) { - promises.push(this.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, config.scrollbarType ?? null).catch(() => { - // Ignore CDP errors, as the command is not supported by iframe targets. Generic - // catch, as the error can vary between CdpClient implementations: Tab vs - // Puppeteer. - })); - } - if (config.geolocation !== undefined && config.geolocation !== null) { - promises.push(this.setGeolocationOverride(config.geolocation)); - } - if (config.locale !== undefined) { - promises.push(this.setLocaleOverride(config.locale)); - } - if (config.timezone !== undefined) { - promises.push(this.setTimezoneOverride(config.timezone)); - } - if (config.extraHeaders !== undefined) { - promises.push(this.setExtraHeaders(config.extraHeaders)); - } - if (config.userAgent !== undefined || - config.locale !== undefined || - config.clientHints !== undefined) { - promises.push(this.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints)); - } - if (config.scriptingEnabled !== undefined) { - promises.push(this.setScriptingEnabled(config.scriptingEnabled)); - } - if (config.acceptInsecureCerts !== undefined) { - promises.push(this.cdpClient.sendCommand('Security.setIgnoreCertificateErrors', { - ignore: config.acceptInsecureCerts, - })); - } - if (config.emulatedNetworkConditions !== undefined) { - promises.push(this.setEmulatedNetworkConditions(config.emulatedNetworkConditions)); - } - if (config.maxTouchPoints !== undefined) { - promises.push(this.setTouchOverride(config.maxTouchPoints)); - } - await Promise.all(promises); - } - get topLevelId() { - return (this.#browsingContextStorage.findTopLevelContextId(this.id) ?? this.id); - } - isSubscribedTo(moduleOrEvent) { - return this.#eventManager.subscriptionManager.isSubscribedTo(moduleOrEvent, this.topLevelId); - } - #ignoreFileDialog() { - const config = this.contextConfigStorage.getActiveConfig(this.topLevelId, this.userContext); - return ((config.userPromptHandler?.file ?? - config.userPromptHandler?.default ?? - "ignore" /* Session.UserPromptHandlerType.Ignore */) === - "ignore" /* Session.UserPromptHandlerType.Ignore */); - } - async setGeolocationOverride(geolocation) { - if (geolocation === null) { - await this.cdpClient.sendCommand('Emulation.clearGeolocationOverride'); - } - else if ('type' in geolocation) { - if (geolocation.type !== 'positionUnavailable') { - // Unreachable. Handled by params parser. - throw new UnknownErrorException(`Unknown geolocation error ${geolocation.type}`); - } - // Omitting latitude, longitude or accuracy emulates position unavailable. - await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {}); - } - else if ('latitude' in geolocation) { - await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', { - latitude: geolocation.latitude, - longitude: geolocation.longitude, - accuracy: geolocation.accuracy ?? 1, - // `null` value is treated as "missing". - altitude: geolocation.altitude ?? undefined, - altitudeAccuracy: geolocation.altitudeAccuracy ?? undefined, - heading: geolocation.heading ?? undefined, - speed: geolocation.speed ?? undefined, - }); - } - else { - // Unreachable. Handled by params parser. - throw new UnknownErrorException('Unexpected geolocation coordinates value'); - } - } - async setTouchOverride(maxTouchPoints) { - const touchEmulationParams = { - enabled: maxTouchPoints !== null, - }; - if (maxTouchPoints !== null) { - touchEmulationParams.maxTouchPoints = maxTouchPoints; - } - await this.cdpClient.sendCommand('Emulation.setTouchEmulationEnabled', touchEmulationParams); - } - #toCdpScreenOrientationAngle(orientation) { - if (orientation === null) { - return null; - } - // https://w3c.github.io/screen-orientation/#the-current-screen-orientation-type-and-angle - if (orientation.natural === "portrait" /* Emulation.ScreenOrientationNatural.Portrait */) { - switch (orientation.type) { - case 'portrait-primary': - return { - angle: 0, - type: 'portraitPrimary', - }; - case 'landscape-primary': - return { - angle: 90, - type: 'landscapePrimary', - }; - case 'portrait-secondary': - return { - angle: 180, - type: 'portraitSecondary', - }; - case 'landscape-secondary': - return { - angle: 270, - type: 'landscapeSecondary', - }; - default: - // Unreachable. - throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`); - } - } - if (orientation.natural === "landscape" /* Emulation.ScreenOrientationNatural.Landscape */) { - switch (orientation.type) { - case 'landscape-primary': - return { - angle: 0, - type: 'landscapePrimary', - }; - case 'portrait-primary': - return { - angle: 90, - type: 'portraitPrimary', - }; - case 'landscape-secondary': - return { - angle: 180, - type: 'landscapeSecondary', - }; - case 'portrait-secondary': - return { - angle: 270, - type: 'portraitSecondary', - }; - default: - // Unreachable. - throw new UnknownErrorException(`Unexpected screen orientation type ${orientation.type}`); - } - } - // Unreachable. - throw new UnknownErrorException(`Unexpected orientation natural ${orientation.natural}`); - } - async setLocaleOverride(locale) { - if (locale === null) { - await this.cdpClient.sendCommand('Emulation.setLocaleOverride', {}); - } - else { - await this.cdpClient.sendCommand('Emulation.setLocaleOverride', { - locale, - }); - } - } - async setScriptingEnabled(scriptingEnabled) { - await this.cdpClient.sendCommand('Emulation.setScriptExecutionDisabled', { - value: scriptingEnabled === false, - }); - } - async setTimezoneOverride(timezone) { - if (timezone === null) { - await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', { - // If empty, disables the override and restores default host system timezone. - timezoneId: '', - }); - } - else { - await this.cdpClient.sendCommand('Emulation.setTimezoneOverride', { - timezoneId: timezone, - }); - } - } - async setExtraHeaders(headers) { - await this.cdpClient.sendCommand('Network.setExtraHTTPHeaders', { - headers, - }); - } - async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) { - const userAgentMetadata = clientHints - ? { - brands: clientHints.brands?.map((b) => ({ - brand: b.brand, - version: b.version, - })), - fullVersionList: clientHints.fullVersionList, - platform: clientHints.platform ?? '', - platformVersion: clientHints.platformVersion ?? '', - architecture: clientHints.architecture ?? '', - model: clientHints.model ?? '', - mobile: clientHints.mobile ?? false, - bitness: clientHints.bitness ?? undefined, - wow64: clientHints.wow64 ?? undefined, - formFactors: clientHints.formFactors ?? undefined, - } - : undefined; - await this.cdpClient.sendCommand('Emulation.setUserAgentOverride', { - // `userAgent` is required if `userAgentMetadata` is provided. - userAgent: userAgent || (userAgentMetadata ? this.#defaultUserAgent : ''), - acceptLanguage: acceptLanguage ?? undefined, - // We need to provide the platform to enable platform emulation. - // Note that the value might be different from the one expected by the - // legacy `navigator.platform` (e.g. `Win32` vs `Windows`). - // https://github.com/w3c/webdriver-bidi/issues/1065 - platform: clientHints?.platform ?? undefined, - userAgentMetadata, - }); - } - async setEmulatedNetworkConditions(networkConditions) { - if (networkConditions !== null && networkConditions.type !== 'offline') { - throw new UnsupportedOperationException(`Unsupported network conditions ${networkConditions.type}`); - } - await Promise.all([ - this.cdpClient.sendCommand('Network.emulateNetworkConditionsByRule', { - offline: networkConditions?.type === 'offline', - matchedNetworkConditions: [ - { - urlPattern: '', - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }, - ], - }), - this.cdpClient.sendCommand('Network.overrideNetworkState', { - offline: networkConditions?.type === 'offline', - // TODO: restore the original `latency` value when emulation is removed. - latency: 0, - downloadThroughput: -1, - uploadThroughput: -1, - }), - ]); - } -} -//# sourceMappingURL=CdpTarget.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js.map deleted file mode 100644 index 721e9b9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTarget.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CdpTarget.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/cdp/CdpTarget.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.d.ts deleted file mode 100644 index 36101d6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import type { CdpConnection } from '../../../cdp/CdpConnection.js'; -import type { Browser } from '../../../protocol/protocol.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { BluetoothProcessor } from '../bluetooth/BluetoothProcessor.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { NetworkStorage } from '../network/NetworkStorage.js'; -import type { PreloadScriptStorage } from '../script/PreloadScriptStorage.js'; -import type { RealmStorage } from '../script/RealmStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { SpeculationProcessor } from '../speculation/SpeculationProcessor.js'; -export declare class CdpTargetManager { - #private; - constructor(cdpConnection: CdpConnection, browserCdpClient: CdpClient, selfTargetId: string, eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, networkStorage: NetworkStorage, configStorage: ContextConfigStorage, bluetoothProcessor: BluetoothProcessor, speculationProcessor: SpeculationProcessor, preloadScriptStorage: PreloadScriptStorage, defaultUserContextId: Browser.UserContext, defaultUserAgent: string, logger?: LoggerFn); -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js deleted file mode 100644 index e9ebe75..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js +++ /dev/null @@ -1,248 +0,0 @@ -import { LogType } from '../../../utils/log.js'; -import { BrowsingContextImpl, serializeOrigin, } from '../context/BrowsingContextImpl.js'; -import { WorkerRealm } from '../script/WorkerRealm.js'; -import { CdpTarget } from './CdpTarget.js'; -const cdpToBidiTargetTypes = { - service_worker: 'service-worker', - shared_worker: 'shared-worker', - worker: 'dedicated-worker', -}; -export class CdpTargetManager { - #browserCdpClient; - #cdpConnection; - #targetKeysToBeIgnoredByAutoAttach = new Set(); - #selfTargetId; - #eventManager; - #browsingContextStorage; - #networkStorage; - #bluetoothProcessor; - #preloadScriptStorage; - #realmStorage; - #configStorage; - #speculationProcessor; - #defaultUserContextId; - #defaultUserAgent; - #logger; - constructor(cdpConnection, browserCdpClient, selfTargetId, eventManager, browsingContextStorage, realmStorage, networkStorage, configStorage, bluetoothProcessor, speculationProcessor, preloadScriptStorage, defaultUserContextId, defaultUserAgent, logger) { - this.#cdpConnection = cdpConnection; - this.#browserCdpClient = browserCdpClient; - this.#targetKeysToBeIgnoredByAutoAttach.add(selfTargetId); - this.#selfTargetId = selfTargetId; - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#networkStorage = networkStorage; - this.#configStorage = configStorage; - this.#bluetoothProcessor = bluetoothProcessor; - this.#speculationProcessor = speculationProcessor; - this.#realmStorage = realmStorage; - this.#defaultUserContextId = defaultUserContextId; - this.#defaultUserAgent = defaultUserAgent; - this.#logger = logger; - this.#setEventListeners(browserCdpClient); - } - /** - * This method is called for each CDP session, since this class is responsible - * for creating and destroying all targets and browsing contexts. - */ - #setEventListeners(cdpClient) { - cdpClient.on('Target.attachedToTarget', (params) => { - this.#handleAttachedToTargetEvent(params, cdpClient); - }); - cdpClient.on('Target.detachedFromTarget', this.#handleDetachedFromTargetEvent.bind(this)); - cdpClient.on('Target.targetInfoChanged', this.#handleTargetInfoChangedEvent.bind(this)); - cdpClient.on('Inspector.targetCrashed', () => { - this.#handleTargetCrashedEvent(cdpClient); - }); - cdpClient.on('Page.frameAttached', this.#handleFrameAttachedEvent.bind(this)); - cdpClient.on('Page.frameSubtreeWillBeDetached', this.#handleFrameSubtreeWillBeDetached.bind(this)); - } - #handleFrameAttachedEvent(params) { - const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId); - if (parentBrowsingContext !== undefined) { - BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, - // At this point, we don't know the URL of the frame yet, so it will be updated - // later. - 'about:blank', undefined, this.#logger); - } - } - #handleFrameSubtreeWillBeDetached(params) { - this.#browsingContextStorage.findContext(params.frameId)?.dispose(true); - } - #handleAttachedToTargetEvent(params, parentSessionCdpClient) { - const { sessionId, targetInfo } = params; - const targetCdpClient = this.#cdpConnection.getCdpClient(sessionId); - const detach = async () => { - // Detaches and resumes the target suppressing errors. - await targetCdpClient - .sendCommand('Runtime.runIfWaitingForDebugger') - .then(() => parentSessionCdpClient.sendCommand('Target.detachFromTarget', params)) - .catch((error) => this.#logger?.(LogType.debugError, error)); - }; - // Do not attach to the Mapper target. - if (this.#selfTargetId === targetInfo.targetId) { - void detach(); - return; - } - // Service workers are special case because they attach to the - // browser target and the page target (so twice per worker) during - // the regular auto-attach and might hang if the CDP session on - // the browser level is not detached. The logic to detach the - // right session is handled in the switch below. - const targetKey = targetInfo.type === 'service_worker' - ? `${parentSessionCdpClient.sessionId}_${targetInfo.targetId}` - : targetInfo.targetId; - // Mapper generally only needs one session per target. If we - // receive additional auto-attached sessions, that is very likely - // coming from custom CDP sessions. - if (this.#targetKeysToBeIgnoredByAutoAttach.has(targetKey)) { - // Return to leave the session untouched. - return; - } - this.#targetKeysToBeIgnoredByAutoAttach.add(targetKey); - const userContext = targetInfo.browserContextId && - targetInfo.browserContextId !== this.#defaultUserContextId - ? targetInfo.browserContextId - : 'default'; - switch (targetInfo.type) { - case 'tab': { - // Tab targets are required only to handle page targets beneath them. - this.#setEventListeners(targetCdpClient); - // Auto-attach to the page target. No need in resuming tab target debugger, as it - // should preserve the page target debugger state, and will be resumed by the page - // target. - void (async () => { - await targetCdpClient.sendCommand('Target.setAutoAttach', { - autoAttach: true, - waitForDebuggerOnStart: true, - flatten: true, - }); - })(); - return; - } - case 'page': - case 'iframe': { - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - const maybeContext = this.#browsingContextStorage.findContext(targetInfo.targetId); - if (maybeContext && targetInfo.type === 'iframe') { - // OOPiF. - maybeContext.updateCdpTarget(cdpTarget); - } - else { - // If attaching to existing browser instance, there could be OOPiF targets. This - // case is handled by the `findFrameParentId` method. - const parentId = this.#findFrameParentId(targetInfo, parentSessionCdpClient.sessionId); - // New context. - BrowsingContextImpl.create(targetInfo.targetId, parentId, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#configStorage, - // Hack: when a new target created, CDP emits targetInfoChanged with an empty - // url, and navigates it to about:blank later. When the event is emitted for - // an existing target (reconnect), the url is already known, and navigation - // events will not be emitted anymore. Replacing empty url with `about:blank` - // allows to handle both cases in the same way. - // "7.3.2.1 Creating browsing contexts". - // https://html.spec.whatwg.org/multipage/document-sequences.html#creating-browsing-contexts - // TODO: check who to deal with non-null creator and its `creatorOrigin`. - targetInfo.url === '' ? 'about:blank' : targetInfo.url, targetInfo.openerFrameId ?? targetInfo.openerId, this.#logger); - } - return; - } - case 'service_worker': - case 'worker': { - const realm = this.#realmStorage.findRealm({ - cdpSessionId: parentSessionCdpClient.sessionId, - sandbox: null, // Non-sandboxed realms. - }); - // If there is no browsing context, this worker is already terminated. - if (!realm) { - void detach(); - return; - } - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget, realm); - return; - } - // In CDP, we only emit shared workers on the browser and not the set of - // frames that use the shared worker. If we change this in the future to - // behave like service workers (emits on both browser and frame targets), - // we can remove this block and merge service workers with the above one. - case 'shared_worker': { - const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext); - this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget); - return; - } - } - // DevTools or some other not supported by BiDi target. Just release - // debugger and ignore them. - void detach(); - } - /** Try to find the parent browsing context ID for the given attached target. */ - #findFrameParentId(targetInfo, parentSessionId) { - if (targetInfo.type !== 'iframe') { - return null; - } - const parentId = targetInfo.openerFrameId ?? targetInfo.openerId; - if (parentId !== undefined) { - return parentId; - } - if (parentSessionId !== undefined) { - return (this.#browsingContextStorage.findContextBySession(parentSessionId) - ?.id ?? null); - } - return null; - } - #createCdpTarget(targetCdpClient, parentCdpClient, targetInfo, userContext) { - this.#setEventListeners(targetCdpClient); - this.#preloadScriptStorage.onCdpTargetCreated(targetInfo.targetId, userContext); - const target = CdpTarget.create(targetInfo.targetId, targetCdpClient, this.#browserCdpClient, parentCdpClient, this.#realmStorage, this.#eventManager, this.#preloadScriptStorage, this.#browsingContextStorage, this.#networkStorage, this.#configStorage, userContext, - // Pass the cached default User Agent to the new target. - this.#defaultUserAgent, this.#logger); - this.#networkStorage.onCdpTargetCreated(target); - this.#bluetoothProcessor.onCdpTargetCreated(target); - this.#speculationProcessor.onCdpTargetCreated(target); - return target; - } - #workers = new Map(); - #handleWorkerTarget(realmType, cdpTarget, ownerRealm) { - cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => { - const { uniqueId, id, origin } = params.context; - const workerRealm = new WorkerRealm(cdpTarget.cdpClient, this.#eventManager, id, this.#logger, serializeOrigin(origin), ownerRealm ? [ownerRealm] : [], uniqueId, this.#realmStorage, realmType); - this.#workers.set(cdpTarget.cdpSessionId, workerRealm); - }); - } - #handleDetachedFromTargetEvent({ sessionId, targetId, }) { - if (targetId) { - this.#preloadScriptStorage.find({ targetId }).map((preloadScript) => { - preloadScript.dispose(targetId); - }); - } - const context = this.#browsingContextStorage.findContextBySession(sessionId); - if (context) { - context.dispose(true); - return; - } - const worker = this.#workers.get(sessionId); - if (worker) { - this.#realmStorage.deleteRealms({ - cdpSessionId: worker.cdpClient.sessionId, - }); - } - } - #handleTargetInfoChangedEvent(params) { - const context = this.#browsingContextStorage.findContext(params.targetInfo.targetId); - if (context) { - context.onTargetInfoChanged(params); - } - } - #handleTargetCrashedEvent(cdpClient) { - // This is primarily used for service and shared workers. CDP tends to not - // signal they closed gracefully and instead says they crashed to signal - // they are closed. - const realms = this.#realmStorage.findRealms({ - cdpSessionId: cdpClient.sessionId, - }); - for (const realm of realms) { - realm.dispose(); - } - } -} -//# sourceMappingURL=CdpTargetManager.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js.map deleted file mode 100644 index 81fe5af..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/cdp/CdpTargetManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CdpTargetManager.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/cdp/CdpTargetManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.d.ts deleted file mode 100644 index 434d2e0..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.d.ts +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import { BrowsingContext, type Emulation, type UAClientHints } from '../../../protocol/protocol.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { Realm } from '../script/Realm.js'; -import type { RealmStorage } from '../script/RealmStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { BrowsingContextStorage } from './BrowsingContextStorage.js'; -export declare class BrowsingContextImpl { - #private; - static readonly LOGGER_PREFIX: "debug:browsingContext"; - readonly userContext: string; - private constructor(); - static create(id: BrowsingContext.BrowsingContext, parentId: BrowsingContext.BrowsingContext | null, userContext: string, cdpTarget: CdpTarget, eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, configStorage: ContextConfigStorage, url: string, originalOpener?: string, logger?: LoggerFn): BrowsingContextImpl; - /** - * @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable - */ - get navigableId(): string | undefined; - get navigationId(): string; - dispose(emitContextDestroyed: boolean): void; - /** Returns the ID of this context. */ - get id(): BrowsingContext.BrowsingContext; - /** Returns the parent context ID. */ - get parentId(): BrowsingContext.BrowsingContext | null; - /** Sets the parent context ID and updates parent's children. */ - set parentId(parentId: BrowsingContext.BrowsingContext | null); - /** Returns the parent context. */ - get parent(): BrowsingContextImpl | null; - /** Returns all direct children contexts. */ - get directChildren(): BrowsingContextImpl[]; - /** Returns all children contexts, flattened. */ - get allChildren(): BrowsingContextImpl[]; - /** - * Returns true if this is a top-level context. - * This is the case whenever the parent context ID is null. - */ - isTopLevelContext(): boolean; - get top(): BrowsingContextImpl; - addChild(childId: BrowsingContext.BrowsingContext): void; - get cdpTarget(): CdpTarget; - updateCdpTarget(cdpTarget: CdpTarget): void; - get url(): string; - lifecycleLoaded(): Promise; - targetUnblockedOrThrow(): Promise; - /** Returns a sandbox for internal helper scripts which is not exposed to the user.*/ - getOrCreateHiddenSandbox(): Promise; - /** Returns a sandbox which is exposed to user. */ - getOrCreateUserSandbox(sandbox: string | undefined): Promise; - /** - * Implements https://w3c.github.io/webdriver-bidi/#get-the-navigable-info. - */ - serializeToBidiValue(maxDepth?: number | null, addParentField?: boolean): BrowsingContext.Info; - onTargetInfoChanged(params: Protocol.Target.TargetInfoChangedEvent): void; - navigate(url: string, wait: BrowsingContext.ReadinessState): Promise; - reload(ignoreCache: boolean, wait: BrowsingContext.ReadinessState): Promise; - setViewport(viewport: BrowsingContext.Viewport | null, devicePixelRatio: number | null, screenOrientation: Emulation.ScreenOrientation | null): Promise; - handleUserPrompt(accept?: boolean, userText?: string): Promise; - activate(): Promise; - captureScreenshot(params: BrowsingContext.CaptureScreenshotParameters): Promise; - print(params: BrowsingContext.PrintParameters): Promise; - close(): Promise; - traverseHistory(delta: number): Promise; - toggleModulesIfNeeded(): Promise; - locateNodes(params: BrowsingContext.LocateNodesParameters): Promise; - setTimezoneOverride(timezone: string | null): Promise; - setLocaleOverride(locale: string | null): Promise; - setGeolocationOverride(geolocation: Emulation.GeolocationCoordinates | Emulation.GeolocationPositionError | null): Promise; - setScriptingEnabled(scriptingEnabled: false | null): Promise; - setUserAgentAndAcceptLanguage(userAgent: string | null | undefined, acceptLanguage: string | null | undefined, clientHints: UAClientHints.UserAgentClientHints.ClientHintsMetadata | null | undefined): Promise; - setEmulatedNetworkConditions(networkConditions: Emulation.NetworkConditions | null): Promise; - setTouchOverride(maxTouchPoints: number | null): Promise; - setExtraHeaders(cdpExtraHeaders: Protocol.Network.Headers): Promise>; - setScrollbarTypeOverride(scrollbarType: 'classic' | 'overlay' | null): Promise; -} -export declare function serializeOrigin(origin: string): string; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js deleted file mode 100644 index f516da7..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js +++ /dev/null @@ -1,1447 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var _a; -import { ChromiumBidi, InvalidArgumentException, InvalidSelectorException, NoSuchElementException, NoSuchFrameException, NoSuchHistoryEntryException, NoSuchNodeException, UnableToCaptureScreenException, UnknownErrorException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -import { assert } from '../../../utils/assert.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { LogType } from '../../../utils/log.js'; -import { getTimestamp } from '../../../utils/time.js'; -import { inchesFromCm } from '../../../utils/unitConversions.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -import { getSharedId, parseSharedId } from '../script/SharedId.js'; -import { WindowRealm } from '../script/WindowRealm.js'; -import { NavigationResult, NavigationTracker, } from './NavigationTracker.js'; -export class BrowsingContextImpl { - static LOGGER_PREFIX = `${LogType.debug}:browsingContext`; - /** Direct children browsing contexts. */ - #children = new Set(); - /** The ID of this browsing context. */ - #id; - userContext; - // Used for running helper scripts. - #hiddenSandbox = uuidv4(); - #downloadIdToUrlMap = new Map(); - /** - * The ID of the parent browsing context. - * If null, this is a top-level context. - */ - #loaderId; - #parentId = null; - #originalOpener; - #lifecycle = { - DOMContentLoaded: new Deferred(), - load: new Deferred(), - }; - #cdpTarget; - #defaultRealmDeferred = new Deferred(); - #browsingContextStorage; - #eventManager; - #logger; - #navigationTracker; - #realmStorage; - #configStorage; - // Set when the user prompt is opened. Required to provide the type in closing event. - #lastUserPromptType; - constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) { - this.#cdpTarget = cdpTarget; - this.#id = id; - this.#parentId = parentId; - this.userContext = userContext; - this.#eventManager = eventManager; - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#configStorage = configStorage; - this.#logger = logger; - this.#originalOpener = originalOpener; - // Register helper realm as hidden, so that it will not be reported to the user. - this.#realmStorage.hiddenSandboxes.add(this.#hiddenSandbox); - this.#navigationTracker = new NavigationTracker(url, id, eventManager, logger); - } - static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger) { - const context = new _a(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, configStorage, url, originalOpener, logger); - context.#initListeners(); - browsingContextStorage.addContext(context); - if (!context.isTopLevelContext()) { - context.parent.addChild(context.id); - } - // Hold on the `contextCreated` event until the target is unblocked. This is required, - // as the parent of the context can be set later in case of reconnecting to an - // existing browser instance + OOPiF. - eventManager.registerPromiseEvent(context.targetUnblockedOrThrow().then(() => { - return { - kind: 'success', - value: { - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.ContextCreated, - params: { - ...context.serializeToBidiValue(), - // Hack to provide the initial URL of the context, as it can be changed - // between the page target is attached and unblocked, as the page is not - // fully paused in MPArch session (https://crbug.com/372842894). - // TODO: remove once https://crbug.com/372842894 is addressed. - url, - }, - }, - }; - }, (error) => { - return { - kind: 'error', - error, - }; - }), context.id, ChromiumBidi.BrowsingContext.EventNames.ContextCreated); - return context; - } - /** - * @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable - */ - get navigableId() { - return this.#loaderId; - } - get navigationId() { - return this.#navigationTracker.currentNavigationId; - } - dispose(emitContextDestroyed) { - this.#navigationTracker.dispose(); - this.#realmStorage.deleteRealms({ - browsingContextId: this.id, - }); - // Delete context from the parent. - if (!this.isTopLevelContext()) { - this.parent.#children.delete(this.id); - } - // Fail all ongoing navigations. - this.#failLifecycleIfNotFinished(); - if (emitContextDestroyed) { - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.ContextDestroyed, - params: this.serializeToBidiValue(null), - }, this.id); - } - // Dispose children after the events are emitted. - this.#deleteAllChildren(); - this.#eventManager.clearBufferedEvents(this.id); - this.#browsingContextStorage.deleteContextById(this.id); - } - /** Returns the ID of this context. */ - get id() { - return this.#id; - } - /** Returns the parent context ID. */ - get parentId() { - return this.#parentId; - } - /** Sets the parent context ID and updates parent's children. */ - set parentId(parentId) { - if (this.#parentId !== null) { - this.#logger?.(LogType.debugError, 'Parent context already set'); - // Cannot do anything except logging, as throwing will stop event processing. So - // just return, - return; - } - this.#parentId = parentId; - if (!this.isTopLevelContext()) { - this.parent.addChild(this.id); - } - } - /** Returns the parent context. */ - get parent() { - if (this.parentId === null) { - return null; - } - return this.#browsingContextStorage.getContext(this.parentId); - } - /** Returns all direct children contexts. */ - get directChildren() { - return [...this.#children].map((id) => this.#browsingContextStorage.getContext(id)); - } - /** Returns all children contexts, flattened. */ - get allChildren() { - const children = this.directChildren; - return children.concat(...children.map((child) => child.allChildren)); - } - /** - * Returns true if this is a top-level context. - * This is the case whenever the parent context ID is null. - */ - isTopLevelContext() { - return this.#parentId === null; - } - get top() { - // eslint-disable-next-line @typescript-eslint/no-this-alias - let topContext = this; - let parent = topContext.parent; - while (parent) { - topContext = parent; - parent = topContext.parent; - } - return topContext; - } - addChild(childId) { - this.#children.add(childId); - } - #deleteAllChildren(emitContextDestroyed = false) { - this.directChildren.map((child) => child.dispose(emitContextDestroyed)); - } - get cdpTarget() { - return this.#cdpTarget; - } - updateCdpTarget(cdpTarget) { - this.#cdpTarget = cdpTarget; - this.#initListeners(); - } - get url() { - return this.#navigationTracker.url; - } - async lifecycleLoaded() { - await this.#lifecycle.load; - } - async targetUnblockedOrThrow() { - const result = await this.#cdpTarget.unblocked; - if (result.kind === 'error') { - throw result.error; - } - } - /** Returns a sandbox for internal helper scripts which is not exposed to the user.*/ - async getOrCreateHiddenSandbox() { - return await this.#getOrCreateSandboxInternal(this.#hiddenSandbox); - } - /** Returns a sandbox which is exposed to user. */ - async getOrCreateUserSandbox(sandbox) { - const realm = await this.#getOrCreateSandboxInternal(sandbox); - if (realm.isHidden()) { - throw new NoSuchFrameException(`Realm "${sandbox}" not found`); - } - return realm; - } - async #getOrCreateSandboxInternal(sandbox) { - if (sandbox === undefined || sandbox === '') { - // Default realm is not guaranteed to be created at this point, so return a deferred. - return await this.#defaultRealmDeferred; - } - let maybeSandboxes = this.#realmStorage.findRealms({ - browsingContextId: this.id, - sandbox, - }); - if (maybeSandboxes.length === 0) { - await this.#cdpTarget.cdpClient.sendCommand('Page.createIsolatedWorld', { - frameId: this.id, - worldName: sandbox, - }); - // `Runtime.executionContextCreated` should be emitted by the time the - // previous command is done. - maybeSandboxes = this.#realmStorage.findRealms({ - browsingContextId: this.id, - sandbox, - }); - assert(maybeSandboxes.length !== 0); - } - // It's possible for more than one sandbox to be created due to provisional - // frames. In this case, it's always the first one (i.e. the oldest one) - // that is more relevant since the user may have set that one up already - // through evaluation. - return maybeSandboxes[0]; - } - /** - * Implements https://w3c.github.io/webdriver-bidi/#get-the-navigable-info. - */ - serializeToBidiValue(maxDepth = 0, addParentField = true) { - return { - context: this.#id, - url: this.url, - userContext: this.userContext, - originalOpener: this.#originalOpener ?? null, - clientWindow: `${this.cdpTarget.windowId}`, - children: maxDepth === null || maxDepth > 0 - ? this.directChildren.map((c) => c.serializeToBidiValue(maxDepth === null ? maxDepth : maxDepth - 1, false)) - : null, - ...(addParentField ? { parent: this.#parentId } : {}), - }; - } - onTargetInfoChanged(params) { - this.#navigationTracker.onTargetInfoChanged(params.targetInfo.url); - } - #initListeners() { - this.#cdpTarget.cdpClient.on('Network.loadingFailed', (params) => { - // Detect navigation errors like `net::ERR_BLOCKED_BY_RESPONSE`. - // Network related to navigation has request id equals to navigation's loader id. - this.#navigationTracker.networkLoadingFailed(params.requestId, params.errorText); - }); - this.#cdpTarget.cdpClient.on('Page.fileChooserOpened', (params) => { - if (this.id !== params.frameId) { - return; - } - if (this.#loaderId === undefined) { - this.#logger?.(LogType.debugError, 'LoaderId should be defined when file upload is shown', params); - return; - } - const element = params.backendNodeId === undefined - ? undefined - : { - sharedId: getSharedId(this.id, this.#loaderId, params.backendNodeId), - }; - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.Input.EventNames.FileDialogOpened, - params: { - context: this.id, - multiple: params.mode === 'selectMultiple', - element, - }, - }, this.id); - }); - this.#cdpTarget.cdpClient.on('Page.frameNavigated', (params) => { - if (this.id !== params.frame.id) { - return; - } - this.#navigationTracker.frameNavigated(params.frame.url + (params.frame.urlFragment ?? ''), params.frame.loaderId, - // `unreachableUrl` indicates if the navigation failed. - params.frame.unreachableUrl); - // At the point the page is initialized, all the nested iframes from the - // previous page are detached and realms are destroyed. - // Delete children from context. - this.#deleteAllChildren(); - this.#documentChanged(params.frame.loaderId); - }); - this.#cdpTarget.cdpClient.on('Page.frameStartedNavigating', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#navigationTracker.frameStartedNavigating(params.url, params.loaderId, params.navigationType); - }); - this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#navigationTracker.navigatedWithinDocument(params.url, params.navigationType); - if (params.navigationType === 'historyApi') { - this.#eventManager.registerEvent({ - type: 'event', - method: 'browsingContext.historyUpdated', - params: { - context: this.id, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - return; - } - }); - this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => { - if (this.id !== params.frameId) { - return; - } - if (params.name === 'init') { - this.#documentChanged(params.loaderId); - return; - } - if (params.name === 'commit') { - this.#loaderId = params.loaderId; - return; - } - // If mapper attached to the page late, it might miss init and - // commit events. In that case, save the first loaderId for this - // frameId. - if (!this.#loaderId) { - this.#loaderId = params.loaderId; - } - // Ignore event from not current navigation. - if (params.loaderId !== this.#loaderId) { - return; - } - switch (params.name) { - case 'DOMContentLoaded': - if (!this.#navigationTracker.isInitialNavigation) { - // Do not emit for the initial navigation. - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded, - params: { - context: this.id, - navigation: this.#navigationTracker.currentNavigationId, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - } - this.#lifecycle.DOMContentLoaded.resolve(); - break; - case 'load': - if (!this.#navigationTracker.isInitialNavigation) { - // Do not emit for the initial navigation. - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.Load, - params: { - context: this.id, - navigation: this.#navigationTracker.currentNavigationId, - timestamp: getTimestamp(), - url: this.#navigationTracker.url, - }, - }, this.id); - } - // The initial navigation is finished. - this.#navigationTracker.loadPageEvent(params.loaderId); - this.#lifecycle.load.resolve(); - break; - } - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => { - const { auxData, name, uniqueId, id } = params.context; - if (!auxData || auxData.frameId !== this.id) { - return; - } - if (auxData.type === 'isolated' && name === '') { - // This is an internal isolated realm and it is not expected to be exposed to - // WebDriver BiDi users. Ignore it. - return; - } - let origin; - let sandbox; - // Only these execution contexts are supported for now. - switch (auxData.type) { - case 'isolated': - sandbox = name; - // Sandbox should have the same origin as the context itself, but in CDP - // it has an empty one. - if (!this.#defaultRealmDeferred.isFinished) { - this.#logger?.(LogType.debugError, 'Unexpectedly, isolated realm created before the default one'); - } - origin = this.#defaultRealmDeferred.isFinished - ? this.#defaultRealmDeferred.result.origin - : // This fallback is not expected to be ever reached. - ''; - break; - case 'default': - origin = serializeOrigin(params.context.origin); - break; - default: - return; - } - const realm = new WindowRealm(this.id, this.#browsingContextStorage, this.#cdpTarget.cdpClient, this.#eventManager, id, this.#logger, origin, uniqueId, this.#realmStorage, sandbox); - if (auxData.isDefault) { - this.#defaultRealmDeferred.resolve(realm); - // Initialize ChannelProxy listeners for all the channels of all the - // preload scripts related to this BrowsingContext. - // TODO: extend for not default realms by the sandbox name. - void Promise.all(this.#cdpTarget - .getChannels() - .map((channel) => channel.startListenerFromWindow(realm, this.#eventManager))); - } - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextDestroyed', (params) => { - if (this.#defaultRealmDeferred.isFinished && - this.#defaultRealmDeferred.result.executionContextId === - params.executionContextId) { - this.#defaultRealmDeferred = new Deferred(); - } - this.#realmStorage.deleteRealms({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.executionContextId, - }); - }); - this.#cdpTarget.cdpClient.on('Runtime.executionContextsCleared', () => { - if (!this.#defaultRealmDeferred.isFinished) { - this.#defaultRealmDeferred.reject(new UnknownErrorException('execution contexts cleared')); - } - this.#defaultRealmDeferred = new Deferred(); - this.#realmStorage.deleteRealms({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - }); - }); - this.#cdpTarget.cdpClient.on('Page.javascriptDialogClosed', (params) => { - // Checking for `params.frameId` for comptaibility with Chrome - // versions that do not have a frameId. TODO: remove once - // https://crrev.com/c/6487891 is in stable. - if (params.frameId && this.id !== params.frameId) { - return; - } - if (!params.frameId && - this.#parentId && - this.#cdpTarget.cdpClient !== - this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget - .cdpClient) { - // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this - // heuristic emits the event only for top-level per-cdp target context, ignoring - // the event for same-process iframes. So the event will be emitted only once per - // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable. - return; - } - const accepted = params.result; - if (this.#lastUserPromptType === undefined) { - this.#logger?.(LogType.debugError, 'Unexpectedly no opening prompt event before closing one'); - } - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.UserPromptClosed, - params: { - context: this.id, - accepted, - // `lastUserPromptType` should never be undefined here, so fallback to - // `UNKNOWN`. The fallback is required to prevent tests from hanging while - // waiting for the closing event. The cast is required, as the `UNKNOWN` value - // is not standard. - type: this.#lastUserPromptType ?? - 'UNKNOWN', - userText: accepted && params.userInput ? params.userInput : undefined, - }, - }, this.id); - this.#lastUserPromptType = undefined; - }); - this.#cdpTarget.cdpClient.on('Page.javascriptDialogOpening', (params) => { - // Checking for `params.frameId` for comptaibility with Chrome - // versions that do not have a frameId. TODO: remove once - // https://crrev.com/c/6487891 is in stable. - if (params.frameId && this.id !== params.frameId) { - return; - } - if (!params.frameId && - this.#parentId && - this.#cdpTarget.cdpClient !== - this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget - .cdpClient) { - // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this - // heuristic emits the event only for top-level per-cdp target context, ignoring - // the event for same-process iframes. So the event will be emitted only once per - // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable. - return; - } - const promptType = _a.#getPromptType(params.type); - // Set the last prompt type to provide it in closing event. - this.#lastUserPromptType = promptType; - const promptHandler = this.#getPromptHandler(promptType); - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.UserPromptOpened, - params: { - context: this.id, - handler: promptHandler, - type: promptType, - message: params.message, - ...(params.type === 'prompt' - ? { defaultValue: params.defaultPrompt } - : {}), - }, - }, this.id); - switch (promptHandler) { - // Based on `unhandledPromptBehavior`, check if the prompt should be handled - // automatically (`accept`, `dismiss`) or wait for the user to do it. - case "accept" /* Session.UserPromptHandlerType.Accept */: - void this.handleUserPrompt(true); - break; - case "dismiss" /* Session.UserPromptHandlerType.Dismiss */: - void this.handleUserPrompt(false); - break; - case "ignore" /* Session.UserPromptHandlerType.Ignore */: - break; - } - }); - this.#cdpTarget.browserCdpClient.on('Browser.downloadWillBegin', (params) => { - if (this.id !== params.frameId) { - return; - } - this.#downloadIdToUrlMap.set(params.guid, params.url); - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.DownloadWillBegin, - params: { - context: this.id, - suggestedFilename: params.suggestedFilename, - navigation: params.guid, - timestamp: getTimestamp(), - url: params.url, - }, - }, this.id); - }); - this.#cdpTarget.browserCdpClient.on('Browser.downloadProgress', (params) => { - if (!this.#downloadIdToUrlMap.has(params.guid)) { - // The event is not related to this browsing context. - return; - } - if (params.state === 'inProgress') { - // No need in reporting progress. - return; - } - const url = this.#downloadIdToUrlMap.get(params.guid); - switch (params.state) { - case 'canceled': - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.DownloadEnd, - params: { - status: 'canceled', - context: this.id, - navigation: params.guid, - timestamp: getTimestamp(), - url, - }, - }, this.id); - break; - case 'completed': - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.DownloadEnd, - params: { - filepath: params.filePath ?? null, - status: 'complete', - context: this.id, - navigation: params.guid, - timestamp: getTimestamp(), - url, - }, - }, this.id); - break; - default: - // Unreachable. - throw new UnknownErrorException(`Unknown download state: ${params.state}`); - } - }); - } - static #getPromptType(cdpType) { - switch (cdpType) { - case 'alert': - return "alert" /* BrowsingContext.UserPromptType.Alert */; - case 'beforeunload': - return "beforeunload" /* BrowsingContext.UserPromptType.Beforeunload */; - case 'confirm': - return "confirm" /* BrowsingContext.UserPromptType.Confirm */; - case 'prompt': - return "prompt" /* BrowsingContext.UserPromptType.Prompt */; - } - } - /** - * Returns either custom UserContext's prompt handler, global or default one. - */ - #getPromptHandler(promptType) { - const defaultPromptHandler = "dismiss" /* Session.UserPromptHandlerType.Dismiss */; - const contextConfig = this.#configStorage.getActiveConfig(this.top.id, this.userContext); - switch (promptType) { - case "alert" /* BrowsingContext.UserPromptType.Alert */: - return (contextConfig.userPromptHandler?.alert ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - case "beforeunload" /* BrowsingContext.UserPromptType.Beforeunload */: - return (contextConfig.userPromptHandler?.beforeUnload ?? - contextConfig.userPromptHandler?.default ?? - "accept" /* Session.UserPromptHandlerType.Accept */); - case "confirm" /* BrowsingContext.UserPromptType.Confirm */: - return (contextConfig.userPromptHandler?.confirm ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - case "prompt" /* BrowsingContext.UserPromptType.Prompt */: - return (contextConfig.userPromptHandler?.prompt ?? - contextConfig.userPromptHandler?.default ?? - defaultPromptHandler); - } - } - #documentChanged(loaderId) { - if (loaderId === undefined || this.#loaderId === loaderId) { - return; - } - // Document changed. - this.#resetLifecycleIfFinished(); - this.#loaderId = loaderId; - // Delete all child iframes and notify about top level destruction. - this.#deleteAllChildren(true); - } - #resetLifecycleIfFinished() { - if (this.#lifecycle.DOMContentLoaded.isFinished) { - this.#lifecycle.DOMContentLoaded = new Deferred(); - } - else { - this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (DOMContentLoaded)'); - } - if (this.#lifecycle.load.isFinished) { - this.#lifecycle.load = new Deferred(); - } - else { - this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (load)'); - } - } - #failLifecycleIfNotFinished() { - if (!this.#lifecycle.DOMContentLoaded.isFinished) { - this.#lifecycle.DOMContentLoaded.reject(new UnknownErrorException('navigation canceled')); - } - if (!this.#lifecycle.load.isFinished) { - this.#lifecycle.load.reject(new UnknownErrorException('navigation canceled')); - } - } - async navigate(url, wait) { - try { - new URL(url); - } - catch { - throw new InvalidArgumentException(`Invalid URL: ${url}`); - } - const navigationState = this.#navigationTracker.createPendingNavigation(url); - // Navigate and wait for the result. If the navigation fails, the error event is - // emitted and the promise is rejected. - const cdpNavigatePromise = (async () => { - const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', { - url, - frameId: this.id, - }); - if (cdpNavigateResult.errorText) { - // If navigation failed, no pending navigation is left. - this.#navigationTracker.failNavigation(navigationState, cdpNavigateResult.errorText); - throw new UnknownErrorException(cdpNavigateResult.errorText); - } - this.#navigationTracker.navigationCommandFinished(navigationState, cdpNavigateResult.loaderId); - this.#documentChanged(cdpNavigateResult.loaderId); - })(); - // Wait for either the navigation is finished or canceled by another navigation. - const result = await Promise.race([ - // No `loaderId` means same-document navigation. - this.#waitNavigation(wait, cdpNavigatePromise, navigationState), - // Throw an error if the navigation is canceled. - navigationState.finished, - ]); - if (result instanceof NavigationResult) { - if ( - // TODO: check after decision on the spec is done: - // https://github.com/w3c/webdriver-bidi/issues/799. - result.eventName === "browsingContext.navigationAborted" /* NavigationEventName.NavigationAborted */ || - result.eventName === "browsingContext.navigationFailed" /* NavigationEventName.NavigationFailed */) { - throw new UnknownErrorException(result.message ?? 'unknown exception'); - } - } - return { - navigation: navigationState.navigationId, - // Url can change due to redirects. Get the one from commandNavigation. - url: navigationState.url, - }; - } - async #waitNavigation(wait, cdpCommandPromise, navigationState) { - await Promise.all([navigationState.committed, cdpCommandPromise]); - if (wait === "none" /* BrowsingContext.ReadinessState.None */) { - return; - } - if (navigationState.isFragmentNavigation === true) { - // After the cdp command is finished, the `fragmentNavigation` should be already - // settled. If it's the fragment navigation, wait for the `navigationStatus` to be - // finished, which happens after the fragment navigation happened. No need to wait for - // DOM events. - await navigationState.finished; - return; - } - if (wait === "interactive" /* BrowsingContext.ReadinessState.Interactive */) { - await this.#lifecycle.DOMContentLoaded; - return; - } - if (wait === "complete" /* BrowsingContext.ReadinessState.Complete */) { - await this.#lifecycle.load; - return; - } - throw new InvalidArgumentException(`Wait condition ${wait} is not supported`); - } - // TODO: support concurrent navigations analogous to `navigate`. - async reload(ignoreCache, wait) { - await this.targetUnblockedOrThrow(); - this.#resetLifecycleIfFinished(); - const navigationState = this.#navigationTracker.createPendingNavigation(this.#navigationTracker.url); - const cdpReloadPromise = this.#cdpTarget.cdpClient.sendCommand('Page.reload', { - ignoreCache, - }); - // Wait for either the navigation is finished or canceled by another navigation. - const result = await Promise.race([ - // No `loaderId` means same-document navigation. - this.#waitNavigation(wait, cdpReloadPromise, navigationState), - // Throw an error if the navigation is canceled. - navigationState.finished, - ]); - if (result instanceof NavigationResult) { - if (result.eventName === "browsingContext.navigationAborted" /* NavigationEventName.NavigationAborted */ || - result.eventName === "browsingContext.navigationFailed" /* NavigationEventName.NavigationFailed */) { - throw new UnknownErrorException(result.message ?? 'unknown exception'); - } - } - return { - navigation: navigationState.navigationId, - // Url can change due to redirects. Get the one from commandNavigation. - url: navigationState.url, - }; - } - async setViewport(viewport, devicePixelRatio, screenOrientation) { - // Set the target's viewport. - const config = this.#configStorage.getActiveConfig(this.id, this.userContext); - await this.cdpTarget.setDeviceMetricsOverride(viewport, devicePixelRatio, screenOrientation, config.screenArea ?? null, config.scrollbarType ?? null); - } - async handleUserPrompt(accept, userText) { - await this.top.#cdpTarget.cdpClient.sendCommand('Page.handleJavaScriptDialog', { - accept: accept ?? true, - promptText: userText, - }); - } - async activate() { - await this.#cdpTarget.cdpClient.sendCommand('Page.bringToFront'); - } - async captureScreenshot(params) { - if (!this.isTopLevelContext()) { - throw new UnsupportedOperationException(`Non-top-level 'context' (${params.context}) is currently not supported`); - } - const formatParameters = getImageFormatParameters(params); - let captureBeyondViewport = false; - let script; - params.origin ??= 'viewport'; - switch (params.origin) { - case 'document': { - script = String(() => { - const element = document.documentElement; - return { - x: 0, - y: 0, - width: element.scrollWidth, - height: element.scrollHeight, - }; - }); - captureBeyondViewport = true; - break; - } - case 'viewport': { - script = String(() => { - const viewport = window.visualViewport; - return { - x: viewport.pageLeft, - y: viewport.pageTop, - width: viewport.width, - height: viewport.height, - }; - }); - break; - } - } - const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox(); - const originResult = await hiddenSandboxRealm.callFunction(script, false); - assert(originResult.type === 'success'); - const origin = deserializeDOMRect(originResult.result); - assert(origin); - let rect = origin; - if (params.clip) { - const clip = params.clip; - if (params.origin === 'viewport' && clip.type === 'box') { - // For viewport origin, the clip is relative to the viewport, while the CDP - // screenshot is relative to the document. So correction for the viewport position - // is required. - clip.x += origin.x; - clip.y += origin.y; - } - rect = getIntersectionRect(await this.#parseRect(clip), origin); - } - if (rect.width === 0 || rect.height === 0) { - throw new UnableToCaptureScreenException(`Unable to capture screenshot with zero dimensions: width=${rect.width}, height=${rect.height}`); - } - return await this.#cdpTarget.cdpClient.sendCommand('Page.captureScreenshot', { - clip: { ...rect, scale: 1.0 }, - ...formatParameters, - captureBeyondViewport, - }); - } - async print(params) { - if (!this.isTopLevelContext()) { - throw new UnsupportedOperationException('Printing of non-top level contexts is not supported'); - } - const cdpParams = {}; - if (params.background !== undefined) { - cdpParams.printBackground = params.background; - } - if (params.margin?.bottom !== undefined) { - cdpParams.marginBottom = inchesFromCm(params.margin.bottom); - } - if (params.margin?.left !== undefined) { - cdpParams.marginLeft = inchesFromCm(params.margin.left); - } - if (params.margin?.right !== undefined) { - cdpParams.marginRight = inchesFromCm(params.margin.right); - } - if (params.margin?.top !== undefined) { - cdpParams.marginTop = inchesFromCm(params.margin.top); - } - if (params.orientation !== undefined) { - cdpParams.landscape = params.orientation === 'landscape'; - } - if (params.page?.height !== undefined) { - cdpParams.paperHeight = inchesFromCm(params.page.height); - } - if (params.page?.width !== undefined) { - cdpParams.paperWidth = inchesFromCm(params.page.width); - } - if (params.pageRanges !== undefined) { - for (const range of params.pageRanges) { - if (typeof range === 'number') { - continue; - } - const rangeParts = range.split('-'); - if (rangeParts.length < 1 || rangeParts.length > 2) { - throw new InvalidArgumentException(`Invalid page range: ${range} is not a valid integer range.`); - } - if (rangeParts.length === 1) { - void parseInteger(rangeParts[0] ?? ''); - continue; - } - let lowerBound; - let upperBound; - const [rangeLowerPart = '', rangeUpperPart = ''] = rangeParts; - if (rangeLowerPart === '') { - lowerBound = 1; - } - else { - lowerBound = parseInteger(rangeLowerPart); - } - if (rangeUpperPart === '') { - upperBound = Number.MAX_SAFE_INTEGER; - } - else { - upperBound = parseInteger(rangeUpperPart); - } - if (lowerBound > upperBound) { - throw new InvalidArgumentException(`Invalid page range: ${rangeLowerPart} > ${rangeUpperPart}`); - } - } - cdpParams.pageRanges = params.pageRanges.join(','); - } - if (params.scale !== undefined) { - cdpParams.scale = params.scale; - } - if (params.shrinkToFit !== undefined) { - cdpParams.preferCSSPageSize = !params.shrinkToFit; - } - try { - const result = await this.#cdpTarget.cdpClient.sendCommand('Page.printToPDF', cdpParams); - return { - data: result.data, - }; - } - catch (error) { - // Effectively zero dimensions. - if (error.message === - 'invalid print parameters: content area is empty') { - throw new UnsupportedOperationException(error.message); - } - throw error; - } - } - /** - * See - * https://w3c.github.io/webdriver-bidi/#:~:text=If%20command%20parameters%20contains%20%22clip%22%3A - */ - async #parseRect(clip) { - switch (clip.type) { - case 'box': - return { x: clip.x, y: clip.y, width: clip.width, height: clip.height }; - case 'element': { - const hiddenSandboxRealm = await this.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(String((element) => { - return element instanceof Element; - }), false, { type: 'undefined' }, [clip.element]); - if (result.type === 'exception') { - throw new NoSuchElementException(`Element '${clip.element.sharedId}' was not found`); - } - assert(result.result.type === 'boolean'); - if (!result.result.value) { - throw new NoSuchElementException(`Node '${clip.element.sharedId}' is not an Element`); - } - { - const result = await hiddenSandboxRealm.callFunction(String((element) => { - const rect = element.getBoundingClientRect(); - return { - x: rect.x, - y: rect.y, - height: rect.height, - width: rect.width, - }; - }), false, { type: 'undefined' }, [clip.element]); - assert(result.type === 'success'); - const rect = deserializeDOMRect(result.result); - if (!rect) { - throw new UnableToCaptureScreenException(`Could not get bounding box for Element '${clip.element.sharedId}'`); - } - return rect; - } - } - } - } - async close() { - await this.#cdpTarget.cdpClient.sendCommand('Page.close'); - } - async traverseHistory(delta) { - if (delta === 0) { - return; - } - const history = await this.#cdpTarget.cdpClient.sendCommand('Page.getNavigationHistory'); - const entry = history.entries[history.currentIndex + delta]; - if (!entry) { - throw new NoSuchHistoryEntryException(`No history entry at delta ${delta}`); - } - await this.#cdpTarget.cdpClient.sendCommand('Page.navigateToHistoryEntry', { - entryId: entry.id, - }); - } - async toggleModulesIfNeeded() { - await Promise.all([ - this.#cdpTarget.toggleNetworkIfNeeded(), - this.#cdpTarget.toggleDeviceAccessIfNeeded(), - this.#cdpTarget.togglePreloadIfNeeded(), - ]); - } - async locateNodes(params) { - // TODO: create a dedicated sandbox instead of `#defaultRealm`. - return await this.#locateNodesByLocator(await this.#defaultRealmDeferred, params.locator, params.startNodes ?? [], params.maxNodeCount, params.serializationOptions); - } - #getLocatorDelegate(locator, maxNodeCount, startNodes) { - switch (locator.type) { - case 'context': - case 'accessibility': - throw new Error('Unreachable'); - case 'css': - return { - functionDeclaration: String((cssSelector, maxNodeCount, ...startNodes) => { - const locateNodesUsingCss = (element) => { - if (!(element instanceof HTMLElement || - element instanceof Document || - element instanceof DocumentFragment || - element instanceof SVGElement)) { - throw new Error('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment'); - } - return [...element.querySelectorAll(cssSelector)]; - }; - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - // TODO: stop search early if `maxNodeCount` is reached. - locateNodesUsingCss(startNode)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - // `cssSelector` - { type: 'string', value: locator.value }, - // `maxNodeCount` with `0` means no limit. - { type: 'number', value: maxNodeCount ?? 0 }, - // `startNodes` - ...startNodes, - ], - }; - case 'xpath': - return { - functionDeclaration: String((xPathSelector, maxNodeCount, ...startNodes) => { - // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-xpath - const evaluator = new XPathEvaluator(); - const expression = evaluator.createExpression(xPathSelector); - const locateNodesUsingXpath = (element) => { - const xPathResult = expression.evaluate(element, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE); - const returnedNodes = []; - for (let i = 0; i < xPathResult.snapshotLength; i++) { - returnedNodes.push(xPathResult.snapshotItem(i)); - } - return returnedNodes; - }; - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - // TODO: stop search early if `maxNodeCount` is reached. - locateNodesUsingXpath(startNode)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - // `xPathSelector` - { type: 'string', value: locator.value }, - // `maxNodeCount` with `0` means no limit. - { type: 'number', value: maxNodeCount ?? 0 }, - // `startNodes` - ...startNodes, - ], - }; - case 'innerText': - // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-inner-text - if (locator.value === '') { - throw new InvalidSelectorException('innerText locator cannot be empty'); - } - return { - functionDeclaration: String((innerTextSelector, fullMatch, ignoreCase, maxNodeCount, maxDepth, ...startNodes) => { - const searchText = ignoreCase - ? innerTextSelector.toUpperCase() - : innerTextSelector; - const locateNodesUsingInnerText = (node, currentMaxDepth) => { - const returnedNodes = []; - if (node instanceof DocumentFragment || - node instanceof Document) { - const children = [...node.children]; - children.forEach((child) => - // `currentMaxDepth` is not decremented intentionally according to - // https://github.com/w3c/webdriver-bidi/pull/713. - returnedNodes.push(...locateNodesUsingInnerText(child, currentMaxDepth))); - return returnedNodes; - } - if (!(node instanceof HTMLElement)) { - return []; - } - const element = node; - const nodeInnerText = ignoreCase - ? element.innerText?.toUpperCase() - : element.innerText; - if (!nodeInnerText.includes(searchText)) { - return []; - } - const childNodes = []; - for (const child of element.children) { - if (child instanceof HTMLElement) { - childNodes.push(child); - } - } - if (childNodes.length === 0) { - if (fullMatch && nodeInnerText === searchText) { - returnedNodes.push(element); - } - else { - if (!fullMatch) { - // Note: `nodeInnerText.includes(searchText)` is already checked - returnedNodes.push(element); - } - } - } - else { - const childNodeMatches = - // Don't search deeper if `maxDepth` is reached. - currentMaxDepth <= 0 - ? [] - : childNodes - .map((child) => locateNodesUsingInnerText(child, currentMaxDepth - 1)) - .flat(1); - if (childNodeMatches.length === 0) { - // Note: `nodeInnerText.includes(searchText)` is already checked - if (!fullMatch || nodeInnerText === searchText) { - returnedNodes.push(element); - } - } - else { - returnedNodes.push(...childNodeMatches); - } - } - // TODO: stop search early if `maxNodeCount` is reached. - return returnedNodes; - }; - // TODO: stop search early if `maxNodeCount` is reached. - startNodes = startNodes.length > 0 ? startNodes : [document]; - const returnedNodes = startNodes - .map((startNode) => - // TODO: stop search early if `maxNodeCount` is reached. - locateNodesUsingInnerText(startNode, maxDepth)) - .flat(1); - return maxNodeCount === 0 - ? returnedNodes - : returnedNodes.slice(0, maxNodeCount); - }), - argumentsLocalValues: [ - // `innerTextSelector` - { type: 'string', value: locator.value }, - // `fullMatch` with default `true`. - { type: 'boolean', value: locator.matchType !== 'partial' }, - // `ignoreCase` with default `false`. - { type: 'boolean', value: locator.ignoreCase === true }, - // `maxNodeCount` with `0` means no limit. - { type: 'number', value: maxNodeCount ?? 0 }, - // `maxDepth` with default `1000` (same as default full serialization depth). - { type: 'number', value: locator.maxDepth ?? 1000 }, - // `startNodes` - ...startNodes, - ], - }; - } - } - async #locateNodesByLocator(realm, locator, startNodes, maxNodeCount, serializationOptions) { - if (locator.type === 'context') { - return await this.#locateNodesByContextLocator(locator, startNodes, realm, serializationOptions); - } - if (locator.type === 'accessibility') { - return await this.#locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm); - } - // Select by injecting a script into the realm. - const locatorDelegate = this.#getLocatorDelegate(locator, maxNodeCount, startNodes); - serializationOptions = { - ...serializationOptions, - // The returned object is an array of nodes, so no need in deeper JS serialization. - maxObjectDepth: 1, - }; - const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, false, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, "none" /* Script.ResultOwnership.None */, serializationOptions); - if (locatorResult.type !== 'success') { - this.#logger?.(_a.LOGGER_PREFIX, 'Failed locateNodesByLocator', locatorResult); - // Heuristic to detect invalid selector for different types of selectors. - if ( - // CSS selector. - locatorResult.exceptionDetails.text?.endsWith('is not a valid selector.') || - // XPath selector. - locatorResult.exceptionDetails.text?.endsWith('is not a valid XPath expression.')) { - throw new InvalidSelectorException(`Not valid selector ${typeof locator.value === 'string' ? locator.value : JSON.stringify(locator.value)}`); - } - // Heuristic to detect if the `startNode` is not an `HTMLElement` in css selector. - if (locatorResult.exceptionDetails.text === - 'Error: startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment') { - throw new InvalidArgumentException('startNodes in css selector should be HTMLElement, SVGElement or Document or DocumentFragment'); - } - throw new UnknownErrorException(`Unexpected error in selector script: ${locatorResult.exceptionDetails.text}`); - } - if (locatorResult.result.type !== 'array') { - throw new UnknownErrorException(`Unexpected selector script result type: ${locatorResult.result.type}`); - } - // Check there are no non-node elements in the result. - const nodes = locatorResult.result.value.map((value) => { - if (value.type !== 'node') { - throw new UnknownErrorException(`Unexpected selector script result element: ${value.type}`); - } - return value; - }); - return { nodes }; - } - async #locateNodesByContextLocator(locator, startNodes, realm, serializationOptions) { - if (startNodes.length !== 0) { - throw new InvalidArgumentException('Start nodes are not supported'); - } - const contextId = locator.value.context; - if (!contextId) { - throw new InvalidSelectorException('Invalid context'); - } - const context = this.#browsingContextStorage.getContext(contextId); - const parent = context.parent; - if (!parent) { - throw new InvalidArgumentException('This context has no container'); - } - try { - const { backendNodeId } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { - frameId: contextId, - }); - const { object } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - }); - const locatorResult = await realm.callFunction(`function () { return this; }`, false, { handle: object.objectId }, [], "none" /* Script.ResultOwnership.None */, serializationOptions); - if (locatorResult.type === 'exception') { - throw new Error('Unknown exception'); - } - return { nodes: [locatorResult.result] }; - } - catch { - throw new InvalidArgumentException('Context does not exist'); - } - } - async #locateNodesByAccessibility(locator, startNodes, maxNodeCount, realm) { - if (!locator.value.name && !locator.value.role) { - throw new InvalidSelectorException('Either name or role has to be specified'); - } - await this.#cdpTarget.cdpClient.sendCommand('Accessibility.enable'); - const startBackendNodeIds = []; - if (startNodes.length === 0) { - const { root: documentRoot } = await this.#cdpTarget.cdpClient.sendCommand('DOM.getDocument'); - startBackendNodeIds.push(documentRoot.backendNodeId); - } - else { - for (const node of startNodes) { - if (node.sharedId) { - const parsed = parseSharedId(node.sharedId); - if (!parsed) { - throw new NoSuchNodeException(`Invalid sharedId: ${node.sharedId}`); - } - startBackendNodeIds.push(parsed.backendNodeId); - } - else { - if (node.handle) { - const { nodeId } = await this.#cdpTarget.cdpClient.sendCommand('DOM.requestNode', { - objectId: node.handle, - }); - const { node: describedNode } = await this.#cdpTarget.cdpClient.sendCommand('DOM.describeNode', { - nodeId, - }); - startBackendNodeIds.push(describedNode.backendNodeId); - } - else { - throw new NoSuchNodeException('Start node must have sharedId or handle'); - } - } - } - } - const matchedBackendNodeIds = new Set(); - for (const backendNodeId of startBackendNodeIds) { - const { nodes } = await this.#cdpTarget.cdpClient.sendCommand('Accessibility.queryAXTree', { - backendNodeId, - accessibleName: locator.value.name, - role: locator.value.role, - }); - for (const node of nodes) { - if (node.backendDOMNodeId && node.role?.type === 'role') { - matchedBackendNodeIds.add(node.backendDOMNodeId); - if (maxNodeCount !== undefined && - maxNodeCount > 0 && - matchedBackendNodeIds.size >= maxNodeCount) { - break; - } - } - } - } - const resultNodes = await Promise.all(Array.from(matchedBackendNodeIds).map(async (backendNodeId) => { - const { object } = await this.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - }); - // We need to use `serializeCdpObject` to convert it to BiDi format. - // We use `Script.ResultOwnership.None` as `locateNodes` returns weak references (nodes). - return await realm.serializeCdpObject(object, "none" /* Script.ResultOwnership.None */); - })); - return { - nodes: resultNodes.filter((result) => result.type === 'node'), - }; - } - #getAllRelatedCdpTargets() { - const targets = new Set(); - targets.add(this.cdpTarget); - this.allChildren.forEach((c) => targets.add(c.cdpTarget)); - return Array.from(targets); - } - async setTimezoneOverride(timezone) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTimezoneOverride(timezone))); - } - async setLocaleOverride(locale) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setLocaleOverride(locale))); - } - async setGeolocationOverride(geolocation) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setGeolocationOverride(geolocation))); - } - async setScriptingEnabled(scriptingEnabled) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setScriptingEnabled(scriptingEnabled))); - } - async setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setUserAgentAndAcceptLanguage(userAgent, acceptLanguage, clientHints))); - } - async setEmulatedNetworkConditions(networkConditions) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setEmulatedNetworkConditions(networkConditions))); - } - async setTouchOverride(maxTouchPoints) { - await Promise.allSettled(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setTouchOverride(maxTouchPoints))); - } - async setExtraHeaders(cdpExtraHeaders) { - await Promise.all(this.#getAllRelatedCdpTargets().map(async (cdpTarget) => await cdpTarget.setExtraHeaders(cdpExtraHeaders))); - } - async setScrollbarTypeOverride(scrollbarType) { - const config = this.#configStorage.getActiveConfig(this.id, this.userContext); - await this.cdpTarget.setDeviceMetricsOverride(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null, config.screenArea ?? null, scrollbarType); - } -} -_a = BrowsingContextImpl; -export function serializeOrigin(origin) { - // https://html.spec.whatwg.org/multipage/origin.html#ascii-serialisation-of-an-origin - if (['://', ''].includes(origin)) { - origin = 'null'; - } - return origin; -} -function getImageFormatParameters(params) { - const { quality, type } = params.format ?? { - type: 'image/png', - }; - switch (type) { - case 'image/png': { - return { format: 'png' }; - } - case 'image/jpeg': { - return { - format: 'jpeg', - ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }), - }; - } - case 'image/webp': { - return { - format: 'webp', - ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }), - }; - } - } - throw new InvalidArgumentException(`Image format '${type}' is not a supported format`); -} -function deserializeDOMRect(result) { - if (result.type !== 'object' || result.value === undefined) { - return; - } - const x = result.value.find(([key]) => { - return key === 'x'; - })?.[1]; - const y = result.value.find(([key]) => { - return key === 'y'; - })?.[1]; - const height = result.value.find(([key]) => { - return key === 'height'; - })?.[1]; - const width = result.value.find(([key]) => { - return key === 'width'; - })?.[1]; - if (x?.type !== 'number' || - y?.type !== 'number' || - height?.type !== 'number' || - width?.type !== 'number') { - return; - } - return { - x: x.value, - y: y.value, - width: width.value, - height: height.value, - }; -} -/** @see https://w3c.github.io/webdriver-bidi/#normalize-rect */ -function normalizeRect(box) { - return { - ...(box.width < 0 - ? { - x: box.x + box.width, - width: -box.width, - } - : { - x: box.x, - width: box.width, - }), - ...(box.height < 0 - ? { - y: box.y + box.height, - height: -box.height, - } - : { - y: box.y, - height: box.height, - }), - }; -} -/** @see https://w3c.github.io/webdriver-bidi/#rectangle-intersection */ -function getIntersectionRect(first, second) { - first = normalizeRect(first); - second = normalizeRect(second); - const x = Math.max(first.x, second.x); - const y = Math.max(first.y, second.y); - return { - x, - y, - width: Math.max(Math.min(first.x + first.width, second.x + second.width) - x, 0), - height: Math.max(Math.min(first.y + first.height, second.y + second.height) - y, 0), - }; -} -function parseInteger(value) { - value = value.trim(); - if (!/^[0-9]+$/.test(value)) { - throw new InvalidArgumentException(`Invalid integer: ${value}`); - } - return parseInt(value); -} -//# sourceMappingURL=BrowsingContextImpl.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js.map deleted file mode 100644 index 20b7dee..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextImpl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BrowsingContextImpl.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/context/BrowsingContextImpl.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.d.ts deleted file mode 100644 index 0f83dcd..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { BrowsingContext, type EmptyResult } from '../../../protocol/protocol.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { UserContextStorage } from '../browser/UserContextStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { BrowsingContextStorage } from './BrowsingContextStorage.js'; -export declare class BrowsingContextProcessor { - #private; - constructor(browserCdpClient: CdpClient, browsingContextStorage: BrowsingContextStorage, userContextStorage: UserContextStorage, contextConfigStorage: ContextConfigStorage, eventManager: EventManager); - getTree(params: BrowsingContext.GetTreeParameters): BrowsingContext.GetTreeResult; - create(params: BrowsingContext.CreateParameters): Promise; - navigate(params: BrowsingContext.NavigateParameters): Promise; - reload(params: BrowsingContext.ReloadParameters): Promise; - activate(params: BrowsingContext.ActivateParameters): Promise; - captureScreenshot(params: BrowsingContext.CaptureScreenshotParameters): Promise; - print(params: BrowsingContext.PrintParameters): Promise; - setViewport(params: BrowsingContext.SetViewportParameters): Promise; - traverseHistory(params: BrowsingContext.TraverseHistoryParameters): Promise; - handleUserPrompt(params: BrowsingContext.HandleUserPromptParameters): Promise; - close(params: BrowsingContext.CloseParameters): Promise; - locateNodes(params: BrowsingContext.LocateNodesParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js deleted file mode 100644 index e1a000a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js +++ /dev/null @@ -1,263 +0,0 @@ -import { ChromiumBidi, InvalidArgumentException, NoSuchUserContextException, NoSuchAlertException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -export class BrowsingContextProcessor { - #browserCdpClient; - #browsingContextStorage; - #contextConfigStorage; - #eventManager; - #userContextStorage; - constructor(browserCdpClient, browsingContextStorage, userContextStorage, contextConfigStorage, eventManager) { - this.#contextConfigStorage = contextConfigStorage; - this.#userContextStorage = userContextStorage; - this.#browserCdpClient = browserCdpClient; - this.#browsingContextStorage = browsingContextStorage; - this.#eventManager = eventManager; - this.#eventManager.addSubscribeHook(ChromiumBidi.BrowsingContext.EventNames.ContextCreated, this.#onContextCreatedSubscribeHook.bind(this)); - } - getTree(params) { - const resultContexts = params.root === undefined - ? this.#browsingContextStorage.getTopLevelContexts() - : [this.#browsingContextStorage.getContext(params.root)]; - return { - contexts: resultContexts.map((c) => c.serializeToBidiValue(params.maxDepth ?? Number.MAX_VALUE)), - }; - } - async create(params) { - let referenceContext; - let userContext = 'default'; - if (params.referenceContext !== undefined) { - referenceContext = this.#browsingContextStorage.getContext(params.referenceContext); - if (!referenceContext.isTopLevelContext()) { - throw new InvalidArgumentException(`referenceContext should be a top-level context`); - } - userContext = referenceContext.userContext; - } - if (params.userContext !== undefined) { - userContext = params.userContext; - } - const existingContexts = this.#browsingContextStorage - .getAllContexts() - .filter((context) => context.userContext === userContext); - let newWindow = false; - switch (params.type) { - case "tab" /* BrowsingContext.CreateType.Tab */: - newWindow = false; - break; - case "window" /* BrowsingContext.CreateType.Window */: - newWindow = true; - break; - } - if (!existingContexts.length) { - // If there are no contexts in the given user context, we need to set - // newWindow to true as newWindow=false will be rejected. - newWindow = true; - } - let result; - try { - result = await this.#browserCdpClient.sendCommand('Target.createTarget', { - url: 'about:blank', - newWindow, - browserContextId: userContext === 'default' ? undefined : userContext, - background: params.background === true, - }); - } - catch (err) { - if ( - // See https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/devtools/protocol/target_handler.cc;l=90;drc=e80392ac11e48a691f4309964cab83a3a59e01c8 - err.message.startsWith('Failed to find browser context with id') || - // See https://source.chromium.org/chromium/chromium/src/+/main:headless/lib/browser/protocol/target_handler.cc;l=49;drc=e80392ac11e48a691f4309964cab83a3a59e01c8 - err.message === 'browserContextId') { - throw new NoSuchUserContextException(`The context ${userContext} was not found`); - } - throw err; - } - // Wait for the new target to be attached and to be added to the browsing context - // storage. - const context = await this.#browsingContextStorage.waitForContext(result.targetId); - // Wait for the new tab to be loaded to avoid race conditions in the - // `browsingContext` events, when the `browsingContext.domContentLoaded` and - // `browsingContext.load` events from the initial `about:blank` navigation - // are emitted after the next navigation is started. - // Details: https://github.com/web-platform-tests/wpt/issues/35846 - await context.lifecycleLoaded(); - return { context: context.id }; - } - navigate(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return context.navigate(params.url, params.wait ?? "none" /* BrowsingContext.ReadinessState.None */); - } - reload(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return context.reload(params.ignoreCache ?? false, params.wait ?? "none" /* BrowsingContext.ReadinessState.None */); - } - async activate(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Activation is only supported on the top-level context'); - } - await context.activate(); - return {}; - } - async captureScreenshot(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.captureScreenshot(params); - } - async print(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.print(params); - } - async setViewport(params) { - // Check the The viewport size limits is not checked by protocol parser, so we need to validate - // it manually: - // https://crsrc.org/c/content/browser/devtools/protocol/emulation_handler.cc;drc=f49e23d8e2bd190b42ec62284b8be10dcccd0446;l=660 - const maxDimensionSize = 10_000_000; - if ((params.viewport?.height ?? 0) > maxDimensionSize || - (params.viewport?.width ?? 0) > maxDimensionSize) { - throw new UnsupportedOperationException(`Viewport dimension over ${maxDimensionSize} are not supported`); - } - const config = {}; - // `undefined` means no changes should be done to the config. - if (params.devicePixelRatio !== undefined) { - config.devicePixelRatio = params.devicePixelRatio; - } - if (params.viewport !== undefined) { - config.viewport = params.viewport; - } - const impactedTopLevelContexts = await this.#getRelatedTopLevelBrowsingContexts(params.context, params.userContexts); - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, config); - } - if (params.context !== undefined) { - this.#contextConfigStorage.updateBrowsingContextConfig(params.context, config); - } - await Promise.all(impactedTopLevelContexts.map(async (context) => { - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - /** - * Returns a list of top-level browsing context ids. - */ - async #getRelatedTopLevelBrowsingContexts(browsingContextId, userContextIds) { - if (browsingContextId === undefined && userContextIds === undefined) { - throw new InvalidArgumentException('Either userContexts or context must be provided'); - } - if (browsingContextId !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('userContexts and context are mutually exclusive'); - } - if (browsingContextId !== undefined) { - const context = this.#browsingContextStorage.getContext(browsingContextId); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Emulating viewport is only supported on the top-level context'); - } - return [context]; - } - // Verify that all user contexts exist. - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - const result = []; - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as - // `browsingContextStorage` returns the same instance for the same id. - return [...new Set(result).values()]; - } - async traverseHistory(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context) { - throw new InvalidArgumentException(`No browsing context with id ${params.context}`); - } - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException('Traversing history is only supported on the top-level context'); - } - await context.traverseHistory(params.delta); - return {}; - } - async handleUserPrompt(params) { - const context = this.#browsingContextStorage.getContext(params.context); - try { - await context.handleUserPrompt(params.accept, params.userText); - } - catch (error) { - // Heuristically determine the error - // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/page_handler.cc;l=1085?q=%22No%20dialog%20is%20showing%22&ss=chromium - if (error.message?.includes('No dialog is showing')) { - throw new NoSuchAlertException('No dialog is showing'); - } - throw error; - } - return {}; - } - async close(params) { - const context = this.#browsingContextStorage.getContext(params.context); - if (!context.isTopLevelContext()) { - throw new InvalidArgumentException(`Non top-level browsing context ${context.id} cannot be closed.`); - } - // Parent session of a page target session can be a `browser` or a `tab` session. - const parentCdpClient = context.cdpTarget.parentCdpClient; - try { - const detachedFromTargetPromise = new Promise((resolve) => { - const onContextDestroyed = (event) => { - if (event.targetId === params.context) { - parentCdpClient.off('Target.detachedFromTarget', onContextDestroyed); - resolve(); - } - }; - parentCdpClient.on('Target.detachedFromTarget', onContextDestroyed); - }); - try { - if (params.promptUnload) { - await context.close(); - } - else { - await parentCdpClient.sendCommand('Target.closeTarget', { - targetId: params.context, - }); - } - } - catch (error) { - // Swallow error that arise from the session being destroyed. Rely on the - // `detachedFromTargetPromise` event to be resolved. - if (!parentCdpClient.isCloseError(error)) { - throw error; - } - } - // Sometimes CDP command finishes before `detachedFromTarget` event, - // sometimes after. Wait for the CDP command to be finished, and then wait - // for `detachedFromTarget` if it hasn't emitted. - await detachedFromTargetPromise; - } - catch (error) { - // Swallow error that arise from the page being destroyed - // Example is navigating to faulty SSL certificate - if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ && - error.message === 'Not attached to an active page')) { - throw error; - } - } - return {}; - } - async locateNodes(params) { - const context = this.#browsingContextStorage.getContext(params.context); - return await context.locateNodes(params); - } - #onContextCreatedSubscribeHook(contextId) { - const context = this.#browsingContextStorage.getContext(contextId); - const contextsToReport = [ - context, - ...this.#browsingContextStorage.getContext(contextId).allChildren, - ]; - contextsToReport.forEach((context) => { - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.ContextCreated, - params: context.serializeToBidiValue(), - }, context.id); - }); - return Promise.resolve(); - } -} -//# sourceMappingURL=BrowsingContextProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js.map deleted file mode 100644 index 0df6420..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BrowsingContextProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/context/BrowsingContextProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.d.ts deleted file mode 100644 index 261475b..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type BrowsingContext } from '../../../protocol/protocol.js'; -import type { BrowsingContextImpl } from './BrowsingContextImpl.js'; -/** Container class for browsing contexts. */ -export declare class BrowsingContextStorage { - #private; - /** Gets all top-level contexts, i.e. those with no parent. */ - getTopLevelContexts(): BrowsingContextImpl[]; - /** Gets all contexts. */ - getAllContexts(): BrowsingContextImpl[]; - /** Deletes the context with the given ID. */ - deleteContextById(id: BrowsingContext.BrowsingContext): void; - /** Deletes the given context. */ - deleteContext(context: BrowsingContextImpl): void; - /** Tracks the given context. */ - addContext(context: BrowsingContextImpl): void; - /** - * Waits for a context with the given ID to be added and returns it. - */ - waitForContext(browsingContextId: BrowsingContext.BrowsingContext): Promise; - /** Returns true whether there is an existing context with the given ID. */ - hasContext(id: BrowsingContext.BrowsingContext): boolean; - /** Gets the context with the given ID, if any. */ - findContext(id: BrowsingContext.BrowsingContext): BrowsingContextImpl | undefined; - /** Returns the top-level context ID of the given context, if any. */ - findTopLevelContextId(id: BrowsingContext.BrowsingContext | null): BrowsingContext.BrowsingContext | null; - findContextBySession(sessionId: string): BrowsingContextImpl | undefined; - /** Gets the context with the given ID, if any, otherwise throws. */ - getContext(id: BrowsingContext.BrowsingContext): BrowsingContextImpl; - verifyTopLevelContextsList(contexts: BrowsingContext.BrowsingContext[] | undefined): Set; - verifyContextsList(contexts: BrowsingContext.BrowsingContext[]): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js deleted file mode 100644 index a887405..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoSuchFrameException, InvalidArgumentException, } from '../../../protocol/protocol.js'; -import { EventEmitter } from '../../../utils/EventEmitter.js'; -/** Container class for browsing contexts. */ -export class BrowsingContextStorage { - /** Map from context ID to context implementation. */ - #contexts = new Map(); - /** Event emitter for browsing context storage eventsis not expected to be exposed to - * the outside world. */ - #eventEmitter = new EventEmitter(); - /** Gets all top-level contexts, i.e. those with no parent. */ - getTopLevelContexts() { - return this.getAllContexts().filter((context) => context.isTopLevelContext()); - } - /** Gets all contexts. */ - getAllContexts() { - return Array.from(this.#contexts.values()); - } - /** Deletes the context with the given ID. */ - deleteContextById(id) { - this.#contexts.delete(id); - } - /** Deletes the given context. */ - deleteContext(context) { - this.#contexts.delete(context.id); - } - /** Tracks the given context. */ - addContext(context) { - this.#contexts.set(context.id, context); - this.#eventEmitter.emit("added" /* BrowsingContextStorageEvents.Added */, { - browsingContext: context, - }); - } - /** - * Waits for a context with the given ID to be added and returns it. - */ - waitForContext(browsingContextId) { - if (this.#contexts.has(browsingContextId)) { - return Promise.resolve(this.getContext(browsingContextId)); - } - return new Promise((resolve) => { - const listener = (event) => { - if (event.browsingContext.id === browsingContextId) { - this.#eventEmitter.off("added" /* BrowsingContextStorageEvents.Added */, listener); - resolve(event.browsingContext); - } - }; - this.#eventEmitter.on("added" /* BrowsingContextStorageEvents.Added */, listener); - }); - } - /** Returns true whether there is an existing context with the given ID. */ - hasContext(id) { - return this.#contexts.has(id); - } - /** Gets the context with the given ID, if any. */ - findContext(id) { - return this.#contexts.get(id); - } - /** Returns the top-level context ID of the given context, if any. */ - findTopLevelContextId(id) { - if (id === null) { - return null; - } - const maybeContext = this.findContext(id); - if (!maybeContext) { - return null; - } - const parentId = maybeContext.parentId ?? null; - if (parentId === null) { - return id; - } - return this.findTopLevelContextId(parentId); - } - findContextBySession(sessionId) { - for (const context of this.#contexts.values()) { - if (context.cdpTarget.cdpSessionId === sessionId) { - return context; - } - } - return; - } - /** Gets the context with the given ID, if any, otherwise throws. */ - getContext(id) { - const result = this.findContext(id); - if (result === undefined) { - throw new NoSuchFrameException(`Context ${id} not found`); - } - return result; - } - verifyTopLevelContextsList(contexts) { - const foundContexts = new Set(); - if (!contexts) { - return foundContexts; - } - for (const contextId of contexts) { - const context = this.getContext(contextId); - if (context.isTopLevelContext()) { - foundContexts.add(context); - } - else { - throw new InvalidArgumentException(`Non top-level context '${contextId}' given.`); - } - } - return foundContexts; - } - verifyContextsList(contexts) { - if (!contexts.length) { - return; - } - for (const contextId of contexts) { - this.getContext(contextId); - } - } -} -//# sourceMappingURL=BrowsingContextStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js.map deleted file mode 100644 index e205e0f..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/BrowsingContextStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BrowsingContextStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/context/BrowsingContextStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,oBAAoB,EAEpB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAY5D,6CAA6C;AAC7C,MAAM,OAAO,sBAAsB;IACjC,qDAAqD;IAC5C,SAAS,GAAG,IAAI,GAAG,EAGzB,CAAC;IACJ;4BACwB;IACf,aAAa,GAAG,IAAI,YAAY,EAA+B,CAAC;IAEzE,8DAA8D;IAC9D,mBAAmB;QACjB,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9C,OAAO,CAAC,iBAAiB,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,6CAA6C;IAC7C,iBAAiB,CAAC,EAAmC;QACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,iCAAiC;IACjC,aAAa,CAAC,OAA4B;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,OAA4B;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,mDAAqC;YAC1D,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,iBAAkD;QAElD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,CAAC,KAA6C,EAAE,EAAE;gBACjE,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,iBAAiB,EAAE,CAAC;oBACnD,IAAI,CAAC,aAAa,CAAC,GAAG,mDAAqC,QAAQ,CAAC,CAAC;oBACrE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,EAAE,mDAAqC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,UAAU,CAAC,EAAmC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kDAAkD;IAClD,WAAW,CACT,EAAmC;QAEnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,qEAAqE;IACrE,qBAAqB,CACnB,EAA0C;QAE1C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,UAAU,CAAC,EAAmC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,oBAAoB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0BAA0B,CACxB,QAAuD;QAEvD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBAChC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,wBAAwB,CAChC,0BAA0B,SAAS,UAAU,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,QAA2C;QAC5D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.d.ts deleted file mode 100644 index c029d12..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.d.ts +++ /dev/null @@ -1,87 +0,0 @@ -import type { Protocol } from 'devtools-protocol'; -import { type BrowsingContext } from '../../../protocol/protocol.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { EventManager } from '../session/EventManager.js'; -export declare const enum NavigationEventName { - FragmentNavigated = "browsingContext.fragmentNavigated", - NavigationAborted = "browsingContext.navigationAborted", - NavigationFailed = "browsingContext.navigationFailed", - Load = "browsingContext.load" -} -export declare class NavigationResult { - readonly eventName: NavigationEventName; - readonly message?: string; - constructor(eventName: NavigationEventName, message?: string); -} -export declare class NavigationState { - #private; - readonly navigationId: `${string}-${string}-${string}-${string}-${string}`; - url: string; - loaderId?: string; - committed: Deferred; - isFragmentNavigation?: boolean; - get finished(): Promise; - constructor(url: string, browsingContextId: string, isInitial: boolean, eventManager: EventManager); - navigationInfo(): BrowsingContext.NavigationInfo; - start(): void; - frameNavigated(): void; - fragmentNavigated(): void; - load(): void; - fail(message: string): void; -} -/** - * Keeps track of navigations. Details: http://go/webdriver:bidi-navigation - */ -export declare class NavigationTracker { - #private; - constructor(url: string, browsingContextId: string, eventManager: EventManager, logger?: LoggerFn); - /** - * Returns current started ongoing navigation. It can be either a started pending - * navigation, or one is already navigated. - */ - get currentNavigationId(): `${string}-${string}-${string}-${string}-${string}`; - /** - * Flags if the current navigation relates to the initial to `about:blank` navigation. - */ - get isInitialNavigation(): boolean; - /** - * Url of the last navigated navigation. - */ - get url(): string; - /** - * Creates a pending navigation e.g. when navigation command is called. Required to - * provide navigation id before the actual navigation is started. It will be used when - * navigation started. Can be aborted, failed, fragment navigated, or became a current - * navigation. - */ - createPendingNavigation(url: string, canBeInitialNavigation?: boolean): NavigationState; - dispose(): void; - onTargetInfoChanged(url: string): void; - /** - * @param {string} unreachableUrl indicated the navigation is actually failed. - */ - frameNavigated(url: string, loaderId: string, unreachableUrl?: string): void; - navigatedWithinDocument(url: string, navigationType: Protocol.Page.NavigatedWithinDocumentEvent['navigationType']): void; - /** - * Required to mark navigation as fully complete. - * TODO: navigation should be complete when it became the current one on - * `Page.frameNavigated` or on navigating command finished with a new loader Id. - */ - loadPageEvent(loaderId: string): void; - /** - * Fail navigation due to navigation command failed. - */ - failNavigation(navigation: NavigationState, errorText: string): void; - /** - * Updates the navigation's `loaderId` and sets it as current one, if it is a - * cross-document navigation. - */ - navigationCommandFinished(navigation: NavigationState, loaderId?: string): void; - frameStartedNavigating(url: string, loaderId: string, navigationType: string): void; - /** - * If there is a navigation with the loaderId equals to the network request id, it means - * that the navigation failed. - */ - networkLoadingFailed(loaderId: string, errorText: string): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js deleted file mode 100644 index bb9d632..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import { ChromiumBidi, } from '../../../protocol/protocol.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { LogType } from '../../../utils/log.js'; -import { getTimestamp } from '../../../utils/time.js'; -import { urlMatchesAboutBlank } from '../../../utils/urlHelpers.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -export class NavigationResult { - eventName; - message; - constructor(eventName, message) { - this.eventName = eventName; - this.message = message; - } -} -export class NavigationState { - navigationId = uuidv4(); - #browsingContextId; - #started = false; - #finished = new Deferred(); - url; - loaderId; - #isInitial; - #eventManager; - committed = new Deferred(); - isFragmentNavigation; - get finished() { - return this.#finished; - } - constructor(url, browsingContextId, isInitial, eventManager) { - this.#browsingContextId = browsingContextId; - this.url = url; - this.#isInitial = isInitial; - this.#eventManager = eventManager; - } - navigationInfo() { - return { - context: this.#browsingContextId, - navigation: this.navigationId, - timestamp: getTimestamp(), - url: this.url, - }; - } - start() { - if ( - // Initial navigation should not be reported. - !this.#isInitial && - // No need in reporting started navigation twice. - !this.#started && - // No need for reporting fragment navigations. Step 13 vs step 16 of the spec: - // https://html.spec.whatwg.org/#beginning-navigation:webdriver-bidi-navigation-started - !this.isFragmentNavigation) { - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.NavigationStarted, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - this.#started = true; - } - #finish(navigationResult) { - this.#started = true; - if (!this.#isInitial && - !this.#finished.isFinished && - navigationResult.eventName !== "browsingContext.load" /* NavigationEventName.Load */) { - this.#eventManager.registerEvent({ - type: 'event', - method: navigationResult.eventName, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - this.#finished.resolve(navigationResult); - } - frameNavigated() { - this.committed.resolve(); - if (!this.#isInitial) { - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.BrowsingContext.EventNames.NavigationCommitted, - params: this.navigationInfo(), - }, this.#browsingContextId); - } - } - fragmentNavigated() { - this.committed.resolve(); - this.#finish(new NavigationResult("browsingContext.fragmentNavigated" /* NavigationEventName.FragmentNavigated */)); - } - load() { - this.#finish(new NavigationResult("browsingContext.load" /* NavigationEventName.Load */)); - } - fail(message) { - this.#finish(new NavigationResult(this.committed.isFinished - ? "browsingContext.navigationAborted" /* NavigationEventName.NavigationAborted */ - : "browsingContext.navigationFailed" /* NavigationEventName.NavigationFailed */, message)); - } -} -/** - * Keeps track of navigations. Details: http://go/webdriver:bidi-navigation - */ -export class NavigationTracker { - #eventManager; - #logger; - #loaderIdToNavigationsMap = new Map(); - #browsingContextId; - /** - * Last committed navigation is committed, but is not guaranteed to be finished, as it - * can still wait for `load` or `DOMContentLoaded` events. - */ - #lastCommittedNavigation; - /** - * Pending navigation is a navigation that is started but not yet committed. - */ - #pendingNavigation; - // Flags if the initial navigation to `about:blank` is in progress. - #isInitialNavigation = true; - constructor(url, browsingContextId, eventManager, logger) { - this.#browsingContextId = browsingContextId; - this.#eventManager = eventManager; - this.#logger = logger; - this.#isInitialNavigation = true; - // The initial navigation is always committed. - this.#lastCommittedNavigation = new NavigationState(url, browsingContextId, urlMatchesAboutBlank(url), this.#eventManager); - } - /** - * Returns current started ongoing navigation. It can be either a started pending - * navigation, or one is already navigated. - */ - get currentNavigationId() { - if (this.#pendingNavigation?.isFragmentNavigation === false) { - // Use pending navigation if it is started and it is not a fragment navigation. - return this.#pendingNavigation.navigationId; - } - // If the pending navigation is a fragment one, or if it is not exists, the last - // committed navigation should be used. - return this.#lastCommittedNavigation.navigationId; - } - /** - * Flags if the current navigation relates to the initial to `about:blank` navigation. - */ - get isInitialNavigation() { - return this.#isInitialNavigation; - } - /** - * Url of the last navigated navigation. - */ - get url() { - return this.#lastCommittedNavigation.url; - } - /** - * Creates a pending navigation e.g. when navigation command is called. Required to - * provide navigation id before the actual navigation is started. It will be used when - * navigation started. Can be aborted, failed, fragment navigated, or became a current - * navigation. - */ - createPendingNavigation(url, canBeInitialNavigation = false) { - this.#logger?.(LogType.debug, 'createCommandNavigation'); - this.#isInitialNavigation = - canBeInitialNavigation && - this.#isInitialNavigation && - urlMatchesAboutBlank(url); - this.#pendingNavigation?.fail('navigation canceled by concurrent navigation'); - const navigation = new NavigationState(url, this.#browsingContextId, this.#isInitialNavigation, this.#eventManager); - this.#pendingNavigation = navigation; - return navigation; - } - dispose() { - this.#pendingNavigation?.fail('navigation canceled by context disposal'); - this.#lastCommittedNavigation.fail('navigation canceled by context disposal'); - } - // Update the current url. - onTargetInfoChanged(url) { - this.#logger?.(LogType.debug, `onTargetInfoChanged ${url}`); - this.#lastCommittedNavigation.url = url; - } - #getNavigationForFrameNavigated(url, loaderId) { - if (this.#loaderIdToNavigationsMap.has(loaderId)) { - return this.#loaderIdToNavigationsMap.get(loaderId); - } - if (this.#pendingNavigation !== undefined && - this.#pendingNavigation.loaderId === undefined) { - // This can be a pending navigation to `about:blank` created by a command. Use the - // pending navigation in this case. - return this.#pendingNavigation; - } - // Create a new pending navigation. - return this.createPendingNavigation(url, true); - } - /** - * @param {string} unreachableUrl indicated the navigation is actually failed. - */ - frameNavigated(url, loaderId, unreachableUrl) { - this.#logger?.(LogType.debug, `frameNavigated ${url}`); - if (unreachableUrl !== undefined) { - // The navigation failed. - const navigation = this.#loaderIdToNavigationsMap.get(loaderId) ?? - this.#pendingNavigation ?? - this.createPendingNavigation(unreachableUrl, true); - navigation.url = unreachableUrl; - navigation.start(); - navigation.fail('the requested url is unreachable'); - return; - } - const navigation = this.#getNavigationForFrameNavigated(url, loaderId); - if (navigation !== this.#lastCommittedNavigation) { - // Even though the `lastCommittedNavigation` is navigated, it still can be waiting - // for `load` or `DOMContentLoaded` events. - this.#lastCommittedNavigation.fail('navigation canceled by concurrent navigation'); - } - navigation.url = url; - navigation.loaderId = loaderId; - this.#loaderIdToNavigationsMap.set(loaderId, navigation); - navigation.start(); - navigation.frameNavigated(); - this.#lastCommittedNavigation = navigation; - if (this.#pendingNavigation === navigation) { - this.#pendingNavigation = undefined; - } - } - navigatedWithinDocument(url, navigationType) { - this.#logger?.(LogType.debug, `navigatedWithinDocument ${url}, ${navigationType}`); - // Current navigation URL should be updated. - this.#lastCommittedNavigation.url = url; - if (navigationType !== 'fragment') { - // TODO: check for other navigation types, like `javascript`. - return; - } - // There is no way to map `navigatedWithinDocument` to a specific navigation. Consider - // it is the pending navigation, if it is a fragment one. - const fragmentNavigation = this.#pendingNavigation?.isFragmentNavigation === true - ? this.#pendingNavigation - : new NavigationState(url, this.#browsingContextId, false, this.#eventManager); - // Finish ongoing navigation. - fragmentNavigation.fragmentNavigated(); - if (fragmentNavigation === this.#pendingNavigation) { - this.#pendingNavigation = undefined; - } - } - /** - * Required to mark navigation as fully complete. - * TODO: navigation should be complete when it became the current one on - * `Page.frameNavigated` or on navigating command finished with a new loader Id. - */ - loadPageEvent(loaderId) { - this.#logger?.(LogType.debug, 'loadPageEvent'); - // Even if it was an initial navigation, it is finished. - this.#isInitialNavigation = false; - this.#loaderIdToNavigationsMap.get(loaderId)?.load(); - } - /** - * Fail navigation due to navigation command failed. - */ - failNavigation(navigation, errorText) { - this.#logger?.(LogType.debug, 'failCommandNavigation'); - navigation.fail(errorText); - } - /** - * Updates the navigation's `loaderId` and sets it as current one, if it is a - * cross-document navigation. - */ - navigationCommandFinished(navigation, loaderId) { - this.#logger?.(LogType.debug, `finishCommandNavigation ${navigation.navigationId}, ${loaderId}`); - if (loaderId !== undefined) { - navigation.loaderId = loaderId; - this.#loaderIdToNavigationsMap.set(loaderId, navigation); - } - navigation.isFragmentNavigation = loaderId === undefined; - } - frameStartedNavigating(url, loaderId, navigationType) { - this.#logger?.(LogType.debug, `frameStartedNavigating ${url}, ${loaderId}`); - if (this.#pendingNavigation && - this.#pendingNavigation?.loaderId !== undefined && - this.#pendingNavigation?.loaderId !== loaderId) { - // If there is a pending navigation with loader id set, but not equal to the new - // loader id, cancel pending navigation. - this.#pendingNavigation?.fail('navigation canceled by concurrent navigation'); - this.#pendingNavigation = undefined; - } - if (this.#loaderIdToNavigationsMap.has(loaderId)) { - const existingNavigation = this.#loaderIdToNavigationsMap.get(loaderId); - // Navigation can be changed from `sameDocument` to `differentDocument`. - existingNavigation.isFragmentNavigation = - NavigationTracker.#isFragmentNavigation(navigationType); - this.#pendingNavigation = existingNavigation; - return; - } - const pendingNavigation = this.#pendingNavigation ?? this.createPendingNavigation(url, true); - this.#loaderIdToNavigationsMap.set(loaderId, pendingNavigation); - pendingNavigation.isFragmentNavigation = - NavigationTracker.#isFragmentNavigation(navigationType); - pendingNavigation.url = url; - pendingNavigation.loaderId = loaderId; - pendingNavigation.start(); - } - static #isFragmentNavigation(navigationType) { - // Page.frameStartedNavigating.navigationType can be one of the following values: - // reload, reloadBypassingCache, restore, restoreWithPost, historySameDocument, - // historyDifferentDocument, sameDocument, differentDocument. - // https://chromedevtools.github.io/devtools-protocol/tot/Page/#event-frameStartedNavigating - return ['historySameDocument', 'sameDocument'].includes(navigationType); - } - /** - * If there is a navigation with the loaderId equals to the network request id, it means - * that the navigation failed. - */ - networkLoadingFailed(loaderId, errorText) { - this.#loaderIdToNavigationsMap.get(loaderId)?.fail(errorText); - } -} -//# sourceMappingURL=NavigationTracker.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js.map deleted file mode 100644 index 75176fe..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/context/NavigationTracker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NavigationTracker.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/context/NavigationTracker.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.d.ts deleted file mode 100644 index 25a4ebe..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { EmptyResult, Emulation, UAClientHints } from '../../../protocol/protocol.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { UserContextStorage } from '../browser/UserContextStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -export declare class EmulationProcessor { - #private; - constructor(browsingContextStorage: BrowsingContextStorage, userContextStorage: UserContextStorage, contextConfigStorage: ContextConfigStorage); - setGeolocationOverride(params: Emulation.SetGeolocationOverrideParameters): Promise; - setLocaleOverride(params: Emulation.SetLocaleOverrideParameters): Promise; - setScriptingEnabled(params: Emulation.SetScriptingEnabledParameters): Promise; - setScrollbarTypeOverride(params: Emulation.SetScrollbarTypeOverrideParameters): Promise; - setScreenOrientationOverride(params: Emulation.SetScreenOrientationOverrideParameters): Promise; - setScreenSettingsOverride(params: Emulation.SetScreenSettingsOverrideParameters): Promise; - setTimezoneOverride(params: Emulation.SetTimezoneOverrideParameters): Promise; - setTouchOverride(params: Emulation.SetTouchOverrideParameters): Promise; - setUserAgentOverrideParams(params: Emulation.SetUserAgentOverrideParameters): Promise; - setClientHintsOverride(params: UAClientHints.UserAgentClientHints.SetClientHintsOverrideCommand['params']): Promise; - setNetworkConditions(params: Emulation.SetNetworkConditionsParameters): Promise; -} -export declare function isValidLocale(locale: string): boolean; -export declare function isValidTimezone(timezone: string): boolean; -export declare function isTimeZoneOffsetString(timezone: string): boolean; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js deleted file mode 100644 index dbad18d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js +++ /dev/null @@ -1,397 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -export class EmulationProcessor { - #userContextStorage; - #browsingContextStorage; - #contextConfigStorage; - constructor(browsingContextStorage, userContextStorage, contextConfigStorage) { - this.#userContextStorage = userContextStorage; - this.#browsingContextStorage = browsingContextStorage; - this.#contextConfigStorage = contextConfigStorage; - } - async setGeolocationOverride(params) { - if ('coordinates' in params && 'error' in params) { - // Unreachable. Handled by params parser. - throw new InvalidArgumentException('Coordinates and error cannot be set at the same time'); - } - let geolocation = null; - if ('coordinates' in params) { - if ((params.coordinates?.altitude ?? null) === null && - (params.coordinates?.altitudeAccuracy ?? null) !== null) { - throw new InvalidArgumentException('Geolocation altitudeAccuracy can be set only with altitude'); - } - geolocation = params.coordinates; - } - else if ('error' in params) { - if (params.error.type !== 'positionUnavailable') { - // Unreachable. Handled by params parser. - throw new InvalidArgumentException(`Unknown geolocation error ${params.error.type}`); - } - geolocation = params.error; - } - else { - // Unreachable. Handled by params parser. - throw new InvalidArgumentException(`Coordinates or error should be set`); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - geolocation, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - geolocation, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setGeolocationOverride(config.geolocation ?? null); - })); - return {}; - } - async setLocaleOverride(params) { - const locale = params.locale ?? null; - if (locale !== null && !isValidLocale(locale)) { - throw new InvalidArgumentException(`Invalid locale "${locale}"`); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - locale, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - locale, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await Promise.all([ - context.setLocaleOverride(config.locale ?? null), - // Set `AcceptLanguage` to locale. - context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints), - ]); - })); - return {}; - } - async setScriptingEnabled(params) { - const scriptingEnabled = params.enabled; - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - scriptingEnabled, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - scriptingEnabled, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setScriptingEnabled(config.scriptingEnabled ?? null); - })); - return {}; - } - async setScrollbarTypeOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - scrollbarType: params.scrollbarType, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - scrollbarType: params.scrollbarType, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setScrollbarTypeOverride(config.scrollbarType ?? null); - })); - return {}; - } - async setScreenOrientationOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - screenOrientation: params.screenOrientation, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - screenOrientation: params.screenOrientation, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - async setScreenSettingsOverride(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - screenArea: params.screenArea, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - screenArea: params.screenArea, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setViewport(config.viewport ?? null, config.devicePixelRatio ?? null, config.screenOrientation ?? null); - })); - return {}; - } - /** - * Returns a list of top-level browsing contexts. - */ - async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds, allowGlobal = false) { - if (browsingContextIds === undefined && userContextIds === undefined) { - if (allowGlobal) { - return this.#browsingContextStorage.getTopLevelContexts(); - } - throw new InvalidArgumentException('Either user contexts or browsing contexts must be provided'); - } - if (browsingContextIds !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive'); - } - const result = []; - if (browsingContextIds === undefined) { - // userContextIds !== undefined - if (userContextIds.length === 0) { - throw new InvalidArgumentException('user context should be provided'); - } - // Verify that all user contexts exist. - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - } - else { - if (browsingContextIds.length === 0) { - throw new InvalidArgumentException('browsing context should be provided'); - } - for (const browsingContextId of browsingContextIds) { - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException('The command is only supported on the top-level context'); - } - result.push(browsingContext); - } - } - // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as - // `browsingContextStorage` returns the same instance for the same id. - return [...new Set(result).values()]; - } - async setTimezoneOverride(params) { - let timezone = params.timezone ?? null; - if (timezone !== null && !isValidTimezone(timezone)) { - throw new InvalidArgumentException(`Invalid timezone "${timezone}"`); - } - if (timezone !== null && isTimeZoneOffsetString(timezone)) { - // CDP supports offset timezone with `GMT` prefix. - timezone = `GMT${timezone}`; - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - timezone, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - timezone, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setTimezoneOverride(config.timezone ?? null); - })); - return {}; - } - async setTouchOverride(params) { - const maxTouchPoints = params.maxTouchPoints; - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - maxTouchPoints, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - maxTouchPoints, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - maxTouchPoints, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setTouchOverride(config.maxTouchPoints ?? null); - })); - return {}; - } - async setUserAgentOverrideParams(params) { - if (params.userAgent === '') { - throw new UnsupportedOperationException('empty user agent string is not supported'); - } - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - userAgent: params.userAgent, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - userAgent: params.userAgent, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - userAgent: params.userAgent, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints); - })); - return {}; - } - async setClientHintsOverride(params) { - const clientHints = params.clientHints ?? null; - // Get all relevant contexts to update: - // 1. Specific browsing contexts (if provided). - // 2. All contexts for specific user contexts (if provided). - // 3. All top-level contexts (if global). - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - clientHints, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - clientHints, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - clientHints, - }); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setUserAgentAndAcceptLanguage(config.userAgent, config.locale, config.clientHints); - })); - return {}; - } - async setNetworkConditions(params) { - const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts, true); - for (const browsingContextId of params.contexts ?? []) { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { - emulatedNetworkConditions: params.networkConditions, - }); - } - for (const userContextId of params.userContexts ?? []) { - this.#contextConfigStorage.updateUserContextConfig(userContextId, { - emulatedNetworkConditions: params.networkConditions, - }); - } - if (params.contexts === undefined && params.userContexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - emulatedNetworkConditions: params.networkConditions, - }); - } - if (params.networkConditions !== null && - params.networkConditions.type !== 'offline') { - throw new UnsupportedOperationException(`Unsupported network conditions ${params.networkConditions.type}`); - } - await Promise.all(browsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing more granular setting. - const config = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext); - await context.setEmulatedNetworkConditions(config.emulatedNetworkConditions ?? null); - })); - return {}; - } -} -// Export for testing. -export function isValidLocale(locale) { - try { - new Intl.Locale(locale); - return true; - } - catch (e) { - if (e instanceof RangeError) { - return false; - } - // Re-throw other errors - throw e; - } -} -// Export for testing. -export function isValidTimezone(timezone) { - try { - Intl.DateTimeFormat(undefined, { timeZone: timezone }); - return true; - } - catch (e) { - if (e instanceof RangeError) { - return false; - } - // Re-throw other errors - throw e; - } -} -// Export for testing. -export function isTimeZoneOffsetString(timezone) { - return /^[+-](?:2[0-3]|[01]\d)(?::[0-5]\d)?$/.test(timezone); -} -//# sourceMappingURL=EmulationProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js.map deleted file mode 100644 index 1915692..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/emulation/EmulationProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EmulationProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/emulation/EmulationProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.d.ts deleted file mode 100644 index 25f83c6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { ActionOption } from './ActionOption.js'; -import type { InputState } from './InputState.js'; -export declare class ActionDispatcher { - #private; - static isMacOS: (context: BrowsingContextImpl) => Promise; - constructor(inputState: InputState, browsingContextStorage: BrowsingContextStorage, contextId: string, isMacOS: boolean); - dispatchActions(optionsByTick: readonly (readonly Readonly[])[]): Promise; - dispatchTickActions(options: readonly Readonly[]): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js deleted file mode 100644 index 757ccfc..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js +++ /dev/null @@ -1,740 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, MoveTargetOutOfBoundsException, NoSuchElementException, } from '../../../protocol/protocol.js'; -import { assert } from '../../../utils/assert.js'; -import { isSingleComplexGrapheme, isSingleGrapheme, } from '../../../utils/graphemeTools.js'; -import { PointerSource, } from './InputSource.js'; -import { getKeyCode, getKeyLocation, getNormalizedKey } from './keyUtils.js'; -import { KeyToKeyCode } from './USKeyboardLayout.js'; -/** https://w3c.github.io/webdriver/#dfn-center-point */ -const CALCULATE_IN_VIEW_CENTER_PT_DECL = ((i) => { - const t = i.getClientRects()[0], e = Math.max(0, Math.min(t.x, t.x + t.width)), n = Math.min(window.innerWidth, Math.max(t.x, t.x + t.width)), h = Math.max(0, Math.min(t.y, t.y + t.height)), m = Math.min(window.innerHeight, Math.max(t.y, t.y + t.height)); - return [e + ((n - e) >> 1), h + ((m - h) >> 1)]; -}).toString(); -const IS_MAC_DECL = (() => { - return navigator.platform.toLowerCase().includes('mac'); -}).toString(); -async function getElementCenter(context, element) { - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, false, { type: 'undefined' }, [element]); - if (result.type === 'exception') { - throw new NoSuchElementException(`Origin element ${element.sharedId} was not found`); - } - assert(result.result.type === 'array'); - assert(result.result.value?.[0]?.type === 'number'); - assert(result.result.value?.[1]?.type === 'number'); - const { result: { value: [{ value: x }, { value: y }], }, } = result; - return { x: x, y: y }; -} -export class ActionDispatcher { - static isMacOS = async (context) => { - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - const result = await hiddenSandboxRealm.callFunction(IS_MAC_DECL, false); - assert(result.type !== 'exception'); - assert(result.result.type === 'boolean'); - return result.result.value; - }; - #browsingContextStorage; - #tickStart = 0; - #tickDuration = 0; - #inputState; - #contextId; - #isMacOS; - constructor(inputState, browsingContextStorage, contextId, isMacOS) { - this.#browsingContextStorage = browsingContextStorage; - this.#inputState = inputState; - this.#contextId = contextId; - this.#isMacOS = isMacOS; - } - /** - * The context can be disposed between action ticks, so need to get it each time. - */ - get #context() { - return this.#browsingContextStorage.getContext(this.#contextId); - } - async dispatchActions(optionsByTick) { - await this.#inputState.queue.run(async () => { - for (const options of optionsByTick) { - await this.dispatchTickActions(options); - } - }); - } - async dispatchTickActions(options) { - this.#tickStart = performance.now(); - this.#tickDuration = 0; - for (const { action } of options) { - if ('duration' in action && action.duration !== undefined) { - this.#tickDuration = Math.max(this.#tickDuration, action.duration); - } - } - const promises = [ - new Promise((resolve) => setTimeout(resolve, this.#tickDuration)), - ]; - for (const option of options) { - // In theory we have to wait for each action to happen, but CDP is serial, - // so as an optimization, we queue all CDP commands at once and await all - // of them. - promises.push(this.#dispatchAction(option)); - } - await Promise.all(promises); - } - async #dispatchAction({ id, action }) { - const source = this.#inputState.get(id); - const keyState = this.#inputState.getGlobalKeyState(); - switch (action.type) { - case 'keyDown': { - // SAFETY: The source is validated before. - await this.#dispatchKeyDownAction(source, action); - this.#inputState.cancelList.push({ - id, - action: { - ...action, - type: 'keyUp', - }, - }); - break; - } - case 'keyUp': { - // SAFETY: The source is validated before. - await this.#dispatchKeyUpAction(source, action); - break; - } - case 'pause': { - // TODO: Implement waiting on the input source. - break; - } - case 'pointerDown': { - // SAFETY: The source is validated before. - await this.#dispatchPointerDownAction(source, keyState, action); - this.#inputState.cancelList.push({ - id, - action: { - ...action, - type: 'pointerUp', - }, - }); - break; - } - case 'pointerMove': { - // SAFETY: The source is validated before. - await this.#dispatchPointerMoveAction(source, keyState, action); - break; - } - case 'pointerUp': { - // SAFETY: The source is validated before. - await this.#dispatchPointerUpAction(source, keyState, action); - break; - } - case 'scroll': { - // SAFETY: The source is validated before. - await this.#dispatchScrollAction(source, keyState, action); - break; - } - } - } - async #dispatchPointerDownAction(source, keyState, action) { - const { button } = action; - if (source.pressed.has(button)) { - return; - } - source.pressed.add(button); - const { x, y, subtype: pointerType } = source; - const { width, height, pressure, twist, tangentialPressure } = action; - const { tiltX, tiltY } = getTilt(action); - // --- Platform-specific code begins here --- - const { modifiers } = keyState; - const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1); - switch (pointerType) { - case "mouse" /* Input.PointerType.Mouse */: - case "pen" /* Input.PointerType.Pen */: - // TODO: Implement width and height when available. - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mousePressed', - x, - y, - modifiers, - button: getCdpButton(button), - buttons: source.buttons, - clickCount: source.setClickCount(button, new PointerSource.ClickContext(x, y, performance.now())), - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - }); - break; - case "touch" /* Input.PointerType.Touch */: - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchStart', - touchPoints: [ - { - x, - y, - radiusX, - radiusY, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - id: source.pointerId, - }, - ], - modifiers, - }); - break; - } - source.radiusX = radiusX; - source.radiusY = radiusY; - source.force = pressure; - // --- Platform-specific code ends here --- - } - #dispatchPointerUpAction(source, keyState, action) { - const { button } = action; - if (!source.pressed.has(button)) { - return; - } - source.pressed.delete(button); - const { x, y, force, radiusX, radiusY, subtype: pointerType } = source; - // --- Platform-specific code begins here --- - const { modifiers } = keyState; - switch (pointerType) { - case "mouse" /* Input.PointerType.Mouse */: - case "pen" /* Input.PointerType.Pen */: - // TODO: Implement width and height when available. - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseReleased', - x, - y, - modifiers, - button: getCdpButton(button), - buttons: source.buttons, - clickCount: source.getClickCount(button), - pointerType, - }); - case "touch" /* Input.PointerType.Touch */: - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchEnd', - touchPoints: [ - { - x, - y, - id: source.pointerId, - force, - radiusX, - radiusY, - }, - ], - modifiers, - }); - } - // --- Platform-specific code ends here --- - } - async #dispatchPointerMoveAction(source, keyState, action) { - const { x: startX, y: startY, subtype: pointerType } = source; - const { width, height, pressure, twist, tangentialPressure, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action; - const { tiltX, tiltY } = getTilt(action); - const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1); - const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY); - if (targetX < 0 || targetY < 0) { - throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`); - } - let last; - do { - const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1; - last = ratio >= 1; - let x; - let y; - if (last) { - x = targetX; - y = targetY; - } - else { - x = Math.round(ratio * (targetX - startX) + startX); - y = Math.round(ratio * (targetY - startY) + startY); - } - if (source.x !== x || source.y !== y) { - // --- Platform-specific code begins here --- - const { modifiers } = keyState; - switch (pointerType) { - case "mouse" /* Input.PointerType.Mouse */: - // TODO: Implement width and height when available. - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseMoved', - x, - y, - modifiers, - clickCount: 0, - button: getCdpButton(source.pressed.values().next().value ?? 5), - buttons: source.buttons, - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - }); - break; - case "pen" /* Input.PointerType.Pen */: - if (source.pressed.size !== 0) { - // Empty `source.pressed.size` means the pen is not detected by digitizer. - // Dispatch a mouse event for the pen only if either: - // 1. the pen is hovering over the digitizer (0); - // 2. the pen is in contact with the digitizer (1); - // 3. the pen has at least one button pressed (2, 4, etc). - // https://www.w3.org/TR/pointerevents/#the-buttons-property - // TODO: Implement width and height when available. - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseMoved', - x, - y, - modifiers, - clickCount: 0, - button: getCdpButton(source.pressed.values().next().value ?? 5), - buttons: source.buttons, - pointerType, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure ?? 0.5, - }); - } - break; - case "touch" /* Input.PointerType.Touch */: - if (source.pressed.size !== 0) { - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', { - type: 'touchMove', - touchPoints: [ - { - x, - y, - radiusX, - radiusY, - tangentialPressure, - tiltX, - tiltY, - twist, - force: pressure, - id: source.pointerId, - }, - ], - modifiers, - }); - } - break; - } - // --- Platform-specific code ends here --- - source.x = x; - source.y = y; - source.radiusX = radiusX; - source.radiusY = radiusY; - source.force = pressure; - } - } while (!last); - } - async #getFrameOffset() { - if (this.#context.id === this.#context.cdpTarget.id) { - return { x: 0, y: 0 }; - } - // https://github.com/w3c/webdriver/pull/1847 proposes dispatching events from - // the top-level browsing context. This implementation dispatches it on the top-most - // same-target frame, which is not top-level one in case of OOPiF. - // TODO: switch to the top-level browsing context. - const { backendNodeId } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { frameId: this.#context.id }); - const { model: frameBoxModel } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getBoxModel', { - backendNodeId, - }); - return { x: frameBoxModel.content[0], y: frameBoxModel.content[1] }; - } - async #getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY) { - let targetX; - let targetY; - const frameOffset = await this.#getFrameOffset(); - switch (origin) { - case 'viewport': - targetX = offsetX + frameOffset.x; - targetY = offsetY + frameOffset.y; - break; - case 'pointer': - targetX = startX + offsetX + frameOffset.x; - targetY = startY + offsetY + frameOffset.y; - break; - default: { - const { x: posX, y: posY } = await getElementCenter(this.#context, origin.element); - // SAFETY: These can never be special numbers. - targetX = posX + offsetX + frameOffset.x; - targetY = posY + offsetY + frameOffset.y; - break; - } - } - return { targetX, targetY }; - } - async #dispatchScrollAction(_source, keyState, action) { - const { deltaX: targetDeltaX, deltaY: targetDeltaY, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action; - if (origin === 'pointer') { - throw new InvalidArgumentException('"pointer" origin is invalid for scrolling.'); - } - const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, 0, 0); - if (targetX < 0 || targetY < 0) { - throw new MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`); - } - let currentDeltaX = 0; - let currentDeltaY = 0; - let last; - do { - const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1; - last = ratio >= 1; - let deltaX; - let deltaY; - if (last) { - deltaX = targetDeltaX - currentDeltaX; - deltaY = targetDeltaY - currentDeltaY; - } - else { - deltaX = Math.round(ratio * targetDeltaX - currentDeltaX); - deltaY = Math.round(ratio * targetDeltaY - currentDeltaY); - } - if (deltaX !== 0 || deltaY !== 0) { - // --- Platform-specific code begins here --- - const { modifiers } = keyState; - await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', { - type: 'mouseWheel', - deltaX, - deltaY, - x: targetX, - y: targetY, - modifiers, - }); - // --- Platform-specific code ends here --- - currentDeltaX += deltaX; - currentDeltaY += deltaY; - } - } while (!last); - } - async #dispatchKeyDownAction(source, action) { - const rawKey = action.value; - if (!isSingleGrapheme(rawKey)) { - // https://w3c.github.io/webdriver/#dfn-process-a-key-action - // WebDriver spec allows a grapheme to be used. - throw new InvalidArgumentException(`Invalid key value: ${rawKey}`); - } - const isGrapheme = isSingleComplexGrapheme(rawKey); - const key = getNormalizedKey(rawKey); - const repeat = source.pressed.has(key); - const code = getKeyCode(rawKey); - const location = getKeyLocation(rawKey); - switch (key) { - case 'Alt': - source.alt = true; - break; - case 'Shift': - source.shift = true; - break; - case 'Control': - source.ctrl = true; - break; - case 'Meta': - source.meta = true; - break; - } - source.pressed.add(key); - const { modifiers } = source; - // --- Platform-specific code begins here --- - // The spread is a little hack so JS gives us an array of unicode characters - // to measure. - const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme); - const text = getKeyEventText(code ?? '', source) ?? unmodifiedText; - let command; - // The following commands need to be declared because Chromium doesn't - // handle them. See - // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/blink/renderer/core/editing/editing_behavior.cc;l=169;drc=b8143cf1dfd24842890fcd831c4f5d909bef4fc4;bpv=0;bpt=1. - if (this.#isMacOS && source.meta) { - switch (code) { - case 'KeyA': - command = 'SelectAll'; - break; - case 'KeyC': - command = 'Copy'; - break; - case 'KeyV': - command = source.shift ? 'PasteAndMatchStyle' : 'Paste'; - break; - case 'KeyX': - command = 'Cut'; - break; - case 'KeyZ': - command = source.shift ? 'Redo' : 'Undo'; - break; - default: - // Intentionally empty. - } - } - const promises = [ - this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', { - type: text ? 'keyDown' : 'rawKeyDown', - windowsVirtualKeyCode: KeyToKeyCode[key], - key, - code, - text, - unmodifiedText, - autoRepeat: repeat, - isSystemKey: source.alt || undefined, - location: location < 3 ? location : undefined, - isKeypad: location === 3, - modifiers, - commands: command ? [command] : undefined, - }), - ]; - // Drag cancelling happens on escape. - if (key === 'Escape') { - if (!source.alt && - ((this.#isMacOS && !source.ctrl && !source.meta) || !this.#isMacOS)) { - promises.push(this.#context.cdpTarget.cdpClient.sendCommand('Input.cancelDragging')); - } - } - await Promise.all(promises); - // --- Platform-specific code ends here --- - } - #dispatchKeyUpAction(source, action) { - const rawKey = action.value; - if (!isSingleGrapheme(rawKey)) { - // https://w3c.github.io/webdriver/#dfn-process-a-key-action - // WebDriver spec allows a grapheme to be used. - throw new InvalidArgumentException(`Invalid key value: ${rawKey}`); - } - const isGrapheme = isSingleComplexGrapheme(rawKey); - const key = getNormalizedKey(rawKey); - if (!source.pressed.has(key)) { - return; - } - const code = getKeyCode(rawKey); - const location = getKeyLocation(rawKey); - switch (key) { - case 'Alt': - source.alt = false; - break; - case 'Shift': - source.shift = false; - break; - case 'Control': - source.ctrl = false; - break; - case 'Meta': - source.meta = false; - break; - } - source.pressed.delete(key); - const { modifiers } = source; - // --- Platform-specific code begins here --- - // The spread is a little hack so JS gives us an array of unicode characters - // to measure. - const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme); - const text = getKeyEventText(code ?? '', source) ?? unmodifiedText; - return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', { - type: 'keyUp', - windowsVirtualKeyCode: KeyToKeyCode[key], - key, - code, - text, - unmodifiedText, - location: location < 3 ? location : undefined, - isSystemKey: source.alt || undefined, - isKeypad: location === 3, - modifiers, - }); - // --- Platform-specific code ends here --- - } -} -/** - * Translates a non-grapheme key to either an `undefined` for a special keys, or a single - * character modified by shift if needed. - */ -const getKeyEventUnmodifiedText = (key, source, isGrapheme) => { - if (isGrapheme) { - // Graphemes should be presented as text in the CDP command. - return key; - } - if (key === 'Enter') { - return '\r'; - } - // If key is not a single character, it is a normalized key value, and should be - // presented as key, not text in the CDP command. - return [...key].length === 1 - ? source.shift - ? key.toLocaleUpperCase('en-US') - : key - : undefined; -}; -const getKeyEventText = (code, source) => { - if (source.ctrl) { - switch (code) { - case 'Digit2': - if (source.shift) { - return '\x00'; - } - break; - case 'KeyA': - return '\x01'; - case 'KeyB': - return '\x02'; - case 'KeyC': - return '\x03'; - case 'KeyD': - return '\x04'; - case 'KeyE': - return '\x05'; - case 'KeyF': - return '\x06'; - case 'KeyG': - return '\x07'; - case 'KeyH': - return '\x08'; - case 'KeyI': - return '\x09'; - case 'KeyJ': - return '\x0A'; - case 'KeyK': - return '\x0B'; - case 'KeyL': - return '\x0C'; - case 'KeyM': - return '\x0D'; - case 'KeyN': - return '\x0E'; - case 'KeyO': - return '\x0F'; - case 'KeyP': - return '\x10'; - case 'KeyQ': - return '\x11'; - case 'KeyR': - return '\x12'; - case 'KeyS': - return '\x13'; - case 'KeyT': - return '\x14'; - case 'KeyU': - return '\x15'; - case 'KeyV': - return '\x16'; - case 'KeyW': - return '\x17'; - case 'KeyX': - return '\x18'; - case 'KeyY': - return '\x19'; - case 'KeyZ': - return '\x1A'; - case 'BracketLeft': - return '\x1B'; - case 'Backslash': - return '\x1C'; - case 'BracketRight': - return '\x1D'; - case 'Digit6': - if (source.shift) { - return '\x1E'; - } - break; - case 'Minus': - return '\x1F'; - } - return ''; - } - if (source.alt) { - return ''; - } - return; -}; -function getCdpButton(button) { - // https://www.w3.org/TR/pointerevents/#the-button-property - switch (button) { - case 0: - return 'left'; - case 1: - return 'middle'; - case 2: - return 'right'; - case 3: - return 'back'; - case 4: - return 'forward'; - default: - return 'none'; - } -} -function getTilt(action) { - // https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle - const altitudeAngle = action.altitudeAngle ?? Math.PI / 2; - const azimuthAngle = action.azimuthAngle ?? 0; - let tiltXRadians = 0; - let tiltYRadians = 0; - if (altitudeAngle === 0) { - // the pen is in the X-Y plane - if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) { - // pen is on positive X axis - tiltXRadians = Math.PI / 2; - } - if (azimuthAngle === Math.PI / 2) { - // pen is on positive Y axis - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle === Math.PI) { - // pen is on negative X axis - tiltXRadians = -Math.PI / 2; - } - if (azimuthAngle === (3 * Math.PI) / 2) { - // pen is on negative Y axis - tiltYRadians = -Math.PI / 2; - } - if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) { - tiltXRadians = Math.PI / 2; - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) { - tiltXRadians = -Math.PI / 2; - tiltYRadians = Math.PI / 2; - } - if (azimuthAngle > Math.PI && azimuthAngle < (3 * Math.PI) / 2) { - tiltXRadians = -Math.PI / 2; - tiltYRadians = -Math.PI / 2; - } - if (azimuthAngle > (3 * Math.PI) / 2 && azimuthAngle < 2 * Math.PI) { - tiltXRadians = Math.PI / 2; - tiltYRadians = -Math.PI / 2; - } - } - if (altitudeAngle !== 0) { - const tanAlt = Math.tan(altitudeAngle); - tiltXRadians = Math.atan(Math.cos(azimuthAngle) / tanAlt); - tiltYRadians = Math.atan(Math.sin(azimuthAngle) / tanAlt); - } - const factor = 180 / Math.PI; - return { - tiltX: Math.round(tiltXRadians * factor), - tiltY: Math.round(tiltYRadians * factor), - }; -} -function getRadii(width, height) { - return { - radiusX: width ? width / 2 : 0.5, - radiusY: height ? height / 2 : 0.5, - }; -} -//# sourceMappingURL=ActionDispatcher.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js.map deleted file mode 100644 index 49ffed0..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionDispatcher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ActionDispatcher.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/ActionDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAEL,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAEnD,wDAAwD;AACxD,MAAM,gCAAgC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAY,EACxC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAC7C,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAC7D,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAC9C,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IACxB,OAAO,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEd,KAAK,UAAU,gBAAgB,CAC7B,OAA4B,EAC5B,OAA+B;IAE/B,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAClD,gCAAgC,EAChC,KAAK,EACL,EAAC,IAAI,EAAE,WAAW,EAAC,EACnB,CAAC,OAAO,CAAC,CACV,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,sBAAsB,CAC9B,kBAAkB,OAAO,CAAC,QAAQ,gBAAgB,CACnD,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC;IACpD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC;IACpD,MAAM,EACJ,MAAM,EAAE,EACN,KAAK,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,EAAC,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,GAChC,GACF,GAAG,MAAM,CAAC;IACX,OAAO,EAAC,CAAC,EAAE,CAAW,EAAE,CAAC,EAAE,CAAW,EAAC,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,OAAO,GAAG,KAAK,EAAE,OAA4B,EAAE,EAAE;QACtD,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC;IAEO,uBAAuB,CAAyB;IAEzD,UAAU,GAAG,CAAC,CAAC;IACf,aAAa,GAAG,CAAC,CAAC;IAClB,WAAW,CAAa;IACxB,UAAU,CAAS;IACnB,QAAQ,CAAU;IAElB,YACE,UAAsB,EACtB,sBAA8C,EAC9C,SAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,aAA6D;QAE7D,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1C,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAA0C;QAE1C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,EAAC,MAAM,EAAC,IAAI,OAAO,EAAE,CAAC;YAC/B,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAoB;YAChC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAClE,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,yEAAyE;YACzE,WAAW;YACX,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAC,EAAE,EAAE,MAAM,EAAyB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QACtD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAmB,EAAE,MAAM,CAAC,CAAC;gBAC/D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC/B,EAAE;oBACF,MAAM,EAAE;wBACN,GAAG,MAAM;wBACT,IAAI,EAAE,OAAO;qBACd;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAmB,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,+CAA+C;gBAC/C,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,0BAA0B,CACnC,MAAuB,EACvB,QAAQ,EACR,MAAM,CACP,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC/B,EAAE;oBACF,MAAM,EAAE;wBACN,GAAG,MAAM;wBACT,IAAI,EAAE,WAAW;qBAClB;iBACF,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,0BAA0B,CACnC,MAAuB,EACvB,QAAQ,EACR,MAAM,CACP,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,wBAAwB,CACjC,MAAuB,EACvB,QAAQ,EACR,MAAM,CACP,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,0CAA0C;gBAC1C,MAAM,IAAI,CAAC,qBAAqB,CAC9B,MAAqB,EACrB,QAAQ,EACR,MAAM,CACP,CAAC;gBACF,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,MAAqB,EACrB,QAAmB,EACnB,MAAyC;QAEzC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,CAAC;QACxB,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAC,GAAG,MAAM,CAAC;QAC5C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC,GAAG,MAAM,CAAC;QACpE,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,6CAA6C;QAC7C,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;QAC7B,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAC7D,QAAQ,WAAW,EAAE,CAAC;YACpB,2CAA6B;YAC7B;gBACE,mDAAmD;gBACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;oBACE,IAAI,EAAE,cAAc;oBACpB,CAAC;oBACD,CAAC;oBACD,SAAS;oBACT,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;oBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,UAAU,EAAE,MAAM,CAAC,aAAa,CAC9B,MAAM,EACN,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CACxD;oBACD,WAAW;oBACX,kBAAkB;oBAClB,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK,EAAE,QAAQ;iBAChB,CACF,CAAC;gBACF,MAAM;YACR;gBACE,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;oBACE,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE;wBACX;4BACE,CAAC;4BACD,CAAC;4BACD,OAAO;4BACP,OAAO;4BACP,kBAAkB;4BAClB,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK,EAAE,QAAQ;4BACf,EAAE,EAAE,MAAM,CAAC,SAAS;yBACrB;qBACF;oBACD,SAAS;iBACV,CACF,CAAC;gBACF,MAAM;QACV,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;QACxB,2CAA2C;IAC7C,CAAC;IAED,wBAAwB,CACtB,MAAqB,EACrB,QAAmB,EACnB,MAAuC;QAEvC,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAC,GAAG,MAAM,CAAC;QAErE,6CAA6C;QAC7C,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;QAC7B,QAAQ,WAAW,EAAE,CAAC;YACpB,2CAA6B;YAC7B;gBACE,mDAAmD;gBACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAClD,0BAA0B,EAC1B;oBACE,IAAI,EAAE,eAAe;oBACrB,CAAC;oBACD,CAAC;oBACD,SAAS;oBACT,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;oBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;oBACxC,WAAW;iBACZ,CACF,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAClD,0BAA0B,EAC1B;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE;wBACX;4BACE,CAAC;4BACD,CAAC;4BACD,EAAE,EAAE,MAAM,CAAC,SAAS;4BACpB,KAAK;4BACL,OAAO;4BACP,OAAO;yBACR;qBACF;oBACD,SAAS;iBACV,CACF,CAAC;QACN,CAAC;QACD,2CAA2C;IAC7C,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,MAAqB,EACrB,QAAmB,EACnB,MAAyC;QAEzC,MAAM,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAC,GAAG,MAAM,CAAC;QAC5D,MAAM,EACJ,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAK,EACL,kBAAkB,EAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,MAAM,GAAG,UAAU,EACnB,QAAQ,GAAG,IAAI,CAAC,aAAa,GAC9B,GAAG,MAAM,CAAC;QACX,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAE7D,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAC5D,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,CACP,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,8BAA8B,CACtC,mCAAmC,OAAO,QAAQ,OAAO,GAAG,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,GAAG,CAAC;YACF,MAAM,KAAK,GACT,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;YAElB,IAAI,CAAS,CAAC;YACd,IAAI,CAAS,CAAC;YACd,IAAI,IAAI,EAAE,CAAC;gBACT,CAAC,GAAG,OAAO,CAAC;gBACZ,CAAC,GAAG,OAAO,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;gBACpD,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,6CAA6C;gBAC7C,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;gBAC7B,QAAQ,WAAW,EAAE,CAAC;oBACpB;wBACE,mDAAmD;wBACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;4BACE,IAAI,EAAE,YAAY;4BAClB,CAAC;4BACD,CAAC;4BACD,SAAS;4BACT,UAAU,EAAE,CAAC;4BACb,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;4BAC/D,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,WAAW;4BACX,kBAAkB;4BAClB,KAAK;4BACL,KAAK;4BACL,KAAK;4BACL,KAAK,EAAE,QAAQ;yBAChB,CACF,CAAC;wBACF,MAAM;oBACR;wBACE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;4BAC9B,0EAA0E;4BAC1E,qDAAqD;4BACrD,iDAAiD;4BACjD,mDAAmD;4BACnD,0DAA0D;4BAC1D,4DAA4D;4BAC5D,mDAAmD;4BACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;gCACE,IAAI,EAAE,YAAY;gCAClB,CAAC;gCACD,CAAC;gCACD,SAAS;gCACT,UAAU,EAAE,CAAC;gCACb,MAAM,EAAE,YAAY,CAClB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAC1C;gCACD,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,WAAW;gCACX,kBAAkB;gCAClB,KAAK;gCACL,KAAK;gCACL,KAAK;gCACL,KAAK,EAAE,QAAQ,IAAI,GAAG;6BACvB,CACF,CAAC;wBACJ,CAAC;wBACD,MAAM;oBACR;wBACE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;4BAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;gCACE,IAAI,EAAE,WAAW;gCACjB,WAAW,EAAE;oCACX;wCACE,CAAC;wCACD,CAAC;wCACD,OAAO;wCACP,OAAO;wCACP,kBAAkB;wCAClB,KAAK;wCACL,KAAK;wCACL,KAAK;wCACL,KAAK,EAAE,QAAQ;wCACf,EAAE,EAAE,MAAM,CAAC,SAAS;qCACrB;iCACF;gCACD,SAAS;6BACV,CACF,CAAC;wBACJ,CAAC;wBACD,MAAM;gBACV,CAAC;gBACD,2CAA2C;gBAE3C,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;gBACzB,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;YAC1B,CAAC;QACH,CAAC,QAAQ,CAAC,IAAI,EAAE;IAClB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACpD,OAAO,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;QACtB,CAAC;QACD,8EAA8E;QAC9E,oFAAoF;QACpF,kEAAkE;QAClE,kDAAkD;QAClD,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACzE,mBAAmB,EACnB,EAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAC,CAC5B,CAAC;QACF,MAAM,EAAC,KAAK,EAAE,aAAa,EAAC,GAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,EAAE;YACrE,aAAa;SACd,CAAC,CAAC;QACL,OAAO,EAAC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAE,EAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,MAAoB,EACpB,OAAe,EACf,OAAe,EACf,MAAc,EACd,MAAc;QAEd,IAAI,OAAe,CAAC;QACpB,IAAI,OAAe,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,UAAU;gBACb,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBAClC,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC3C,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBAC3C,MAAM;YACR,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,EAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC,GAAG,MAAM,gBAAgB,CAC/C,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,OAAO,CACf,CAAC;gBACF,8CAA8C;gBAC9C,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBACzC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,OAAoB,EACpB,QAAmB,EACnB,MAAyC;QAEzC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,EACpB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,MAAM,GAAG,UAAU,EACnB,QAAQ,GAAG,IAAI,CAAC,aAAa,GAC9B,GAAG,MAAM,CAAC;QAEX,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,wBAAwB,CAChC,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAC5D,MAAM,EACN,OAAO,EACP,OAAO,EACP,CAAC,EACD,CAAC,CACF,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,8BAA8B,CACtC,mCAAmC,OAAO,QAAQ,OAAO,GAAG,CAC7D,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,IAAa,CAAC;QAClB,GAAG,CAAC;YACF,MAAM,KAAK,GACT,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;YAElB,IAAI,MAAc,CAAC;YACnB,IAAI,MAAc,CAAC;YACnB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;gBACtC,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;gBAC1D,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,6CAA6C;gBAC7C,MAAM,EAAC,SAAS,EAAC,GAAG,QAAQ,CAAC;gBAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CACjD,0BAA0B,EAC1B;oBACE,IAAI,EAAE,YAAY;oBAClB,MAAM;oBACN,MAAM;oBACN,CAAC,EAAE,OAAO;oBACV,CAAC,EAAE,OAAO;oBACV,SAAS;iBACV,CACF,CAAC;gBACF,2CAA2C;gBAE3C,aAAa,IAAI,MAAM,CAAC;gBACxB,aAAa,IAAI,MAAM,CAAC;YAC1B,CAAC;QACH,CAAC,QAAQ,CAAC,IAAI,EAAE;IAClB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAiB,EACjB,MAAqC;QAErC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,4DAA4D;YAC5D,+CAA+C;YAC/C,MAAM,IAAI,wBAAwB,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK;gBACR,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM;QACV,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CAAC;QAE3B,6CAA6C;QAC7C,4EAA4E;QAC5E,cAAc;QACd,MAAM,cAAc,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,cAAc,CAAC;QACnE,IAAI,OAA2B,CAAC;QAChC,sEAAsE;QACtE,mBAAmB;QACnB,kMAAkM;QAClM,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,MAAM;oBACT,OAAO,GAAG,WAAW,CAAC;oBACtB,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,GAAG,MAAM,CAAC;oBACjB,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;oBACxD,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBACzC,MAAM;gBACR,QAAQ;gBACR,uBAAuB;YACzB,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG;YACf,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,wBAAwB,EAAE;gBACtE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;gBACrC,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;gBACxC,GAAG;gBACH,IAAI;gBACJ,IAAI;gBACJ,cAAc;gBACd,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,MAAM,CAAC,GAAG,IAAI,SAAS;gBACpC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,QAAQ,EAAE,QAAQ,KAAK,CAAC;gBACxB,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1C,CAAC;SACH,CAAC;QACF,qCAAqC;QACrC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IACE,CAAC,MAAM,CAAC,GAAG;gBACX,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EACnE,CAAC;gBACD,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CACtE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,2CAA2C;IAC7C,CAAC;IAED,oBAAoB,CAAC,MAAiB,EAAE,MAAmC;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,4DAA4D;YAC5D,+CAA+C;YAC/C,MAAM,IAAI,wBAAwB,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,KAAK;gBACR,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;gBACnB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM;QACV,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CAAC;QAE3B,6CAA6C;QAC7C,4EAA4E;QAC5E,cAAc;QACd,MAAM,cAAc,GAAG,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,cAAc,CAAC;QACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAClD,wBAAwB,EACxB;YACE,IAAI,EAAE,OAAO;YACb,qBAAqB,EAAE,YAAY,CAAC,GAAG,CAAC;YACxC,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,cAAc;YACd,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7C,WAAW,EAAE,MAAM,CAAC,GAAG,IAAI,SAAS;YACpC,QAAQ,EAAE,QAAQ,KAAK,CAAC;YACxB,SAAS;SACV,CACF,CAAC;QACF,2CAA2C;IAC7C,CAAC;;AAGH;;;GAGG;AACH,MAAM,yBAAyB,GAAG,CAChC,GAAW,EACX,MAAiB,EACjB,UAAmB,EACnB,EAAE;IACF,IAAI,UAAU,EAAE,CAAC;QACf,4DAA4D;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gFAAgF;IAChF,iDAAiD;IACjD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,KAAK;YACZ,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAChC,CAAC,CAAC,GAAG;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,MAAiB,EAAE,EAAE;IAC1D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,aAAa;gBAChB,OAAO,MAAM,CAAC;YAChB,KAAK,WAAW;gBACd,OAAO,MAAM,CAAC;YAChB,KAAK,cAAc;gBACjB,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ;gBACX,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;AACT,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,MAAc;IAClC,2DAA2D;IAC3D,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,CAAC;YACJ,OAAO,MAAM,CAAC;QAChB,KAAK,CAAC;YACJ,OAAO,QAAQ,CAAC;QAClB,KAAK,CAAC;YACJ,OAAO,OAAO,CAAC;QACjB,KAAK,CAAC;YACJ,OAAO,MAAM,CAAC;QAChB,KAAK,CAAC;YACJ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,MAAuD;IAItE,qGAAqG;IACrG,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IAC9C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,8BAA8B;QAC9B,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACvD,4BAA4B;YAC5B,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,4BAA4B;YAC5B,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAC7B,4BAA4B;YAC5B,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,4BAA4B;YAC5B,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACnD,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3B,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACzD,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5B,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5B,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YACnE,YAAY,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3B,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC;QAC1D,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;QACxC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,KAAa,EACb,MAAc;IAEd,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;QAChC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;KACnC,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.d.ts deleted file mode 100644 index 0a511f9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Input } from '../../../protocol/protocol.js'; -export type ActionOption = ActionOptionFor; -export interface ActionOptionFor { - id: string; - action: A; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js deleted file mode 100644 index ea6ba10..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export {}; -//# sourceMappingURL=ActionOption.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js.map deleted file mode 100644 index e80305d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/ActionOption.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ActionOption.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/ActionOption.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.d.ts deleted file mode 100644 index 0c8019d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Input, type EmptyResult } from '../../../protocol/protocol.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -export declare class InputProcessor { - #private; - constructor(browsingContextStorage: BrowsingContextStorage); - performActions(params: Input.PerformActionsParameters): Promise; - releaseActions(params: Input.ReleaseActionsParameters): Promise; - setFiles(params: Input.SetFilesParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js deleted file mode 100644 index 12936ef..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, NoSuchElementException, UnableToSetFileInputException, NoSuchNodeException, } from '../../../protocol/protocol.js'; -import { assert } from '../../../utils/assert.js'; -import { ActionDispatcher } from '../input/ActionDispatcher.js'; -import { InputStateManager } from '../input/InputStateManager.js'; -export class InputProcessor { - #browsingContextStorage; - #inputStateManager = new InputStateManager(); - constructor(browsingContextStorage) { - this.#browsingContextStorage = browsingContextStorage; - } - async performActions(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const inputState = this.#inputStateManager.get(context.top); - const actionsByTick = this.#getActionsByTick(params, inputState); - const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false)); - await dispatcher.dispatchActions(actionsByTick); - return {}; - } - async releaseActions(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const topContext = context.top; - const inputState = this.#inputStateManager.get(topContext); - const dispatcher = new ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher.isMacOS(context).catch(() => false)); - await dispatcher.dispatchTickActions(inputState.cancelList.reverse()); - this.#inputStateManager.delete(topContext); - return {}; - } - async setFiles(params) { - const context = this.#browsingContextStorage.getContext(params.context); - const hiddenSandboxRealm = await context.getOrCreateHiddenSandbox(); - let result; - try { - result = await hiddenSandboxRealm.callFunction(String(function getFiles(fileListLength) { - if (!(this instanceof HTMLInputElement)) { - if (this instanceof Element) { - return 1 /* ErrorCode.Element */; - } - return 0 /* ErrorCode.Node */; - } - if (this.type !== 'file') { - return 2 /* ErrorCode.Type */; - } - if (this.disabled) { - return 3 /* ErrorCode.Disabled */; - } - if (fileListLength > 1 && !this.multiple) { - return 4 /* ErrorCode.Multiple */; - } - return; - }), false, params.element, [{ type: 'number', value: params.files.length }]); - } - catch { - throw new NoSuchNodeException(`Could not find element ${params.element.sharedId}`); - } - assert(result.type === 'success'); - if (result.result.type === 'number') { - switch (result.result.value) { - case 0 /* ErrorCode.Node */: { - throw new NoSuchElementException(`Could not find element ${params.element.sharedId}`); - } - case 1 /* ErrorCode.Element */: { - throw new UnableToSetFileInputException(`Element ${params.element.sharedId} is not a input`); - } - case 2 /* ErrorCode.Type */: { - throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is not a file type`); - } - case 3 /* ErrorCode.Disabled */: { - throw new UnableToSetFileInputException(`Input element ${params.element.sharedId} is disabled`); - } - case 4 /* ErrorCode.Multiple */: { - throw new UnableToSetFileInputException(`Cannot set multiple files on a non-multiple input element`); - } - } - } - /** - * The zero-length array is a special case, it seems that - * DOM.setFileInputFiles does not actually update the files in that case, so - * the solution is to eval the element value to a new FileList directly. - */ - if (params.files.length === 0) { - // XXX: These events should converted to trusted events. Perhaps do this - // in `DOM.setFileInputFiles`? - await hiddenSandboxRealm.callFunction(String(function dispatchEvent() { - if (this.files?.length === 0) { - this.dispatchEvent(new Event('cancel', { - bubbles: true, - })); - return; - } - this.files = new DataTransfer().files; - // Dispatch events for this case because it should behave akin to a user action. - this.dispatchEvent(new Event('input', { bubbles: true, composed: true })); - this.dispatchEvent(new Event('change', { bubbles: true })); - }), false, params.element); - return {}; - } - // Our goal here is to iterate over the input element files and get their - // file paths. - const paths = []; - for (let i = 0; i < params.files.length; ++i) { - const result = await hiddenSandboxRealm.callFunction(String(function getFiles(index) { - return this.files?.item(index); - }), false, params.element, [{ type: 'number', value: 0 }], "root" /* Script.ResultOwnership.Root */); - assert(result.type === 'success'); - if (result.result.type !== 'object') { - break; - } - const { handle } = result.result; - assert(handle !== undefined); - const { path } = await hiddenSandboxRealm.cdpClient.sendCommand('DOM.getFileInfo', { - objectId: handle, - }); - paths.push(path); - // Cleanup the handle. - void hiddenSandboxRealm.disown(handle).catch(undefined); - } - paths.sort(); - // We create a new array so we preserve the order of the original files. - const sortedFiles = [...params.files].sort(); - if (paths.length !== params.files.length || - sortedFiles.some((path, index) => { - return paths[index] !== path; - })) { - const { objectId } = await hiddenSandboxRealm.deserializeForCdp(params.element); - // This cannot throw since this was just used in `callFunction` above. - assert(objectId !== undefined); - await hiddenSandboxRealm.cdpClient.sendCommand('DOM.setFileInputFiles', { - files: params.files, - objectId, - }); - } - else { - // XXX: We should dispatch a trusted event. - await hiddenSandboxRealm.callFunction(String(function dispatchEvent() { - this.dispatchEvent(new Event('cancel', { - bubbles: true, - })); - }), false, params.element); - } - return {}; - } - #getActionsByTick(params, inputState) { - const actionsByTick = []; - for (const action of params.actions) { - switch (action.type) { - case "pointer" /* SourceType.Pointer */: { - action.parameters ??= { pointerType: "mouse" /* Input.PointerType.Mouse */ }; - action.parameters.pointerType ??= "mouse" /* Input.PointerType.Mouse */; - const source = inputState.getOrCreate(action.id, "pointer" /* SourceType.Pointer */, action.parameters.pointerType); - if (source.subtype !== action.parameters.pointerType) { - throw new InvalidArgumentException(`Expected input source ${action.id} to be ${source.subtype}; got ${action.parameters.pointerType}.`); - } - // https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043 - source.resetClickCount(); - break; - } - default: - inputState.getOrCreate(action.id, action.type); - } - const actions = action.actions.map((item) => ({ - id: action.id, - action: item, - })); - for (let i = 0; i < actions.length; i++) { - if (actionsByTick.length === i) { - actionsByTick.push([]); - } - actionsByTick[i].push(actions[i]); - } - } - return actionsByTick; - } -} -//# sourceMappingURL=InputProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js.map deleted file mode 100644 index 594566d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"InputProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/InputProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.d.ts deleted file mode 100644 index d1edf3e..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Input } from '../../../protocol/protocol.js'; -export declare const enum SourceType { - Key = "key", - Pointer = "pointer", - Wheel = "wheel", - None = "none" -} -export declare class NoneSource { - type: SourceType.None; -} -export declare class KeySource { - #private; - type: SourceType.Key; - pressed: Set; - get modifiers(): number; - get alt(): boolean; - set alt(value: boolean); - get ctrl(): boolean; - set ctrl(value: boolean); - get meta(): boolean; - set meta(value: boolean); - get shift(): boolean; - set shift(value: boolean); -} -export declare class PointerSource { - #private; - type: SourceType.Pointer; - subtype: Input.PointerType; - pointerId: number; - pressed: Set; - x: number; - y: number; - radiusX?: number; - radiusY?: number; - force?: number; - constructor(id: number, subtype: Input.PointerType); - get buttons(): number; - static ClickContext: { - new (x: number, y: number, time: number): { - count: number; - "__#private@#x": number; - "__#private@#y": number; - "__#private@#time": number; - compare(context: /*elided*/ any): boolean; - }; - "__#private@#DOUBLE_CLICK_TIME_MS": number; - "__#private@#MAX_DOUBLE_CLICK_RADIUS": number; - }; - setClickCount(button: number, context: InstanceType): number; - getClickCount(button: number): number; - /** - * Resets click count. Resets consequent click counter. Prevents grouping clicks in - * different `performActions` calls, so that they are not grouped as double, triple etc - * clicks. Required for https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043. - */ - resetClickCount(): void; -} -export declare class WheelSource { - type: SourceType.Wheel; -} -export type InputSource = NoneSource | KeySource | PointerSource | WheelSource; -export type InputSourceFor = Type extends SourceType.Key ? KeySource : Type extends SourceType.Pointer ? PointerSource : Type extends SourceType.Wheel ? WheelSource : NoneSource; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js deleted file mode 100644 index 3ad3929..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js +++ /dev/null @@ -1,154 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var _a; -export class NoneSource { - type = "none" /* SourceType.None */; -} -export class KeySource { - type = "key" /* SourceType.Key */; - pressed = new Set(); - // This is a bitfield that matches the modifiers parameter of - // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent - #modifiers = 0; - get modifiers() { - return this.#modifiers; - } - get alt() { - return (this.#modifiers & 1) === 1; - } - set alt(value) { - this.#setModifier(value, 1); - } - get ctrl() { - return (this.#modifiers & 2) === 2; - } - set ctrl(value) { - this.#setModifier(value, 2); - } - get meta() { - return (this.#modifiers & 4) === 4; - } - set meta(value) { - this.#setModifier(value, 4); - } - get shift() { - return (this.#modifiers & 8) === 8; - } - set shift(value) { - this.#setModifier(value, 8); - } - #setModifier(value, bit) { - if (value) { - this.#modifiers |= bit; - } - else { - this.#modifiers &= ~bit; - } - } -} -export class PointerSource { - type = "pointer" /* SourceType.Pointer */; - subtype; - pointerId; - pressed = new Set(); - x = 0; - y = 0; - radiusX; - radiusY; - force; - constructor(id, subtype) { - this.pointerId = id; - this.subtype = subtype; - } - // This is a bitfield that matches the buttons parameter of - // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchMouseEvent - get buttons() { - let buttons = 0; - for (const button of this.pressed) { - switch (button) { - case 0: - buttons |= 1; - break; - case 1: - buttons |= 4; - break; - case 2: - buttons |= 2; - break; - case 3: - buttons |= 8; - break; - case 4: - buttons |= 16; - break; - } - } - return buttons; - } - // --- Platform-specific code starts here --- - // Input.dispatchMouseEvent doesn't know the concept of double click, so we - // need to create the logic, similar to how it's done for OSes: - // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:ui/events/event.cc;l=479 - static ClickContext = class ClickContext { - static #DOUBLE_CLICK_TIME_MS = 500; - static #MAX_DOUBLE_CLICK_RADIUS = 2; - count = 0; - #x; - #y; - #time; - constructor(x, y, time) { - this.#x = x; - this.#y = y; - this.#time = time; - } - compare(context) { - return ( - // The click needs to be within a certain amount of ms. - context.#time - this.#time > ClickContext.#DOUBLE_CLICK_TIME_MS || - // The click needs to be within a certain square radius. - Math.abs(context.#x - this.#x) > - ClickContext.#MAX_DOUBLE_CLICK_RADIUS || - Math.abs(context.#y - this.#y) > ClickContext.#MAX_DOUBLE_CLICK_RADIUS); - } - }; - #clickContexts = new Map(); - setClickCount(button, context) { - let storedContext = this.#clickContexts.get(button); - if (!storedContext || storedContext.compare(context)) { - storedContext = context; - } - ++storedContext.count; - this.#clickContexts.set(button, storedContext); - return storedContext.count; - } - getClickCount(button) { - return this.#clickContexts.get(button)?.count ?? 0; - } - /** - * Resets click count. Resets consequent click counter. Prevents grouping clicks in - * different `performActions` calls, so that they are not grouped as double, triple etc - * clicks. Required for https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043. - */ - resetClickCount() { - this.#clickContexts = new Map(); - } -} -_a = PointerSource; -export class WheelSource { - type = "wheel" /* SourceType.Wheel */; -} -//# sourceMappingURL=InputSource.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js.map deleted file mode 100644 index de9077f..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputSource.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"InputSource.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/InputSource.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.d.ts deleted file mode 100644 index 13df972..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Input } from '../../../protocol/protocol.js'; -import { Mutex } from '../../../utils/Mutex.js'; -import type { ActionOption } from './ActionOption.js'; -import { KeySource, PointerSource, SourceType, type InputSource, type InputSourceFor } from './InputSource.js'; -export declare class InputState { - #private; - cancelList: ActionOption[]; - getOrCreate(id: string, type: SourceType.Pointer, subtype: Input.PointerType): PointerSource; - getOrCreate(id: string, type: Type): InputSourceFor; - get(id: string): InputSource; - getGlobalKeyState(): KeySource; - get queue(): Mutex; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js deleted file mode 100644 index 772e392..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, UnknownErrorException, } from '../../../protocol/protocol.js'; -import { Mutex } from '../../../utils/Mutex.js'; -import { KeySource, NoneSource, PointerSource, WheelSource, } from './InputSource.js'; -export class InputState { - cancelList = []; - #sources = new Map(); - #mutex = new Mutex(); - getOrCreate(id, type, subtype) { - let source = this.#sources.get(id); - if (!source) { - switch (type) { - case "none" /* SourceType.None */: - source = new NoneSource(); - break; - case "key" /* SourceType.Key */: - source = new KeySource(); - break; - case "pointer" /* SourceType.Pointer */: { - let pointerId = subtype === "mouse" /* Input.PointerType.Mouse */ ? 0 : 2; - const pointerIds = new Set(); - for (const [, source] of this.#sources) { - if (source.type === "pointer" /* SourceType.Pointer */) { - pointerIds.add(source.pointerId); - } - } - while (pointerIds.has(pointerId)) { - ++pointerId; - } - source = new PointerSource(pointerId, subtype); - break; - } - case "wheel" /* SourceType.Wheel */: - source = new WheelSource(); - break; - default: - throw new InvalidArgumentException(`Expected "${"none" /* SourceType.None */}", "${"key" /* SourceType.Key */}", "${"pointer" /* SourceType.Pointer */}", or "${"wheel" /* SourceType.Wheel */}". Found unknown source type ${type}.`); - } - this.#sources.set(id, source); - return source; - } - if (source.type !== type) { - throw new InvalidArgumentException(`Input source type of ${id} is ${source.type}, but received ${type}.`); - } - return source; - } - get(id) { - const source = this.#sources.get(id); - if (!source) { - throw new UnknownErrorException(`Internal error.`); - } - return source; - } - getGlobalKeyState() { - const state = new KeySource(); - for (const [, source] of this.#sources) { - if (source.type !== "key" /* SourceType.Key */) { - continue; - } - for (const pressed of source.pressed) { - state.pressed.add(pressed); - } - state.alt ||= source.alt; - state.ctrl ||= source.ctrl; - state.meta ||= source.meta; - state.shift ||= source.shift; - } - return state; - } - get queue() { - return this.#mutex; - } -} -//# sourceMappingURL=InputState.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js.map deleted file mode 100644 index 7d2a315..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputState.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"InputState.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/InputState.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.d.ts deleted file mode 100644 index cc85660..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import { InputState } from './InputState.js'; -export declare class InputStateManager extends WeakMap { - get(context: BrowsingContextImpl): InputState; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js deleted file mode 100644 index 7961224..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from '../../../utils/assert.js'; -import { InputState } from './InputState.js'; -// We use a weak map here as specified here: -// https://www.w3.org/TR/webdriver/#dfn-browsing-context-input-state-map -export class InputStateManager extends WeakMap { - get(context) { - assert(context.isTopLevelContext()); - if (!this.has(context)) { - this.set(context, new InputState()); - } - return super.get(context); - } -} -//# sourceMappingURL=InputStateManager.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js.map deleted file mode 100644 index 6576234..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/InputStateManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"InputStateManager.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/InputStateManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAGhD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,4CAA4C;AAC5C,wEAAwE;AACxE,MAAM,OAAO,iBAAkB,SAAQ,OAGtC;IACU,GAAG,CAAC,OAA4B;QACvC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IAC7B,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.d.ts deleted file mode 100644 index 65077ad..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare const KeyToKeyCode: Record; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js deleted file mode 100644 index 553d776..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js +++ /dev/null @@ -1,271 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -// TODO: Remove this once https://crrev.com/c/4548290 is stably in Chromium. -// `Input.dispatchKeyboardEvent` will automatically handle these conversions. -export const KeyToKeyCode = { - '0': 48, - '1': 49, - '2': 50, - '3': 51, - '4': 52, - '5': 53, - '6': 54, - '7': 55, - '8': 56, - '9': 57, - Abort: 3, - Help: 6, - Backspace: 8, - Tab: 9, - Numpad5: 12, - NumpadEnter: 13, - Enter: 13, - '\\r': 13, - '\\n': 13, - ShiftLeft: 16, - ShiftRight: 16, - ControlLeft: 17, - ControlRight: 17, - AltLeft: 18, - AltRight: 18, - Pause: 19, - CapsLock: 20, - Escape: 27, - Convert: 28, - NonConvert: 29, - Space: 32, - Numpad9: 33, - PageUp: 33, - Numpad3: 34, - PageDown: 34, - End: 35, - Numpad1: 35, - Home: 36, - Numpad7: 36, - ArrowLeft: 37, - Numpad4: 37, - Numpad8: 38, - ArrowUp: 38, - ArrowRight: 39, - Numpad6: 39, - Numpad2: 40, - ArrowDown: 40, - Select: 41, - Open: 43, - PrintScreen: 44, - Insert: 45, - Numpad0: 45, - Delete: 46, - NumpadDecimal: 46, - Digit0: 48, - Digit1: 49, - Digit2: 50, - Digit3: 51, - Digit4: 52, - Digit5: 53, - Digit6: 54, - Digit7: 55, - Digit8: 56, - Digit9: 57, - KeyA: 65, - KeyB: 66, - KeyC: 67, - KeyD: 68, - KeyE: 69, - KeyF: 70, - KeyG: 71, - KeyH: 72, - KeyI: 73, - KeyJ: 74, - KeyK: 75, - KeyL: 76, - KeyM: 77, - KeyN: 78, - KeyO: 79, - KeyP: 80, - KeyQ: 81, - KeyR: 82, - KeyS: 83, - KeyT: 84, - KeyU: 85, - KeyV: 86, - KeyW: 87, - KeyX: 88, - KeyY: 89, - KeyZ: 90, - MetaLeft: 91, - MetaRight: 92, - ContextMenu: 93, - NumpadMultiply: 106, - NumpadAdd: 107, - NumpadSubtract: 109, - NumpadDivide: 111, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123, - F13: 124, - F14: 125, - F15: 126, - F16: 127, - F17: 128, - F18: 129, - F19: 130, - F20: 131, - F21: 132, - F22: 133, - F23: 134, - F24: 135, - NumLock: 144, - ScrollLock: 145, - AudioVolumeMute: 173, - AudioVolumeDown: 174, - AudioVolumeUp: 175, - MediaTrackNext: 176, - MediaTrackPrevious: 177, - MediaStop: 178, - MediaPlayPause: 179, - Semicolon: 186, - Equal: 187, - NumpadEqual: 187, - Comma: 188, - Minus: 189, - Period: 190, - Slash: 191, - Backquote: 192, - BracketLeft: 219, - Backslash: 220, - BracketRight: 221, - Quote: 222, - AltGraph: 225, - Props: 247, - Cancel: 3, - Clear: 12, - Shift: 16, - Control: 17, - Alt: 18, - Accept: 30, - ModeChange: 31, - ' ': 32, - Print: 42, - Execute: 43, - '\\u0000': 46, - a: 65, - b: 66, - c: 67, - d: 68, - e: 69, - f: 70, - g: 71, - h: 72, - i: 73, - j: 74, - k: 75, - l: 76, - m: 77, - n: 78, - o: 79, - p: 80, - q: 81, - r: 82, - s: 83, - t: 84, - u: 85, - v: 86, - w: 87, - x: 88, - y: 89, - z: 90, - Meta: 91, - '*': 106, - '+': 107, - '-': 109, - '/': 111, - ';': 186, - '=': 187, - ',': 188, - '.': 190, - '`': 192, - '[': 219, - '\\\\': 220, - ']': 221, - "'": 222, - Attn: 246, - CrSel: 247, - ExSel: 248, - EraseEof: 249, - Play: 250, - ZoomOut: 251, - ')': 48, - '!': 49, - '@': 50, - '#': 51, - $: 52, - '%': 53, - '^': 54, - '&': 55, - '(': 57, - A: 65, - B: 66, - C: 67, - D: 68, - E: 69, - F: 70, - G: 71, - H: 72, - I: 73, - J: 74, - K: 75, - L: 76, - M: 77, - N: 78, - O: 79, - P: 80, - Q: 81, - R: 82, - S: 83, - T: 84, - U: 85, - V: 86, - W: 87, - X: 88, - Y: 89, - Z: 90, - ':': 186, - '<': 188, - _: 189, - '>': 190, - '?': 191, - '~': 192, - '{': 219, - '|': 220, - '}': 221, - '"': 222, - Camera: 44, - EndCall: 95, - VolumeDown: 182, - VolumeUp: 183, -}; -//# sourceMappingURL=USKeyboardLayout.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js.map deleted file mode 100644 index 86dab07..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/USKeyboardLayout.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"USKeyboardLayout.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/USKeyboardLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAuC;IAC9D,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,CAAC;IACZ,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,EAAE;IACjB,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,GAAG;IACnB,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;IACjB,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IACf,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,GAAG;IACpB,aAAa,EAAE,GAAG;IAClB,cAAc,EAAE,GAAG;IACnB,kBAAkB,EAAE,GAAG;IACvB,SAAS,EAAE,GAAG;IACd,cAAc,EAAE,GAAG;IACnB,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;IACV,WAAW,EAAE,GAAG;IAChB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,GAAG,EAAE,EAAE;IACP,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,CAAC,EAAE,EAAE;IACL,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,CAAC,EAAE,GAAG;IACN,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;CACd,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.d.ts deleted file mode 100644 index 8ec4097..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Returns the normalized key value for a given key according to the table: - * https://w3c.github.io/webdriver/#dfn-normalized-key-value - */ -export declare function getNormalizedKey(value: string): string; -/** - * Returns the key code for a given key according to the table: - * https://w3c.github.io/webdriver/#dfn-shifted-character - */ -export declare function getKeyCode(key: string): string | undefined; -/** - * Returns the location of the key according to the table: - * https://w3c.github.io/webdriver/#dfn-key-location - */ -export declare function getKeyLocation(key: string): 0 | 1 | 2 | 3; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js deleted file mode 100644 index 6683eac..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js +++ /dev/null @@ -1,492 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Returns the normalized key value for a given key according to the table: - * https://w3c.github.io/webdriver/#dfn-normalized-key-value - */ -export function getNormalizedKey(value) { - switch (value) { - case '\uE000': - return 'Unidentified'; - case '\uE001': - return 'Cancel'; - case '\uE002': - return 'Help'; - case '\uE003': - return 'Backspace'; - case '\uE004': - return 'Tab'; - case '\uE005': - return 'Clear'; - // Specification declares the '\uE006' to be `Return`, but it is not supported by - // Chrome, so fall back to `Enter`, which aligns with WPT. - case '\uE006': - case '\uE007': - return 'Enter'; - case '\uE008': - return 'Shift'; - case '\uE009': - return 'Control'; - case '\uE00A': - return 'Alt'; - case '\uE00B': - return 'Pause'; - case '\uE00C': - return 'Escape'; - case '\uE00D': - return ' '; - case '\uE00E': - return 'PageUp'; - case '\uE00F': - return 'PageDown'; - case '\uE010': - return 'End'; - case '\uE011': - return 'Home'; - case '\uE012': - return 'ArrowLeft'; - case '\uE013': - return 'ArrowUp'; - case '\uE014': - return 'ArrowRight'; - case '\uE015': - return 'ArrowDown'; - case '\uE016': - return 'Insert'; - case '\uE017': - return 'Delete'; - case '\uE018': - return ';'; - case '\uE019': - return '='; - case '\uE01A': - return '0'; - case '\uE01B': - return '1'; - case '\uE01C': - return '2'; - case '\uE01D': - return '3'; - case '\uE01E': - return '4'; - case '\uE01F': - return '5'; - case '\uE020': - return '6'; - case '\uE021': - return '7'; - case '\uE022': - return '8'; - case '\uE023': - return '9'; - case '\uE024': - return '*'; - case '\uE025': - return '+'; - case '\uE026': - return ','; - case '\uE027': - return '-'; - case '\uE028': - return '.'; - case '\uE029': - return '/'; - case '\uE031': - return 'F1'; - case '\uE032': - return 'F2'; - case '\uE033': - return 'F3'; - case '\uE034': - return 'F4'; - case '\uE035': - return 'F5'; - case '\uE036': - return 'F6'; - case '\uE037': - return 'F7'; - case '\uE038': - return 'F8'; - case '\uE039': - return 'F9'; - case '\uE03A': - return 'F10'; - case '\uE03B': - return 'F11'; - case '\uE03C': - return 'F12'; - case '\uE03D': - return 'Meta'; - case '\uE040': - return 'ZenkakuHankaku'; - case '\uE050': - return 'Shift'; - case '\uE051': - return 'Control'; - case '\uE052': - return 'Alt'; - case '\uE053': - return 'Meta'; - case '\uE054': - return 'PageUp'; - case '\uE055': - return 'PageDown'; - case '\uE056': - return 'End'; - case '\uE057': - return 'Home'; - case '\uE058': - return 'ArrowLeft'; - case '\uE059': - return 'ArrowUp'; - case '\uE05A': - return 'ArrowRight'; - case '\uE05B': - return 'ArrowDown'; - case '\uE05C': - return 'Insert'; - case '\uE05D': - return 'Delete'; - default: - return value; - } -} -/** - * Returns the key code for a given key according to the table: - * https://w3c.github.io/webdriver/#dfn-shifted-character - */ -export function getKeyCode(key) { - switch (key) { - case '`': - case '~': - return 'Backquote'; - case '\\': - case '|': - return 'Backslash'; - case '\uE003': - return 'Backspace'; - case '[': - case '{': - return 'BracketLeft'; - case ']': - case '}': - return 'BracketRight'; - case ',': - case '<': - return 'Comma'; - case '0': - case ')': - return 'Digit0'; - case '1': - case '!': - return 'Digit1'; - case '2': - case '@': - return 'Digit2'; - case '3': - case '#': - return 'Digit3'; - case '4': - case '$': - return 'Digit4'; - case '5': - case '%': - return 'Digit5'; - case '6': - case '^': - return 'Digit6'; - case '7': - case '&': - return 'Digit7'; - case '8': - case '*': - return 'Digit8'; - case '9': - case '(': - return 'Digit9'; - case '=': - case '+': - return 'Equal'; - // The spec declares the '<' to be `IntlBackslash` as well, but it is already covered - // in the `Comma` above. - case '>': - return 'IntlBackslash'; - case 'a': - case 'A': - return 'KeyA'; - case 'b': - case 'B': - return 'KeyB'; - case 'c': - case 'C': - return 'KeyC'; - case 'd': - case 'D': - return 'KeyD'; - case 'e': - case 'E': - return 'KeyE'; - case 'f': - case 'F': - return 'KeyF'; - case 'g': - case 'G': - return 'KeyG'; - case 'h': - case 'H': - return 'KeyH'; - case 'i': - case 'I': - return 'KeyI'; - case 'j': - case 'J': - return 'KeyJ'; - case 'k': - case 'K': - return 'KeyK'; - case 'l': - case 'L': - return 'KeyL'; - case 'm': - case 'M': - return 'KeyM'; - case 'n': - case 'N': - return 'KeyN'; - case 'o': - case 'O': - return 'KeyO'; - case 'p': - case 'P': - return 'KeyP'; - case 'q': - case 'Q': - return 'KeyQ'; - case 'r': - case 'R': - return 'KeyR'; - case 's': - case 'S': - return 'KeyS'; - case 't': - case 'T': - return 'KeyT'; - case 'u': - case 'U': - return 'KeyU'; - case 'v': - case 'V': - return 'KeyV'; - case 'w': - case 'W': - return 'KeyW'; - case 'x': - case 'X': - return 'KeyX'; - case 'y': - case 'Y': - return 'KeyY'; - case 'z': - case 'Z': - return 'KeyZ'; - case '-': - case '_': - return 'Minus'; - case '.': - return 'Period'; - case "'": - case '"': - return 'Quote'; - case ';': - case ':': - return 'Semicolon'; - case '/': - case '?': - return 'Slash'; - case '\uE00A': - return 'AltLeft'; - case '\uE052': - return 'AltRight'; - case '\uE009': - return 'ControlLeft'; - case '\uE051': - return 'ControlRight'; - case '\uE006': - return 'Enter'; - case '\uE00B': - return 'Pause'; - case '\uE03D': - return 'MetaLeft'; - case '\uE053': - return 'MetaRight'; - case '\uE008': - return 'ShiftLeft'; - case '\uE050': - return 'ShiftRight'; - case ' ': - case '\uE00D': - return 'Space'; - case '\uE004': - return 'Tab'; - case '\uE017': - return 'Delete'; - case '\uE010': - return 'End'; - case '\uE002': - return 'Help'; - case '\uE011': - return 'Home'; - case '\uE016': - return 'Insert'; - case '\uE00F': - return 'PageDown'; - case '\uE00E': - return 'PageUp'; - case '\uE015': - return 'ArrowDown'; - case '\uE012': - return 'ArrowLeft'; - case '\uE014': - return 'ArrowRight'; - case '\uE013': - return 'ArrowUp'; - case '\uE00C': - return 'Escape'; - case '\uE031': - return 'F1'; - case '\uE032': - return 'F2'; - case '\uE033': - return 'F3'; - case '\uE034': - return 'F4'; - case '\uE035': - return 'F5'; - case '\uE036': - return 'F6'; - case '\uE037': - return 'F7'; - case '\uE038': - return 'F8'; - case '\uE039': - return 'F9'; - case '\uE03A': - return 'F10'; - case '\uE03B': - return 'F11'; - case '\uE03C': - return 'F12'; - case '\uE019': - return 'NumpadEqual'; - case '\uE01A': - case '\uE05C': - return 'Numpad0'; - case '\uE01B': - case '\uE056': - return 'Numpad1'; - case '\uE01C': - case '\uE05B': - return 'Numpad2'; - case '\uE01D': - case '\uE055': - return 'Numpad3'; - case '\uE01E': - case '\uE058': - return 'Numpad4'; - case '\uE01F': - return 'Numpad5'; - case '\uE020': - case '\uE05A': - return 'Numpad6'; - case '\uE021': - case '\uE057': - return 'Numpad7'; - case '\uE022': - case '\uE059': - return 'Numpad8'; - case '\uE023': - case '\uE054': - return 'Numpad9'; - case '\uE025': - return 'NumpadAdd'; - case '\uE026': - return 'NumpadComma'; - case '\uE028': - case '\uE05D': - return 'NumpadDecimal'; - case '\uE029': - return 'NumpadDivide'; - case '\uE007': - return 'NumpadEnter'; - case '\uE024': - return 'NumpadMultiply'; - case '\uE027': - return 'NumpadSubtract'; - default: - return; - } -} -/** - * Returns the location of the key according to the table: - * https://w3c.github.io/webdriver/#dfn-key-location - */ -export function getKeyLocation(key) { - switch (key) { - case '\uE007': - case '\uE008': - case '\uE009': - case '\uE00A': - case '\uE03D': - return 1; - case '\uE019': - case '\uE01A': - case '\uE01B': - case '\uE01C': - case '\uE01D': - case '\uE01E': - case '\uE01F': - case '\uE020': - case '\uE021': - case '\uE022': - case '\uE023': - case '\uE024': - case '\uE025': - case '\uE026': - case '\uE027': - case '\uE028': - case '\uE029': - case '\uE054': - case '\uE055': - case '\uE056': - case '\uE057': - case '\uE058': - case '\uE059': - case '\uE05A': - case '\uE05B': - case '\uE05C': - case '\uE05D': - return 3; - case '\uE050': - case '\uE051': - case '\uE052': - case '\uE053': - return 2; - default: - return 0; - } -} -//# sourceMappingURL=keyUtils.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js.map deleted file mode 100644 index 8599b72..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/input/keyUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"keyUtils.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/input/keyUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.d.ts deleted file mode 100644 index 1043492..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type LoggerFn } from '../../../utils/log.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { RealmStorage } from '../script/RealmStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -export declare class LogManager { - #private; - private constructor(); - static create(cdpTarget: CdpTarget, realmStorage: RealmStorage, eventManager: EventManager, logger?: LoggerFn): LogManager; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js deleted file mode 100644 index eb5bcca..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js +++ /dev/null @@ -1,183 +0,0 @@ -var _a; -import { ChromiumBidi } from '../../../protocol/protocol.js'; -import { LogType } from '../../../utils/log.js'; -import { getRemoteValuesText } from './logHelper.js'; -/** Converts CDP StackTrace object to BiDi StackTrace object. */ -function getBidiStackTrace(cdpStackTrace) { - const stackFrames = cdpStackTrace?.callFrames.map((callFrame) => { - return { - columnNumber: callFrame.columnNumber, - functionName: callFrame.functionName, - lineNumber: callFrame.lineNumber, - url: callFrame.url, - }; - }); - return stackFrames ? { callFrames: stackFrames } : undefined; -} -function getLogLevel(consoleApiType) { - if (["error" /* Log.Level.Error */, 'assert'].includes(consoleApiType)) { - return "error" /* Log.Level.Error */; - } - if (["debug" /* Log.Level.Debug */, 'trace'].includes(consoleApiType)) { - return "debug" /* Log.Level.Debug */; - } - if (["warn" /* Log.Level.Warn */, 'warning'].includes(consoleApiType)) { - return "warn" /* Log.Level.Warn */; - } - return "info" /* Log.Level.Info */; -} -function getLogMethod(consoleApiType) { - switch (consoleApiType) { - case 'warning': - return 'warn'; - case 'startGroup': - return 'group'; - case 'startGroupCollapsed': - return 'groupCollapsed'; - case 'endGroup': - return 'groupEnd'; - } - return consoleApiType; -} -export class LogManager { - #eventManager; - #realmStorage; - #cdpTarget; - #logger; - constructor(cdpTarget, realmStorage, eventManager, logger) { - this.#cdpTarget = cdpTarget; - this.#realmStorage = realmStorage; - this.#eventManager = eventManager; - this.#logger = logger; - } - static create(cdpTarget, realmStorage, eventManager, logger) { - const logManager = new _a(cdpTarget, realmStorage, eventManager, logger); - logManager.#initializeEntryAddedEventListener(); - return logManager; - } - /** - * Heuristic serialization of CDP remote object. If possible, return the BiDi value - * without deep serialization. - */ - async #heuristicSerializeArg(arg, realm) { - switch (arg.type) { - // TODO: Implement regexp, array, object, map and set heuristics base on - // preview. - case 'undefined': - return { type: 'undefined' }; - case 'boolean': - return { type: 'boolean', value: arg.value }; - case 'string': - return { type: 'string', value: arg.value }; - case 'number': - // The value can be either a number or a string like `Infinity` or `-0`. - return { type: 'number', value: arg.unserializableValue ?? arg.value }; - case 'bigint': - if (arg.unserializableValue !== undefined && - arg.unserializableValue[arg.unserializableValue.length - 1] === 'n') { - return { - type: arg.type, - value: arg.unserializableValue.slice(0, -1), - }; - } - // Unexpected bigint value, fall back to CDP deep serialization. - break; - case 'object': - if (arg.subtype === 'null') { - return { type: 'null' }; - } - // Fall back to CDP deep serialization. - break; - default: - // Fall back to CDP deep serialization. - break; - } - // Fall back to CDP deep serialization. - return await realm.serializeCdpObject(arg, "none" /* Script.ResultOwnership.None */); - } - #initializeEntryAddedEventListener() { - this.#cdpTarget.cdpClient.on('Runtime.consoleAPICalled', (params) => { - // Try to find realm by `cdpSessionId` and `executionContextId`, - // if provided. - const realm = this.#realmStorage.findRealm({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.executionContextId, - }); - if (realm === undefined) { - // Ignore exceptions not attached to any realm. - this.#logger?.(LogType.cdp, params); - return; - } - const argsPromise = Promise.all(params.args.map((arg) => this.#heuristicSerializeArg(arg, realm))); - for (const browsingContext of realm.associatedBrowsingContexts) { - this.#eventManager.registerPromiseEvent(argsPromise.then((args) => ({ - kind: 'success', - value: { - type: 'event', - method: ChromiumBidi.Log.EventNames.LogEntryAdded, - params: { - level: getLogLevel(params.type), - source: realm.source, - text: getRemoteValuesText(args, true), - timestamp: Math.round(params.timestamp), - stackTrace: getBidiStackTrace(params.stackTrace), - type: 'console', - method: getLogMethod(params.type), - args, - }, - }, - }), (error) => ({ - kind: 'error', - error, - })), browsingContext.id, ChromiumBidi.Log.EventNames.LogEntryAdded); - } - }); - this.#cdpTarget.cdpClient.on('Runtime.exceptionThrown', (params) => { - // Try to find realm by `cdpSessionId` and `executionContextId`, - // if provided. - const realm = this.#realmStorage.findRealm({ - cdpSessionId: this.#cdpTarget.cdpSessionId, - executionContextId: params.exceptionDetails.executionContextId, - }); - if (realm === undefined) { - // Ignore exceptions not attached to any realm. - this.#logger?.(LogType.cdp, params); - return; - } - for (const browsingContext of realm.associatedBrowsingContexts) { - this.#eventManager.registerPromiseEvent(_a.#getExceptionText(params, realm).then((text) => ({ - kind: 'success', - value: { - type: 'event', - method: ChromiumBidi.Log.EventNames.LogEntryAdded, - params: { - level: "error" /* Log.Level.Error */, - source: realm.source, - text, - timestamp: Math.round(params.timestamp), - stackTrace: getBidiStackTrace(params.exceptionDetails.stackTrace), - type: 'javascript', - }, - }, - }), (error) => ({ - kind: 'error', - error, - })), browsingContext.id, ChromiumBidi.Log.EventNames.LogEntryAdded); - } - }); - } - /** - * Try the best to get the exception text. - */ - static async #getExceptionText(params, realm) { - if (!params.exceptionDetails.exception) { - return params.exceptionDetails.text; - } - if (realm === undefined) { - return JSON.stringify(params.exceptionDetails.exception); - } - return await realm.stringifyObject(params.exceptionDetails.exception); - } -} -_a = LogManager; -//# sourceMappingURL=LogManager.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js.map deleted file mode 100644 index 2c4a90c..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/LogManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"LogManager.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/log/LogManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.d.ts deleted file mode 100644 index 61f9e4f..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Script } from '../../../protocol/protocol.js'; -/** - * @param args input remote values to be format printed - * @return parsed text of the remote values in specific format - */ -export declare function logMessageFormatter(args: Script.RemoteValue[]): string; -export declare function getRemoteValuesText(args: Script.RemoteValue[], formatText: boolean): string; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js deleted file mode 100644 index b9d7c67..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js +++ /dev/null @@ -1,168 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { assert } from '../../../utils/assert.js'; -const specifiers = ['%s', '%d', '%i', '%f', '%o', '%O', '%c']; -function isFormatSpecifier(str) { - return specifiers.some((spec) => str.includes(spec)); -} -/** - * @param args input remote values to be format printed - * @return parsed text of the remote values in specific format - */ -export function logMessageFormatter(args) { - let output = ''; - const argFormat = args[0].value.toString(); - const argValues = args.slice(1, undefined); - const tokens = argFormat.split(new RegExp(specifiers.map((spec) => `(${spec})`).join('|'), 'g')); - for (const token of tokens) { - if (token === undefined || token === '') { - continue; - } - if (isFormatSpecifier(token)) { - const arg = argValues.shift(); - // raise an exception when less value is provided - assert(arg, `Less value is provided: "${getRemoteValuesText(args, false)}"`); - if (token === '%s') { - output += stringFromArg(arg); - } - else if (token === '%d' || token === '%i') { - if (arg.type === 'bigint' || - arg.type === 'number' || - arg.type === 'string') { - output += parseInt(arg.value.toString(), 10); - } - else { - output += 'NaN'; - } - } - else if (token === '%f') { - if (arg.type === 'bigint' || - arg.type === 'number' || - arg.type === 'string') { - output += parseFloat(arg.value.toString()); - } - else { - output += 'NaN'; - } - } - else { - // %o, %O, %c - output += toJson(arg); - } - } - else { - output += token; - } - } - // raise an exception when more value is provided - if (argValues.length > 0) { - throw new Error(`More value is provided: "${getRemoteValuesText(args, false)}"`); - } - return output; -} -/** - * @param arg input remote value to be parsed - * @return parsed text of the remote value - * - * input: {"type": "number", "value": 1} - * output: 1 - * - * input: {"type": "string", "value": "abc"} - * output: "abc" - * - * input: {"type": "object", "value": [["id", {"type": "number", "value": 1}]]} - * output: '{"id": 1}' - * - * input: {"type": "object", "value": [["font-size", {"type": "string", "value": "20px"}]]} - * output: '{"font-size": "20px"}' - */ -function toJson(arg) { - // arg type validation - if (arg.type !== 'array' && - arg.type !== 'bigint' && - arg.type !== 'date' && - arg.type !== 'number' && - arg.type !== 'object' && - arg.type !== 'string') { - return stringFromArg(arg); - } - if (arg.type === 'bigint') { - return `${arg.value.toString()}n`; - } - if (arg.type === 'number') { - return arg.value.toString(); - } - if (['date', 'string'].includes(arg.type)) { - return JSON.stringify(arg.value); - } - if (arg.type === 'object') { - return `{${arg.value - .map((pair) => { - return `${JSON.stringify(pair[0])}:${toJson(pair[1])}`; - }) - .join(',')}}`; - } - if (arg.type === 'array') { - return `[${arg.value?.map((val) => toJson(val)).join(',') ?? ''}]`; - } - throw Error(`Invalid value type: ${arg}`); -} -function stringFromArg(arg) { - if (!Object.hasOwn(arg, 'value')) { - return arg.type; - } - switch (arg.type) { - case 'string': - case 'number': - case 'boolean': - case 'bigint': - return String(arg.value); - case 'regexp': - return `/${arg.value.pattern}/${arg.value.flags ?? ''}`; - case 'date': - return new Date(arg.value).toString(); - case 'object': - return `Object(${arg.value?.length ?? ''})`; - case 'array': - return `Array(${arg.value?.length ?? ''})`; - case 'map': - return `Map(${arg.value?.length})`; - case 'set': - return `Set(${arg.value?.length})`; - default: - return arg.type; - } -} -export function getRemoteValuesText(args, formatText) { - const arg = args[0]; - if (!arg) { - return ''; - } - // if args[0] is a format specifier, format the args as output - if (arg.type === 'string' && - isFormatSpecifier(arg.value.toString()) && - formatText) { - return logMessageFormatter(args); - } - // if args[0] is not a format specifier, just join the args with \u0020 (unicode 'SPACE') - return args - .map((arg) => { - return stringFromArg(arg); - }) - .join('\u0020'); -} -//# sourceMappingURL=logHelper.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js.map deleted file mode 100644 index 37fa9be..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/log/logHelper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"logHelper.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/log/logHelper.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.d.ts deleted file mode 100644 index 588dd29..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { Browser, BrowsingContext } from '../../../protocol/generated/webdriver-bidi.js'; -import { Network } from '../../../protocol/generated/webdriver-bidi.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { NetworkRequest } from './NetworkRequest.js'; -export declare class CollectorsStorage { - #private; - constructor(maxEncodedDataSize: number, logger?: LoggerFn); - addDataCollector(params: Network.AddDataCollectorParameters): `${string}-${string}-${string}-${string}-${string}`; - isCollected(requestId: Network.Request, dataType?: Network.DataType, collectorId?: string): boolean; - disownData(requestId: Network.Request, dataType: Network.DataType, collectorId?: string): void; - collectIfNeeded(request: NetworkRequest, dataType: Network.DataType, topLevelBrowsingContext: BrowsingContext.BrowsingContext, userContext: Browser.UserContext): void; - removeDataCollector(collectorId: Network.Collector): Network.Request[]; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js deleted file mode 100644 index 5999fb7..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, NoSuchNetworkCollectorException, UnsupportedOperationException, } from '../../../protocol/ErrorResponse.js'; -import { LogType } from '../../../utils/log.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -export class CollectorsStorage { - #collectors = new Map(); - #responseCollectors = new Map(); - #requestBodyCollectors = new Map(); - #maxEncodedDataSize; - #logger; - constructor(maxEncodedDataSize, logger) { - this.#maxEncodedDataSize = maxEncodedDataSize; - this.#logger = logger; - } - addDataCollector(params) { - if (params.maxEncodedDataSize < 1 || - params.maxEncodedDataSize > this.#maxEncodedDataSize) { - // 200 MB is the default limit in CDP: - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/inspector_network_agent.cc;drc=da1f749634c9a401cc756f36c2e6ce233e1c9b4d;l=133 - throw new InvalidArgumentException(`Max encoded data size should be between 1 and ${this.#maxEncodedDataSize}`); - } - const collectorId = uuidv4(); - this.#collectors.set(collectorId, params); - return collectorId; - } - isCollected(requestId, dataType, collectorId) { - if (collectorId !== undefined && !this.#collectors.has(collectorId)) { - throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`); - } - if (dataType === undefined) { - return (this.isCollected(requestId, "response" /* Network.DataType.Response */, collectorId) || - this.isCollected(requestId, "request" /* Network.DataType.Request */, collectorId)); - } - const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType).get(requestId); - if (requestToCollectorsMap === undefined || - requestToCollectorsMap.size === 0) { - return false; - } - if (collectorId === undefined) { - // There is at least 1 collector for the data. - return true; - } - if (!requestToCollectorsMap.has(collectorId)) { - return false; - } - return true; - } - #getRequestToCollectorMap(dataType) { - switch (dataType) { - case "response" /* Network.DataType.Response */: - return this.#responseCollectors; - case "request" /* Network.DataType.Request */: - return this.#requestBodyCollectors; - default: - throw new UnsupportedOperationException(`Unsupported data type ${dataType}`); - } - } - disownData(requestId, dataType, collectorId) { - const requestToCollectorsMap = this.#getRequestToCollectorMap(dataType); - if (collectorId !== undefined) { - requestToCollectorsMap.get(requestId)?.delete(collectorId); - } - if (collectorId === undefined || - requestToCollectorsMap.get(requestId)?.size === 0) { - requestToCollectorsMap.delete(requestId); - } - } - #shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext) { - const collector = this.#collectors.get(collectorId); - if (collector === undefined) { - throw new NoSuchNetworkCollectorException(`Unknown collector ${collectorId}`); - } - if (collector.userContexts && - !collector.userContexts.includes(userContext)) { - // Collector is aimed for a different user context. - return false; - } - if (collector.contexts && - !collector.contexts.includes(topLevelBrowsingContext)) { - // Collector is aimed for a different top-level browsing context. - return false; - } - if (!collector.dataTypes.includes(dataType)) { - // Collector is aimed for a different data type. - return false; - } - if (dataType === "request" /* Network.DataType.Request */ && - request.bodySize > collector.maxEncodedDataSize) { - this.#logger?.(LogType.debug, `Request's ${request.id} body size is too big for the collector ${collectorId}`); - return false; - } - if (dataType === "response" /* Network.DataType.Response */ && - request.encodedResponseBodySize > collector.maxEncodedDataSize) { - this.#logger?.(LogType.debug, `Request's ${request.id} response is too big for the collector ${collectorId}`); - return false; - } - this.#logger?.(LogType.debug, `Collector ${collectorId} collected ${dataType} of ${request.id}`); - return true; - } - collectIfNeeded(request, dataType, topLevelBrowsingContext, userContext) { - const collectorIds = [...this.#collectors.keys()].filter((collectorId) => this.#shouldCollectRequest(collectorId, request, dataType, topLevelBrowsingContext, userContext)); - if (collectorIds.length > 0) { - this.#getRequestToCollectorMap(dataType).set(request.id, new Set(collectorIds)); - } - } - removeDataCollector(collectorId) { - if (!this.#collectors.has(collectorId)) { - throw new NoSuchNetworkCollectorException(`Collector ${collectorId} does not exist`); - } - this.#collectors.delete(collectorId); - const affectedRequests = []; - // Clean up collected responses. - for (const [requestId, collectorIds] of this.#responseCollectors) { - if (collectorIds.has(collectorId)) { - collectorIds.delete(collectorId); - if (collectorIds.size === 0) { - this.#responseCollectors.delete(requestId); - affectedRequests.push(requestId); - } - } - } - for (const [requestId, collectorIds] of this.#requestBodyCollectors) { - if (collectorIds.has(collectorId)) { - collectorIds.delete(collectorId); - if (collectorIds.size === 0) { - this.#requestBodyCollectors.delete(requestId); - affectedRequests.push(requestId); - } - } - } - return affectedRequests; - } -} -//# sourceMappingURL=CollectorsStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js.map deleted file mode 100644 index 5df5826..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/CollectorsStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CollectorsStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/network/CollectorsStorage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.d.ts deleted file mode 100644 index fbc29a4..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.d.ts +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import { Network, type EmptyResult } from '../../../protocol/protocol.js'; -import type { ContextConfigStorage } from '../browser/ContextConfigStorage.js'; -import type { UserContextStorage } from '../browser/UserContextStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { NetworkStorage } from './NetworkStorage.js'; -import { type ParsedUrlPattern } from './NetworkUtils.js'; -/** Dispatches Network module commands. */ -export declare class NetworkProcessor { - #private; - constructor(browsingContextStorage: BrowsingContextStorage, networkStorage: NetworkStorage, userContextStorage: UserContextStorage, contextConfigStorage: ContextConfigStorage); - addIntercept(params: Network.AddInterceptParameters): Promise; - continueRequest(params: Network.ContinueRequestParameters): Promise; - continueResponse(params: Network.ContinueResponseParameters): Promise; - continueWithAuth(params: Network.ContinueWithAuthParameters): Promise; - failRequest({ request: networkId, }: Network.FailRequestParameters): Promise; - provideResponse(params: Network.ProvideResponseParameters): Promise; - removeIntercept(params: Network.RemoveInterceptParameters): Promise; - setCacheBehavior(params: Network.SetCacheBehaviorParameters): Promise; - /** - * Validate https://fetch.spec.whatwg.org/#header-value - */ - static validateHeaders(headers: Network.Header[]): void; - static isMethodValid(method: string): boolean; - /** - * Attempts to parse the given url. - * Throws an InvalidArgumentException if the url is invalid. - */ - static parseUrlString(url: string): URL; - static parseUrlPatterns(urlPatterns: Network.UrlPattern[]): ParsedUrlPattern[]; - static wrapInterceptionError(error: any): any; - addDataCollector(params: Network.AddDataCollectorParameters): Promise; - getData(params: Network.GetDataParameters): Promise; - removeDataCollector(params: Network.RemoveDataCollectorParameters): Promise; - disownData(params: Network.DisownDataParameters): EmptyResult; - setExtraHeaders(params: Network.SetExtraHeadersParameters): Promise; -} -export declare function parseBiDiHeaders(headers: Network.Header[]): Protocol.Network.Headers; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js deleted file mode 100644 index d9a6b0b..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js +++ /dev/null @@ -1,541 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoSuchRequestException, InvalidArgumentException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -import { isSpecialScheme } from './NetworkUtils.js'; -/** Dispatches Network module commands. */ -export class NetworkProcessor { - #browsingContextStorage; - #networkStorage; - #userContextStorage; - #contextConfigStorage; - constructor(browsingContextStorage, networkStorage, userContextStorage, contextConfigStorage) { - this.#userContextStorage = userContextStorage; - this.#browsingContextStorage = browsingContextStorage; - this.#networkStorage = networkStorage; - this.#contextConfigStorage = contextConfigStorage; - } - async addIntercept(params) { - this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - const urlPatterns = params.urlPatterns ?? []; - const parsedUrlPatterns = NetworkProcessor.parseUrlPatterns(urlPatterns); - const intercept = this.#networkStorage.addIntercept({ - urlPatterns: parsedUrlPatterns, - phases: params.phases, - contexts: params.contexts, - }); - // Adding interception may require enabling CDP Network domains. - await this.#toggleNetwork(); - return { - intercept, - }; - } - async continueRequest(params) { - if (params.url !== undefined) { - NetworkProcessor.parseUrlString(params.url); - } - if (params.method !== undefined) { - if (!NetworkProcessor.isMethodValid(params.method)) { - throw new InvalidArgumentException(`Method '${params.method}' is invalid.`); - } - } - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */, - ]); - try { - await request.continueRequest(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - async continueResponse(params) { - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "authRequired" /* Network.InterceptPhase.AuthRequired */, - "responseStarted" /* Network.InterceptPhase.ResponseStarted */, - ]); - try { - await request.continueResponse(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - async continueWithAuth(params) { - const networkId = params.request; - const request = this.#getBlockedRequestOrFail(networkId, [ - "authRequired" /* Network.InterceptPhase.AuthRequired */, - ]); - await request.continueWithAuth(params); - return {}; - } - async failRequest({ request: networkId, }) { - const request = this.#getRequestOrFail(networkId); - if (request.interceptPhase === "authRequired" /* Network.InterceptPhase.AuthRequired */) { - throw new InvalidArgumentException(`Request '${networkId}' in 'authRequired' phase cannot be failed`); - } - if (!request.interceptPhase) { - throw new NoSuchRequestException(`No blocked request found for network id '${networkId}'`); - } - await request.failRequest('Failed'); - return {}; - } - async provideResponse(params) { - if (params.headers) { - NetworkProcessor.validateHeaders(params.headers); - } - const request = this.#getBlockedRequestOrFail(params.request, [ - "beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */, - "responseStarted" /* Network.InterceptPhase.ResponseStarted */, - "authRequired" /* Network.InterceptPhase.AuthRequired */, - ]); - try { - await request.provideResponse(params); - } - catch (error) { - throw NetworkProcessor.wrapInterceptionError(error); - } - return {}; - } - /** - * In some states CDP Network and Fetch domains are not required, but in some they have - * to be updated. Whenever potential change in these kinds of states is introduced, - * update the states of all the CDP targets. - */ - async #toggleNetwork() { - await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => { - return context.cdpTarget.toggleNetwork(); - })); - } - async removeIntercept(params) { - this.#networkStorage.removeIntercept(params.intercept); - // Removing interception may allow for disabling CDP Network domains. - await this.#toggleNetwork(); - return {}; - } - async setCacheBehavior(params) { - const contexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - // Change all targets - if (contexts.size === 0) { - this.#networkStorage.defaultCacheBehavior = params.cacheBehavior; - await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => { - return context.cdpTarget.toggleSetCacheDisabled(); - })); - return {}; - } - const cacheDisabled = params.cacheBehavior === 'bypass'; - await Promise.all([...contexts.values()].map((context) => { - return context.cdpTarget.toggleSetCacheDisabled(cacheDisabled); - })); - return {}; - } - #getRequestOrFail(id) { - const request = this.#networkStorage.getRequestById(id); - if (!request) { - throw new NoSuchRequestException(`Network request with ID '${id}' doesn't exist`); - } - return request; - } - #getBlockedRequestOrFail(id, phases) { - const request = this.#getRequestOrFail(id); - if (!request.interceptPhase) { - throw new NoSuchRequestException(`No blocked request found for network id '${id}'`); - } - if (request.interceptPhase && !phases.includes(request.interceptPhase)) { - throw new InvalidArgumentException(`Blocked request for network id '${id}' is in '${request.interceptPhase}' phase`); - } - return request; - } - /** - * Validate https://fetch.spec.whatwg.org/#header-value - */ - static validateHeaders(headers) { - for (const header of headers) { - let headerValue; - if (header.value.type === 'string') { - headerValue = header.value.value; - } - else { - headerValue = atob(header.value.value); - } - if (headerValue !== headerValue.trim() || - headerValue.includes('\n') || - headerValue.includes('\0')) { - throw new InvalidArgumentException(`Header value '${headerValue}' is not acceptable value`); - } - } - } - static isMethodValid(method) { - // https://httpwg.org/specs/rfc9110.html#method.overview - return /^[!#$%&'*+\-.^_`|~a-zA-Z\d]+$/.test(method); - } - /** - * Attempts to parse the given url. - * Throws an InvalidArgumentException if the url is invalid. - */ - static parseUrlString(url) { - try { - return new URL(url); - } - catch (error) { - throw new InvalidArgumentException(`Invalid URL '${url}': ${error}`); - } - } - static parseUrlPatterns(urlPatterns) { - return urlPatterns.map((urlPattern) => { - let patternUrl = ''; - let hasProtocol = true; - let hasHostname = true; - let hasPort = true; - let hasPathname = true; - let hasSearch = true; - switch (urlPattern.type) { - case 'string': { - patternUrl = unescapeURLPattern(urlPattern.pattern); - break; - } - case 'pattern': { - if (urlPattern.protocol === undefined) { - hasProtocol = false; - patternUrl += 'http'; - } - else { - if (urlPattern.protocol === '') { - throw new InvalidArgumentException('URL pattern must specify a protocol'); - } - urlPattern.protocol = unescapeURLPattern(urlPattern.protocol); - if (!urlPattern.protocol.match(/^[a-zA-Z+-.]+$/)) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.protocol; - } - const scheme = patternUrl.toLocaleLowerCase(); - patternUrl += ':'; - if (isSpecialScheme(scheme)) { - patternUrl += '//'; - } - if (urlPattern.hostname === undefined) { - if (scheme !== 'file') { - patternUrl += 'placeholder'; - } - hasHostname = false; - } - else { - if (urlPattern.hostname === '') { - throw new InvalidArgumentException('URL pattern must specify a hostname'); - } - if (urlPattern.protocol === 'file') { - throw new InvalidArgumentException(`URL pattern protocol cannot be 'file'`); - } - urlPattern.hostname = unescapeURLPattern(urlPattern.hostname); - let insideBrackets = false; - for (const c of urlPattern.hostname) { - if (c === '/' || c === '?' || c === '#') { - throw new InvalidArgumentException(`'/', '?', '#' are forbidden in hostname`); - } - if (!insideBrackets && c === ':') { - throw new InvalidArgumentException(`':' is only allowed inside brackets in hostname`); - } - if (c === '[') { - insideBrackets = true; - } - if (c === ']') { - insideBrackets = false; - } - } - patternUrl += urlPattern.hostname; - } - if (urlPattern.port === undefined) { - hasPort = false; - } - else { - if (urlPattern.port === '') { - throw new InvalidArgumentException(`URL pattern must specify a port`); - } - urlPattern.port = unescapeURLPattern(urlPattern.port); - patternUrl += ':'; - if (!urlPattern.port.match(/^\d+$/)) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.port; - } - if (urlPattern.pathname === undefined) { - hasPathname = false; - } - else { - urlPattern.pathname = unescapeURLPattern(urlPattern.pathname); - if (urlPattern.pathname[0] !== '/') { - patternUrl += '/'; - } - if (urlPattern.pathname.includes('#') || - urlPattern.pathname.includes('?')) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.pathname; - } - if (urlPattern.search === undefined) { - hasSearch = false; - } - else { - urlPattern.search = unescapeURLPattern(urlPattern.search); - if (urlPattern.search[0] !== '?') { - patternUrl += '?'; - } - if (urlPattern.search.includes('#')) { - throw new InvalidArgumentException('Forbidden characters'); - } - patternUrl += urlPattern.search; - } - break; - } - } - const serializePort = (url) => { - const defaultPorts = { - 'ftp:': 21, - 'file:': null, - 'http:': 80, - 'https:': 443, - 'ws:': 80, - 'wss:': 443, - }; - if (isSpecialScheme(url.protocol) && - defaultPorts[url.protocol] !== null && - (!url.port || String(defaultPorts[url.protocol]) === url.port)) { - return ''; - } - else if (url.port) { - return url.port; - } - return undefined; - }; - try { - const url = new URL(patternUrl); - return { - protocol: hasProtocol ? url.protocol.replace(/:$/, '') : undefined, - hostname: hasHostname ? url.hostname : undefined, - port: hasPort ? serializePort(url) : undefined, - pathname: hasPathname && url.pathname ? url.pathname : undefined, - search: hasSearch ? url.search : undefined, - }; - } - catch (err) { - throw new InvalidArgumentException(`${err.message} '${patternUrl}'`); - } - }); - } - static wrapInterceptionError(error) { - // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/fetch_handler.cc;l=169 - if (error?.message.includes('Invalid header') || - error?.message.includes('Unsafe header')) { - return new InvalidArgumentException(error.message); - } - return error; - } - async addDataCollector(params) { - if (params.userContexts !== undefined && params.contexts !== undefined) { - throw new InvalidArgumentException("'contexts' and 'userContexts' are mutually exclusive"); - } - if (params.userContexts !== undefined) { - // Assert the user contexts exist. - await this.#userContextStorage.verifyUserContextIdList(params.userContexts); - } - if (params.contexts !== undefined) { - for (const browsingContextId of params.contexts) { - // Assert the browsing context exists and are top-level. - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException(`Data collectors are available only on top-level browsing contexts`); - } - } - } - const collectorId = this.#networkStorage.addDataCollector(params); - // Adding data collectors may require enabling CDP Network domains. - await this.#toggleNetwork(); - return { collector: collectorId }; - } - async getData(params) { - return await this.#networkStorage.getCollectedData(params); - } - async removeDataCollector(params) { - this.#networkStorage.removeDataCollector(params); - // Removing data collectors may allow disabling CDP Network domains. - await this.#toggleNetwork(); - return {}; - } - disownData(params) { - this.#networkStorage.disownData(params); - return {}; - } - async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds) { - // Duplicated with EmulationProcessor logic. Consider moving to ConfigStorage. - if (browsingContextIds === undefined && userContextIds === undefined) { - return this.#browsingContextStorage.getTopLevelContexts(); - } - if (browsingContextIds !== undefined && userContextIds !== undefined) { - throw new InvalidArgumentException('User contexts and browsing contexts are mutually exclusive'); - } - const result = []; - if (userContextIds !== undefined) { - if (userContextIds.length === 0) { - throw new InvalidArgumentException('user context should be provided'); - } - // Verify that all user contexts exist. - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - for (const userContextId of userContextIds) { - const topLevelBrowsingContexts = this.#browsingContextStorage - .getTopLevelContexts() - .filter((browsingContext) => browsingContext.userContext === userContextId); - result.push(...topLevelBrowsingContexts); - } - } - if (browsingContextIds !== undefined) { - if (browsingContextIds.length === 0) { - throw new InvalidArgumentException('browsing context should be provided'); - } - for (const browsingContextId of browsingContextIds) { - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - if (!browsingContext.isTopLevelContext()) { - throw new InvalidArgumentException('The command is only supported on the top-level context'); - } - result.push(browsingContext); - } - } - // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as - // `browsingContextStorage` returns the same instance for the same id. - return [...new Set(result).values()]; - } - async setExtraHeaders(params) { - const affectedBrowsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts); - const cdpExtraHeaders = parseBiDiHeaders(params.headers); - if (params.userContexts === undefined && params.contexts === undefined) { - this.#contextConfigStorage.updateGlobalConfig({ - extraHeaders: cdpExtraHeaders, - }); - } - if (params.userContexts !== undefined) { - params.userContexts.forEach((userContext) => { - this.#contextConfigStorage.updateUserContextConfig(userContext, { - extraHeaders: cdpExtraHeaders, - }); - }); - } - if (params.contexts !== undefined) { - params.contexts.forEach((browsingContextId) => { - this.#contextConfigStorage.updateBrowsingContextConfig(browsingContextId, { extraHeaders: cdpExtraHeaders }); - }); - } - await Promise.all(affectedBrowsingContexts.map(async (context) => { - // Actual value can be different from the one in params, e.g. in case of already - // existing setting. - const extraHeaders = this.#contextConfigStorage.getActiveConfig(context.id, context.userContext).extraHeaders ?? {}; - await context.setExtraHeaders(extraHeaders); - })); - return {}; - } -} -/** - * See https://w3c.github.io/webdriver-bidi/#unescape-url-pattern - */ -function unescapeURLPattern(pattern) { - const forbidden = new Set(['(', ')', '*', '{', '}']); - let result = ''; - let isEscaped = false; - for (const c of pattern) { - if (!isEscaped) { - if (forbidden.has(c)) { - throw new InvalidArgumentException('Forbidden characters'); - } - if (c === '\\') { - isEscaped = true; - continue; - } - } - result += c; - isEscaped = false; - } - return result; -} -// https://fetch.spec.whatwg.org/#header-name -const FORBIDDEN_HEADER_NAME_SYMBOLS = new Set([ - ' ', - '\t', - '\n', - '"', - '(', - ')', - ',', - '/', - ':', - ';', - '<', - '=', - '>', - '?', - '@', - '[', - '\\', - ']', - '{', - '}', -]); -// https://fetch.spec.whatwg.org/#header-value -const FORBIDDEN_HEADER_VALUE_SYMBOLS = new Set(['\0', '\n', '\r']); -function includesChar(str, chars) { - for (const char of str) { - if (chars.has(char)) { - return true; - } - } - return false; -} -// Export for testing. -export function parseBiDiHeaders(headers) { - const parsedHeaders = {}; - for (const bidiHeader of headers) { - if (bidiHeader.value.type === 'string') { - const name = bidiHeader.name; - const value = bidiHeader.value.value; - if (name.length === 0) { - throw new InvalidArgumentException(`Empty header name is not allowed`); - } - if (includesChar(name, FORBIDDEN_HEADER_NAME_SYMBOLS)) { - throw new InvalidArgumentException(`Header name '${name}' contains forbidden symbols`); - } - if (includesChar(value, FORBIDDEN_HEADER_VALUE_SYMBOLS)) { - throw new InvalidArgumentException(`Header value '${value}' contains forbidden symbols`); - } - if (value.trim() !== value) { - throw new InvalidArgumentException(`Header value should not contain trailing or ending whitespaces`); - } - // BiDi spec does not combine but overrides the headers with the same names. - // https://www.w3.org/TR/webdriver-bidi/#update-headers - parsedHeaders[bidiHeader.name] = bidiHeader.value.value; - } - else { - throw new UnsupportedOperationException('Only string headers values are supported'); - } - } - return parsedHeaders; -} -//# sourceMappingURL=NetworkProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js.map deleted file mode 100644 index d184630..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NetworkProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/network/NetworkProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.d.ts deleted file mode 100644 index bb9fd46..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -/** - * @fileoverview `NetworkRequest` represents a single network request and keeps - * track of all the related CDP events. - */ -import type { Protocol } from 'devtools-protocol'; -import { Network } from '../../../protocol/protocol.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { NetworkStorage } from './NetworkStorage.js'; -/** Abstracts one individual network request. */ -export declare class NetworkRequest { - #private; - static unknownParameter: string; - waitNextPhase: Deferred; - constructor(id: Network.Request, eventManager: EventManager, networkStorage: NetworkStorage, cdpTarget: CdpTarget, redirectCount?: number, logger?: LoggerFn); - get id(): string; - get fetchId(): string | undefined; - /** - * When blocked returns the phase for it - */ - get interceptPhase(): Network.InterceptPhase | undefined; - get url(): string; - get redirectCount(): number; - get cdpTarget(): CdpTarget; - /** CdpTarget can be changed when frame is moving out of process. */ - updateCdpTarget(cdpTarget: CdpTarget): void; - get cdpClient(): import("../../BidiMapper.js").CdpClient; - isRedirecting(): boolean; - get bodySize(): number; - handleRedirect(event: Protocol.Network.RequestWillBeSentEvent): void; - onRequestWillBeSentEvent(event: Protocol.Network.RequestWillBeSentEvent): void; - onRequestWillBeSentExtraInfoEvent(event: Protocol.Network.RequestWillBeSentExtraInfoEvent): void; - onResponseReceivedExtraInfoEvent(event: Protocol.Network.ResponseReceivedExtraInfoEvent): void; - onResponseReceivedEvent(event: Protocol.Network.ResponseReceivedEvent): void; - onServedFromCache(): void; - onLoadingFinishedEvent(event: Protocol.Network.LoadingFinishedEvent): void; - onDataReceivedEvent(event: Protocol.Network.DataReceivedEvent): void; - onLoadingFailedEvent(event: Protocol.Network.LoadingFailedEvent): void; - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-failRequest */ - failRequest(errorReason: Protocol.Network.ErrorReason): Promise; - onRequestPaused(event: Protocol.Fetch.RequestPausedEvent): void; - onAuthRequired(event: Protocol.Fetch.AuthRequiredEvent): void; - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueRequest */ - continueRequest(overrides?: Omit): Promise; - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueResponse */ - continueResponse(overrides?: Omit): Promise; - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueWithAuth */ - continueWithAuth(authChallenge: Omit): Promise; - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-provideResponse */ - provideResponse(overrides: Omit): Promise; - dispose(): void; - get encodedResponseBodySize(): number; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js deleted file mode 100644 index 78b8d74..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js +++ /dev/null @@ -1,890 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -var _a; -import { ChromiumBidi, } from '../../../protocol/protocol.js'; -import { assert } from '../../../utils/assert.js'; -import { DefaultMap } from '../../../utils/DefaultMap.js'; -import { Deferred } from '../../../utils/Deferred.js'; -import { LogType } from '../../../utils/log.js'; -import { bidiBodySizeFromCdpPostDataEntries, bidiNetworkHeadersFromCdpNetworkHeaders, cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction, cdpFetchHeadersFromBidiNetworkHeaders, cdpToBiDiCookie, computeHeadersSize, getTiming, networkHeaderFromCookieHeaders, stringToBase64, } from './NetworkUtils.js'; -const REALM_REGEX = /(?<=realm=").*(?=")/; -/** Abstracts one individual network request. */ -export class NetworkRequest { - static unknownParameter = 'UNKNOWN'; - /** - * Each network request has an associated request id, which is a string - * uniquely identifying that request. - * - * The identifier for a request resulting from a redirect matches that of the - * request that initiated it. - */ - #id; - #fetchId; - /** - * Indicates the network intercept phase, if the request is currently blocked. - * Undefined necessarily implies that the request is not blocked. - */ - #interceptPhase; - #servedFromCache = false; - #redirectCount; - #request = {}; - #requestOverrides; - #responseOverrides; - #response = { - decodedSize: 0, - encodedSize: 0, - }; - #eventManager; - #networkStorage; - #cdpTarget; - #logger; - #emittedEvents = { - [ChromiumBidi.Network.EventNames.AuthRequired]: false, - [ChromiumBidi.Network.EventNames.BeforeRequestSent]: false, - [ChromiumBidi.Network.EventNames.FetchError]: false, - [ChromiumBidi.Network.EventNames.ResponseCompleted]: false, - [ChromiumBidi.Network.EventNames.ResponseStarted]: false, - }; - waitNextPhase = new Deferred(); - constructor(id, eventManager, networkStorage, cdpTarget, redirectCount = 0, logger) { - this.#id = id; - this.#eventManager = eventManager; - this.#networkStorage = networkStorage; - this.#cdpTarget = cdpTarget; - this.#redirectCount = redirectCount; - this.#logger = logger; - } - get id() { - return this.#id; - } - get fetchId() { - return this.#fetchId; - } - /** - * When blocked returns the phase for it - */ - get interceptPhase() { - return this.#interceptPhase; - } - get url() { - const fragment = this.#request.info?.request.urlFragment ?? - this.#request.paused?.request.urlFragment ?? - ''; - const url = this.#response.paused?.request.url ?? - this.#requestOverrides?.url ?? - this.#response.info?.url ?? - this.#request.auth?.request.url ?? - this.#request.info?.request.url ?? - this.#request.paused?.request.url ?? - _a.unknownParameter; - return `${url}${fragment}`; - } - get redirectCount() { - return this.#redirectCount; - } - get cdpTarget() { - return this.#cdpTarget; - } - /** CdpTarget can be changed when frame is moving out of process. */ - updateCdpTarget(cdpTarget) { - if (cdpTarget !== this.#cdpTarget) { - this.#logger?.(LogType.debugInfo, `Request ${this.id} was moved from ${this.#cdpTarget.id} to ${cdpTarget.id}`); - this.#cdpTarget = cdpTarget; - } - } - get cdpClient() { - return this.#cdpTarget.cdpClient; - } - isRedirecting() { - return Boolean(this.#request.info); - } - #isDataUrl() { - return this.url.startsWith('data:'); - } - #isNonInterceptable() { - return ( - // We can't intercept data urls from CDP - this.#isDataUrl() || - // Cached requests never hit the network - this.#servedFromCache); - } - get #method() { - return (this.#requestOverrides?.method ?? - this.#request.info?.request.method ?? - this.#request.paused?.request.method ?? - this.#request.auth?.request.method ?? - this.#response.paused?.request.method); - } - get #navigationId() { - // Heuristic to determine if this is a navigation request, and if not return null. - if (!this.#request.info || - !this.#request.info.loaderId || - // When we navigate all CDP network events have `loaderId` - // CDP's `loaderId` and `requestId` match when - // that request triggered the loading - this.#request.info.loaderId !== this.#request.info.requestId) { - return null; - } - // Get virtual navigation ID from the browsing context. - return this.#networkStorage.getNavigationId(this.#context ?? undefined); - } - get #cookies() { - let cookies = []; - if (this.#request.extraInfo) { - cookies = this.#request.extraInfo.associatedCookies - .filter(({ blockedReasons }) => { - return !Array.isArray(blockedReasons) || blockedReasons.length === 0; - }) - .map(({ cookie }) => cdpToBiDiCookie(cookie)); - } - return cookies; - } - #getBodySizeFromHeaders(headers) { - if (headers === undefined) { - return undefined; - } - if (headers['Content-Length'] !== undefined) { - const bodySize = Number.parseInt(headers['Content-Length']); - if (Number.isInteger(bodySize)) { - return bodySize; - } - this.#logger?.(LogType.debugError, "Unexpected non-integer 'Content-Length' header"); - } - // TODO: process `Transfer-Encoding: chunked` case properly. - return undefined; - } - get bodySize() { - if (typeof this.#requestOverrides?.bodySize === 'number') { - return this.#requestOverrides.bodySize; - } - if (this.#request.info?.request.postDataEntries !== undefined) { - return bidiBodySizeFromCdpPostDataEntries(this.#request.info?.request.postDataEntries); - } - // Try to guess the body size based on the `Content-Length` header. - return (this.#getBodySizeFromHeaders(this.#request.info?.request.headers) ?? - this.#getBodySizeFromHeaders(this.#request.extraInfo?.headers) ?? - 0); - } - get #context() { - const result = this.#response.paused?.frameId ?? - this.#request.info?.frameId ?? - this.#request.paused?.frameId ?? - this.#request.auth?.frameId; - if (result !== undefined) { - return result; - } - // Heuristic for associating a preflight request with context via it's initiator - // request. Useful for preflight requests. - // https://github.com/GoogleChromeLabs/chromium-bidi/issues/3570 - if (this.#request?.info?.initiator.type === 'preflight' && - this.#request?.info?.initiator.requestId !== undefined) { - const maybeInitiator = this.#networkStorage.getRequestById(this.#request?.info?.initiator.requestId); - if (maybeInitiator !== undefined) { - return maybeInitiator.#request.info?.frameId ?? null; - } - } - return null; - } - /** Returns the HTTP status code associated with this request if any. */ - get #statusCode() { - return (this.#responseOverrides?.statusCode ?? - this.#response.paused?.responseStatusCode ?? - this.#response.extraInfo?.statusCode ?? - this.#response.info?.status); - } - get #requestHeaders() { - let headers = []; - if (this.#requestOverrides?.headers) { - const headerMap = new DefaultMap(() => []); - for (const header of this.#requestOverrides.headers) { - headerMap.get(header.name).push(header.value.value); - } - for (const [name, value] of headerMap.entries()) { - headers.push({ - name, - value: { - type: 'string', - value: value.join('\n').trimEnd(), - }, - }); - } - } - else { - headers = [ - ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.info?.request.headers), - ...bidiNetworkHeadersFromCdpNetworkHeaders(this.#request.extraInfo?.headers), - ]; - } - return headers; - } - get #authChallenges() { - // TODO: get headers from Fetch.requestPaused - if (!this.#response.info) { - return; - } - if (!(this.#statusCode === 401 || this.#statusCode === 407)) { - return undefined; - } - const headerName = this.#statusCode === 401 ? 'WWW-Authenticate' : 'Proxy-Authenticate'; - const authChallenges = []; - for (const [header, value] of Object.entries(this.#response.info.headers)) { - // TODO: Do a proper match based on https://httpwg.org/specs/rfc9110.html#credentials - // Or verify this works - if (header.localeCompare(headerName, undefined, { sensitivity: 'base' }) === 0) { - authChallenges.push({ - scheme: value.split(' ').at(0) ?? '', - realm: value.match(REALM_REGEX)?.at(0) ?? '', - }); - } - } - return authChallenges; - } - get #timings() { - // The timing in the CDP events are provided relative to the event's baseline. - // However, the baseline can be different for different events, and the events have to - // be normalized throughout resource events. Normalize events timestamps by the - // request. - // TODO: Verify this is correct. - const responseTimeOffset = getTiming(getTiming(this.#response.info?.timing?.requestTime) - - getTiming(this.#request.info?.timestamp)); - return { - // TODO: Verify this is correct - timeOrigin: Math.round(getTiming(this.#request.info?.wallTime) * 1000), - // Timing baseline. - // TODO: Verify this is correct. - requestTime: 0, - // TODO: set if redirect detected. - redirectStart: 0, - // TODO: set if redirect detected. - redirectEnd: 0, - // TODO: Verify this is correct - // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=145 - fetchStart: getTiming(this.#response.info?.timing?.workerFetchStart, responseTimeOffset), - // fetchStart: 0, - dnsStart: getTiming(this.#response.info?.timing?.dnsStart, responseTimeOffset), - dnsEnd: getTiming(this.#response.info?.timing?.dnsEnd, responseTimeOffset), - connectStart: getTiming(this.#response.info?.timing?.connectStart, responseTimeOffset), - connectEnd: getTiming(this.#response.info?.timing?.connectEnd, responseTimeOffset), - tlsStart: getTiming(this.#response.info?.timing?.sslStart, responseTimeOffset), - requestStart: getTiming(this.#response.info?.timing?.sendStart, responseTimeOffset), - // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=196 - responseStart: getTiming(this.#response.info?.timing?.receiveHeadersStart, responseTimeOffset), - responseEnd: getTiming(this.#response.info?.timing?.receiveHeadersEnd, responseTimeOffset), - }; - } - #phaseChanged() { - this.waitNextPhase.resolve(); - this.waitNextPhase = new Deferred(); - } - #interceptsInPhase(phase) { - if (this.#isNonInterceptable() || - !this.#cdpTarget.isSubscribedTo(`network.${phase}`)) { - return new Set(); - } - return this.#networkStorage.getInterceptsForPhase(this, phase); - } - #isBlockedInPhase(phase) { - return this.#interceptsInPhase(phase).size > 0; - } - handleRedirect(event) { - // TODO: use event.redirectResponse; - // Temporary workaround to emit ResponseCompleted event for redirects - this.#response.hasExtraInfo = false; - this.#response.decodedSize = 0; - this.#response.encodedSize = 0; - this.#response.info = event.redirectResponse; - this.#emitEventsIfReady({ - wasRedirected: true, - }); - } - #emitEventsIfReady(options = {}) { - const requestExtraInfoCompleted = - // Flush redirects - options.wasRedirected || - Boolean(this.#response.loadingFailed) || - this.#isDataUrl() || - Boolean(this.#request.extraInfo) || - // If the request is intercepted during the `authRequired` phase, there - // will be no `Network.requestWillBeSentExtraInfo` CDP events. - this.#isBlockedInPhase("authRequired" /* Network.InterceptPhase.AuthRequired */) || - // Requests from cache don't have extra info - this.#servedFromCache || - // Sometimes there is no extra info and the response - // is the only place we can find out - Boolean(this.#response.info && !this.#response.hasExtraInfo); - const noInterceptionExpected = this.#isNonInterceptable(); - const requestInterceptionExpected = !noInterceptionExpected && - this.#isBlockedInPhase("beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */); - const requestInterceptionCompleted = !requestInterceptionExpected || - (requestInterceptionExpected && Boolean(this.#request.paused)); - if (Boolean(this.#request.info) && - (requestInterceptionExpected - ? requestInterceptionCompleted - : requestExtraInfoCompleted)) { - this.#emitEvent(this.#getBeforeRequestEvent.bind(this)); - } - const responseExtraInfoCompleted = Boolean(this.#response.extraInfo) || - // Response from cache don't have extra info - this.#servedFromCache || - // Don't expect extra info if the flag is false - Boolean(this.#response.info && !this.#response.hasExtraInfo); - const responseInterceptionExpected = !noInterceptionExpected && - this.#isBlockedInPhase("responseStarted" /* Network.InterceptPhase.ResponseStarted */); - if (this.#response.info || - (responseInterceptionExpected && Boolean(this.#response.paused))) { - this.#emitEvent(this.#getResponseStartedEvent.bind(this)); - } - const responseInterceptionCompleted = !responseInterceptionExpected || - (responseInterceptionExpected && Boolean(this.#response.paused)); - const loadingFinished = Boolean(this.#response.loadingFailed) || - Boolean(this.#response.loadingFinished); - if (Boolean(this.#response.info) && - responseExtraInfoCompleted && - responseInterceptionCompleted && - (loadingFinished || options.wasRedirected)) { - this.#emitEvent(this.#getResponseReceivedEvent.bind(this)); - this.#networkStorage.disposeRequest(this.id); - } - } - onRequestWillBeSentEvent(event) { - this.#request.info = event; - this.#networkStorage.collectIfNeeded(this, "request" /* Network.DataType.Request */); - this.#emitEventsIfReady(); - } - onRequestWillBeSentExtraInfoEvent(event) { - this.#request.extraInfo = event; - this.#emitEventsIfReady(); - } - onResponseReceivedExtraInfoEvent(event) { - if (event.statusCode >= 300 && - event.statusCode <= 399 && - this.#request.info && - event.headers['location'] === this.#request.info.request.url) { - // We received the Response Extra info for the redirect - // Too late so we need to skip it as it will - // fire wrongly for the last one - return; - } - this.#response.extraInfo = event; - this.#emitEventsIfReady(); - } - onResponseReceivedEvent(event) { - this.#response.hasExtraInfo = event.hasExtraInfo; - this.#response.info = event.response; - this.#networkStorage.collectIfNeeded(this, "response" /* Network.DataType.Response */); - this.#emitEventsIfReady(); - } - onServedFromCache() { - this.#servedFromCache = true; - this.#emitEventsIfReady(); - } - onLoadingFinishedEvent(event) { - this.#response.loadingFinished = event; - this.#emitEventsIfReady(); - } - onDataReceivedEvent(event) { - this.#response.decodedSize += event.dataLength; - this.#response.encodedSize += event.encodedDataLength; - } - onLoadingFailedEvent(event) { - this.#response.loadingFailed = event; - this.#emitEventsIfReady(); - this.#emitEvent(() => { - return { - method: ChromiumBidi.Network.EventNames.FetchError, - params: { - ...this.#getBaseEventParams(), - errorText: event.errorText, - }, - }; - }); - } - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-failRequest */ - async failRequest(errorReason) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.failRequest', { - requestId: this.#fetchId, - errorReason, - }); - this.#interceptPhase = undefined; - } - onRequestPaused(event) { - this.#fetchId = event.requestId; - // CDP https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#event-requestPaused - if (event.responseStatusCode || event.responseErrorReason) { - this.#response.paused = event; - if (this.#isBlockedInPhase("responseStarted" /* Network.InterceptPhase.ResponseStarted */) && - // CDP may emit multiple events for a single request - !this.#emittedEvents[ChromiumBidi.Network.EventNames.ResponseStarted] && - // Continue all response that have not enabled Network domain - this.#fetchId !== this.id) { - this.#interceptPhase = "responseStarted" /* Network.InterceptPhase.ResponseStarted */; - } - else { - void this.#continueResponse(); - } - } - else { - this.#request.paused = event; - if (this.#isBlockedInPhase("beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */) && - // CDP may emit multiple events for a single request - !this.#emittedEvents[ChromiumBidi.Network.EventNames.BeforeRequestSent] && - // Continue all requests that have not enabled Network domain - this.#fetchId !== this.id) { - this.#interceptPhase = "beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */; - } - else { - void this.#continueRequest(); - } - } - this.#emitEventsIfReady(); - } - onAuthRequired(event) { - this.#fetchId = event.requestId; - this.#request.auth = event; - if (this.#isBlockedInPhase("authRequired" /* Network.InterceptPhase.AuthRequired */) && - // Continue all auth requests that have not enabled Network domain - this.#fetchId !== this.id) { - this.#interceptPhase = "authRequired" /* Network.InterceptPhase.AuthRequired */; - // Make sure the `network.beforeRequestSent` is emitted before - // `network.authRequired`. - this.#emitEventsIfReady(); - } - else { - void this.#continueWithAuth({ - response: 'Default', - }); - } - this.#emitEvent(() => { - return { - method: ChromiumBidi.Network.EventNames.AuthRequired, - params: { - ...this.#getBaseEventParams("authRequired" /* Network.InterceptPhase.AuthRequired */), - response: this.#getResponseEventParams(), - }, - }; - }); - } - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueRequest */ - async continueRequest(overrides = {}) { - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const headers = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - const postData = getCdpBodyFromBiDiBytesValue(overrides.body); - await this.#continueRequest({ - url: overrides.url, - method: overrides.method, - headers, - postData, - }); - this.#requestOverrides = { - url: overrides.url, - method: overrides.method, - headers: overrides.headers, - cookies: overrides.cookies, - bodySize: getSizeFromBiDiBytesValue(overrides.body), - }; - } - async #continueRequest(overrides = {}) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueRequest', { - requestId: this.#fetchId, - url: overrides.url, - method: overrides.method, - headers: overrides.headers, - postData: overrides.postData, - }); - this.#interceptPhase = undefined; - } - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueResponse */ - async continueResponse(overrides = {}) { - if (this.interceptPhase === "authRequired" /* Network.InterceptPhase.AuthRequired */) { - if (overrides.credentials) { - await Promise.all([ - this.waitNextPhase, - await this.#continueWithAuth({ - response: 'ProvideCredentials', - username: overrides.credentials.username, - password: overrides.credentials.password, - }), - ]); - } - else { - // We need to use `ProvideCredentials` - // As `Default` may cancel the request - return await this.#continueWithAuth({ - response: 'ProvideCredentials', - }); - } - } - if (this.#interceptPhase === "responseStarted" /* Network.InterceptPhase.ResponseStarted */) { - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - await this.#continueResponse({ - responseCode: overrides.statusCode ?? this.#response.paused?.responseStatusCode, - responsePhrase: overrides.reasonPhrase ?? this.#response.paused?.responseStatusText, - responseHeaders: responseHeaders ?? this.#response.paused?.responseHeaders, - }); - this.#responseOverrides = { - statusCode: overrides.statusCode, - headers: overrideHeaders, - }; - } - } - async #continueResponse({ responseCode, responsePhrase, responseHeaders, } = {}) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueResponse', { - requestId: this.#fetchId, - responseCode, - responsePhrase, - responseHeaders, - }); - this.#interceptPhase = undefined; - } - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueWithAuth */ - async continueWithAuth(authChallenge) { - let username; - let password; - if (authChallenge.action === 'provideCredentials') { - const { credentials } = authChallenge; - username = credentials.username; - password = credentials.password; - } - const response = cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(authChallenge.action); - await this.#continueWithAuth({ - response, - username, - password, - }); - } - /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-provideResponse */ - async provideResponse(overrides) { - assert(this.#fetchId, 'Network Interception not set-up.'); - // We need to pass through if the request is already in - // AuthRequired phase - if (this.interceptPhase === "authRequired" /* Network.InterceptPhase.AuthRequired */) { - // We need to use `ProvideCredentials` - // As `Default` may cancel the request - return await this.#continueWithAuth({ - response: 'ProvideCredentials', - }); - } - // If we don't modify the response - // just continue the request - if (!overrides.body && !overrides.headers) { - return await this.#continueRequest(); - } - const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies); - const responseHeaders = cdpFetchHeadersFromBidiNetworkHeaders(overrideHeaders); - const responseCode = overrides.statusCode ?? this.#statusCode ?? 200; - await this.cdpClient.sendCommand('Fetch.fulfillRequest', { - requestId: this.#fetchId, - responseCode, - responsePhrase: overrides.reasonPhrase, - responseHeaders, - body: getCdpBodyFromBiDiBytesValue(overrides.body), - }); - this.#interceptPhase = undefined; - } - dispose() { - this.waitNextPhase.reject(new Error('waitNextPhase disposed')); - } - async #continueWithAuth(authChallengeResponse) { - assert(this.#fetchId, 'Network Interception not set-up.'); - await this.cdpClient.sendCommand('Fetch.continueWithAuth', { - requestId: this.#fetchId, - authChallengeResponse, - }); - this.#interceptPhase = undefined; - } - #emitEvent(getEvent) { - let event; - try { - event = getEvent(); - } - catch (error) { - this.#logger?.(LogType.debugError, error); - return; - } - if (this.#isIgnoredEvent() || - (this.#emittedEvents[event.method] && - // Special case this event can be emitted multiple times - event.method !== ChromiumBidi.Network.EventNames.AuthRequired)) { - return; - } - this.#phaseChanged(); - this.#emittedEvents[event.method] = true; - if (this.#context) { - this.#eventManager.registerEvent(Object.assign(event, { - type: 'event', - }), this.#context); - } - else { - this.#eventManager.registerGlobalEvent(Object.assign(event, { - type: 'event', - })); - } - } - #getBaseEventParams(phase) { - const interceptProps = { - isBlocked: false, - }; - if (phase) { - const blockedBy = this.#interceptsInPhase(phase); - interceptProps.isBlocked = blockedBy.size > 0; - if (interceptProps.isBlocked) { - interceptProps.intercepts = [...blockedBy]; - } - } - return { - context: this.#context, - navigation: this.#navigationId, - redirectCount: this.#redirectCount, - request: this.#getRequestData(), - // Timestamp should be in milliseconds, while CDP provides it in seconds. - timestamp: Math.round(getTiming(this.#request.info?.wallTime) * 1000), - // Contains isBlocked and intercepts - ...interceptProps, - }; - } - #getResponseEventParams() { - // Chromium sends wrong extraInfo events for responses served from cache. - // See https://github.com/puppeteer/puppeteer/issues/9965 and - // https://crbug.com/1340398. - if (this.#response.info?.fromDiskCache) { - this.#response.extraInfo = undefined; - } - // TODO: Also this.#response.paused?.responseHeaders have to be merged here. - const cdpHeaders = this.#response.info?.headers ?? {}; - const cdpRawHeaders = this.#response.extraInfo?.headers ?? {}; - for (const [key, value] of Object.entries(cdpRawHeaders)) { - cdpHeaders[key] = value; - } - const headers = bidiNetworkHeadersFromCdpNetworkHeaders(cdpHeaders); - const authChallenges = this.#authChallenges; - const response = { - url: this.url, - protocol: this.#response.info?.protocol ?? '', - status: this.#statusCode ?? -1, // TODO: Throw an exception or use some other status code? - statusText: this.#response.info?.statusText || - this.#response.paused?.responseStatusText || - '', - fromCache: this.#response.info?.fromDiskCache || - this.#response.info?.fromPrefetchCache || - this.#servedFromCache, - headers: this.#responseOverrides?.headers ?? headers, - mimeType: this.#response.info?.mimeType || '', - // TODO: this should be the size for the entire HTTP response. - bytesReceived: this.encodedResponseBodySize, - headersSize: computeHeadersSize(headers), - bodySize: this.encodedResponseBodySize, - content: { - size: this.#response.decodedSize ?? 0, - }, - ...(authChallenges ? { authChallenges } : {}), - }; - return { - ...response, - 'goog:securityDetails': this.#response.info?.securityDetails, - }; - } - get encodedResponseBodySize() { - return (this.#response.loadingFinished?.encodedDataLength ?? - this.#response.info?.encodedDataLength ?? - this.#response.encodedSize ?? - 0); - } - #getRequestData() { - const headers = this.#requestHeaders; - const request = { - request: this.#id, - url: this.url, - method: this.#method ?? _a.unknownParameter, - headers, - cookies: this.#cookies, - headersSize: computeHeadersSize(headers), - bodySize: this.bodySize, - // TODO: populate - destination: this.#getDestination(), - // TODO: populate - initiatorType: this.#getInitiatorType(), - timings: this.#timings, - }; - return { - ...request, - 'goog:postData': this.#request.info?.request?.postData, - 'goog:hasPostData': this.#request.info?.request?.hasPostData, - 'goog:resourceType': this.#request.info?.type, - 'goog:resourceInitiator': this.#request.info?.initiator, - }; - } - /** - * Heuristic trying to guess the destination. - * Specification: https://fetch.spec.whatwg.org/#concept-request-destination. - * Specified values: "audio", "audioworklet", "document", "embed", "font", "frame", - * "iframe", "image", "json", "manifest", "object", "paintworklet", "report", "script", - * "serviceworker", "sharedworker", "style", "track", "video", "webidentity", "worker", - * "xslt". - */ - #getDestination() { - switch (this.#request.info?.type) { - case 'Script': - return 'script'; - case 'Stylesheet': - return 'style'; - case 'Image': - return 'image'; - case 'Document': - // If request to document is initiated by parser, assume it is expected to - // arrive in an iframe. Otherwise, consider it is a navigation and the request - // result will end up in the document. - return this.#request.info?.initiator.type === 'parser' - ? 'iframe' - : 'document'; - default: - return ''; - } - } - /** - * Heuristic trying to guess the initiator type. - * Specification: https://fetch.spec.whatwg.org/#request-initiator-type. - * Specified values: "audio", "beacon", "body", "css", "early-hints", "embed", "fetch", - * "font", "frame", "iframe", "image", "img", "input", "link", "object", "ping", - * "script", "track", "video", "xmlhttprequest", "other". - */ - #getInitiatorType() { - if (this.#request.info?.initiator.type === 'parser') { - switch (this.#request.info?.type) { - case 'Document': - // The request to document is initiated by the parser. Assuming it's an iframe. - return 'iframe'; - case 'Font': - // If the document's url is not the parser's url, assume the resource is loaded - // from css. Otherwise, it's a `font` element. - return this.#request.info?.initiator?.url === - this.#request.info?.documentURL - ? 'font' - : 'css'; - case 'Image': - // If the document's url is not the parser's url, assume the resource is loaded - // from css. Otherwise, it's a `img` element. - return this.#request.info?.initiator?.url === - this.#request.info?.documentURL - ? 'img' - : 'css'; - case 'Script': - return 'script'; - case 'Stylesheet': - return 'link'; - default: - return null; - } - } - if (this.#request?.info?.type === 'Fetch') { - return 'fetch'; - } - return null; - } - #getBeforeRequestEvent() { - assert(this.#request.info, 'RequestWillBeSentEvent is not set'); - return { - method: ChromiumBidi.Network.EventNames.BeforeRequestSent, - params: { - ...this.#getBaseEventParams("beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */), - initiator: { - type: _a.#getInitiator(this.#request.info.initiator.type), - columnNumber: this.#request.info.initiator.columnNumber, - lineNumber: this.#request.info.initiator.lineNumber, - stackTrace: this.#request.info.initiator.stack, - request: this.#request.info.initiator.requestId, - }, - }, - }; - } - #getResponseStartedEvent() { - return { - method: ChromiumBidi.Network.EventNames.ResponseStarted, - params: { - ...this.#getBaseEventParams("responseStarted" /* Network.InterceptPhase.ResponseStarted */), - response: this.#getResponseEventParams(), - }, - }; - } - #getResponseReceivedEvent() { - return { - method: ChromiumBidi.Network.EventNames.ResponseCompleted, - params: { - ...this.#getBaseEventParams(), - response: this.#getResponseEventParams(), - }, - }; - } - #isIgnoredEvent() { - const faviconUrl = '/favicon.ico'; - return (this.#request.paused?.request.url.endsWith(faviconUrl) ?? - this.#request.info?.request.url.endsWith(faviconUrl) ?? - false); - } - #getOverrideHeader(headers, cookies) { - if (!headers && !cookies) { - return undefined; - } - let overrideHeaders = headers; - const cookieHeader = networkHeaderFromCookieHeaders(cookies); - if (cookieHeader && !overrideHeaders) { - overrideHeaders = this.#requestHeaders; - } - if (cookieHeader && overrideHeaders) { - overrideHeaders.filter((header) => header.name.localeCompare('cookie', undefined, { - sensitivity: 'base', - }) !== 0); - overrideHeaders.push(cookieHeader); - } - return overrideHeaders; - } - static #getInitiator(initiatorType) { - switch (initiatorType) { - case 'parser': - case 'script': - case 'preflight': - return initiatorType; - default: - return 'other'; - } - } -} -_a = NetworkRequest; -function getCdpBodyFromBiDiBytesValue(body) { - let parsedBody; - if (body?.type === 'string') { - parsedBody = stringToBase64(body.value); - } - else if (body?.type === 'base64') { - parsedBody = body.value; - } - return parsedBody; -} -function getSizeFromBiDiBytesValue(body) { - if (body?.type === 'string') { - return body.value.length; - } - else if (body?.type === 'base64') { - return atob(body.value).length; - } - return 0; -} -//# sourceMappingURL=NetworkRequest.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js.map deleted file mode 100644 index 6d85209..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkRequest.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NetworkRequest.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/network/NetworkRequest.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.d.ts deleted file mode 100644 index 41fa082..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.d.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { type BrowsingContext, Network } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { CdpClient } from '../../BidiMapper.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import { NetworkRequest } from './NetworkRequest.js'; -import { type ParsedUrlPattern } from './NetworkUtils.js'; -export declare const MAX_TOTAL_COLLECTED_SIZE = 200000000; -type NetworkInterception = Omit & { - urlPatterns: ParsedUrlPattern[]; -}; -/** Stores network and intercept maps. */ -export declare class NetworkStorage { - #private; - constructor(eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, browserClient: CdpClient, logger?: LoggerFn); - onCdpTargetCreated(cdpTarget: CdpTarget): void; - getCollectedData(params: Network.GetDataParameters): Promise; - collectIfNeeded(request: NetworkRequest, dataType: Network.DataType): void; - getInterceptionStages(browsingContextId: BrowsingContext.BrowsingContext): { - request: boolean; - response: boolean; - auth: boolean; - }; - getInterceptsForPhase(request: NetworkRequest, phase: Network.InterceptPhase): Set; - disposeRequestMap(sessionId: string): void; - /** - * Adds the given entry to the intercept map. - * URL patterns are assumed to be parsed. - * - * @return The intercept ID. - */ - addIntercept(value: NetworkInterception): Network.Intercept; - /** - * Removes the given intercept from the intercept map. - * Throws NoSuchInterceptException if the intercept does not exist. - */ - removeIntercept(intercept: Network.Intercept): void; - getRequestsByTarget(target: CdpTarget): NetworkRequest[]; - getRequestById(id: Network.Request): NetworkRequest | undefined; - getRequestByFetchId(fetchId: Network.Request): NetworkRequest | undefined; - addRequest(request: NetworkRequest): void; - /** - * Disposes the given request, if no collectors targeting it are left. - */ - disposeRequest(id: Network.Request): void; - /** - * Gets the virtual navigation ID for the given navigable ID. - */ - getNavigationId(contextId: string | undefined): string | null; - set defaultCacheBehavior(behavior: Network.SetCacheBehaviorParameters['cacheBehavior']); - get defaultCacheBehavior(): Network.SetCacheBehaviorParameters["cacheBehavior"]; - addDataCollector(params: Network.AddDataCollectorParameters): string; - removeDataCollector(params: Network.RemoveDataCollectorParameters): void; - disownData(params: Network.DisownDataParameters): void; -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js deleted file mode 100644 index 011b0ba..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js +++ /dev/null @@ -1,349 +0,0 @@ -import { InvalidArgumentException, NoSuchInterceptException, NoSuchNetworkDataException, UnsupportedOperationException, } from '../../../protocol/protocol.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -import { CollectorsStorage } from './CollectorsStorage.js'; -import { NetworkRequest } from './NetworkRequest.js'; -import { matchUrlPattern } from './NetworkUtils.js'; -// The default total data size limit in CDP. -// https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/inspector/inspector_network_agent.cc;drc=da1f749634c9a401cc756f36c2e6ce233e1c9b4d;l=133 -export const MAX_TOTAL_COLLECTED_SIZE = 200_000_000; -/** Stores network and intercept maps. */ -export class NetworkStorage { - #browsingContextStorage; - #eventManager; - #collectorsStorage; - #logger; - /** - * A map from network request ID to Network Request objects. - * Needed as long as information about requests comes from different events. - */ - #requests = new Map(); - /** A map from intercept ID to track active network intercepts. */ - #intercepts = new Map(); - #defaultCacheBehavior = 'default'; - constructor(eventManager, browsingContextStorage, browserClient, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#eventManager = eventManager; - this.#collectorsStorage = new CollectorsStorage(MAX_TOTAL_COLLECTED_SIZE, logger); - browserClient.on('Target.detachedFromTarget', ({ sessionId }) => { - this.disposeRequestMap(sessionId); - }); - this.#logger = logger; - } - /** - * Gets the network request with the given ID, if any. - * Otherwise, creates a new network request with the given ID and cdp target. - */ - #getOrCreateNetworkRequest(id, cdpTarget, redirectCount) { - let request = this.getRequestById(id); - if (redirectCount === undefined && request) { - // Force re-creating requests for redirects. - return request; - } - request = new NetworkRequest(id, this.#eventManager, this, cdpTarget, redirectCount, this.#logger); - this.addRequest(request); - return request; - } - onCdpTargetCreated(cdpTarget) { - const cdpClient = cdpTarget.cdpClient; - // TODO: Wrap into object - const listeners = [ - [ - 'Network.requestWillBeSent', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - if (request && request.isRedirecting()) { - request.handleRedirect(params); - this.disposeRequest(params.requestId); - this.#getOrCreateNetworkRequest(params.requestId, cdpTarget, request.redirectCount + 1).onRequestWillBeSentEvent(params); - } - else { - this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onRequestWillBeSentEvent(params); - } - }, - ], - [ - 'Network.requestWillBeSentExtraInfo', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onRequestWillBeSentExtraInfoEvent(params); - }, - ], - [ - 'Network.responseReceived', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onResponseReceivedEvent(params); - }, - ], - [ - 'Network.responseReceivedExtraInfo', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onResponseReceivedExtraInfoEvent(params); - }, - ], - [ - 'Network.requestServedFromCache', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onServedFromCache(); - }, - ], - [ - 'Fetch.requestPaused', - (event) => { - const request = this.#getOrCreateNetworkRequest( - // CDP quirk if the Network domain is not present this is undefined - event.networkId ?? event.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onRequestPaused(event); - }, - ], - [ - 'Fetch.authRequired', - (event) => { - let request = this.getRequestByFetchId(event.requestId); - if (!request) { - request = this.#getOrCreateNetworkRequest(event.requestId, cdpTarget); - } - request.updateCdpTarget(cdpTarget); - request.onAuthRequired(event); - }, - ], - [ - 'Network.dataReceived', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - request?.onDataReceivedEvent(params); - }, - ], - [ - 'Network.loadingFailed', - (params) => { - const request = this.#getOrCreateNetworkRequest(params.requestId, cdpTarget); - request.updateCdpTarget(cdpTarget); - request.onLoadingFailedEvent(params); - }, - ], - [ - 'Network.loadingFinished', - (params) => { - const request = this.getRequestById(params.requestId); - request?.updateCdpTarget(cdpTarget); - request?.onLoadingFinishedEvent(params); - }, - ], - ]; - for (const [event, listener] of listeners) { - cdpClient.on(event, listener); - } - } - async getCollectedData(params) { - if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) { - throw new NoSuchNetworkDataException(params.collector === undefined - ? `No collected ${params.dataType} data` - : `Collector ${params.collector} didn't collect ${params.dataType} data`); - } - if (params.disown && params.collector === undefined) { - throw new InvalidArgumentException('Cannot disown collected data without collector ID'); - } - const request = this.getRequestById(params.request); - if (request === undefined) { - throw new NoSuchNetworkDataException(`No data for ${params.request}`); - } - let result = undefined; - switch (params.dataType) { - case "response" /* Network.DataType.Response */: - result = await this.#getCollectedResponseData(request); - break; - case "request" /* Network.DataType.Request */: - result = await this.#getCollectedRequestData(request); - break; - default: - throw new UnsupportedOperationException(`Unsupported data type ${params.dataType}`); - } - if (params.disown && params.collector !== undefined) { - this.#collectorsStorage.disownData(request.id, params.dataType, params.collector); - // `disposeRequest` disposes request only if no other collectors for it are left. - this.disposeRequest(request.id); - } - return result; - } - async #getCollectedResponseData(request) { - try { - const responseBody = await request.cdpClient.sendCommand('Network.getResponseBody', { requestId: request.id }); - return { - bytes: { - type: responseBody.base64Encoded ? 'base64' : 'string', - value: responseBody.body, - }, - }; - } - catch (error) { - if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ && - error.message === 'No resource with given identifier found') { - // The data has be gone for whatever reason. - throw new NoSuchNetworkDataException(`Response data was disposed`); - } - if (error.code === -32001 /* CdpErrorConstants.CONNECTION_CLOSED */) { - // The request's CDP session is gone. http://b/450771615. - throw new NoSuchNetworkDataException(`Response data is disposed after the related page`); - } - throw error; - } - } - async #getCollectedRequestData(request) { - // TODO: handle CDP error in case of the renderer is gone. - const requestPostData = await request.cdpClient.sendCommand('Network.getRequestPostData', { requestId: request.id }); - return { - bytes: { - type: 'string', - value: requestPostData.postData, - }, - }; - } - collectIfNeeded(request, dataType) { - this.#collectorsStorage.collectIfNeeded(request, dataType, request.cdpTarget.topLevelId, request.cdpTarget.userContext); - } - getInterceptionStages(browsingContextId) { - const stages = { - request: false, - response: false, - auth: false, - }; - for (const intercept of this.#intercepts.values()) { - if (intercept.contexts && - !intercept.contexts.includes(browsingContextId)) { - continue; - } - stages.request ||= intercept.phases.includes("beforeRequestSent" /* Network.InterceptPhase.BeforeRequestSent */); - stages.response ||= intercept.phases.includes("responseStarted" /* Network.InterceptPhase.ResponseStarted */); - stages.auth ||= intercept.phases.includes("authRequired" /* Network.InterceptPhase.AuthRequired */); - } - return stages; - } - getInterceptsForPhase(request, phase) { - if (request.url === NetworkRequest.unknownParameter) { - return new Set(); - } - const intercepts = new Set(); - for (const [interceptId, intercept] of this.#intercepts.entries()) { - if (!intercept.phases.includes(phase) || - (intercept.contexts && - !intercept.contexts.includes(request.cdpTarget.topLevelId))) { - continue; - } - if (intercept.urlPatterns.length === 0) { - intercepts.add(interceptId); - continue; - } - for (const pattern of intercept.urlPatterns) { - if (matchUrlPattern(pattern, request.url)) { - intercepts.add(interceptId); - break; - } - } - } - return intercepts; - } - disposeRequestMap(sessionId) { - for (const request of this.#requests.values()) { - if (request.cdpClient.sessionId === sessionId) { - this.#requests.delete(request.id); - request.dispose(); - } - } - } - /** - * Adds the given entry to the intercept map. - * URL patterns are assumed to be parsed. - * - * @return The intercept ID. - */ - addIntercept(value) { - const interceptId = uuidv4(); - this.#intercepts.set(interceptId, value); - return interceptId; - } - /** - * Removes the given intercept from the intercept map. - * Throws NoSuchInterceptException if the intercept does not exist. - */ - removeIntercept(intercept) { - if (!this.#intercepts.has(intercept)) { - throw new NoSuchInterceptException(`Intercept '${intercept}' does not exist.`); - } - this.#intercepts.delete(intercept); - } - getRequestsByTarget(target) { - const requests = []; - for (const request of this.#requests.values()) { - if (request.cdpTarget === target) { - requests.push(request); - } - } - return requests; - } - getRequestById(id) { - return this.#requests.get(id); - } - getRequestByFetchId(fetchId) { - for (const request of this.#requests.values()) { - if (request.fetchId === fetchId) { - return request; - } - } - return; - } - addRequest(request) { - this.#requests.set(request.id, request); - } - /** - * Disposes the given request, if no collectors targeting it are left. - */ - disposeRequest(id) { - if (this.#collectorsStorage.isCollected(id)) { - // Keep request, as it's data can be accessed later. - return; - } - // TODO: dispose Network data from Chromium once there is a CDP command for that. - this.#requests.delete(id); - } - /** - * Gets the virtual navigation ID for the given navigable ID. - */ - getNavigationId(contextId) { - if (contextId === undefined) { - return null; - } - return (this.#browsingContextStorage.findContext(contextId)?.navigationId ?? null); - } - set defaultCacheBehavior(behavior) { - this.#defaultCacheBehavior = behavior; - } - get defaultCacheBehavior() { - return this.#defaultCacheBehavior; - } - addDataCollector(params) { - return this.#collectorsStorage.addDataCollector(params); - } - removeDataCollector(params) { - const releasedRequests = this.#collectorsStorage.removeDataCollector(params.collector); - releasedRequests.map((request) => this.disposeRequest(request)); - } - disownData(params) { - if (!this.#collectorsStorage.isCollected(params.request, params.dataType, params.collector)) { - throw new NoSuchNetworkDataException(`Collector ${params.collector} didn't collect ${params.dataType} data`); - } - this.#collectorsStorage.disownData(params.request, params.dataType, params.collector); - // `disposeRequest` disposes request only if no other collectors for it are left. - this.disposeRequest(params.request); - } -} -//# sourceMappingURL=NetworkStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js.map deleted file mode 100644 index 7f8b82b..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NetworkStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/network/NetworkStorage.ts"],"names":[],"mappings":"AAkBA,OAAO,EAEL,wBAAwB,EAExB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAM9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAEzE,4CAA4C;AAC5C,mLAAmL;AACnL,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;AASpD,yCAAyC;AACzC,MAAM,OAAO,cAAc;IAChB,uBAAuB,CAAyB;IAChD,aAAa,CAAe;IAC5B,kBAAkB,CAAoB;IAEtC,OAAO,CAAY;IAE5B;;;OAGG;IACM,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IAEhE,kEAAkE;IACzD,WAAW,GAAG,IAAI,GAAG,EAA0C,CAAC;IAEzE,qBAAqB,GACnB,SAAS,CAAC;IAEZ,YACE,YAA0B,EAC1B,sBAA8C,EAC9C,aAAwB,EACxB,MAAiB;QAEjB,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,CAC7C,wBAAwB,EACxB,MAAM,CACP,CAAC;QAEF,aAAa,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,0BAA0B,CACxB,EAAmB,EACnB,SAAoB,EACpB,aAAsB;QAEtB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;YAC3C,4CAA4C;YAC5C,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,GAAG,IAAI,cAAc,CAC1B,EAAE,EACF,IAAI,CAAC,aAAa,EAClB,IAAI,EACJ,SAAS,EACT,aAAa,EACb,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,SAAoB;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;QAEtC,yBAAyB;QACzB,MAAM,SAAS,GAAG;YAChB;gBACE,2BAA2B;gBAC3B,CAAC,MAA+C,EAAE,EAAE;oBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;wBACvC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACtC,IAAI,CAAC,0BAA0B,CAC7B,MAAM,CAAC,SAAS,EAChB,SAAS,EACT,OAAO,CAAC,aAAa,GAAG,CAAC,CAC1B,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,0BAA0B,CAC7B,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;aACF;YACD;gBACE,oCAAoC;gBACpC,CAAC,MAAwD,EAAE,EAAE;oBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC;aACF;YACD;gBACE,0BAA0B;gBAC1B,CAAC,MAA8C,EAAE,EAAE;oBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;aACF;YACD;gBACE,mCAAmC;gBACnC,CAAC,MAAuD,EAAE,EAAE;oBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAC;aACF;YACD;gBACE,gCAAgC;gBAChC,CAAC,MAAoD,EAAE,EAAE;oBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC9B,CAAC;aACF;YACD;gBACE,qBAAqB;gBACrB,CAAC,KAAwC,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B;oBAC7C,mEAAmE;oBACnE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAClC,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;aACF;YACD;gBACE,oBAAoB;gBACpB,CAAC,KAAuC,EAAE,EAAE;oBAC1C,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,GAAG,IAAI,CAAC,0BAA0B,CACvC,KAAK,CAAC,SAAS,EACf,SAAS,CACV,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;aACF;YACD;gBACE,sBAAsB;gBACtB,CAAC,MAA0C,EAAE,EAAE;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACpC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;aACF;YACD;gBACE,uBAAuB;gBACvB,CAAC,MAA2C,EAAE,EAAE;oBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,CAC7C,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBACnC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;aACF;YACD;gBACE,yBAAyB;gBACzB,CAAC,MAA6C,EAAE,EAAE;oBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACpC,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC;aACF;SACO,CAAC;QAEX,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,QAAe,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAiC;QAEjC,IACE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,CACjB,EACD,CAAC;YACD,MAAM,IAAI,0BAA0B,CAClC,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,gBAAgB,MAAM,CAAC,QAAQ,OAAO;gBACxC,CAAC,CAAC,aAAa,MAAM,CAAC,SAAS,mBAAmB,MAAM,CAAC,QAAQ,OAAO,CAC3E,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,IAAI,wBAAwB,CAChC,mDAAmD,CACpD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,0BAA0B,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,MAAM,GAAsC,SAAS,CAAC;QAC1D,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB;gBACE,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACvD,MAAM;YACR;gBACE,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACtD,MAAM;YACR;gBACE,MAAM,IAAI,6BAA6B,CACrC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,CAC3C,CAAC;QACN,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAChC,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,CACjB,CAAC;YACF,iFAAiF;YACjF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,OAAuB;QAEvB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CACtD,yBAAyB,EACzB,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAC,CACxB,CAAC;YAEF,OAAO;gBACL,KAAK,EAAE;oBACL,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;oBACtD,KAAK,EAAE,YAAY,CAAC,IAAI;iBACzB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IACE,KAAK,CAAC,IAAI,iDAAoC;gBAC9C,KAAK,CAAC,OAAO,KAAK,yCAAyC,EAC3D,CAAC;gBACD,4CAA4C;gBAC5C,MAAM,IAAI,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,qDAAwC,EAAE,CAAC;gBACvD,yDAAyD;gBACzD,MAAM,IAAI,0BAA0B,CAClC,kDAAkD,CACnD,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,OAAuB;QAEvB,0DAA0D;QAC1D,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CACzD,4BAA4B,EAC5B,EAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAC,CACxB,CAAC;QAEF,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe,CAAC,QAAQ;aAChC;SACF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAAuB,EAAE,QAA0B;QACjE,IAAI,CAAC,kBAAkB,CAAC,eAAe,CACrC,OAAO,EACP,QAAQ,EACR,OAAO,CAAC,SAAS,CAAC,UAAU,EAC5B,OAAO,CAAC,SAAS,CAAC,WAAW,CAC9B,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,iBAAkD;QACtE,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,KAAK;SACZ,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IACE,SAAS,CAAC,QAAQ;gBAClB,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC/C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,oEAE3C,CAAC;YACF,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,gEAE5C,CAAC;YACF,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,QAAQ,0DAExC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qBAAqB,CACnB,OAAuB,EACvB,KAA6B;QAE7B,IAAI,OAAO,CAAC,GAAG,KAAK,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACpD,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAChD,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,IACE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACjC,CAAC,SAAS,CAAC,QAAQ;oBACjB,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAC7D,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1C,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC5B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iBAAiB,CAAC,SAAiB;QACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAA0B;QACrC,MAAM,WAAW,GAAsB,MAAM,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEzC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,SAA4B;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAwB,CAChC,cAAc,SAAS,mBAAmB,CAC3C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,MAAiB;QACnC,MAAM,QAAQ,GAAqB,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,EAAmB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,OAAwB;QAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO;IACT,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAmB;QAChC,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,oDAAoD;YACpD,OAAO;QACT,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAA6B;QAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,IAAI,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CACtB,QAA6D;QAE7D,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;IACxC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,gBAAgB,CAAC,MAA0C;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB,CAAC,MAA6C;QAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAClE,MAAM,CAAC,SAAS,CACjB,CAAC;QACF,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,UAAU,CAAC,MAAoC;QAC7C,IACE,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,CACjB,EACD,CAAC;YACD,MAAM,IAAI,0BAA0B,CAClC,aAAa,MAAM,CAAC,SAAS,mBAAmB,MAAM,CAAC,QAAQ,OAAO,CACvE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAChC,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,CACjB,CAAC;QACF,iFAAiF;QACjF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.d.ts deleted file mode 100644 index b442727..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.d.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** - * @fileoverview Utility functions for the Network module. - */ -import type { Protocol } from 'devtools-protocol'; -import { Network, type Storage } from '../../../protocol/protocol.js'; -export declare function computeHeadersSize(headers: Network.Header[]): number; -export declare function stringToBase64(str: string): string; -/** Converts from CDP Network domain headers to BiDi network headers. */ -export declare function bidiNetworkHeadersFromCdpNetworkHeaders(headers?: Protocol.Network.Headers): Network.Header[]; -/** Converts from CDP Fetch domain headers to BiDi network headers. */ -export declare function bidiNetworkHeadersFromCdpNetworkHeadersEntries(headers?: Protocol.Fetch.HeaderEntry[]): Network.Header[]; -/** Converts from Bidi network headers to CDP Network domain headers. */ -export declare function cdpNetworkHeadersFromBidiNetworkHeaders(headers?: Network.Header[]): Protocol.Network.Headers | undefined; -/** Converts from CDP Fetch domain header entries to Bidi network headers. */ -export declare function bidiNetworkHeadersFromCdpFetchHeaders(headers?: Protocol.Fetch.HeaderEntry[]): Network.Header[]; -/** Converts from Bidi network headers to CDP Fetch domain header entries. */ -export declare function cdpFetchHeadersFromBidiNetworkHeaders(headers?: Network.Header[]): Protocol.Fetch.HeaderEntry[] | undefined; -export declare function networkHeaderFromCookieHeaders(headers?: Network.CookieHeader[]): Network.Header | undefined; -/** Converts from Bidi auth action to CDP auth challenge response. */ -export declare function cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(action: 'default' | 'cancel' | 'provideCredentials'): "Default" | "CancelAuth" | "ProvideCredentials"; -/** - * Converts from CDP Network domain cookie to BiDi network cookie. - * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie - * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie - */ -export declare function cdpToBiDiCookie(cookie: Protocol.Network.Cookie): Network.Cookie; -/** - * Decodes a byte value to a string. - * @param {Network.BytesValue} value - * @return {string} - */ -export declare function deserializeByteValue(value: Network.BytesValue): string; -/** - * Converts from BiDi set network cookie params to CDP Network domain cookie. - * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie - * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-CookieParam - */ -export declare function bidiToCdpCookie(params: Storage.SetCookieParameters, partitionKey: Storage.PartitionKey): Protocol.Network.CookieParam; -export declare function sameSiteBiDiToCdp(sameSite: Network.SameSite): Protocol.Network.CookieSameSite; -/** - * Returns true if the given protocol is special. - * Special protocols are those that have a default port. - * - * Example inputs: 'http', 'http:' - * - * @see https://url.spec.whatwg.org/#special-scheme - */ -export declare function isSpecialScheme(protocol: string): boolean; -export interface ParsedUrlPattern { - protocol?: string; - hostname?: string; - port?: string; - pathname?: string; - search?: string; -} -/** Matches the given URLPattern against the given URL. */ -export declare function matchUrlPattern(pattern: ParsedUrlPattern, url: string): boolean; -export declare function bidiBodySizeFromCdpPostDataEntries(entries: Protocol.Network.PostDataEntry[]): number; -export declare function getTiming(timing: number | undefined, offset?: number): number; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js deleted file mode 100644 index 8859462..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js +++ /dev/null @@ -1,303 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import { InvalidArgumentException } from '../../../protocol/ErrorResponse.js'; -import { base64ToString } from '../../../utils/base64.js'; -export function computeHeadersSize(headers) { - const requestHeaders = headers.reduce((acc, header) => { - return `${acc}${header.name}: ${header.value.value}\r\n`; - }, ''); - return new TextEncoder().encode(requestHeaders).length; -} -export function stringToBase64(str) { - return typedArrayToBase64(new TextEncoder().encode(str)); -} -function typedArrayToBase64(typedArray) { - // chunkSize should be less V8 limit on number of arguments! - // https://github.com/v8/v8/blob/d3de848bea727518aee94dd2fd42ba0b62037a27/src/objects/code.h#L444 - const chunkSize = 65534; - const chunks = []; - for (let i = 0; i < typedArray.length; i += chunkSize) { - const chunk = typedArray.subarray(i, i + chunkSize); - chunks.push(String.fromCodePoint.apply(null, chunk)); - } - const binaryString = chunks.join(''); - return btoa(binaryString); -} -/** Converts from CDP Network domain headers to BiDi network headers. */ -export function bidiNetworkHeadersFromCdpNetworkHeaders(headers) { - if (!headers) { - return []; - } - return Object.entries(headers).map(([name, value]) => ({ - name, - value: { - type: 'string', - value, - }, - })); -} -/** Converts from CDP Fetch domain headers to BiDi network headers. */ -export function bidiNetworkHeadersFromCdpNetworkHeadersEntries(headers) { - if (!headers) { - return []; - } - return headers.map(({ name, value }) => ({ - name, - value: { - type: 'string', - value, - }, - })); -} -/** Converts from Bidi network headers to CDP Network domain headers. */ -export function cdpNetworkHeadersFromBidiNetworkHeaders(headers) { - if (headers === undefined) { - return undefined; - } - return headers.reduce((result, header) => { - // TODO: Distinguish between string and bytes? - result[header.name] = header.value.value; - return result; - }, {}); -} -/** Converts from CDP Fetch domain header entries to Bidi network headers. */ -export function bidiNetworkHeadersFromCdpFetchHeaders(headers) { - if (!headers) { - return []; - } - return headers.map(({ name, value }) => ({ - name, - value: { - type: 'string', - value, - }, - })); -} -/** Converts from Bidi network headers to CDP Fetch domain header entries. */ -export function cdpFetchHeadersFromBidiNetworkHeaders(headers) { - if (headers === undefined) { - return undefined; - } - return headers.map(({ name, value }) => ({ - name, - value: value.value, - })); -} -export function networkHeaderFromCookieHeaders(headers) { - if (headers === undefined) { - return undefined; - } - const value = headers.reduce((acc, value, index) => { - if (index > 0) { - acc += ';'; - } - const cookieValue = value.value.type === 'base64' - ? btoa(value.value.value) - : value.value.value; - acc += `${value.name}=${cookieValue}`; - return acc; - }, ''); - return { - name: 'Cookie', - value: { - type: 'string', - value, - }, - }; -} -/** Converts from Bidi auth action to CDP auth challenge response. */ -export function cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(action) { - switch (action) { - case 'default': - return 'Default'; - case 'cancel': - return 'CancelAuth'; - case 'provideCredentials': - return 'ProvideCredentials'; - } -} -/** - * Converts from CDP Network domain cookie to BiDi network cookie. - * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie - * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie - */ -export function cdpToBiDiCookie(cookie) { - const result = { - name: cookie.name, - value: { type: 'string', value: cookie.value }, - domain: cookie.domain, - path: cookie.path, - size: cookie.size, - httpOnly: cookie.httpOnly, - secure: cookie.secure, - sameSite: cookie.sameSite === undefined - ? "none" /* Network.SameSite.None */ - : sameSiteCdpToBiDi(cookie.sameSite), - ...(cookie.expires >= 0 ? { expiry: Math.round(cookie.expires) } : undefined), - }; - // Extending with CDP-specific properties with `goog:` prefix. - result[`goog:session`] = cookie.session; - result[`goog:priority`] = cookie.priority; - result[`goog:sourceScheme`] = cookie.sourceScheme; - result[`goog:sourcePort`] = cookie.sourcePort; - if (cookie.partitionKey !== undefined) { - result[`goog:partitionKey`] = cookie.partitionKey; - } - if (cookie.partitionKeyOpaque !== undefined) { - result[`goog:partitionKeyOpaque`] = cookie.partitionKeyOpaque; - } - return result; -} -/** - * Decodes a byte value to a string. - * @param {Network.BytesValue} value - * @return {string} - */ -export function deserializeByteValue(value) { - if (value.type === 'base64') { - return base64ToString(value.value); - } - return value.value; -} -/** - * Converts from BiDi set network cookie params to CDP Network domain cookie. - * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie - * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-CookieParam - */ -export function bidiToCdpCookie(params, partitionKey) { - const deserializedValue = deserializeByteValue(params.cookie.value); - const result = { - name: params.cookie.name, - value: deserializedValue, - domain: params.cookie.domain, - path: params.cookie.path ?? '/', - secure: params.cookie.secure ?? false, - httpOnly: params.cookie.httpOnly ?? false, - ...(partitionKey.sourceOrigin !== undefined && { - partitionKey: { - hasCrossSiteAncestor: false, - // CDP's `partitionKey.topLevelSite` is the BiDi's `partition.sourceOrigin`. - topLevelSite: partitionKey.sourceOrigin, - }, - }), - ...(params.cookie.expiry !== undefined && { - expires: params.cookie.expiry, - }), - ...(params.cookie.sameSite !== undefined && { - sameSite: sameSiteBiDiToCdp(params.cookie.sameSite), - }), - }; - // Extending with CDP-specific properties with `goog:` prefix. - if (params.cookie[`goog:url`] !== undefined) { - result.url = params.cookie[`goog:url`]; - } - if (params.cookie[`goog:priority`] !== undefined) { - result.priority = params.cookie[`goog:priority`]; - } - if (params.cookie[`goog:sourceScheme`] !== undefined) { - result.sourceScheme = params.cookie[`goog:sourceScheme`]; - } - if (params.cookie[`goog:sourcePort`] !== undefined) { - result.sourcePort = params.cookie[`goog:sourcePort`]; - } - return result; -} -function sameSiteCdpToBiDi(sameSite) { - switch (sameSite) { - case 'Strict': - return "strict" /* Network.SameSite.Strict */; - case 'None': - return "none" /* Network.SameSite.None */; - case 'Lax': - return "lax" /* Network.SameSite.Lax */; - default: - // Defaults to `Lax`: - // https://web.dev/articles/samesite-cookies-explained#samesitelax_by_default - return "lax" /* Network.SameSite.Lax */; - } -} -export function sameSiteBiDiToCdp(sameSite) { - switch (sameSite) { - case "none" /* Network.SameSite.None */: - return 'None'; - case "strict" /* Network.SameSite.Strict */: - return 'Strict'; - // Defaults to `Lax`: - // https://web.dev/articles/samesite-cookies-explained#samesitelax_by_default - case "default" /* Network.SameSite.Default */: - case "lax" /* Network.SameSite.Lax */: - return 'Lax'; - } - throw new InvalidArgumentException(`Unknown 'sameSite' value ${sameSite}`); -} -/** - * Returns true if the given protocol is special. - * Special protocols are those that have a default port. - * - * Example inputs: 'http', 'http:' - * - * @see https://url.spec.whatwg.org/#special-scheme - */ -export function isSpecialScheme(protocol) { - return ['ftp', 'file', 'http', 'https', 'ws', 'wss'].includes(protocol.replace(/:$/, '')); -} -function getScheme(url) { - return url.protocol.replace(/:$/, ''); -} -/** Matches the given URLPattern against the given URL. */ -export function matchUrlPattern(pattern, url) { - // Roughly https://w3c.github.io/webdriver-bidi/#match-url-pattern - // plus some differences based on the URL parsing methods. - const parsedUrl = new URL(url); - if (pattern.protocol !== undefined && - pattern.protocol !== getScheme(parsedUrl)) { - return false; - } - if (pattern.hostname !== undefined && - pattern.hostname !== parsedUrl.hostname) { - return false; - } - if (pattern.port !== undefined && pattern.port !== parsedUrl.port) { - return false; - } - if (pattern.pathname !== undefined && - pattern.pathname !== parsedUrl.pathname) { - return false; - } - if (pattern.search !== undefined && pattern.search !== parsedUrl.search) { - return false; - } - return true; -} -export function bidiBodySizeFromCdpPostDataEntries(entries) { - let size = 0; - for (const entry of entries) { - size += atob(entry.bytes ?? '').length; - } - return size; -} -export function getTiming(timing, offset = 0) { - if (!timing) { - return 0; - } - if (timing <= 0 || timing + offset <= 0) { - return 0; - } - return timing + offset; -} -//# sourceMappingURL=NetworkUtils.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js.map deleted file mode 100644 index 24b120e..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/network/NetworkUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NetworkUtils.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/network/NetworkUtils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.d.ts deleted file mode 100644 index 32ccca8..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { type EmptyResult, type Permissions } from '../../../protocol/protocol.js'; -export declare class PermissionsProcessor { - #private; - constructor(browserCdpClient: CdpClient); - setPermissions(params: Permissions.SetPermissionParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js deleted file mode 100644 index ceffeef..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, } from '../../../protocol/protocol.js'; -export class PermissionsProcessor { - #browserCdpClient; - constructor(browserCdpClient) { - this.#browserCdpClient = browserCdpClient; - } - async setPermissions(params) { - try { - const userContextId = params['goog:userContext'] || - params.userContext; - await this.#browserCdpClient.sendCommand('Browser.setPermission', { - origin: params.origin, - embeddedOrigin: params.embeddedOrigin, - browserContextId: userContextId && userContextId !== 'default' - ? userContextId - : undefined, - permission: { - name: params.descriptor.name, - }, - setting: params.state, - }); - } - catch (err) { - if (err.message === - `Permission can't be granted to opaque origins.`) { - // Return success if the origin is not valid (does not match any - // existing origins). - return {}; - } - throw new InvalidArgumentException(err.message); - } - return {}; - } -} -//# sourceMappingURL=PermissionsProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js.map deleted file mode 100644 index 15349c2..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/permissions/PermissionsProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"PermissionsProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/permissions/PermissionsProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,wBAAwB,GAGzB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,oBAAoB;IAC/B,iBAAiB,CAAY;IAE7B,YAAY,gBAA2B;QACrC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAA2C;QAE3C,IAAI,CAAC;YACH,MAAM,aAAa,GAChB,MAAwC,CAAC,kBAAkB,CAAC;gBAC7D,MAAM,CAAC,WAAW,CAAC;YACrB,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,uBAAuB,EAAE;gBAChE,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EACd,aAAa,IAAI,aAAa,KAAK,SAAS;oBAC1C,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,SAAS;gBACf,UAAU,EAAE;oBACV,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;iBAC7B;gBACD,OAAO,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACG,GAAa,CAAC,OAAO;gBACtB,gDAAgD,EAChD,CAAC;gBACD,gEAAgE;gBAChE,qBAAqB;gBACrB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,wBAAwB,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.d.ts deleted file mode 100644 index 2c58300..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Script } from '../../../protocol/protocol.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { Realm } from './Realm.js'; -/** - * Used to send messages from realm to BiDi user. - */ -export declare class ChannelProxy { - #private; - constructor(channel: Script.ChannelProperties, logger?: LoggerFn); - /** - * Creates a channel proxy in the given realm, initialises listener and - * returns a handle to `sendMessage` delegate. - */ - init(realm: Realm, eventManager: EventManager): Promise; - /** Gets a ChannelProxy from window and returns its handle. */ - startListenerFromWindow(realm: Realm, eventManager: EventManager): Promise; - /** - * String to be evaluated to create a ProxyChannel and put it to window. - * Returns the delegate `sendMessage`. Used to provide an argument for preload - * script. Does the following: - * 1. Creates a ChannelProxy. - * 2. Puts the ChannelProxy to window['${this.#id}'] or resolves the promise - * by calling delegate stored in window['${this.#id}']. - * This is needed because `#getHandleFromWindow` can be called before or - * after this method. - * 3. Returns the delegate `sendMessage` of the created ChannelProxy. - */ - getEvalInWindowStr(): string; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js deleted file mode 100644 index 65d5558..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import { ChromiumBidi } from '../../../protocol/protocol.js'; -import { LogType } from '../../../utils/log.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -/** - * Used to send messages from realm to BiDi user. - */ -export class ChannelProxy { - #properties; - #id = uuidv4(); - #logger; - constructor(channel, logger) { - this.#properties = channel; - this.#logger = logger; - } - /** - * Creates a channel proxy in the given realm, initialises listener and - * returns a handle to `sendMessage` delegate. - */ - async init(realm, eventManager) { - const channelHandle = await ChannelProxy.#createAndGetHandleInRealm(realm); - const sendMessageHandle = await ChannelProxy.#createSendMessageHandle(realm, channelHandle); - void this.#startListener(realm, channelHandle, eventManager); - return sendMessageHandle; - } - /** Gets a ChannelProxy from window and returns its handle. */ - async startListenerFromWindow(realm, eventManager) { - try { - const channelHandle = await this.#getHandleFromWindow(realm); - void this.#startListener(realm, channelHandle, eventManager); - } - catch (error) { - this.#logger?.(LogType.debugError, error); - } - } - /** - * Evaluation string which creates a ChannelProxy object on the client side. - */ - static #createChannelProxyEvalStr() { - const functionStr = String(() => { - const queue = []; - let queueNonEmptyResolver = null; - return { - /** - * Gets a promise, which is resolved as soon as a message occurs - * in the queue. - */ - async getMessage() { - const onMessage = queue.length > 0 - ? Promise.resolve() - : new Promise((resolve) => { - queueNonEmptyResolver = resolve; - }); - await onMessage; - return queue.shift(); - }, - /** - * Adds a message to the queue. - * Resolves the pending promise if needed. - */ - sendMessage(message) { - queue.push(message); - if (queueNonEmptyResolver !== null) { - queueNonEmptyResolver(); - queueNonEmptyResolver = null; - } - }, - }; - }); - return `(${functionStr})()`; - } - /** Creates a ChannelProxy in the given realm. */ - static async #createAndGetHandleInRealm(realm) { - const createChannelHandleResult = await realm.cdpClient.sendCommand('Runtime.evaluate', { - expression: this.#createChannelProxyEvalStr(), - contextId: realm.executionContextId, - serializationOptions: { - serialization: "idOnly" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */, - }, - }); - if (createChannelHandleResult.exceptionDetails || - createChannelHandleResult.result.objectId === undefined) { - throw new Error(`Cannot create channel`); - } - return createChannelHandleResult.result.objectId; - } - /** Gets a handle to `sendMessage` delegate from the ChannelProxy handle. */ - static async #createSendMessageHandle(realm, channelHandle) { - const sendMessageArgResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((channelHandle) => { - return channelHandle.sendMessage; - }), - arguments: [{ objectId: channelHandle }], - executionContextId: realm.executionContextId, - serializationOptions: { - serialization: "idOnly" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */, - }, - }); - // TODO: check for exceptionDetails. - return sendMessageArgResult.result.objectId; - } - /** Starts listening for the channel events of the provided ChannelProxy. */ - async #startListener(realm, channelHandle, eventManager) { - // noinspection InfiniteLoopJS - for (;;) { - try { - const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String(async (channelHandle) => await channelHandle.getMessage()), - arguments: [ - { - objectId: channelHandle, - }, - ], - awaitPromise: true, - executionContextId: realm.executionContextId, - serializationOptions: { - serialization: "deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, - maxDepth: this.#properties.serializationOptions?.maxObjectDepth ?? - undefined, - }, - }); - if (message.exceptionDetails) { - throw new Error('Runtime.callFunctionOn in ChannelProxy', { - cause: message.exceptionDetails, - }); - } - for (const browsingContext of realm.associatedBrowsingContexts) { - eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.Script.EventNames.Message, - params: { - channel: this.#properties.channel, - data: realm.cdpToBidiValue(message, this.#properties.ownership ?? "none" /* Script.ResultOwnership.None */), - source: realm.source, - }, - }, browsingContext.id); - } - } - catch (error) { - // If an error is thrown, then the channel is permanently broken, so we - // exit the loop. - this.#logger?.(LogType.debugError, error); - break; - } - } - } - /** - * Returns a handle of ChannelProxy from window's property which was set there - * by `getEvalInWindowStr`. If window property is not set yet, sets a promise - * resolver to the window property, so that `getEvalInWindowStr` can resolve - * the promise later on with the channel. - * This is needed because `getEvalInWindowStr` can be called before or - * after this method. - */ - async #getHandleFromWindow(realm) { - const channelHandleResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((id) => { - const w = window; - if (w[id] === undefined) { - // The channelProxy is not created yet. Create a promise, put the - // resolver to window property and return the promise. - // `getEvalInWindowStr` will resolve the promise later. - return new Promise((resolve) => (w[id] = resolve)); - } - // The channelProxy is already created by `getEvalInWindowStr` and - // is set into window property. Return it. - const channelProxy = w[id]; - delete w[id]; - return channelProxy; - }), - arguments: [{ value: this.#id }], - executionContextId: realm.executionContextId, - awaitPromise: true, - serializationOptions: { - serialization: "idOnly" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */, - }, - }); - if (channelHandleResult.exceptionDetails !== undefined || - channelHandleResult.result.objectId === undefined) { - throw new Error(`ChannelHandle not found in window["${this.#id}"]`); - } - return channelHandleResult.result.objectId; - } - /** - * String to be evaluated to create a ProxyChannel and put it to window. - * Returns the delegate `sendMessage`. Used to provide an argument for preload - * script. Does the following: - * 1. Creates a ChannelProxy. - * 2. Puts the ChannelProxy to window['${this.#id}'] or resolves the promise - * by calling delegate stored in window['${this.#id}']. - * This is needed because `#getHandleFromWindow` can be called before or - * after this method. - * 3. Returns the delegate `sendMessage` of the created ChannelProxy. - */ - getEvalInWindowStr() { - const delegate = String((id, channelProxy) => { - const w = window; - if (w[id] === undefined) { - // `#getHandleFromWindow` is not initialized yet, and will get the - // channelProxy later. - w[id] = channelProxy; - } - else { - // `#getHandleFromWindow` is already set a delegate to window property - // and is waiting for it to be called with the channelProxy. - w[id](channelProxy); - delete w[id]; - } - return channelProxy.sendMessage; - }); - const channelProxyEval = ChannelProxy.#createChannelProxyEvalStr(); - return `(${delegate})('${this.#id}',${channelProxyEval})`; - } -} -//# sourceMappingURL=ChannelProxy.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js.map deleted file mode 100644 index 43948e9..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ChannelProxy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ChannelProxy.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/ChannelProxy.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.d.ts deleted file mode 100644 index 30d0444..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { Protocol } from 'devtools-protocol'; -import type { Browser, BrowsingContext, Script } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import { ChannelProxy } from './ChannelProxy.js'; -/** - * BiDi IDs are generated by the server and are unique within contexts. - * - * CDP preload script IDs are generated by the client and are unique - * within sessions. - * - * The mapping between BiDi and CDP preload script IDs is 1:many. - * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs - * in the client. - */ -export declare class PreloadScript { - #private; - get id(): string; - get targetIds(): Set; - constructor(params: Script.AddPreloadScriptParameters, logger?: LoggerFn); - /** Channels of the preload script. */ - get channels(): ChannelProxy[]; - /** Contexts of the preload script, if any */ - get contexts(): BrowsingContext.BrowsingContext[] | undefined; - /** UserContexts of the preload script, if any */ - get userContexts(): Browser.UserContext[] | undefined; - /** - * Adds the script to the given CDP targets by calling the - * `Page.addScriptToEvaluateOnNewDocument` command. - */ - initInTargets(cdpTargets: Iterable, runImmediately: boolean): Promise; - /** - * Adds the script to the given CDP target by calling the - * `Page.addScriptToEvaluateOnNewDocument` command. - */ - initInTarget(cdpTarget: CdpTarget, runImmediately: boolean): Promise; - /** - * Removes this script from all CDP targets. - */ - remove(): Promise; - /** Removes the provided cdp target from the list of cdp preload scripts. */ - dispose(cdpTargetId: Protocol.Target.TargetID): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js deleted file mode 100644 index 37c6f42..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import { uuidv4 } from '../../../utils/uuid.js'; -import { ChannelProxy } from './ChannelProxy.js'; -/** - * BiDi IDs are generated by the server and are unique within contexts. - * - * CDP preload script IDs are generated by the client and are unique - * within sessions. - * - * The mapping between BiDi and CDP preload script IDs is 1:many. - * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs - * in the client. - */ -export class PreloadScript { - /** BiDi ID, an automatically generated UUID. */ - #id = uuidv4(); - /** CDP preload scripts. */ - #cdpPreloadScripts = []; - /** The script itself, in a format expected by the spec i.e. a function. */ - #functionDeclaration; - /** Targets, in which the preload script is initialized. */ - #targetIds = new Set(); - /** Channels to be added as arguments to functionDeclaration. */ - #channels; - /** The script sandbox / world name. */ - #sandbox; - /** The browsing contexts to execute the preload scripts in, if any. */ - #contexts; - /** The browsing contexts to execute the preload scripts in, if any. */ - #userContexts; - get id() { - return this.#id; - } - get targetIds() { - return this.#targetIds; - } - constructor(params, logger) { - this.#channels = - params.arguments?.map((a) => new ChannelProxy(a.value, logger)) ?? []; - this.#functionDeclaration = params.functionDeclaration; - this.#sandbox = params.sandbox; - this.#contexts = params.contexts; - this.#userContexts = params.userContexts; - } - /** Channels of the preload script. */ - get channels() { - return this.#channels; - } - /** Contexts of the preload script, if any */ - get contexts() { - return this.#contexts; - } - /** UserContexts of the preload script, if any */ - get userContexts() { - return this.#userContexts; - } - /** - * String to be evaluated. Wraps user-provided function so that the following - * steps are run: - * 1. Create channels. - * 2. Store the created channels in window. - * 3. Call the user-provided function with channels as arguments. - */ - #getEvaluateString() { - const channelsArgStr = `[${this.channels - .map((c) => c.getEvalInWindowStr()) - .join(', ')}]`; - return `(()=>{(${this.#functionDeclaration})(...${channelsArgStr})})()`; - } - /** - * Adds the script to the given CDP targets by calling the - * `Page.addScriptToEvaluateOnNewDocument` command. - */ - async initInTargets(cdpTargets, runImmediately) { - await Promise.all(Array.from(cdpTargets).map((cdpTarget) => this.initInTarget(cdpTarget, runImmediately))); - } - /** - * Adds the script to the given CDP target by calling the - * `Page.addScriptToEvaluateOnNewDocument` command. - */ - async initInTarget(cdpTarget, runImmediately) { - const addCdpPreloadScriptResult = await cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', { - source: this.#getEvaluateString(), - worldName: this.#sandbox, - runImmediately, - }); - this.#cdpPreloadScripts.push({ - target: cdpTarget, - preloadScriptId: addCdpPreloadScriptResult.identifier, - }); - this.#targetIds.add(cdpTarget.id); - } - /** - * Removes this script from all CDP targets. - */ - async remove() { - await Promise.all([ - this.#cdpPreloadScripts.map(async (cdpPreloadScript) => { - const cdpTarget = cdpPreloadScript.target; - const cdpPreloadScriptId = cdpPreloadScript.preloadScriptId; - return await cdpTarget.cdpClient.sendCommand('Page.removeScriptToEvaluateOnNewDocument', { - identifier: cdpPreloadScriptId, - }); - }), - ]); - } - /** Removes the provided cdp target from the list of cdp preload scripts. */ - dispose(cdpTargetId) { - this.#cdpPreloadScripts = this.#cdpPreloadScripts.filter((cdpPreloadScript) => cdpPreloadScript.target?.id !== cdpTargetId); - this.#targetIds.delete(cdpTargetId); - } -} -//# sourceMappingURL=PreloadScript.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js.map deleted file mode 100644 index 8bfe5da..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScript.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"PreloadScript.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/PreloadScript.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.d.ts deleted file mode 100644 index eca6c93..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Browser } from '../../../protocol/protocol.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { PreloadScript } from './PreloadScript.js'; -/** PreloadScripts can be filtered by BiDi ID or target ID. */ -export interface PreloadScriptFilter { - targetId: CdpTarget['id']; -} -/** - * Container class for preload scripts. - */ -export declare class PreloadScriptStorage { - #private; - /** - * Finds all entries that match the given filter (OR logic). - */ - find(filter?: PreloadScriptFilter): PreloadScript[]; - add(preloadScript: PreloadScript): void; - /** Deletes all BiDi preload script entries that match the given filter. */ - remove(id: string): void; - /** Gets the preload script with the given ID, if any, otherwise throws. */ - getPreloadScript(id: string): PreloadScript; - onCdpTargetCreated(targetId: string, userContext: Browser.UserContext): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js deleted file mode 100644 index c144d9e..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoSuchScriptException } from '../../../protocol/ErrorResponse.js'; -/** - * Container class for preload scripts. - */ -export class PreloadScriptStorage { - /** Tracks all BiDi preload scripts. */ - #scripts = new Set(); - /** - * Finds all entries that match the given filter (OR logic). - */ - find(filter) { - if (!filter) { - return [...this.#scripts]; - } - return [...this.#scripts].filter((script) => { - // Global scripts have no contexts or userContext - if (script.contexts === undefined && script.userContexts === undefined) { - return true; - } - if (filter.targetId !== undefined && - script.targetIds.has(filter.targetId)) { - return true; - } - return false; - }); - } - add(preloadScript) { - this.#scripts.add(preloadScript); - } - /** Deletes all BiDi preload script entries that match the given filter. */ - remove(id) { - const script = [...this.#scripts].find((script) => script.id === id); - if (script === undefined) { - throw new NoSuchScriptException(`No preload script with id '${id}'`); - } - this.#scripts.delete(script); - } - /** Gets the preload script with the given ID, if any, otherwise throws. */ - getPreloadScript(id) { - const script = [...this.#scripts].find((script) => script.id === id); - if (script === undefined) { - throw new NoSuchScriptException(`No preload script with id '${id}'`); - } - return script; - } - onCdpTargetCreated(targetId, userContext) { - const scriptInUserContext = [...this.#scripts].filter((script) => { - // Global scripts - if (!script.userContexts && !script.contexts) { - return true; - } - return script.userContexts?.includes(userContext); - }); - for (const script of scriptInUserContext) { - script.targetIds.add(targetId); - } - } -} -//# sourceMappingURL=PreloadScriptStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js.map deleted file mode 100644 index 78100d0..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/PreloadScriptStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"PreloadScriptStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/PreloadScriptStorage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAWzE;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAC/B,wCAAwC;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE7C;;OAEG;IACH,IAAI,CAAC,MAA4B;QAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,iDAAiD;YACjD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IACE,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EACrC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,aAA4B;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,EAAU;QACf,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAC3E,gBAAgB,CAAC,EAAU;QACzB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,WAAgC;QACnE,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/D,iBAAiB;YACjB,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.d.ts deleted file mode 100644 index c393692..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.d.ts +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Protocol } from 'devtools-protocol'; -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { Script } from '../../../protocol/protocol.js'; -import { type LoggerFn } from '../../../utils/log.js'; -import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { RealmStorage } from './RealmStorage.js'; -export declare abstract class Realm { - #private; - protected realmStorage: RealmStorage; - constructor(cdpClient: CdpClient, eventManager: EventManager, executionContextId: Protocol.Runtime.ExecutionContextId, logger: LoggerFn | undefined, origin: string, realmId: Script.Realm, realmStorage: RealmStorage); - cdpToBidiValue(cdpValue: Protocol.Runtime.CallFunctionOnResponse | Protocol.Runtime.EvaluateResponse, resultOwnership: Script.ResultOwnership): Script.RemoteValue; - isHidden(): boolean; - /** - * Relies on the CDP to implement proper BiDi serialization, except: - * * CDP integer property `backendNodeId` is replaced with `sharedId` of - * `{documentId}_element_{backendNodeId}`; - * * CDP integer property `weakLocalObjectReference` is replaced with UUID `internalId` - * using unique-per serialization `internalIdMap`. - * * CDP type `platformobject` is replaced with `object`. - * @param deepSerializedValue - CDP value to be converted to BiDi. - * @param internalIdMap - Map from CDP integer `weakLocalObjectReference` to BiDi UUID - * `internalId`. - */ - protected serializeForBiDi(deepSerializedValue: Protocol.Runtime.DeepSerializedValue, internalIdMap: Map): Script.RemoteValue; - get realmId(): Script.Realm; - get executionContextId(): Protocol.Runtime.ExecutionContextId; - get origin(): string; - get source(): Script.Source; - get cdpClient(): CdpClient; - abstract get associatedBrowsingContexts(): BrowsingContextImpl[]; - abstract get realmType(): Script.RealmType; - protected get baseInfo(): Script.BaseRealmInfo; - abstract get realmInfo(): Script.RealmInfo; - evaluate(expression: string, awaitPromise: boolean, resultOwnership?: Script.ResultOwnership, serializationOptions?: Script.SerializationOptions, userActivation?: boolean, includeCommandLineApi?: boolean): Promise; - protected initialize(): void; - /** - * Serializes a given CDP object into BiDi, keeping references in the - * target's `globalThis`. - */ - serializeCdpObject(cdpRemoteObject: Protocol.Runtime.RemoteObject, resultOwnership: Script.ResultOwnership): Promise; - /** - * Gets the string representation of an object. This is equivalent to - * calling `toString()` on the object value. - */ - stringifyObject(cdpRemoteObject: Protocol.Runtime.RemoteObject): Promise; - callFunction(functionDeclaration: string, awaitPromise: boolean, thisLocalValue?: Script.LocalValue, argumentsLocalValues?: Script.LocalValue[], resultOwnership?: Script.ResultOwnership, serializationOptions?: Script.SerializationOptions, userActivation?: boolean): Promise; - deserializeForCdp(localValue: Script.LocalValue): Promise; - disown(handle: Script.Handle): Promise; - dispose(): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js deleted file mode 100644 index 326b46d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js +++ /dev/null @@ -1,481 +0,0 @@ -import { ChromiumBidi, NoSuchHandleException, } from '../../../protocol/protocol.js'; -import { LogType } from '../../../utils/log.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -import { ChannelProxy } from './ChannelProxy.js'; -export class Realm { - #cdpClient; - #eventManager; - #executionContextId; - #logger; - #origin; - #realmId; - realmStorage; - constructor(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage) { - this.#cdpClient = cdpClient; - this.#eventManager = eventManager; - this.#executionContextId = executionContextId; - this.#logger = logger; - this.#origin = origin; - this.#realmId = realmId; - this.realmStorage = realmStorage; - this.realmStorage.addRealm(this); - } - cdpToBidiValue(cdpValue, resultOwnership) { - const bidiValue = this.serializeForBiDi(cdpValue.result.deepSerializedValue, new Map()); - if (cdpValue.result.objectId) { - const objectId = cdpValue.result.objectId; - if (resultOwnership === "root" /* Script.ResultOwnership.Root */) { - // Extend BiDi value with `handle` based on required `resultOwnership` - // and CDP response but not on the actual BiDi type. - bidiValue.handle = objectId; - // Remember all the handles sent to client. - this.realmStorage.knownHandlesToRealmMap.set(objectId, this.realmId); - } - else { - // No need to await for the object to be released. - void this.#releaseObject(objectId).catch((error) => this.#logger?.(LogType.debugError, error)); - } - } - return bidiValue; - } - isHidden() { - return false; - } - /** - * Relies on the CDP to implement proper BiDi serialization, except: - * * CDP integer property `backendNodeId` is replaced with `sharedId` of - * `{documentId}_element_{backendNodeId}`; - * * CDP integer property `weakLocalObjectReference` is replaced with UUID `internalId` - * using unique-per serialization `internalIdMap`. - * * CDP type `platformobject` is replaced with `object`. - * @param deepSerializedValue - CDP value to be converted to BiDi. - * @param internalIdMap - Map from CDP integer `weakLocalObjectReference` to BiDi UUID - * `internalId`. - */ - serializeForBiDi(deepSerializedValue, internalIdMap) { - if (Object.hasOwn(deepSerializedValue, 'weakLocalObjectReference')) { - const weakLocalObjectReference = deepSerializedValue.weakLocalObjectReference; - if (!internalIdMap.has(weakLocalObjectReference)) { - internalIdMap.set(weakLocalObjectReference, uuidv4()); - } - deepSerializedValue.internalId = internalIdMap.get(weakLocalObjectReference); - delete deepSerializedValue['weakLocalObjectReference']; - } - if (deepSerializedValue.type === 'node' && - deepSerializedValue.value && - Object.hasOwn(deepSerializedValue.value, 'frameId')) { - // `frameId` is not needed in BiDi as it is not yet specified. - delete deepSerializedValue.value['frameId']; - } - // Platform object is a special case. It should have only `{type: object}` - // without `value` field. - if (deepSerializedValue.type === 'platformobject') { - return { type: 'object' }; - } - const bidiValue = deepSerializedValue.value; - if (bidiValue === undefined) { - return deepSerializedValue; - } - // Recursively update the nested values. - if (['array', 'set', 'htmlcollection', 'nodelist'].includes(deepSerializedValue.type)) { - for (const i in bidiValue) { - bidiValue[i] = this.serializeForBiDi(bidiValue[i], internalIdMap); - } - } - if (['object', 'map'].includes(deepSerializedValue.type)) { - for (const i in bidiValue) { - bidiValue[i] = [ - this.serializeForBiDi(bidiValue[i][0], internalIdMap), - this.serializeForBiDi(bidiValue[i][1], internalIdMap), - ]; - } - } - return deepSerializedValue; - } - get realmId() { - return this.#realmId; - } - get executionContextId() { - return this.#executionContextId; - } - get origin() { - return this.#origin; - } - get source() { - return { - realm: this.realmId, - }; - } - get cdpClient() { - return this.#cdpClient; - } - get baseInfo() { - return { - realm: this.realmId, - origin: this.origin, - }; - } - async evaluate(expression, awaitPromise, resultOwnership = "none" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false, includeCommandLineApi = false) { - const cdpEvaluateResult = await this.cdpClient.sendCommand('Runtime.evaluate', { - contextId: this.executionContextId, - expression, - awaitPromise, - serializationOptions: Realm.#getSerializationOptions("deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions), - userGesture: userActivation, - includeCommandLineAPI: includeCommandLineApi, - }); - if (cdpEvaluateResult.exceptionDetails) { - return await this.#getExceptionResult(cdpEvaluateResult.exceptionDetails, 0, resultOwnership); - } - return { - realm: this.realmId, - result: this.cdpToBidiValue(cdpEvaluateResult, resultOwnership), - type: 'success', - }; - } - #registerEvent(event) { - if (this.associatedBrowsingContexts.length === 0) { - this.#eventManager.registerGlobalEvent(event); - } - else { - for (const browsingContext of this.associatedBrowsingContexts) { - this.#eventManager.registerEvent(event, browsingContext.id); - } - } - } - initialize() { - if (!this.isHidden()) { - // Report only not-hidden realms. - this.#registerEvent({ - type: 'event', - method: ChromiumBidi.Script.EventNames.RealmCreated, - params: this.realmInfo, - }); - } - } - /** - * Serializes a given CDP object into BiDi, keeping references in the - * target's `globalThis`. - */ - async serializeCdpObject(cdpRemoteObject, resultOwnership) { - // TODO: if the object is a primitive, return it directly without CDP roundtrip. - const argument = Realm.#cdpRemoteObjectToCallArgument(cdpRemoteObject); - const cdpValue = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((remoteObject) => remoteObject), - awaitPromise: false, - arguments: [argument], - serializationOptions: { - serialization: "deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, - }, - executionContextId: this.executionContextId, - }); - return this.cdpToBidiValue(cdpValue, resultOwnership); - } - static #cdpRemoteObjectToCallArgument(cdpRemoteObject) { - if (cdpRemoteObject.objectId !== undefined) { - return { objectId: cdpRemoteObject.objectId }; - } - if (cdpRemoteObject.unserializableValue !== undefined) { - return { unserializableValue: cdpRemoteObject.unserializableValue }; - } - return { value: cdpRemoteObject.value }; - } - /** - * Gets the string representation of an object. This is equivalent to - * calling `toString()` on the object value. - */ - async stringifyObject(cdpRemoteObject) { - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((remoteObject) => String(remoteObject)), - awaitPromise: false, - arguments: [cdpRemoteObject], - returnByValue: true, - executionContextId: this.executionContextId, - }); - return result.value; - } - async #flattenKeyValuePairs(mappingLocalValue) { - const keyValueArray = await Promise.all(mappingLocalValue.map(async ([key, value]) => { - let keyArg; - if (typeof key === 'string') { - // Key is a string. - keyArg = { value: key }; - } - else { - // Key is a serialized value. - keyArg = await this.deserializeForCdp(key); - } - const valueArg = await this.deserializeForCdp(value); - return [keyArg, valueArg]; - })); - return keyValueArray.flat(); - } - async #flattenValueList(listLocalValue) { - return await Promise.all(listLocalValue.map((localValue) => this.deserializeForCdp(localValue))); - } - async #serializeCdpExceptionDetails(cdpExceptionDetails, lineOffset, resultOwnership) { - const callFrames = cdpExceptionDetails.stackTrace?.callFrames.map((frame) => ({ - url: frame.url, - functionName: frame.functionName, - lineNumber: frame.lineNumber - lineOffset, - columnNumber: frame.columnNumber, - })) ?? []; - // Exception should always be there. - const exception = cdpExceptionDetails.exception; - return { - exception: await this.serializeCdpObject(exception, resultOwnership), - columnNumber: cdpExceptionDetails.columnNumber, - lineNumber: cdpExceptionDetails.lineNumber - lineOffset, - stackTrace: { - callFrames, - }, - text: (await this.stringifyObject(exception)) || cdpExceptionDetails.text, - }; - } - async callFunction(functionDeclaration, awaitPromise, thisLocalValue = { - type: 'undefined', - }, argumentsLocalValues = [], resultOwnership = "none" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false) { - const callFunctionAndSerializeScript = `(...args) => { - function callFunction(f, args) { - const deserializedThis = args.shift(); - const deserializedArgs = args; - return f.apply(deserializedThis, deserializedArgs); - } - return callFunction(( - ${functionDeclaration} - ), args); - }`; - const thisAndArgumentsList = [ - await this.deserializeForCdp(thisLocalValue), - ...(await Promise.all(argumentsLocalValues.map(async (argumentLocalValue) => await this.deserializeForCdp(argumentLocalValue)))), - ]; - let cdpCallFunctionResult; - try { - cdpCallFunctionResult = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: callFunctionAndSerializeScript, - awaitPromise, - arguments: thisAndArgumentsList, - serializationOptions: Realm.#getSerializationOptions("deep" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions), - executionContextId: this.executionContextId, - userGesture: userActivation, - }); - } - catch (error) { - // Heuristic to determine if the problem is in the argument. - // The check can be done on the `deserialization` step, but this approach - // helps to save round-trips. - if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ && - [ - 'Could not find object with given id', - 'Argument should belong to the same JavaScript world as target object', - 'Invalid remote object id', - ].includes(error.message)) { - throw new NoSuchHandleException('Handle was not found.'); - } - throw error; - } - if (cdpCallFunctionResult.exceptionDetails) { - return await this.#getExceptionResult(cdpCallFunctionResult.exceptionDetails, 1, resultOwnership); - } - return { - type: 'success', - result: this.cdpToBidiValue(cdpCallFunctionResult, resultOwnership), - realm: this.realmId, - }; - } - async deserializeForCdp(localValue) { - if ('handle' in localValue && localValue.handle) { - return { objectId: localValue.handle }; - // We tried to find a handle value but failed - // This allows us to have exhaustive switch on `localValue.type` - } - else if ('handle' in localValue || 'sharedId' in localValue) { - throw new NoSuchHandleException('Handle was not found.'); - } - switch (localValue.type) { - case 'undefined': - return { unserializableValue: 'undefined' }; - case 'null': - return { unserializableValue: 'null' }; - case 'string': - return { value: localValue.value }; - case 'number': - if (localValue.value === 'NaN') { - return { unserializableValue: 'NaN' }; - } - else if (localValue.value === '-0') { - return { unserializableValue: '-0' }; - } - else if (localValue.value === 'Infinity') { - return { unserializableValue: 'Infinity' }; - } - else if (localValue.value === '-Infinity') { - return { unserializableValue: '-Infinity' }; - } - return { - value: localValue.value, - }; - case 'boolean': - return { value: Boolean(localValue.value) }; - case 'bigint': - return { - unserializableValue: `BigInt(${JSON.stringify(localValue.value)})`, - }; - case 'date': - return { - unserializableValue: `new Date(Date.parse(${JSON.stringify(localValue.value)}))`, - }; - case 'regexp': - return { - unserializableValue: `new RegExp(${JSON.stringify(localValue.value.pattern)}, ${JSON.stringify(localValue.value.flags)})`, - }; - case 'map': { - // TODO: If none of the nested keys and values has a remote - // reference, serialize to `unserializableValue` without CDP roundtrip. - const keyValueArray = await this.#flattenKeyValuePairs(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => { - const result = new Map(); - for (let i = 0; i < args.length; i += 2) { - result.set(args[i], args[i + 1]); - } - return result; - }), - awaitPromise: false, - arguments: keyValueArray, - returnByValue: false, - executionContextId: this.executionContextId, - }); - // TODO(#375): Release `result.objectId` after using. - return { objectId: result.objectId }; - } - case 'object': { - // TODO: If none of the nested keys and values has a remote - // reference, serialize to `unserializableValue` without CDP roundtrip. - const keyValueArray = await this.#flattenKeyValuePairs(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => { - const result = {}; - for (let i = 0; i < args.length; i += 2) { - // Key should be either `string`, `number`, or `symbol`. - const key = args[i]; - result[key] = args[i + 1]; - } - return result; - }), - awaitPromise: false, - arguments: keyValueArray, - returnByValue: false, - executionContextId: this.executionContextId, - }); - // TODO(#375): Release `result.objectId` after using. - return { objectId: result.objectId }; - } - case 'array': { - // TODO: If none of the nested items has a remote reference, - // serialize to `unserializableValue` without CDP roundtrip. - const args = await this.#flattenValueList(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => args), - awaitPromise: false, - arguments: args, - returnByValue: false, - executionContextId: this.executionContextId, - }); - // TODO(#375): Release `result.objectId` after using. - return { objectId: result.objectId }; - } - case 'set': { - // TODO: if none of the nested items has a remote reference, - // serialize to `unserializableValue` without CDP roundtrip. - const args = await this.#flattenValueList(localValue.value); - const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', { - functionDeclaration: String((...args) => new Set(args)), - awaitPromise: false, - arguments: args, - returnByValue: false, - executionContextId: this.executionContextId, - }); - // TODO(#375): Release `result.objectId` after using. - return { objectId: result.objectId }; - } - case 'channel': { - const channelProxy = new ChannelProxy(localValue.value, this.#logger); - const channelProxySendMessageHandle = await channelProxy.init(this, this.#eventManager); - return { objectId: channelProxySendMessageHandle }; - } - // TODO(#375): Dispose of nested objects. - } - // Intentionally outside to handle unknown types - throw new Error(`Value ${JSON.stringify(localValue)} is not deserializable.`); - } - async #getExceptionResult(exceptionDetails, lineOffset, resultOwnership) { - return { - exceptionDetails: await this.#serializeCdpExceptionDetails(exceptionDetails, lineOffset, resultOwnership), - realm: this.realmId, - type: 'exception', - }; - } - static #getSerializationOptions(serialization, serializationOptions) { - return { - serialization, - additionalParameters: Realm.#getAdditionalSerializationParameters(serializationOptions), - ...Realm.#getMaxObjectDepth(serializationOptions), - }; - } - static #getAdditionalSerializationParameters(serializationOptions) { - const additionalParameters = {}; - if (serializationOptions.maxDomDepth !== undefined) { - additionalParameters['maxNodeDepth'] = - serializationOptions.maxDomDepth === null - ? 1000 - : serializationOptions.maxDomDepth; - } - if (serializationOptions.includeShadowTree !== undefined) { - additionalParameters['includeShadowTree'] = - serializationOptions.includeShadowTree; - } - return additionalParameters; - } - static #getMaxObjectDepth(serializationOptions) { - return serializationOptions.maxObjectDepth === undefined || - serializationOptions.maxObjectDepth === null - ? {} - : { maxDepth: serializationOptions.maxObjectDepth }; - } - async #releaseObject(handle) { - try { - await this.cdpClient.sendCommand('Runtime.releaseObject', { - objectId: handle, - }); - } - catch (error) { - // Heuristic to determine if the problem is in the unknown handler. - // Ignore the error if so. - if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ && - error.message === 'Invalid remote object id')) { - throw error; - } - } - } - async disown(handle) { - // Disowning an object from different realm does nothing. - if (this.realmStorage.knownHandlesToRealmMap.get(handle) !== this.realmId) { - return; - } - await this.#releaseObject(handle); - this.realmStorage.knownHandlesToRealmMap.delete(handle); - } - dispose() { - if (!this.isHidden()) { - this.#registerEvent({ - type: 'event', - method: ChromiumBidi.Script.EventNames.RealmDestroyed, - params: { - realm: this.realmId, - }, - }); - } - } -} -//# sourceMappingURL=Realm.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js.map deleted file mode 100644 index 06b375d..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/Realm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Realm.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/Realm.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.d.ts deleted file mode 100644 index f397fc6..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import { type BrowsingContext, type Script } from '../../../protocol/protocol.js'; -import type { Realm } from './Realm.js'; -interface RealmFilter { - realmId?: Script.Realm; - browsingContextId?: BrowsingContext.BrowsingContext; - executionContextId?: Protocol.Runtime.ExecutionContextId; - origin?: string; - type?: Script.RealmType; - sandbox?: string | null; - cdpSessionId?: Protocol.Target.SessionID; - isHidden?: boolean; -} -/** Container class for browsing realms. */ -export declare class RealmStorage { - #private; - /** List of the internal sandboxed realms which should not be reported to the user. */ - readonly hiddenSandboxes: Set; - get knownHandlesToRealmMap(): Map; - addRealm(realm: Realm): void; - /** Finds all realms that match the given filter. */ - findRealms(filter: RealmFilter): Realm[]; - findRealm(filter: RealmFilter): Realm | undefined; - /** Gets the only realm that matches the given filter, if any, otherwise throws. */ - getRealm(filter: RealmFilter): Realm; - /** Deletes all realms that match the given filter. */ - deleteRealms(filter: RealmFilter): void; -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js deleted file mode 100644 index 4e1a776..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js +++ /dev/null @@ -1,78 +0,0 @@ -import { NoSuchFrameException, } from '../../../protocol/protocol.js'; -import { WindowRealm } from './WindowRealm.js'; -/** Container class for browsing realms. */ -export class RealmStorage { - /** Tracks handles and their realms sent to the client. */ - #knownHandlesToRealmMap = new Map(); - /** Map from realm ID to Realm. */ - #realmMap = new Map(); - /** List of the internal sandboxed realms which should not be reported to the user. */ - hiddenSandboxes = new Set(); - get knownHandlesToRealmMap() { - return this.#knownHandlesToRealmMap; - } - addRealm(realm) { - this.#realmMap.set(realm.realmId, realm); - } - /** Finds all realms that match the given filter. */ - findRealms(filter) { - const sandboxFilterValue = filter.sandbox === null ? undefined : filter.sandbox; - return Array.from(this.#realmMap.values()).filter((realm) => { - if (filter.realmId !== undefined && filter.realmId !== realm.realmId) { - return false; - } - if (filter.browsingContextId !== undefined && - !realm.associatedBrowsingContexts - .map((browsingContext) => browsingContext.id) - .includes(filter.browsingContextId)) { - return false; - } - if (filter.sandbox !== undefined && - (!(realm instanceof WindowRealm) || - sandboxFilterValue !== realm.sandbox)) { - return false; - } - if (filter.executionContextId !== undefined && - filter.executionContextId !== realm.executionContextId) { - return false; - } - if (filter.origin !== undefined && filter.origin !== realm.origin) { - return false; - } - if (filter.type !== undefined && filter.type !== realm.realmType) { - return false; - } - if (filter.cdpSessionId !== undefined && - filter.cdpSessionId !== realm.cdpClient.sessionId) { - return false; - } - if (filter.isHidden !== undefined && - filter.isHidden !== realm.isHidden()) { - return false; - } - return true; - }); - } - findRealm(filter) { - return this.findRealms(filter)[0]; - } - /** Gets the only realm that matches the given filter, if any, otherwise throws. */ - getRealm(filter) { - const maybeRealm = this.findRealm(filter); - if (maybeRealm === undefined) { - throw new NoSuchFrameException(`Realm ${JSON.stringify(filter)} not found`); - } - return maybeRealm; - } - /** Deletes all realms that match the given filter. */ - deleteRealms(filter) { - this.findRealms(filter).map((realm) => { - realm.dispose(); - this.#realmMap.delete(realm.realmId); - Array.from(this.knownHandlesToRealmMap.entries()) - .filter(([, r]) => r === realm.realmId) - .map(([handle]) => this.knownHandlesToRealmMap.delete(handle)); - }); - } -} -//# sourceMappingURL=RealmStorage.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js.map deleted file mode 100644 index 59a571c..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/RealmStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RealmStorage.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/RealmStorage.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.d.ts deleted file mode 100644 index 167a210..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type EmptyResult, type Script } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { UserContextStorage } from '../browser/UserContextStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import type { PreloadScriptStorage } from './PreloadScriptStorage.js'; -import type { RealmStorage } from './RealmStorage.js'; -export declare class ScriptProcessor { - #private; - constructor(eventManager: EventManager, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, preloadScriptStorage: PreloadScriptStorage, userContextStorage: UserContextStorage, logger?: LoggerFn); - addPreloadScript(params: Script.AddPreloadScriptParameters): Promise; - removePreloadScript(params: Script.RemovePreloadScriptParameters): Promise; - callFunction(params: Script.CallFunctionParameters): Promise; - evaluate(params: Script.EvaluateParameters): Promise; - disown(params: Script.DisownParameters): Promise; - getRealms(params: Script.GetRealmsParameters): Script.GetRealmsResult; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js deleted file mode 100644 index 60c2775..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js'; -import { PreloadScript } from './PreloadScript.js'; -export class ScriptProcessor { - #eventManager; - #browsingContextStorage; - #realmStorage; - #preloadScriptStorage; - #userContextStorage; - #logger; - constructor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#realmStorage = realmStorage; - this.#preloadScriptStorage = preloadScriptStorage; - this.#userContextStorage = userContextStorage; - this.#logger = logger; - this.#eventManager = eventManager; - this.#eventManager.addSubscribeHook(ChromiumBidi.Script.EventNames.RealmCreated, this.#onRealmCreatedSubscribeHook.bind(this)); - } - #onRealmCreatedSubscribeHook(contextId) { - const context = this.#browsingContextStorage.getContext(contextId); - const contextsToReport = [ - context, - ...this.#browsingContextStorage.getContext(contextId).allChildren, - ]; - const realms = new Set(); - for (const reportContext of contextsToReport) { - const realmsForContext = this.#realmStorage.findRealms({ - browsingContextId: reportContext.id, - }); - for (const realm of realmsForContext) { - realms.add(realm); - } - } - for (const realm of realms) { - this.#eventManager.registerEvent({ - type: 'event', - method: ChromiumBidi.Script.EventNames.RealmCreated, - params: realm.realmInfo, - }, context.id); - } - return Promise.resolve(); - } - async addPreloadScript(params) { - if (params.userContexts?.length && params.contexts?.length) { - throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.'); - } - const userContexts = await this.#userContextStorage.verifyUserContextIdList(params.userContexts ?? []); - const browsingContexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts); - const preloadScript = new PreloadScript(params, this.#logger); - this.#preloadScriptStorage.add(preloadScript); - let contextsToRunIn = []; - if (userContexts.size) { - contextsToRunIn = this.#browsingContextStorage - .getTopLevelContexts() - .filter((context) => { - return userContexts.has(context.userContext); - }); - } - else if (browsingContexts.size) { - contextsToRunIn = [...browsingContexts.values()]; - } - else { - contextsToRunIn = this.#browsingContextStorage.getTopLevelContexts(); - } - const cdpTargets = new Set(contextsToRunIn.map((context) => context.cdpTarget)); - await preloadScript.initInTargets(cdpTargets, false); - return { - script: preloadScript.id, - }; - } - async removePreloadScript(params) { - const { script: id } = params; - const script = this.#preloadScriptStorage.getPreloadScript(id); - await script.remove(); - this.#preloadScriptStorage.remove(id); - return {}; - } - async callFunction(params) { - const realm = await this.#getRealm(params.target); - return await realm.callFunction(params.functionDeclaration, params.awaitPromise, params.this, params.arguments, params.resultOwnership, params.serializationOptions, params.userActivation); - } - async evaluate(params) { - const realm = await this.#getRealm(params.target); - return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership, params.serializationOptions, params.userActivation); - } - async disown(params) { - const realm = await this.#getRealm(params.target); - await Promise.all(params.handles.map(async (handle) => await realm.disown(handle))); - return {}; - } - getRealms(params) { - if (params.context !== undefined) { - // Make sure the context is known. - this.#browsingContextStorage.getContext(params.context); - } - const realms = this.#realmStorage - .findRealms({ - browsingContextId: params.context, - type: params.type, - isHidden: false, - }) - .map((realm) => realm.realmInfo); - return { realms }; - } - async #getRealm(target) { - if ('context' in target) { - const context = this.#browsingContextStorage.getContext(target.context); - return await context.getOrCreateUserSandbox(target.sandbox); - } - return this.#realmStorage.getRealm({ - realmId: target.realm, - isHidden: false, - }); - } -} -//# sourceMappingURL=ScriptProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js.map deleted file mode 100644 index e6baf08..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/ScriptProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ScriptProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/ScriptProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.d.ts deleted file mode 100644 index bcd9be0..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare function getSharedId(frameId: string, documentId: string, backendNodeId: number): string; -export declare function parseSharedId(sharedId: string): { - frameId: string | undefined; - documentId: string; - backendNodeId: number; -} | null; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js deleted file mode 100644 index eab6668..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const SHARED_ID_DIVIDER = '_element_'; -export function getSharedId(frameId, documentId, backendNodeId) { - return `f.${frameId}.d.${documentId}.e.${backendNodeId}`; -} -function parseLegacySharedId(sharedId) { - const match = sharedId.match(new RegExp(`(.*)${SHARED_ID_DIVIDER}(.*)`)); - if (!match) { - // SharedId is incorrectly formatted. - return null; - } - const documentId = match[1]; - const elementId = match[2]; - if (documentId === undefined || elementId === undefined) { - return null; - } - const backendNodeId = parseInt(elementId ?? ''); - if (isNaN(backendNodeId)) { - return null; - } - return { - documentId, - backendNodeId, - }; -} -export function parseSharedId(sharedId) { - // TODO: remove legacy check once ChromeDriver provides sharedId in the new format. - const legacyFormattedSharedId = parseLegacySharedId(sharedId); - if (legacyFormattedSharedId !== null) { - return { ...legacyFormattedSharedId, frameId: undefined }; - } - const match = sharedId.match(/f\.(.*)\.d\.(.*)\.e\.([0-9]*)/); - if (!match) { - // SharedId is incorrectly formatted. - return null; - } - const frameId = match[1]; - const documentId = match[2]; - const elementId = match[3]; - if (frameId === undefined || - documentId === undefined || - elementId === undefined) { - return null; - } - const backendNodeId = parseInt(elementId ?? ''); - if (isNaN(backendNodeId)) { - return null; - } - return { - frameId, - documentId, - backendNodeId, - }; -} -//# sourceMappingURL=SharedId.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js.map deleted file mode 100644 index 2d85c5b..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/SharedId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SharedId.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/SharedId.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAEtC,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,UAAkB,EAClB,aAAqB;IAErB,OAAO,KAAK,OAAO,MAAM,UAAU,MAAM,aAAa,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAI3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,iBAAiB,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,qCAAqC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAQ5C,mFAAmF;IACnF,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO,EAAC,GAAG,uBAAuB,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,qCAAqC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,IACE,OAAO,KAAK,SAAS;QACrB,UAAU,KAAK,SAAS;QACxB,SAAS,KAAK,SAAS,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.d.ts deleted file mode 100644 index 7533a9a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.d.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { type BrowsingContext, type Script } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import type { EventManager } from '../session/EventManager.js'; -import { Realm } from './Realm.js'; -import type { RealmStorage } from './RealmStorage.js'; -export declare class WindowRealm extends Realm { - #private; - readonly sandbox: string | undefined; - constructor(browsingContextId: BrowsingContext.BrowsingContext, browsingContextStorage: BrowsingContextStorage, cdpClient: CdpClient, eventManager: EventManager, executionContextId: Protocol.Runtime.ExecutionContextId, logger: LoggerFn | undefined, origin: string, realmId: Script.Realm, realmStorage: RealmStorage, sandbox: string | undefined); - get browsingContext(): BrowsingContextImpl; - /** - * Do not expose to user hidden realms. - */ - isHidden(): boolean; - get associatedBrowsingContexts(): [BrowsingContextImpl]; - get realmType(): 'window'; - get realmInfo(): Script.WindowRealmInfo; - get source(): Script.Source; - serializeForBiDi(deepSerializedValue: Protocol.Runtime.DeepSerializedValue, internalIdMap: Map): Script.RemoteValue; - deserializeForCdp(localValue: Script.LocalValue): Promise; - evaluate(expression: string, awaitPromise: boolean, resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean, includeCommandLineApi?: boolean): Promise; - callFunction(functionDeclaration: string, awaitPromise: boolean, thisLocalValue: Script.LocalValue, argumentsLocalValues: Script.LocalValue[], resultOwnership: Script.ResultOwnership, serializationOptions: Script.SerializationOptions, userActivation?: boolean): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js deleted file mode 100644 index cbb612f..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { NoSuchNodeException, UnknownErrorException, } from '../../../protocol/protocol.js'; -import { Realm } from './Realm.js'; -import { getSharedId, parseSharedId } from './SharedId.js'; -export class WindowRealm extends Realm { - #browsingContextId; - #browsingContextStorage; - sandbox; - constructor(browsingContextId, browsingContextStorage, cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage, sandbox) { - super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage); - this.#browsingContextId = browsingContextId; - this.#browsingContextStorage = browsingContextStorage; - this.sandbox = sandbox; - this.initialize(); - } - #getBrowsingContextId(navigableId) { - const maybeBrowsingContext = this.#browsingContextStorage - .getAllContexts() - .find((context) => context.navigableId === navigableId); - return maybeBrowsingContext?.id ?? 'UNKNOWN'; - } - get browsingContext() { - return this.#browsingContextStorage.getContext(this.#browsingContextId); - } - /** - * Do not expose to user hidden realms. - */ - isHidden() { - return this.realmStorage.hiddenSandboxes.has(this.sandbox); - } - get associatedBrowsingContexts() { - return [this.browsingContext]; - } - get realmType() { - return 'window'; - } - get realmInfo() { - return { - ...this.baseInfo, - type: this.realmType, - context: this.#browsingContextId, - sandbox: this.sandbox, - }; - } - get source() { - return { - realm: this.realmId, - context: this.browsingContext.id, - }; - } - serializeForBiDi(deepSerializedValue, internalIdMap) { - const bidiValue = deepSerializedValue.value; - if (deepSerializedValue.type === 'node' && bidiValue !== undefined) { - if (Object.hasOwn(bidiValue, 'backendNodeId')) { - let navigableId = this.browsingContext.navigableId ?? 'UNKNOWN'; - if (Object.hasOwn(bidiValue, 'loaderId')) { - // `loaderId` should be always there after ~2024-03-05, when - // https://crrev.com/c/5116240 reaches stable. - // TODO: remove the check after the date. - navigableId = bidiValue.loaderId; - delete bidiValue['loaderId']; - } - deepSerializedValue.sharedId = - getSharedId(this.#getBrowsingContextId(navigableId), navigableId, bidiValue.backendNodeId); - delete bidiValue['backendNodeId']; - } - if (Object.hasOwn(bidiValue, 'children')) { - for (const i in bidiValue.children) { - bidiValue.children[i] = this.serializeForBiDi(bidiValue.children[i], internalIdMap); - } - } - if (Object.hasOwn(bidiValue, 'shadowRoot') && - bidiValue.shadowRoot !== null) { - bidiValue.shadowRoot = this.serializeForBiDi(bidiValue.shadowRoot, internalIdMap); - } - // `namespaceURI` can be is either `null` or non-empty string. - if (bidiValue.namespaceURI === '') { - bidiValue.namespaceURI = null; - } - } - return super.serializeForBiDi(deepSerializedValue, internalIdMap); - } - async deserializeForCdp(localValue) { - if ('sharedId' in localValue && localValue.sharedId) { - const parsedSharedId = parseSharedId(localValue.sharedId); - if (parsedSharedId === null) { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" was not found.`); - } - const { documentId, backendNodeId } = parsedSharedId; - // TODO: add proper validation if the element is accessible from the current realm. - if (this.browsingContext.navigableId !== documentId) { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" belongs to different document. Current document is ${this.browsingContext.navigableId}.`); - } - try { - const { object } = await this.cdpClient.sendCommand('DOM.resolveNode', { - backendNodeId, - executionContextId: this.executionContextId, - }); - // TODO(#375): Release `obj.object.objectId` after using. - return { objectId: object.objectId }; - } - catch (error) { - // Heuristic to detect "no such node" exception. Based on the specific - // CDP implementation. - if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ && - error.message === 'No node with given id found') { - throw new NoSuchNodeException(`SharedId "${localValue.sharedId}" was not found.`); - } - throw new UnknownErrorException(error.message, error.stack); - } - } - return await super.deserializeForCdp(localValue); - } - async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi) { - await this.#browsingContextStorage - .getContext(this.#browsingContextId) - .targetUnblockedOrThrow(); - return await super.evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi); - } - async callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation) { - await this.#browsingContextStorage - .getContext(this.#browsingContextId) - .targetUnblockedOrThrow(); - return await super.callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation); - } -} -//# sourceMappingURL=WindowRealm.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js.map deleted file mode 100644 index 7211bcf..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WindowRealm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WindowRealm.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/WindowRealm.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.d.ts deleted file mode 100644 index 1102291..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { Protocol } from 'devtools-protocol'; -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import type { Script } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { BrowsingContextImpl } from '../context/BrowsingContextImpl.js'; -import type { EventManager } from '../session/EventManager.js'; -import { Realm } from './Realm.js'; -import type { RealmStorage } from './RealmStorage.js'; -export type WorkerRealmType = Pick['type']; -export declare class WorkerRealm extends Realm { - #private; - constructor(cdpClient: CdpClient, eventManager: EventManager, executionContextId: Protocol.Runtime.ExecutionContextId, logger: LoggerFn | undefined, origin: string, ownerRealms: Realm[], realmId: Script.Realm, realmStorage: RealmStorage, realmType: WorkerRealmType); - get associatedBrowsingContexts(): BrowsingContextImpl[]; - get realmType(): WorkerRealmType; - get source(): Script.Source; - get realmInfo(): Script.RealmInfo; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js deleted file mode 100644 index 802bf9a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright 2024 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { Realm } from './Realm.js'; -export class WorkerRealm extends Realm { - #realmType; - #ownerRealms; - constructor(cdpClient, eventManager, executionContextId, logger, origin, ownerRealms, realmId, realmStorage, realmType) { - super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage); - this.#ownerRealms = ownerRealms; - this.#realmType = realmType; - this.initialize(); - } - get associatedBrowsingContexts() { - return this.#ownerRealms.flatMap((realm) => realm.associatedBrowsingContexts); - } - get realmType() { - return this.#realmType; - } - get source() { - return { - realm: this.realmId, - // This is a hack to make Puppeteer able to track workers. - // TODO: remove after Puppeteer tracks workers by owners and use the base version. - context: this.associatedBrowsingContexts[0]?.id, - }; - } - get realmInfo() { - const owners = this.#ownerRealms.map((realm) => realm.realmId); - const { realmType } = this; - switch (realmType) { - case 'dedicated-worker': { - const owner = owners[0]; - if (owner === undefined || owners.length !== 1) { - throw new Error('Dedicated worker must have exactly one owner'); - } - return { - ...this.baseInfo, - type: realmType, - owners: [owner], - }; - } - case 'service-worker': - case 'shared-worker': { - return { - ...this.baseInfo, - type: realmType, - }; - } - } - } -} -//# sourceMappingURL=WorkerRealm.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js.map deleted file mode 100644 index 15b9a24..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/script/WorkerRealm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WorkerRealm.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/script/WorkerRealm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAUjC,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,UAAU,CAAkB;IAC5B,YAAY,CAAU;IAE/B,YACE,SAAoB,EACpB,YAA0B,EAC1B,kBAAuD,EACvD,MAA4B,EAC5B,MAAc,EACd,WAAoB,EACpB,OAAqB,EACrB,YAA0B,EAC1B,SAA0B;QAE1B,KAAK,CACH,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,IAAa,0BAA0B;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAC5C,CAAC;IACJ,CAAC;IAED,IAAa,SAAS;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAa,MAAM;QACjB,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,0DAA0D;YAC1D,kFAAkF;YAClF,OAAO,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,EAAE;SAChD,CAAC;IACJ,CAAC;IAED,IAAa,SAAS;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC;QACzB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO;oBACL,GAAG,IAAI,CAAC,QAAQ;oBAChB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,CAAC,KAAK,CAAC;iBAChB,CAAC;YACJ,CAAC;YACD,KAAK,gBAAgB,CAAC;YACtB,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,OAAO;oBACL,GAAG,IAAI,CAAC,QAAQ;oBAChB,IAAI,EAAE,SAAS;iBAChB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.d.ts deleted file mode 100644 index 81b2a87..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.d.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { GoogChannel } from '../../../protocol/chromium-bidi.js'; -import { type Browser, ChromiumBidi, type BrowsingContext } from '../../../protocol/protocol.js'; -import { EventEmitter } from '../../../utils/EventEmitter.js'; -import type { Result } from '../../../utils/result.js'; -import { OutgoingMessage } from '../../OutgoingMessage.js'; -import type { UserContextStorage } from '../browser/UserContextStorage.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -import { SubscriptionManager } from './SubscriptionManager.js'; -export declare const enum EventManagerEvents { - Event = "event" -} -interface EventManagerEventsMap extends Record { - [EventManagerEvents.Event]: { - message: Promise>; - event: string; - }; -} -/** - * Subscription item is a pair of event name and context id. - */ -export interface SubscriptionItem { - contextId: BrowsingContext.BrowsingContext; - event: ChromiumBidi.EventNames; -} -export declare class EventManager extends EventEmitter { - #private; - constructor(browsingContextStorage: BrowsingContextStorage, userContextStorage: UserContextStorage); - get subscriptionManager(): SubscriptionManager; - addSubscribeHook(event: ChromiumBidi.EventNames, hook: (contextId: BrowsingContext.BrowsingContext) => Promise): void; - registerEvent(event: ChromiumBidi.Event, contextId: BrowsingContext.BrowsingContext): void; - registerGlobalEvent(event: ChromiumBidi.Event): void; - registerPromiseEvent(event: Promise>, contextId: BrowsingContext.BrowsingContext, eventName: ChromiumBidi.EventNames): void; - registerGlobalPromiseEvent(event: Promise>, eventName: ChromiumBidi.EventNames): void; - subscribe(eventNames: ChromiumBidi.EventNames[], contextIds: BrowsingContext.BrowsingContext[], userContextIds: Browser.UserContext[], googChannel: GoogChannel): Promise; - unsubscribe(eventNames: ChromiumBidi.EventNames[], googChannel: GoogChannel): Promise; - unsubscribeByIds(subscriptionIds: string[]): Promise; - toggleModulesIfNeeded(): Promise; - clearBufferedEvents(contextId: string): void; -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js deleted file mode 100644 index e6501cf..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js +++ /dev/null @@ -1,265 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -var _a; -import { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js'; -import { Buffer } from '../../../utils/Buffer.js'; -import { DefaultMap } from '../../../utils/DefaultMap.js'; -import { EventEmitter } from '../../../utils/EventEmitter.js'; -import { IdWrapper } from '../../../utils/IdWrapper.js'; -import { OutgoingMessage } from '../../OutgoingMessage.js'; -import { assertSupportedEvent } from './events.js'; -import { difference, SubscriptionManager, unrollEvents, } from './SubscriptionManager.js'; -class EventWrapper { - #idWrapper = new IdWrapper(); - #contextId; - #event; - constructor(event, contextId) { - this.#event = event; - this.#contextId = contextId; - } - get id() { - return this.#idWrapper.id; - } - get contextId() { - return this.#contextId; - } - get event() { - return this.#event; - } -} -/** - * Maps event name to a desired buffer length. - */ -const eventBufferLength = new Map([[ChromiumBidi.Log.EventNames.LogEntryAdded, 100]]); -export class EventManager extends EventEmitter { - /** - * Maps event name to a set of contexts where this event already happened. - * Needed for getting buffered events from all the contexts in case of - * subscripting to all contexts. - */ - #eventToContextsMap = new DefaultMap(() => new Set()); - /** - * Maps `eventName` + `browsingContext` to buffer. Used to get buffered events - * during subscription. Channel-agnostic. - */ - #eventBuffers = new Map(); - /** - * Maps `eventName` + `browsingContext` to Map of goog:channel to last id. - * Used to avoid sending duplicated events when user - * subscribes -> unsubscribes -> subscribes. - */ - #lastMessageSent = new Map(); - #subscriptionManager; - #browsingContextStorage; - /** - * Map of event name to hooks to be called when client is subscribed to the event. - */ - #subscribeHooks; - #userContextStorage; - constructor(browsingContextStorage, userContextStorage) { - super(); - this.#browsingContextStorage = browsingContextStorage; - this.#userContextStorage = userContextStorage; - this.#subscriptionManager = new SubscriptionManager(browsingContextStorage); - this.#subscribeHooks = new DefaultMap(() => []); - } - get subscriptionManager() { - return this.#subscriptionManager; - } - /** - * Returns consistent key to be used to access value maps. - */ - static #getMapKey(eventName, browsingContext) { - return JSON.stringify({ eventName, browsingContext }); - } - addSubscribeHook(event, hook) { - this.#subscribeHooks.get(event).push(hook); - } - registerEvent(event, contextId) { - this.registerPromiseEvent(Promise.resolve({ - kind: 'success', - value: event, - }), contextId, event.method); - } - registerGlobalEvent(event) { - this.registerGlobalPromiseEvent(Promise.resolve({ - kind: 'success', - value: event, - }), event.method); - } - registerPromiseEvent(event, contextId, eventName) { - const eventWrapper = new EventWrapper(event, contextId); - const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEvent(eventName, contextId); - this.#bufferEvent(eventWrapper, eventName); - // Send events to channels in the subscription priority. - for (const googChannel of sortedGoogChannels) { - this.emit("event" /* EventManagerEvents.Event */, { - message: OutgoingMessage.createFromPromise(event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - registerGlobalPromiseEvent(event, eventName) { - const eventWrapper = new EventWrapper(event, null); - const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEventGlobally(eventName); - this.#bufferEvent(eventWrapper, eventName); - // Send events to goog:channels in the subscription priority. - for (const googChannel of sortedGoogChannels) { - this.emit("event" /* EventManagerEvents.Event */, { - message: OutgoingMessage.createFromPromise(event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - async subscribe(eventNames, contextIds, userContextIds, googChannel) { - for (const name of eventNames) { - assertSupportedEvent(name); - } - if (userContextIds.length && contextIds.length) { - throw new InvalidArgumentException('Both userContexts and contexts cannot be specified.'); - } - // First check if all the contexts are known. - this.#browsingContextStorage.verifyContextsList(contextIds); - // Validate user contexts. - await this.#userContextStorage.verifyUserContextIdList(userContextIds); - const unrolledEventNames = new Set(unrollEvents(eventNames)); - const subscribeStepEvents = new Map(); - const subscriptionNavigableIds = new Set(contextIds.length - ? contextIds.map((contextId) => { - const id = this.#browsingContextStorage.findTopLevelContextId(contextId); - if (!id) { - throw new InvalidArgumentException('Invalid context id'); - } - return id; - }) - : this.#browsingContextStorage.getTopLevelContexts().map((c) => c.id)); - for (const eventName of unrolledEventNames) { - const subscribedNavigableIds = new Set(this.#browsingContextStorage - .getTopLevelContexts() - .map((c) => c.id) - .filter((id) => { - return this.#subscriptionManager.isSubscribedTo(eventName, id); - })); - subscribeStepEvents.set(eventName, difference(subscriptionNavigableIds, subscribedNavigableIds)); - } - const subscription = this.#subscriptionManager.subscribe(eventNames, contextIds, userContextIds, googChannel); - for (const eventName of subscription.eventNames) { - for (const contextId of subscriptionNavigableIds) { - for (const eventWrapper of this.#getBufferedEvents(eventName, contextId, googChannel)) { - // The order of the events is important. - this.emit("event" /* EventManagerEvents.Event */, { - message: OutgoingMessage.createFromPromise(eventWrapper.event, googChannel), - event: eventName, - }); - this.#markEventSent(eventWrapper, googChannel, eventName); - } - } - } - for (const [eventName, contextIds] of subscribeStepEvents) { - for (const contextId of contextIds) { - this.#subscribeHooks.get(eventName).forEach((hook) => hook(contextId)); - } - } - await this.toggleModulesIfNeeded(); - return subscription.id; - } - async unsubscribe(eventNames, googChannel) { - for (const name of eventNames) { - assertSupportedEvent(name); - } - this.#subscriptionManager.unsubscribe(eventNames, googChannel); - await this.toggleModulesIfNeeded(); - } - async unsubscribeByIds(subscriptionIds) { - this.#subscriptionManager.unsubscribeById(subscriptionIds); - await this.toggleModulesIfNeeded(); - } - async toggleModulesIfNeeded() { - // TODO(1): Only update changed subscribers - // TODO(2): Enable for Worker Targets - await Promise.all(this.#browsingContextStorage.getAllContexts().map(async (context) => { - return await context.toggleModulesIfNeeded(); - })); - } - clearBufferedEvents(contextId) { - for (const eventName of eventBufferLength.keys()) { - const bufferMapKey = _a.#getMapKey(eventName, contextId); - this.#eventBuffers.delete(bufferMapKey); - } - } - /** - * If the event is buffer-able, put it in the buffer. - */ - #bufferEvent(eventWrapper, eventName) { - if (!eventBufferLength.has(eventName)) { - // Do nothing if the event is no buffer-able. - return; - } - const bufferMapKey = _a.#getMapKey(eventName, eventWrapper.contextId); - if (!this.#eventBuffers.has(bufferMapKey)) { - this.#eventBuffers.set(bufferMapKey, new Buffer(eventBufferLength.get(eventName))); - } - this.#eventBuffers.get(bufferMapKey).add(eventWrapper); - // Add the context to the list of contexts having `eventName` events. - this.#eventToContextsMap.get(eventName).add(eventWrapper.contextId); - } - /** - * If the event is buffer-able, mark it as sent to the given contextId and goog:channel. - */ - #markEventSent(eventWrapper, googChannel, eventName) { - if (!eventBufferLength.has(eventName)) { - // Do nothing if the event is no buffer-able. - return; - } - const lastSentMapKey = _a.#getMapKey(eventName, eventWrapper.contextId); - const lastId = Math.max(this.#lastMessageSent.get(lastSentMapKey)?.get(googChannel) ?? 0, eventWrapper.id); - const googChannelMap = this.#lastMessageSent.get(lastSentMapKey); - if (googChannelMap) { - googChannelMap.set(googChannel, lastId); - } - else { - this.#lastMessageSent.set(lastSentMapKey, new Map([[googChannel, lastId]])); - } - } - /** - * Returns events which are buffered and not yet sent to the given goog:channel events. - */ - #getBufferedEvents(eventName, contextId, googChannel) { - const bufferMapKey = _a.#getMapKey(eventName, contextId); - const lastSentMessageId = this.#lastMessageSent.get(bufferMapKey)?.get(googChannel) ?? -Infinity; - const result = this.#eventBuffers - .get(bufferMapKey) - ?.get() - .filter((wrapper) => wrapper.id > lastSentMessageId) ?? []; - if (contextId === null) { - // For global subscriptions, events buffered in each context should be sent back. - Array.from(this.#eventToContextsMap.get(eventName).keys()) - .filter((_contextId) => - // Events without context are already in the result. - _contextId !== null && - // Events from deleted contexts should not be sent. - this.#browsingContextStorage.hasContext(_contextId)) - .map((_contextId) => this.#getBufferedEvents(eventName, _contextId, googChannel)) - .forEach((events) => result.push(...events)); - } - return result.sort((e1, e2) => e1.id - e2.id); - } -} -_a = EventManager; -//# sourceMappingURL=EventManager.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js.map deleted file mode 100644 index 1a10960..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/EventManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/session/EventManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;;AAGH,OAAO,EAEL,YAAY,EACZ,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AAIzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,MAAM,YAAY;IACP,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,UAAU,CAAyC;IACnD,MAAM,CAAsC;IAErD,YACE,KAA0C,EAC1C,SAAiD;QAEjD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAYD;;GAEG;AACH,MAAM,iBAAiB,GAAiD,IAAI,GAAG,CAC7E,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CACnD,CAAC;AAUF,MAAM,OAAO,YAAa,SAAQ,YAAmC;IACnE;;;;OAIG;IACH,mBAAmB,GAAG,IAAI,UAAU,CAGlC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnB;;;OAGG;IACH,aAAa,GAAG,IAAI,GAAG,EAAgC,CAAC;IACxD;;;;OAIG;IACH,gBAAgB,GAAG,IAAI,GAAG,EAAsC,CAAC;IACjE,oBAAoB,CAAsB;IAC1C,uBAAuB,CAAyB;IAChD;;OAEG;IACH,eAAe,CAGb;IAEF,mBAAmB,CAAqB;IAExC,YACE,sBAA8C,EAC9C,kBAAsC;QAEtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CACf,SAAkC,EAClC,eAAuD;QAEvD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC,CAAC;IACtD,CAAC;IAED,gBAAgB,CACd,KAA8B,EAC9B,IAAmE;QAEnE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CACX,KAAyB,EACzB,SAA0C;QAE1C,IAAI,CAAC,oBAAoB,CACvB,OAAO,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;SACb,CAAC,EACF,SAAS,EACT,KAAK,CAAC,MAAM,CACb,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,KAAyB;QAC3C,IAAI,CAAC,0BAA0B,CAC7B,OAAO,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;SACb,CAAC,EACF,KAAK,CAAC,MAAM,CACb,CAAC;IACJ,CAAC;IAED,oBAAoB,CAClB,KAA0C,EAC1C,SAA0C,EAC1C,SAAkC;QAElC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxD,MAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAC,gCAAgC,CACxD,SAAS,EACT,SAAS,CACV,CAAC;QACJ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC3C,wDAAwD;QACxD,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,yCAA2B;gBAClC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC9D,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,0BAA0B,CACxB,KAA0C,EAC1C,SAAkC;QAElC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,MAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAC,wCAAwC,CAChE,SAAS,CACV,CAAC;QACJ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC3C,6DAA6D;QAC7D,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,yCAA2B;gBAClC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC9D,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,UAAqC,EACrC,UAA6C,EAC7C,cAAqC,EACrC,WAAwB;QAExB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,MAAM,IAAI,wBAAwB,CAChC,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAE5D,0BAA0B;QAC1B,MAAM,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAEvE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC5E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CACtC,UAAU,CAAC,MAAM;YACf,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBAC3B,MAAM,EAAE,GACN,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBAChE,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxE,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CACpC,IAAI,CAAC,uBAAuB;iBACzB,mBAAmB,EAAE;iBACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;gBACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACjE,CAAC,CAAC,CACL,CAAC;YACF,mBAAmB,CAAC,GAAG,CACrB,SAAS,EACT,UAAU,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAC7D,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACtD,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAChD,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE,CAAC;gBACjD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAChD,SAAS,EACT,SAAS,EACT,WAAW,CACZ,EAAE,CAAC;oBACF,wCAAwC;oBACxC,IAAI,CAAC,IAAI,yCAA2B;wBAClC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CACxC,YAAY,CAAC,KAAK,EAClB,WAAW,CACZ;wBACD,KAAK,EAAE,SAAS;qBACjB,CAAC,CAAC;oBACH,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,mBAAmB,EAAE,CAAC;YAC1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEnC,OAAO,YAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,UAAqC,EACrC,WAAwB;QAExB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,eAAyB;QAC9C,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,2CAA2C;QAC3C,qCAAqC;QACrC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAClE,OAAO,MAAM,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC/C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,SAAiB;QACnC,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,EAAY,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAEnE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,YAA0B,EAAE,SAAkC;QACzE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,6CAA6C;YAC7C,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,EAAY,CAAC,UAAU,CAC1C,SAAS,EACT,YAAY,CAAC,SAAS,CACvB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,YAAY,EACZ,IAAI,MAAM,CAAe,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACxD,qEAAqE;QACrE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,YAA0B,EAC1B,WAAwB,EACxB,SAAkC;QAElC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,6CAA6C;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,EAAY,CAAC,UAAU,CAC5C,SAAS,EACT,YAAY,CAAC,SAAS,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAChE,YAAY,CAAC,EAAE,CAChB,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,cAAc,EACd,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,SAAkC,EAClC,SAAiD,EACjD,WAAwB;QAExB,MAAM,YAAY,GAAG,EAAY,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,iBAAiB,GACrB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEzE,MAAM,MAAM,GACV,IAAI,CAAC,aAAa;aACf,GAAG,CAAC,YAAY,CAAC;YAClB,EAAE,GAAG,EAAE;aACN,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,iFAAiF;YACjF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;iBACvD,MAAM,CACL,CAAC,UAAU,EAAE,EAAE;YACb,oDAAoD;YACpD,UAAU,KAAK,IAAI;gBACnB,mDAAmD;gBACnD,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CACtD;iBACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAClB,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAC5D;iBACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.d.ts deleted file mode 100644 index f206c19..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import type { GoogChannel } from '../../../protocol/chromium-bidi.js'; -import { type EmptyResult, Session } from '../../../protocol/protocol.js'; -import type { MapperOptions } from '../../MapperOptions.js'; -import type { EventManager } from './EventManager.js'; -export declare class SessionProcessor { - #private; - constructor(eventManager: EventManager, browserCdpClient: CdpClient, initConnection: (opts: MapperOptions) => Promise); - status(): Session.StatusResult; - new(params: Session.NewParameters): Promise; - subscribe(params: Session.SubscribeParameters, googChannel?: GoogChannel): Promise; - unsubscribe(params: Session.UnsubscribeParameters, googChannel?: GoogChannel): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js deleted file mode 100644 index c9233fb..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js +++ /dev/null @@ -1,127 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidArgumentException, } from '../../../protocol/protocol.js'; -export class SessionProcessor { - #eventManager; - #browserCdpClient; - #initConnection; - #created = false; - constructor(eventManager, browserCdpClient, initConnection) { - this.#eventManager = eventManager; - this.#browserCdpClient = browserCdpClient; - this.#initConnection = initConnection; - } - status() { - return { ready: false, message: 'already connected' }; - } - #mergeCapabilities(capabilitiesRequest) { - // Roughly following https://www.w3.org/TR/webdriver2/#dfn-capabilities-processing. - // Validations should already be done by the parser. - const mergedCapabilities = []; - for (const first of capabilitiesRequest.firstMatch ?? [{}]) { - const result = { - ...capabilitiesRequest.alwaysMatch, - }; - for (const key of Object.keys(first)) { - if (result[key] !== undefined) { - throw new InvalidArgumentException(`Capability ${key} in firstMatch is already defined in alwaysMatch`); - } - result[key] = first[key]; - } - mergedCapabilities.push(result); - } - const match = mergedCapabilities.find((c) => c.browserName === 'chrome') ?? - mergedCapabilities[0] ?? - {}; - match.unhandledPromptBehavior = this.#getUnhandledPromptBehavior(match.unhandledPromptBehavior); - return match; - } - #getUnhandledPromptBehavior(capabilityValue) { - if (capabilityValue === undefined) { - return undefined; - } - if (typeof capabilityValue === 'object') { - // Do not validate capabilities. Incorrect ones will be ignored by Mapper. - return capabilityValue; - } - if (typeof capabilityValue !== 'string') { - throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' type: ${typeof capabilityValue}`); - } - switch (capabilityValue) { - // `beforeUnload: accept` has higher priority over string capability, as the latest - // one is set to "fallbackDefault". - // https://w3c.github.io/webdriver/#dfn-deserialize-as-an-unhandled-prompt-behavior - // https://w3c.github.io/webdriver/#dfn-get-the-prompt-handler - case 'accept': - case 'accept and notify': - return { - default: "accept" /* Session.UserPromptHandlerType.Accept */, - beforeUnload: "accept" /* Session.UserPromptHandlerType.Accept */, - }; - case 'dismiss': - case 'dismiss and notify': - return { - default: "dismiss" /* Session.UserPromptHandlerType.Dismiss */, - beforeUnload: "accept" /* Session.UserPromptHandlerType.Accept */, - }; - case 'ignore': - return { - default: "ignore" /* Session.UserPromptHandlerType.Ignore */, - beforeUnload: "accept" /* Session.UserPromptHandlerType.Accept */, - }; - default: - throw new InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' value: ${capabilityValue}`); - } - } - async new(params) { - if (this.#created) { - throw new Error('Session has been already created.'); - } - this.#created = true; - const matchedCapabitlites = this.#mergeCapabilities(params.capabilities); - await this.#initConnection(matchedCapabitlites); - const version = await this.#browserCdpClient.sendCommand('Browser.getVersion'); - return { - sessionId: 'unknown', - capabilities: { - ...matchedCapabitlites, - acceptInsecureCerts: matchedCapabitlites.acceptInsecureCerts ?? false, - browserName: version.product, - browserVersion: version.revision, - platformName: '', - setWindowRect: false, - webSocketUrl: '', - userAgent: version.userAgent, - }, - }; - } - async subscribe(params, googChannel = null) { - const subscription = await this.#eventManager.subscribe(params.events, params.contexts ?? [], params.userContexts ?? [], googChannel); - return { - subscription, - }; - } - async unsubscribe(params, googChannel = null) { - if ('subscriptions' in params) { - await this.#eventManager.unsubscribeByIds(params.subscriptions); - return {}; - } - await this.#eventManager.unsubscribe(params.events, googChannel); - return {}; - } -} -//# sourceMappingURL=SessionProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js.map deleted file mode 100644 index 1feb6e2..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SessionProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SessionProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/session/SessionProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.d.ts deleted file mode 100644 index 22fc560..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.d.ts +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { GoogChannel } from '../../../protocol/chromium-bidi.js'; -import { type Browser, type BrowsingContext, ChromiumBidi } from '../../../protocol/protocol.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -/** - * Returns the cartesian product of the given arrays. - * - * Example: - * cartesian([1, 2], ['a', 'b']); => [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']] - */ -export declare function cartesianProduct(...a: any[][]): any[]; -/** Expands "AllEvents" events into atomic events. */ -export declare function unrollEvents(events: ChromiumBidi.EventNames[]): Iterable; -export interface Subscription { - id: string; - topLevelTraversableIds: Set; - userContextIds: Set; - eventNames: Set; - googChannel: GoogChannel; -} -export declare class SubscriptionManager { - #private; - constructor(browsingContextStorage: BrowsingContextStorage); - getGoogChannelsSubscribedToEvent(eventName: ChromiumBidi.EventNames, contextId: BrowsingContext.BrowsingContext): GoogChannel[]; - getGoogChannelsSubscribedToEventGlobally(eventName: ChromiumBidi.EventNames): GoogChannel[]; - isSubscribedTo(moduleOrEvent: ChromiumBidi.EventNames, contextId: BrowsingContext.BrowsingContext): boolean; - /** - * Subscribes to event in the given context and goog:channel. - * @return {SubscriptionItem[]} List of - * subscriptions. If the event is a whole module, it will return all the specific - * events. If the contextId is null, it will return all the top-level contexts which were - * not subscribed before the command. - */ - subscribe(eventNames: ChromiumBidi.EventNames[], contextIds: BrowsingContext.BrowsingContext[], userContextIds: Browser.UserContext[], googChannel: GoogChannel): Subscription; - /** - * Unsubscribes atomically from all events in the given contexts and channel. - * - * This is a legacy spec branch to unsubscribe by attributes. - */ - unsubscribe(inputEventNames: ChromiumBidi.EventNames[], googChannel: GoogChannel): void; - /** - * Unsubscribes by subscriptionId. - */ - unsubscribeById(subscriptionIds: string[]): void; -} -/** - * Replace with Set.prototype.difference once Node 20 is dropped. - */ -export declare function difference(setA: Set, setB: Set): Set; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js deleted file mode 100644 index d105b3e..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js +++ /dev/null @@ -1,266 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ChromiumBidi, InvalidArgumentException, NoSuchFrameException, } from '../../../protocol/protocol.js'; -import { uuidv4 } from '../../../utils/uuid.js'; -/** - * Returns the cartesian product of the given arrays. - * - * Example: - * cartesian([1, 2], ['a', 'b']); => [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']] - */ -export function cartesianProduct(...a) { - return a.reduce((a, b) => a.flatMap((d) => b.map((e) => [d, e].flat()))); -} -/** Expands "AllEvents" events into atomic events. */ -export function unrollEvents(events) { - const allEvents = new Set(); - function addEvents(events) { - for (const event of events) { - allEvents.add(event); - } - } - for (const event of events) { - switch (event) { - case ChromiumBidi.BiDiModule.Bluetooth: - addEvents(Object.values(ChromiumBidi.Bluetooth.EventNames)); - break; - case ChromiumBidi.BiDiModule.BrowsingContext: - addEvents(Object.values(ChromiumBidi.BrowsingContext.EventNames)); - break; - case ChromiumBidi.BiDiModule.Input: - addEvents(Object.values(ChromiumBidi.Input.EventNames)); - break; - case ChromiumBidi.BiDiModule.Log: - addEvents(Object.values(ChromiumBidi.Log.EventNames)); - break; - case ChromiumBidi.BiDiModule.Network: - addEvents(Object.values(ChromiumBidi.Network.EventNames)); - break; - case ChromiumBidi.BiDiModule.Script: - addEvents(Object.values(ChromiumBidi.Script.EventNames)); - break; - case ChromiumBidi.BiDiModule.Speculation: - addEvents(Object.values(ChromiumBidi.Speculation.EventNames)); - break; - default: - allEvents.add(event); - } - } - return allEvents.values(); -} -export class SubscriptionManager { - #subscriptions = []; - #knownSubscriptionIds = new Set(); - #browsingContextStorage; - constructor(browsingContextStorage) { - this.#browsingContextStorage = browsingContextStorage; - } - getGoogChannelsSubscribedToEvent(eventName, contextId) { - const googChannels = new Set(); - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, eventName, contextId)) { - googChannels.add(subscription.googChannel); - } - } - return Array.from(googChannels); - } - getGoogChannelsSubscribedToEventGlobally(eventName) { - const googChannels = new Set(); - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, eventName)) { - googChannels.add(subscription.googChannel); - } - } - return Array.from(googChannels); - } - #isSubscribedTo(subscription, moduleOrEvent, browsingContextId) { - let includesEvent = false; - for (const eventName of subscription.eventNames) { - // This also covers the `goog:cdp` case where - // we don't unroll the event names - if ( - // Event explicitly subscribed - eventName === moduleOrEvent || - // Event subscribed via module - eventName === moduleOrEvent.split('.').at(0) || - // Event explicitly subscribed compared to module - eventName.split('.').at(0) === moduleOrEvent) { - includesEvent = true; - break; - } - } - if (!includesEvent) { - return false; - } - // user context subscription. - if (subscription.userContextIds.size !== 0) { - if (!browsingContextId) { - return false; - } - const context = this.#browsingContextStorage.findContext(browsingContextId); - if (!context) { - return false; - } - return subscription.userContextIds.has(context.userContext); - } - // context subscription. - if (subscription.topLevelTraversableIds.size !== 0) { - if (!browsingContextId) { - return false; - } - const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(browsingContextId); - return (topLevelContext !== null && - subscription.topLevelTraversableIds.has(topLevelContext)); - } - // global subscription. - return true; - } - isSubscribedTo(moduleOrEvent, contextId) { - for (const subscription of this.#subscriptions) { - if (this.#isSubscribedTo(subscription, moduleOrEvent, contextId)) { - return true; - } - } - return false; - } - /** - * Subscribes to event in the given context and goog:channel. - * @return {SubscriptionItem[]} List of - * subscriptions. If the event is a whole module, it will return all the specific - * events. If the contextId is null, it will return all the top-level contexts which were - * not subscribed before the command. - */ - subscribe(eventNames, contextIds, userContextIds, googChannel) { - // All the subscriptions are handled on the top-level contexts. - const subscription = { - id: uuidv4(), - eventNames: new Set(unrollEvents(eventNames)), - topLevelTraversableIds: new Set(contextIds.map((contextId) => { - const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(contextId); - if (!topLevelContext) { - throw new NoSuchFrameException(`Top-level navigable not found for context id ${contextId}`); - } - return topLevelContext; - })), - userContextIds: new Set(userContextIds), - googChannel, - }; - this.#subscriptions.push(subscription); - this.#knownSubscriptionIds.add(subscription.id); - return subscription; - } - /** - * Unsubscribes atomically from all events in the given contexts and channel. - * - * This is a legacy spec branch to unsubscribe by attributes. - */ - unsubscribe(inputEventNames, googChannel) { - const eventNames = new Set(unrollEvents(inputEventNames)); - const newSubscriptions = []; - const eventsMatched = new Set(); - for (const subscription of this.#subscriptions) { - if (subscription.googChannel !== googChannel) { - newSubscriptions.push(subscription); - continue; - } - // Skip user context subscriptions. - if (subscription.userContextIds.size !== 0) { - newSubscriptions.push(subscription); - continue; - } - // Skip subscriptions when none of the event names match. - if (intersection(subscription.eventNames, eventNames).size === 0) { - newSubscriptions.push(subscription); - continue; - } - // Skip non-global subscriptions. - if (subscription.topLevelTraversableIds.size !== 0) { - newSubscriptions.push(subscription); - continue; - } - const subscriptionEventNames = new Set(subscription.eventNames); - for (const eventName of eventNames) { - if (subscriptionEventNames.has(eventName)) { - eventsMatched.add(eventName); - subscriptionEventNames.delete(eventName); - } - } - if (subscriptionEventNames.size !== 0) { - newSubscriptions.push({ - ...subscription, - eventNames: subscriptionEventNames, - }); - } - } - // If some events did not match, it is an invalid request. - if (!equal(eventsMatched, eventNames)) { - throw new InvalidArgumentException('No subscription found'); - } - // Committing the new subscriptions. - this.#subscriptions = newSubscriptions; - } - /** - * Unsubscribes by subscriptionId. - */ - unsubscribeById(subscriptionIds) { - const subscriptionIdsSet = new Set(subscriptionIds); - const unknownIds = difference(subscriptionIdsSet, this.#knownSubscriptionIds); - if (unknownIds.size !== 0) { - throw new InvalidArgumentException('No subscription found'); - } - this.#subscriptions = this.#subscriptions.filter((subscription) => { - return !subscriptionIdsSet.has(subscription.id); - }); - this.#knownSubscriptionIds = difference(this.#knownSubscriptionIds, subscriptionIdsSet); - } -} -/** - * Replace with Set.prototype.intersection once Node 20 is dropped. - */ -function intersection(setA, setB) { - const result = new Set(); - for (const a of setA) { - if (setB.has(a)) { - result.add(a); - } - } - return result; -} -/** - * Replace with Set.prototype.difference once Node 20 is dropped. - */ -export function difference(setA, setB) { - const result = new Set(); - for (const a of setA) { - if (!setB.has(a)) { - result.add(a); - } - } - return result; -} -function equal(setA, setB) { - if (setA.size !== setB.size) { - return false; - } - for (const a of setA) { - if (!setB.has(a)) { - return false; - } - } - return true; -} -//# sourceMappingURL=SubscriptionManager.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js.map deleted file mode 100644 index 74fbf0a..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/SubscriptionManager.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SubscriptionManager.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/session/SubscriptionManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.d.ts deleted file mode 100644 index 159eef8..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ChromiumBidi } from '../../../protocol/protocol.js'; -/** - * Returns true if the given event is a CDP event. - * @see https://chromedevtools.github.io/devtools-protocol/ - */ -export declare function isCdpEvent(name: string): boolean; -/** - * Asserts that the given event is known to BiDi or BiDi+, or throws otherwise. - */ -export declare function assertSupportedEvent(name: string): asserts name is ChromiumBidi.EventNames; diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js deleted file mode 100644 index bddabb3..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { ChromiumBidi, InvalidArgumentException, } from '../../../protocol/protocol.js'; -/** - * Returns true if the given event is a CDP event. - * @see https://chromedevtools.github.io/devtools-protocol/ - */ -export function isCdpEvent(name) { - return (name.split('.').at(0)?.startsWith(ChromiumBidi.BiDiModule.Cdp) ?? false); -} -/** - * Asserts that the given event is known to BiDi or BiDi+, or throws otherwise. - */ -export function assertSupportedEvent(name) { - if (!ChromiumBidi.EVENT_NAMES.has(name) && !isCdpEvent(name)) { - throw new InvalidArgumentException(`Unknown event: ${name}`); - } -} -//# sourceMappingURL=events.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js.map deleted file mode 100644 index 505f59e..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/session/events.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/session/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,YAAY,EACZ,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CACxE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY;IAEZ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,wBAAwB,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.d.ts deleted file mode 100644 index fe954a7..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { LoggerFn } from '../../../utils/log.js'; -import type { CdpTarget } from '../cdp/CdpTarget.js'; -import type { EventManager } from '../session/EventManager.js'; -export declare class SpeculationProcessor { - #private; - constructor(eventManager: EventManager, logger: LoggerFn | undefined); - onCdpTargetCreated(cdpTarget: CdpTarget): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js deleted file mode 100644 index 344a553..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { LogType } from '../../../utils/log.js'; -export class SpeculationProcessor { - #eventManager; - #logger; - constructor(eventManager, logger) { - this.#eventManager = eventManager; - this.#logger = logger; - } - onCdpTargetCreated(cdpTarget) { - cdpTarget.cdpClient.on('Preload.prefetchStatusUpdated', (event) => { - let prefetchStatus; - switch (event.status) { - case 'Running': - prefetchStatus = "pending" /* Speculation.PreloadingStatus.Pending */; - break; - case 'Ready': - prefetchStatus = "ready" /* Speculation.PreloadingStatus.Ready */; - break; - case 'Success': - prefetchStatus = "success" /* Speculation.PreloadingStatus.Success */; - break; - case 'Failure': - prefetchStatus = "failure" /* Speculation.PreloadingStatus.Failure */; - break; - default: - // If status is not recognized, skip the event - this.#logger?.(LogType.debugWarn, `Unknown prefetch status: ${event.status}`); - return; - } - this.#eventManager.registerEvent({ - type: 'event', - method: 'speculation.prefetchStatusUpdated', - params: { - context: event.initiatingFrameId, - url: event.prefetchUrl, - status: prefetchStatus, - }, - }, cdpTarget.id); - }); - } -} -//# sourceMappingURL=SpeculationProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js.map deleted file mode 100644 index d33d176..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/speculation/SpeculationProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SpeculationProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/speculation/SpeculationProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAI9C,MAAM,OAAO,oBAAoB;IAC/B,aAAa,CAAe;IACnB,OAAO,CAAuB;IAEvC,YAAY,YAA0B,EAAE,MAA4B;QAClE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,kBAAkB,CAAC,SAAoB;QACrC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,KAAK,EAAE,EAAE;YAChE,IAAI,cAA4C,CAAC;YACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,SAAS;oBACZ,cAAc,uDAAuC,CAAC;oBACtD,MAAM;gBACR,KAAK,OAAO;oBACV,cAAc,mDAAqC,CAAC;oBACpD,MAAM;gBACR,KAAK,SAAS;oBACZ,cAAc,uDAAuC,CAAC;oBACtD,MAAM;gBACR,KAAK,SAAS;oBACZ,cAAc,uDAAuC,CAAC;oBACtD,MAAM;gBACR;oBACE,8CAA8C;oBAC9C,IAAI,CAAC,OAAO,EAAE,CACZ,OAAO,CAAC,SAAS,EACjB,4BAA4B,KAAK,CAAC,MAAM,EAAE,CAC3C,CAAC;oBACF,OAAO;YACX,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAC9B;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,mCAAmC;gBAC3C,MAAM,EAAE;oBACN,OAAO,EAAE,KAAK,CAAC,iBAAiB;oBAChC,GAAG,EAAE,KAAK,CAAC,WAAW;oBACtB,MAAM,EAAE,cAAc;iBACvB;aACF,EACD,SAAS,CAAC,EAAE,CACb,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.d.ts deleted file mode 100644 index cd42a67..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import type { Storage } from '../../../protocol/protocol.js'; -import type { LoggerFn } from '../../../utils/log.js'; -import type { BrowsingContextStorage } from '../context/BrowsingContextStorage.js'; -/** - * Responsible for handling the `storage` module. - */ -export declare class StorageProcessor { - #private; - constructor(browserCdpClient: CdpClient, browsingContextStorage: BrowsingContextStorage, logger: LoggerFn | undefined); - deleteCookies(params: Storage.DeleteCookiesParameters): Promise; - getCookies(params: Storage.GetCookiesParameters): Promise; - setCookie(params: Storage.SetCookieParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js deleted file mode 100644 index fe57497..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js +++ /dev/null @@ -1,191 +0,0 @@ -import { NoSuchUserContextException, UnableToSetCookieException, } from '../../../protocol/protocol.js'; -import { assert } from '../../../utils/assert.js'; -import { LogType } from '../../../utils/log.js'; -import { NetworkProcessor } from '../network/NetworkProcessor.js'; -import { bidiToCdpCookie, cdpToBiDiCookie, deserializeByteValue, } from '../network/NetworkUtils.js'; -/** - * Responsible for handling the `storage` module. - */ -export class StorageProcessor { - #browserCdpClient; - #browsingContextStorage; - #logger; - constructor(browserCdpClient, browsingContextStorage, logger) { - this.#browsingContextStorage = browsingContextStorage; - this.#browserCdpClient = browserCdpClient; - this.#logger = logger; - } - async deleteCookies(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - let cdpResponse; - try { - cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', { - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - // If the user context is not found, special error is thrown. - throw new NoSuchUserContextException(err.message); - } - throw err; - } - const cdpCookiesToDelete = cdpResponse.cookies - .filter( - // CDP's partition key is the source origin. If the request specifies the - // `sourceOrigin` partition key, only cookies with the requested source origin - // are returned. - (c) => partitionKey.sourceOrigin === undefined || - c.partitionKey?.topLevelSite === partitionKey.sourceOrigin) - .filter((cdpCookie) => { - const bidiCookie = cdpToBiDiCookie(cdpCookie); - return this.#matchCookie(bidiCookie, params.filter); - }) - .map((cookie) => ({ - ...cookie, - // Set expiry to pass date to delete the cookie. - expires: 1, - })); - await this.#browserCdpClient.sendCommand('Storage.setCookies', { - cookies: cdpCookiesToDelete, - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - return { - partitionKey, - }; - } - async getCookies(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - let cdpResponse; - try { - cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', { - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - // If the user context is not found, special error is thrown. - throw new NoSuchUserContextException(err.message); - } - throw err; - } - const filteredBiDiCookies = cdpResponse.cookies - .filter( - // CDP's partition key is the source origin. If the request specifies the - // `sourceOrigin` partition key, only cookies with the requested source origin - // are returned. - (c) => partitionKey.sourceOrigin === undefined || - c.partitionKey?.topLevelSite === partitionKey.sourceOrigin) - .map((c) => cdpToBiDiCookie(c)) - .filter((c) => this.#matchCookie(c, params.filter)); - return { - cookies: filteredBiDiCookies, - partitionKey, - }; - } - async setCookie(params) { - const partitionKey = this.#expandStoragePartitionSpec(params.partition); - const cdpCookie = bidiToCdpCookie(params, partitionKey); - try { - await this.#browserCdpClient.sendCommand('Storage.setCookies', { - cookies: [cdpCookie], - browserContextId: this.#getCdpBrowserContextId(partitionKey), - }); - } - catch (err) { - if (this.#isNoSuchUserContextError(err)) { - // If the user context is not found, special error is thrown. - throw new NoSuchUserContextException(err.message); - } - this.#logger?.(LogType.debugError, err); - throw new UnableToSetCookieException(err.toString()); - } - return { - partitionKey, - }; - } - #isNoSuchUserContextError(err) { - // Heuristic to detect if the user context is not found. - // See https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/browser_handler.cc;drc=a56154dd81e4679712422ac6eed2c9581cb51ab0;l=314 - return err.message?.startsWith('Failed to find browser context for id'); - } - #getCdpBrowserContextId(partitionKey) { - return partitionKey.userContext === 'default' - ? undefined - : partitionKey.userContext; - } - #expandStoragePartitionSpecByBrowsingContext(descriptor) { - const browsingContextId = descriptor.context; - const browsingContext = this.#browsingContextStorage.getContext(browsingContextId); - // https://w3c.github.io/webdriver-bidi/#associated-storage-partition. - // Each browsing context also has an associated storage partition, which is the - // storage partition it uses to persist data. In Chromium it's a `BrowserContext` - // which maps to BiDi `UserContext`. - return { - userContext: browsingContext.userContext, - }; - } - #expandStoragePartitionSpecByStorageKey(descriptor) { - const unsupportedPartitionKeys = new Map(); - let sourceOrigin = descriptor.sourceOrigin; - if (sourceOrigin !== undefined) { - const url = NetworkProcessor.parseUrlString(sourceOrigin); - if (url.origin === 'null') { - // Origin `null` is a special case for local pages. - sourceOrigin = url.origin; - } - else { - // Port is not supported in CDP Cookie's `partitionKey`, so it should be stripped - // from the requested source origin. - sourceOrigin = `${url.protocol}//${url.hostname}`; - } - } - for (const [key, value] of Object.entries(descriptor)) { - if (key !== undefined && - value !== undefined && - !['type', 'sourceOrigin', 'userContext'].includes(key)) { - unsupportedPartitionKeys.set(key, value); - } - } - if (unsupportedPartitionKeys.size > 0) { - this.#logger?.(LogType.debugInfo, `Unsupported partition keys: ${JSON.stringify(Object.fromEntries(unsupportedPartitionKeys))}`); - } - // Set `userContext` to `default` if not provided, as it's required in Chromium. - const userContext = descriptor.userContext ?? 'default'; - return { - userContext, - ...(sourceOrigin === undefined ? {} : { sourceOrigin }), - }; - } - #expandStoragePartitionSpec(partitionSpec) { - if (partitionSpec === undefined) { - // `userContext` is required in Chromium. - return { userContext: 'default' }; - } - if (partitionSpec.type === 'context') { - return this.#expandStoragePartitionSpecByBrowsingContext(partitionSpec); - } - assert(partitionSpec.type === 'storageKey', 'Unknown partition type'); - // Partition spec is a storage partition. - // Let partition key be partition spec. - return this.#expandStoragePartitionSpecByStorageKey(partitionSpec); - } - #matchCookie(cookie, filter) { - if (filter === undefined) { - return true; - } - return ((filter.domain === undefined || filter.domain === cookie.domain) && - (filter.name === undefined || filter.name === cookie.name) && - // `value` contains fields `type` and `value`. - (filter.value === undefined || - deserializeByteValue(filter.value) === - deserializeByteValue(cookie.value)) && - (filter.path === undefined || filter.path === cookie.path) && - (filter.size === undefined || filter.size === cookie.size) && - (filter.httpOnly === undefined || filter.httpOnly === cookie.httpOnly) && - (filter.secure === undefined || filter.secure === cookie.secure) && - (filter.sameSite === undefined || filter.sameSite === cookie.sameSite) && - (filter.expiry === undefined || filter.expiry === cookie.expiry)); - } -} -//# sourceMappingURL=StorageProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js.map deleted file mode 100644 index e502862..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/storage/StorageProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"StorageProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/storage/StorageProcessor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.d.ts b/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.d.ts deleted file mode 100644 index f2297f8..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { CdpClient } from '../../../cdp/CdpClient.js'; -import { type WebExtension, type EmptyResult } from '../../../protocol/protocol.js'; -/** - * Responsible for handling the `webModule` module. - */ -export declare class WebExtensionProcessor { - #private; - constructor(browserCdpClient: CdpClient); - install(params: WebExtension.InstallParameters): Promise; - uninstall(params: WebExtension.UninstallParameters): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js b/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js deleted file mode 100644 index 679ecc1..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { InvalidWebExtensionException, UnsupportedOperationException, NoSuchWebExtensionException, } from '../../../protocol/protocol.js'; -/** - * Responsible for handling the `webModule` module. - */ -export class WebExtensionProcessor { - #browserCdpClient; - constructor(browserCdpClient) { - this.#browserCdpClient = browserCdpClient; - } - async install(params) { - switch (params.extensionData.type) { - case 'archivePath': - case 'base64': - throw new UnsupportedOperationException('Archived and Base64 extensions are not supported'); - case 'path': - break; - } - try { - const response = await this.#browserCdpClient.sendCommand('Extensions.loadUnpacked', { - path: params.extensionData.path, - }); - return { - extension: response.id, - }; - } - catch (err) { - if (err.message.startsWith('invalid web extension')) { - throw new InvalidWebExtensionException(err.message); - } - throw err; - } - } - async uninstall(params) { - try { - await this.#browserCdpClient.sendCommand('Extensions.uninstall', { - id: params.extension, - }); - return {}; - } - catch (err) { - if (err.message === - 'Uninstall failed. Reason: could not find extension.') { - throw new NoSuchWebExtensionException('no such web extension'); - } - throw err; - } - } -} -//# sourceMappingURL=WebExtensionProcessor.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js.map b/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js.map deleted file mode 100644 index b408f28..0000000 --- a/node_modules/chromium-bidi/lib/bidiMapper/modules/webExtension/WebExtensionProcessor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WebExtensionProcessor.js","sourceRoot":"","sources":["../../../../src/bidiMapper/modules/webExtension/WebExtensionProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,4BAA4B,EAE5B,6BAA6B,EAE7B,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACvB,iBAAiB,CAAY;IAEtC,YAAY,gBAA2B;QACrC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAsC;QAEtC,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAClC,KAAK,aAAa,CAAC;YACnB,KAAK,QAAQ;gBACX,MAAM,IAAI,6BAA6B,CACrC,kDAAkD,CACnD,CAAC;YACJ,KAAK,MAAM;gBACT,MAAM;QACV,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvD,yBAAyB,EACzB;gBACE,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI;aAChC,CACF,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,QAAQ,CAAC,EAAE;aACvB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAAa,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC/D,MAAM,IAAI,4BAA4B,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAwC;QAExC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,sBAAsB,EAAE;gBAC/D,EAAE,EAAE,MAAM,CAAC,SAAS;aACrB,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACG,GAAa,CAAC,OAAO;gBACtB,qDAAqD,EACrD,CAAC;gBACD,MAAM,IAAI,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.d.ts b/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.d.ts deleted file mode 100644 index f00cd8e..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { type Process } from '@puppeteer/browsers'; -import { MapperServerCdpConnection } from './MapperCdpConnection.js'; -import type { SimpleTransport } from './SimpleTransport.js'; -export interface ChromeOptions { - chromeArgs: string[]; - chromeBinary?: string; -} -/** - * BrowserProcess is responsible for running the browser and BiDi Mapper within - * it. - * 1. Launch Chromium (using Puppeteer for now). - * 2. Get `BiDi-CDP` mapper JS binaries using `MapperReader`. - * 3. Run `BiDi-CDP` mapper in launched browser using `MapperRunner`. - * 4. Bind `BiDi-CDP` mapper to the `BiDi server` to forward messages from BiDi - * Mapper to the client. - */ -export declare class BrowserInstance { - #private; - static run(chromeOptions: ChromeOptions, verbose: boolean): Promise; - constructor(mapperCdpConnection: MapperServerCdpConnection, browserProcess: Process); - close(): Promise; - bidiSession(): SimpleTransport; -} diff --git a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js b/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js deleted file mode 100644 index d455c95..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import { mkdtemp } from 'fs/promises'; -import os from 'os'; -import path from 'path'; -import { launch } from '@puppeteer/browsers'; -import debug from 'debug'; -import { MapperCdpConnection } from '../cdp/CdpConnection.js'; -import { MapperServerCdpConnection } from './MapperCdpConnection.js'; -import { PipeTransport } from './PipeTransport.js'; -import { getMapperTabSource } from './reader.js'; -const debugInternal = debug('bidi:mapper:internal'); -/** - * BrowserProcess is responsible for running the browser and BiDi Mapper within - * it. - * 1. Launch Chromium (using Puppeteer for now). - * 2. Get `BiDi-CDP` mapper JS binaries using `MapperReader`. - * 3. Run `BiDi-CDP` mapper in launched browser using `MapperRunner`. - * 4. Bind `BiDi-CDP` mapper to the `BiDi server` to forward messages from BiDi - * Mapper to the client. - */ -export class BrowserInstance { - #mapperCdpConnection; - #browserProcess; - static async run(chromeOptions, verbose) { - const profileDir = await mkdtemp(path.join(os.tmpdir(), 'web-driver-bidi-server-')); - // See https://github.com/GoogleChrome/chrome-launcher/blob/main/docs/chrome-flags-for-tools.md - const chromeArguments = [ - // keep-sorted start - '--allow-browser-signin=false', - '--disable-background-networking', - '--disable-background-timer-throttling', - '--disable-backgrounding-occluded-windows', - '--disable-component-update', - '--disable-default-apps', - '--disable-notifications', - '--disable-popup-blocking', - '--disable-search-engine-choice-screen', - '--enable-automation', - '--no-default-browser-check', - '--no-first-run', - '--password-store=basic', - '--remote-debugging-pipe', - '--use-mock-keychain', - `--user-data-dir=${profileDir}`, - // keep-sorted end - ...chromeOptions.chromeArgs, - 'about:blank', - ]; - const executablePath = chromeOptions.chromeBinary ?? process.env['BROWSER_BIN']; - if (!executablePath) { - throw new Error('Could not find Chrome binary'); - } - const launchArguments = { - executablePath, - args: chromeArguments, - env: process.env, - pipe: true, - }; - debugInternal(`Launching browser`, { - executablePath, - args: chromeArguments, - }); - const browserProcess = launch(launchArguments); - const cdpConnection = this.#establishPipeConnection(browserProcess); - // 2. Get `BiDi-CDP` mapper JS binaries. - const mapperTabSource = await getMapperTabSource(); - // 3. Run `BiDi-CDP` mapper in launched browser using `MapperRunner`. - const mapperCdpConnection = await MapperServerCdpConnection.create(cdpConnection, mapperTabSource, verbose); - return new BrowserInstance(mapperCdpConnection, browserProcess); - } - constructor(mapperCdpConnection, browserProcess) { - this.#mapperCdpConnection = mapperCdpConnection; - this.#browserProcess = browserProcess; - } - async close() { - // Close the mapper tab. - this.#mapperCdpConnection.close(); - // Close browser. - await this.#browserProcess.close(); - } - bidiSession() { - return this.#mapperCdpConnection.bidiSession(); - } - static #establishPipeConnection(browserProcess) { - debugInternal('Establishing pipe connection to browser process with pid: ', browserProcess.nodeProcess.pid); - const { 3: pipeWrite, 4: pipeRead } = browserProcess.nodeProcess.stdio; - const transport = new PipeTransport(pipeWrite, pipeRead); - return new MapperCdpConnection(transport); - } -} -//# sourceMappingURL=BrowserInstance.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js.map b/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js.map deleted file mode 100644 index 7ef05e3..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/BrowserInstance.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BrowserInstance.js","sourceRoot":"","sources":["../../src/bidiServer/BrowserInstance.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.d.ts b/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.d.ts deleted file mode 100644 index 0c5504d..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { MapperCdpConnection } from '../cdp/CdpConnection.js'; -import { SimpleTransport } from './SimpleTransport.js'; -export declare class MapperServerCdpConnection { - #private; - static create(cdpConnection: MapperCdpConnection, mapperTabSource: string, verbose: boolean): Promise; - private constructor(); - close(): void; - bidiSession(): SimpleTransport; -} diff --git a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js b/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js deleted file mode 100644 index bd06a27..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js +++ /dev/null @@ -1,138 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import debug from 'debug'; -import { SimpleTransport } from './SimpleTransport.js'; -const debugInternal = debug('bidi:mapper:internal'); -const debugInfo = debug('bidi:mapper:info'); -const debugOthers = debug('bidi:mapper:debug:others'); -// Memorizes a debug creation -const loggers = new Map(); -const getLogger = (type) => { - const prefix = `bidi:mapper:${type}`; - let logger = loggers.get(prefix); - if (!logger) { - logger = debug(prefix); - loggers.set(prefix, logger); - } - return logger; -}; -export class MapperServerCdpConnection { - #cdpConnection; - #bidiSession; - static async create(cdpConnection, mapperTabSource, verbose) { - try { - const bidiSession = await this.#initMapper(cdpConnection, mapperTabSource, verbose); - return new MapperServerCdpConnection(cdpConnection, bidiSession); - } - catch (e) { - cdpConnection.close(); - throw e; - } - } - constructor(cdpConnection, bidiSession) { - this.#cdpConnection = cdpConnection; - this.#bidiSession = bidiSession; - } - static async #sendMessage(mapperCdpClient, message) { - try { - await mapperCdpClient.sendCommand('Runtime.evaluate', { - expression: `onBidiMessage(${JSON.stringify(message)})`, - }); - } - catch (error) { - debugInternal('Call to onBidiMessage failed', error); - } - } - close() { - this.#cdpConnection.close(); - } - bidiSession() { - return this.#bidiSession; - } - static #onBindingCalled = (params, bidiSession) => { - if (params.name === 'sendBidiResponse') { - bidiSession.emit('message', params.payload); - } - else if (params.name === 'sendDebugMessage') { - this.#onDebugMessage(params.payload); - } - }; - static #onDebugMessage = (json) => { - try { - const log = JSON.parse(json); - if (log.logType !== undefined && log.messages !== undefined) { - const logger = getLogger(log.logType); - logger(log.messages); - } - } - catch { - // Fall back to raw log in case of unknown - debugOthers(json); - } - }; - static #onConsoleAPICalled = (params) => { - debugInfo('consoleAPICalled: %s %O', params.type, params.args.map((arg) => arg.value)); - }; - static #onRuntimeExceptionThrown = (params) => { - debugInfo('exceptionThrown:', params); - }; - static async #initMapper(cdpConnection, mapperTabSource, verbose) { - debugInternal('Initializing Mapper.'); - const browserClient = await cdpConnection.createBrowserSession(); - const { targetId: mapperTargetId } = await browserClient.sendCommand('Target.createTarget', { - url: 'about:blank#MAPPER_TARGET', - hidden: true, - background: true, - }); - const { sessionId: mapperSessionId } = await browserClient.sendCommand('Target.attachToTarget', { targetId: mapperTargetId, flatten: true }); - const mapperCdpClient = cdpConnection.getCdpClient(mapperSessionId); - const bidiSession = new SimpleTransport(async (message) => await this.#sendMessage(mapperCdpClient, message)); - // Process responses from the mapper tab. - mapperCdpClient.on('Runtime.bindingCalled', (params) => this.#onBindingCalled(params, bidiSession)); - // Forward console messages from the mapper tab. - mapperCdpClient.on('Runtime.consoleAPICalled', this.#onConsoleAPICalled); - // Catch unhandled exceptions in the mapper. - mapperCdpClient.on('Runtime.exceptionThrown', this.#onRuntimeExceptionThrown); - await mapperCdpClient.sendCommand('Runtime.enable'); - await browserClient.sendCommand('Target.exposeDevToolsProtocol', { - bindingName: 'cdp', - targetId: mapperTargetId, - inheritPermissions: true, - }); - await mapperCdpClient.sendCommand('Runtime.addBinding', { - name: 'sendBidiResponse', - }); - if (verbose) { - // Needed to request verbose logs from Mapper. - await mapperCdpClient.sendCommand('Runtime.addBinding', { - name: 'sendDebugMessage', - }); - } - // Evaluate Mapper Tab sources in the tab. - await mapperCdpClient.sendCommand('Runtime.evaluate', { - expression: mapperTabSource, - }); - // TODO: handle errors in all these evaluate calls! - await mapperCdpClient.sendCommand('Runtime.evaluate', { - expression: `window.runMapperInstance('${mapperTargetId}')`, - awaitPromise: true, - }); - debugInternal('Mapper is launched!'); - return bidiSession; - } -} -//# sourceMappingURL=MapperCdpConnection.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js.map b/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js.map deleted file mode 100644 index ac94814..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/MapperCdpConnection.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MapperCdpConnection.js","sourceRoot":"","sources":["../../src/bidiServer/MapperCdpConnection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.d.ts b/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.d.ts deleted file mode 100644 index 7d90f6f..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { Transport } from '../utils/transport.js'; -export declare class PipeTransport implements Transport { - #private; - constructor(pipeWrite: NodeJS.WritableStream, pipeRead: NodeJS.ReadableStream); - setOnMessage(onMessage: (message: string) => void): void; - sendMessage(message: string): void; - close(): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js b/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js deleted file mode 100644 index b3b8092..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2025 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -import debug from 'debug'; -const debugInternal = debug('bidi:server:pipeTranspot'); -export class PipeTransport { - #pipeWrite; - #onMessage = null; - #pendingMessage = ''; - constructor(pipeWrite, pipeRead) { - this.#pipeWrite = pipeWrite; - pipeRead.on('data', (chunk) => { - return this.#dispatch(chunk); - }); - pipeRead.on('close', () => { - this.close(); - }); - pipeRead.on('error', (error) => { - debugInternal('Pipe read error: ', error); - this.close(); - }); - pipeWrite.on('error', (error) => { - debugInternal('Pipe read error: ', error); - this.close(); - }); - } - setOnMessage(onMessage) { - this.#onMessage = onMessage; - } - sendMessage(message) { - // TODO: WebSocketServer keeps sending messages after closing the transport. - // TODO: we should assert that the pipe was not closed. - this.#pipeWrite.write(message); - this.#pipeWrite.write('\0'); - } - #dispatch(buffer) { - // TODO: WebSocketServer keeps sending messages after closing the transport. - // TODO: we should assert that the pipe was not closed. - let end = buffer.indexOf('\0'); - if (end === -1) { - this.#pendingMessage += buffer.toString(); - return; - } - const message = this.#pendingMessage + buffer.toString(undefined, 0, end); - if (this.#onMessage) { - this.#onMessage.call(null, message); - } - let start = end + 1; - end = buffer.indexOf('\0', start); - while (end !== -1) { - if (this.#onMessage) { - this.#onMessage.call(null, buffer.toString(undefined, start, end)); - } - start = end + 1; - end = buffer.indexOf('\0', start); - } - this.#pendingMessage = buffer.toString(undefined, start); - } - close() { - debugInternal('Closing pipe'); - } -} -//# sourceMappingURL=PipeTransport.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js.map b/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js.map deleted file mode 100644 index 0fa67cf..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/PipeTransport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"PipeTransport.js","sourceRoot":"","sources":["../../src/bidiServer/PipeTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,aAAa,GAAG,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAExD,MAAM,OAAO,aAAa;IACxB,UAAU,CAAwB;IAClC,UAAU,GAAuC,IAAI,CAAC;IAEtD,eAAe,GAAG,EAAE,CAAC;IAErB,YACE,SAAgC,EAChC,QAA+B;QAE/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,aAAa,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAAoC;QAC/C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IACD,WAAW,CAAC,OAAe;QACzB,4EAA4E;QAC5E,uDAAuD;QAEvD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,4EAA4E;QAC5E,uDAAuD;QAEvD,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAChB,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK;QACH,aAAa,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.d.ts b/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.d.ts deleted file mode 100644 index ec2d12d..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { EventEmitter } from '../utils/EventEmitter.js'; -/** - * Implements simple transport that allows sending string messages via - * `sendCommand` and receiving them via `on('message')`. - */ -export declare class SimpleTransport extends EventEmitter> { - #private; - /** - * @param sendCommandDelegate delegate to be called in `sendCommand`. - */ - constructor(sendCommandDelegate: (plainCommand: string) => Promise); - sendCommand(plainCommand: string): Promise; -} diff --git a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js b/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js deleted file mode 100644 index 88db66a..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { EventEmitter } from '../utils/EventEmitter.js'; -/** - * Implements simple transport that allows sending string messages via - * `sendCommand` and receiving them via `on('message')`. - */ -export class SimpleTransport extends EventEmitter { - #sendCommandDelegate; - /** - * @param sendCommandDelegate delegate to be called in `sendCommand`. - */ - constructor(sendCommandDelegate) { - super(); - this.#sendCommandDelegate = sendCommandDelegate; - } - async sendCommand(plainCommand) { - await this.#sendCommandDelegate(plainCommand); - } -} -//# sourceMappingURL=SimpleTransport.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js.map b/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js.map deleted file mode 100644 index 054f87e..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/SimpleTransport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"SimpleTransport.js","sourceRoot":"","sources":["../../src/bidiServer/SimpleTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAuC;IACjE,oBAAoB,CAA0C;IAEvE;;OAEG;IACH,YAAY,mBAA4D;QACtE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,YAAoB;QACpC,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;CACF"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.d.ts b/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.d.ts deleted file mode 100644 index 8a5cbc2..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import debug from 'debug'; -export declare const debugInfo: debug.Debugger; -export declare class WebSocketServer { - #private; - constructor(port: number, verbose: boolean); -} diff --git a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js b/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js deleted file mode 100644 index f74682f..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js +++ /dev/null @@ -1,374 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import http from 'http'; -import debug from 'debug'; -import * as websocket from 'websocket'; -import { Deferred } from '../utils/Deferred.js'; -import { uuidv4 } from '../utils/uuid.js'; -import { BrowserInstance } from './BrowserInstance.js'; -export const debugInfo = debug('bidi:server:info'); -const debugInternal = debug('bidi:server:internal'); -const debugSend = debug('bidi:server:SEND ▸'); -const debugRecv = debug('bidi:server:RECV ◂'); -export class WebSocketServer { - #sessions = new Map(); - #port; - #verbose; - #server; - #wsServer; - constructor(port, verbose) { - this.#port = port; - this.#verbose = verbose; - this.#server = http.createServer((request, response) => { - return this.#onRequest(request, response).catch((e) => { - debugInfo('Error while processing request', e); - response.writeHead(500, String(e)); - }); - }); - this.#wsServer = new websocket.server({ - httpServer: this.#server, - autoAcceptConnections: false, - }); - this.#wsServer.on('request', this.#onWsRequest.bind(this)); - void this.#listen(); - } - #logServerStarted() { - debugInfo('BiDi server is listening on port', this.#port); - debugInfo('BiDi server was started successfully.'); - } - async #listen() { - try { - this.#server.listen(this.#port, () => { - this.#logServerStarted(); - }); - } - catch (error) { - if (error && - typeof error === 'object' && - 'code' in error && - error.code === 'EADDRINUSE') { - await new Promise((resolve) => { - setTimeout(resolve, 500); - }); - debugInfo('Retrying to run BiDi server'); - this.#server.listen(this.#port, () => { - this.#logServerStarted(); - }); - } - throw error; - } - } - async #onRequest(request, response) { - debugInternal(`Received HTTP ${JSON.stringify(request.method)} request for ${JSON.stringify(request.url)}`); - if (!request.url) { - throw new Error('Request URL is empty.'); - } - // https://w3c.github.io/webdriver-bidi/#transport, step 2. - if (request.url === '/session') { - const body = await new Promise((resolve, reject) => { - const bodyArray = []; - request.on('data', (chunk) => { - bodyArray.push(chunk); - }); - request.on('error', reject); - request.on('end', () => { - resolve(Buffer.concat(bodyArray)); - }); - }); - debugInternal(`Creating session by HTTP request ${body.toString()}`); - // https://w3c.github.io/webdriver-bidi/#transport, step 3. - const jsonBody = JSON.parse(body.toString()); - response.writeHead(200, { - 'Content-Type': 'application/json;charset=utf-8', - 'Cache-Control': 'no-cache', - }); - const sessionId = uuidv4(); - const session = { - sessionId, - // TODO: launch browser instance and set it to the session after WPT - // tests clean up is switched to pure BiDi. - browserInstancePromise: undefined, - sessionOptions: { - chromeOptions: this.#getChromeOptions(jsonBody.capabilities), - verbose: this.#verbose, - sessionNewBody: `{"id":0,"method":"session.new","params":${body.toString()}}`, - }, - }; - this.#sessions.set(sessionId, session); - const webSocketUrl = `ws://localhost:${this.#port}/session/${sessionId}`; - debugInternal(`Session created. WebSocket URL: ${JSON.stringify(webSocketUrl)}.`); - response.write(JSON.stringify({ - value: { - sessionId, - capabilities: { - webSocketUrl, - }, - }, - })); - return response.end(); - } - else if (request.url.startsWith('/session')) { - debugInternal(`Unknown session command ${request.method ?? 'UNKNOWN METHOD'} request for ${request.url} with payload ${await this.#getHttpRequestPayload(request)}. 200 returned.`); - response.writeHead(200, { - 'Content-Type': 'application/json;charset=utf-8', - 'Cache-Control': 'no-cache', - }); - response.write(JSON.stringify({ - value: {}, - })); - return response.end(); - } - throw new Error(`Unknown "${request.method}" request for "${JSON.stringify(request.url)}" with payload "${await this.#getHttpRequestPayload(request)}".`); - } - #onWsRequest(request) { - // Session is set either by Classic or BiDi commands. - let session; - // Request to `/session` should be treated as a new session request. - let requestSessionId = ''; - if ((request.resource ?? '').startsWith(`/session/`)) { - requestSessionId = (request.resource ?? '').split('/').pop() ?? ''; - } - debugInternal(`new WS request received. Path: ${JSON.stringify(request.resourceURL.path)}, sessionId: ${JSON.stringify(requestSessionId)}`); - if (requestSessionId !== '' && - requestSessionId !== undefined && - !this.#sessions.has(requestSessionId)) { - debugInternal('Unknown session id:', requestSessionId); - request.reject(); - return; - } - const connection = request.accept(); - session = this.#sessions.get(requestSessionId ?? ''); - if (session !== undefined) { - // BrowserInstance is created for each new WS connection, even for the - // same SessionId. This is because WPT uses a single session for all the - // tests, but cleans up tests using WebDriver Classic commands, which is - // not implemented in this Mapper runner. - // TODO: connect to an existing BrowserInstance instead. - const sessionOptions = session.sessionOptions; - session.browserInstancePromise = this.#closeBrowserInstanceIfLaunched(session) - .then(async () => await this.#launchBrowserInstance(connection, sessionOptions)) - .catch((e) => { - debugInfo('Error while creating session', e); - connection.close(500, 'cannot create browser instance'); - throw e; - }); - } - connection.on('message', async (message) => { - // If type is not text, return error. - if (message.type !== 'utf8') { - this.#respondWithError(connection, {}, "invalid argument" /* ErrorCode.InvalidArgument */, `not supported type (${message.type})`); - return; - } - const plainCommandData = message.utf8Data; - if (debugRecv.enabled) { - try { - debugRecv(JSON.parse(plainCommandData)); - } - catch { - debugRecv(plainCommandData); - } - } - // Try to parse the message to handle some of BiDi commands. - let parsedCommandData; - try { - parsedCommandData = JSON.parse(plainCommandData); - } - catch (error) { - this.#respondWithError(connection, {}, "invalid argument" /* ErrorCode.InvalidArgument */, `unable to parse BiDi command: ${error}`); - return; - } - // Handle creating new session. - if (parsedCommandData.method === 'session.new') { - if (session !== undefined) { - debugInfo('WS connection already have an associated session.'); - this.#respondWithError(connection, plainCommandData, "session not created" /* ErrorCode.SessionNotCreated */, 'WS connection already have an associated session.'); - return; - } - try { - const sessionOptions = { - chromeOptions: this.#getChromeOptions(parsedCommandData.params?.capabilities), - verbose: this.#verbose, - sessionNewBody: plainCommandData, - }; - const browserInstance = await this.#launchBrowserInstance(connection, sessionOptions, true); - const sessionId = uuidv4(); - session = { - sessionId, - browserInstancePromise: Promise.resolve(browserInstance), - sessionOptions, - }; - this.#sessions.set(sessionId, session); - } - catch (e) { - debugInfo('Error while creating session', e); - this.#respondWithError(connection, plainCommandData, "session not created" /* ErrorCode.SessionNotCreated */, e?.message ?? 'Unknown error'); - return; - } - return; - } - // Handle ending session. Close browser if open, remove session. - if (parsedCommandData.method === 'session.end') { - if (session === undefined) { - debugInfo('WS connection does not have an associated session.'); - this.#respondWithError(connection, plainCommandData, "session not created" /* ErrorCode.SessionNotCreated */, 'WS connection does not have an associated session.'); - return; - } - try { - await this.#closeBrowserInstanceIfLaunched(session); - this.#sessions.delete(session.sessionId); - } - catch (e) { - debugInfo('Error while closing session', e); - this.#respondWithError(connection, plainCommandData, "unknown error" /* ErrorCode.UnknownError */, `Session cannot be closed. Error: ${e?.message}`); - return; - } - this.#sendClientMessage({ - id: parsedCommandData.id, - type: 'success', - result: {}, - }, connection); - return; - } - if (session === undefined) { - debugInfo('Session is not yet initialized.'); - this.#respondWithError(connection, plainCommandData, "invalid session id" /* ErrorCode.InvalidSessionId */, 'Session is not yet initialized.'); - return; - } - if (session.browserInstancePromise === undefined) { - debugInfo('Browser instance is not launched.'); - this.#respondWithError(connection, plainCommandData, "invalid session id" /* ErrorCode.InvalidSessionId */, 'Browser instance is not launched.'); - return; - } - const browserInstance = await session.browserInstancePromise; - // Handle `browser.close` command. - if (parsedCommandData.method === 'browser.close') { - await browserInstance.close(); - this.#sendClientMessage({ - id: parsedCommandData.id, - type: 'success', - result: {}, - }, connection); - return; - } - // Forward all other commands to BiDi Mapper. - await browserInstance.bidiSession().sendCommand(plainCommandData); - }); - connection.on('close', async () => { - debugInternal(`Peer ${connection.remoteAddress} disconnected.`); - // TODO: don't close Browser instance to allow re-connecting to the session. - await this.#closeBrowserInstanceIfLaunched(session); - }); - } - async #closeBrowserInstanceIfLaunched(session) { - if (session === undefined || session.browserInstancePromise === undefined) { - return; - } - const browserInstance = await session.browserInstancePromise; - session.browserInstancePromise = undefined; - void browserInstance.close(); - } - #getChromeOptions(capabilities) { - const chromeCapabilities = capabilities?.alwaysMatch?.['goog:chromeOptions']; - return { - chromeArgs: chromeCapabilities?.args ?? [], - chromeBinary: chromeCapabilities?.binary ?? undefined, - }; - } - async #launchBrowserInstance(connection, sessionOptions, passSessionNewThrough = false) { - debugInfo('Scheduling browser launch...'); - const browserInstance = await BrowserInstance.run(sessionOptions.chromeOptions, sessionOptions.verbose); - const body = JSON.parse(sessionOptions.sessionNewBody); - const id = body.id; - const sessionCreated = new Deferred(); - const sessionResponseListener = (message) => { - const jsonMessage = JSON.parse(message); - if (jsonMessage['id'] === id) { - debugInfo('Receiving session.new response from mapper', message); - sessionCreated.resolve(); - if (passSessionNewThrough) { - this.#sendClientMessageString(message, connection); - } - } - }; - browserInstance.bidiSession().on('message', sessionResponseListener); - debugInfo('Sending session.new to mapper', sessionOptions.sessionNewBody); - await browserInstance - .bidiSession() - .sendCommand(sessionOptions.sessionNewBody); - await sessionCreated; - browserInstance.bidiSession().off('message', sessionResponseListener); - // Forward messages from BiDi Mapper to the client unconditionally. - browserInstance.bidiSession().on('message', (message) => { - this.#sendClientMessageString(message, connection); - }); - debugInfo('Browser is launched!'); - return browserInstance; - } - #sendClientMessageString(message, connection) { - if (debugSend.enabled) { - try { - debugSend(JSON.parse(message)); - } - catch { - debugSend(message); - } - } - connection.sendUTF(message); - } - #sendClientMessage(object, connection) { - const json = JSON.stringify(object); - return this.#sendClientMessageString(json, connection); - } - #respondWithError(connection, plainCommandData, errorCode, errorMessage) { - const errorResponse = this.#getErrorResponse(plainCommandData, errorCode, errorMessage); - void this.#sendClientMessage(errorResponse, connection); - } - #getErrorResponse(plainCommandData, errorCode, errorMessage) { - // XXX: this is bizarre per spec. We reparse the payload and - // extract the ID, regardless of what kind of value it was. - let commandId; - try { - const commandData = JSON.parse(plainCommandData); - if ('id' in commandData) { - commandId = commandData.id; - } - } - catch { } - return { - type: 'error', - id: commandId, - error: errorCode, - message: errorMessage, - // XXX: optional stacktrace field. - }; - } - #getHttpRequestPayload(request) { - return new Promise((resolve, reject) => { - let data = ''; - request.on('data', (chunk) => { - data += chunk; - }); - request.on('end', () => { - resolve(data); - }); - request.on('error', (error) => { - reject(error); - }); - }); - } -} -//# sourceMappingURL=WebSocketServer.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js.map b/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js.map deleted file mode 100644 index 3e58458..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/WebSocketServer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"WebSocketServer.js","sourceRoot":"","sources":["../../src/bidiServer/WebSocketServer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/index.d.ts b/node_modules/chromium-bidi/lib/bidiServer/index.d.ts deleted file mode 100644 index e6856f0..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/index.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare function parseCommandLineArgs(): { - [x: string]: unknown; - port: number; - verbose: boolean; - _: (string | number)[]; - $0: string; -}; diff --git a/node_modules/chromium-bidi/lib/bidiServer/index.js b/node_modules/chromium-bidi/lib/bidiServer/index.js deleted file mode 100644 index 0587d0d..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/index.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import yargs from 'yargs'; -import { hideBin } from 'yargs/helpers'; -import { debugInfo, WebSocketServer } from './WebSocketServer.js'; -export function parseCommandLineArgs() { - return yargs(hideBin(process.argv)) - .usage(`$0`, `[PORT=8080] [VERBOSE=8080]`) - .option('port', { - alias: 'p', - describe: 'Port that BiDi server should listen to. Default is 8080.', - type: 'number', - default: process.env['PORT'] ? Number(process.env['PORT']) : 8080, - }) - .option('verbose', { - alias: 'v', - describe: 'If present, the Mapper debug log, including CDP commands and events will be logged into the server output.', - type: 'boolean', - default: process.env['VERBOSE'] === 'true' || false, - }) - .parseSync(); -} -(() => { - try { - const argv = parseCommandLineArgs(); - const { port, verbose } = argv; - debugInfo('Launching BiDi server...'); - new WebSocketServer(port, verbose); - debugInfo('BiDi server launched'); - } - catch (e) { - debugInfo('Error launching BiDi server', e); - } -})(); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/index.js.map b/node_modules/chromium-bidi/lib/bidiServer/index.js.map deleted file mode 100644 index b79fb71..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bidiServer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAEhE,MAAM,UAAU,oBAAoB;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,KAAK,CAAC,IAAI,EAAE,4BAA4B,CAAC;SACzC,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,0DAA0D;QACpE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KAClE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,QAAQ,EACN,4GAA4G;QAC9G,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,KAAK;KACpD,CAAC;SACD,SAAS,EAAE,CAAC;AACjB,CAAC;AAED,CAAC,GAAG,EAAE;IACJ,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;QAEpC,MAAM,EAAC,IAAI,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC;QAE7B,SAAS,CAAC,0BAA0B,CAAC,CAAC;QAEtC,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,SAAS,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/reader.d.ts b/node_modules/chromium-bidi/lib/bidiServer/reader.d.ts deleted file mode 100644 index 3313421..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/reader.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -export declare function getMapperTabSource(): Promise; diff --git a/node_modules/chromium-bidi/lib/bidiServer/reader.js b/node_modules/chromium-bidi/lib/bidiServer/reader.js deleted file mode 100644 index bc88ac6..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/reader.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import fs from 'fs/promises'; -import path from 'path'; -export async function getMapperTabSource() { - return await fs.readFile(path.join(import.meta.dirname, '../iife/mapperTab.js'), 'utf8'); -} -//# sourceMappingURL=reader.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiServer/reader.js.map b/node_modules/chromium-bidi/lib/bidiServer/reader.js.map deleted file mode 100644 index f97aa41..0000000 --- a/node_modules/chromium-bidi/lib/bidiServer/reader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/bidiServer/reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,OAAO,MAAM,EAAE,CAAC,QAAQ,CACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,EACtD,MAAM,CACP,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.d.ts b/node_modules/chromium-bidi/lib/bidiTab/BidiParser.d.ts deleted file mode 100644 index 2de148c..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.d.ts +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import type { BidiCommandParameterParser } from '../bidiMapper/BidiMapper.js'; -import type { Bluetooth, Browser, BrowsingContext, Cdp, Emulation, Input, Network, Permissions, Script, Session, Storage, WebExtension, UAClientHints } from '../protocol/protocol.js'; -export declare class BidiParser implements BidiCommandParameterParser { - parseDisableSimulationParameters(params: unknown): Bluetooth.DisableSimulationParameters; - parseHandleRequestDevicePromptParams(params: unknown): Bluetooth.HandleRequestDevicePromptParameters; - parseSimulateAdapterParameters(params: unknown): Bluetooth.SimulateAdapterParameters; - parseSimulateAdvertisementParameters(params: unknown): Bluetooth.SimulateAdvertisementParameters; - parseSimulateCharacteristicParameters(params: unknown): Bluetooth.SimulateCharacteristicParameters; - parseSimulateCharacteristicResponseParameters(params: unknown): Bluetooth.SimulateCharacteristicResponseParameters; - parseSimulateDescriptorParameters(params: unknown): Bluetooth.SimulateDescriptorParameters; - parseSimulateDescriptorResponseParameters(params: unknown): Bluetooth.SimulateDescriptorResponseParameters; - parseSimulateGattConnectionResponseParameters(params: unknown): Bluetooth.SimulateGattConnectionResponseParameters; - parseSimulateGattDisconnectionParameters(params: unknown): Bluetooth.SimulateGattDisconnectionParameters; - parseSimulatePreconnectedPeripheralParameters(params: unknown): Bluetooth.SimulatePreconnectedPeripheralParameters; - parseSimulateServiceParameters(params: unknown): Bluetooth.SimulateServiceParameters; - parseCreateUserContextParameters(params: unknown): Browser.CreateUserContextParameters; - parseRemoveUserContextParameters(params: unknown): Browser.RemoveUserContextParameters; - parseSetClientWindowStateParameters(params: unknown): Browser.SetClientWindowStateParameters; - parseSetDownloadBehaviorParameters(params: unknown): Browser.SetDownloadBehaviorParameters; - parseActivateParams(params: unknown): BrowsingContext.ActivateParameters; - parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters; - parseCloseParams(params: unknown): BrowsingContext.CloseParameters; - parseCreateParams(params: unknown): BrowsingContext.CreateParameters; - parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters; - parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters; - parseLocateNodesParams(params: unknown): BrowsingContext.LocateNodesParameters; - parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters; - parsePrintParams(params: unknown): BrowsingContext.PrintParameters; - parseReloadParams(params: unknown): BrowsingContext.ReloadParameters; - parseSetBypassCspParams(params: unknown): BrowsingContext.SetBypassCspParameters; - parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters; - parseTraverseHistoryParams(params: unknown): BrowsingContext.TraverseHistoryParameters; - parseGetSessionParams(params: unknown): Cdp.GetSessionParameters; - parseResolveRealmParams(params: unknown): Cdp.ResolveRealmParameters; - parseSendCommandParams(params: unknown): Cdp.SendCommandParameters; - parseSetClientHintsOverrideParams(params: unknown): UAClientHints.UserAgentClientHints.SetClientHintsOverrideCommand['params']; - parseSetForcedColorsModeThemeOverrideParams(params: unknown): Emulation.SetForcedColorsModeThemeOverrideParameters; - parseSetGeolocationOverrideParams(params: unknown): Emulation.SetGeolocationOverrideParameters; - parseSetLocaleOverrideParams(params: unknown): Emulation.SetLocaleOverrideParameters; - parseSetNetworkConditionsParams(params: unknown): Emulation.SetNetworkConditionsParameters; - parseSetScreenOrientationOverrideParams(params: unknown): Emulation.SetScreenOrientationOverrideParameters; - parseSetScreenSettingsOverrideParams(params: unknown): Emulation.SetScreenSettingsOverrideParameters; - parseSetScriptingEnabledParams(params: unknown): Emulation.SetScriptingEnabledParameters; - parseSetScrollbarTypeOverrideParams(params: unknown): Emulation.SetScrollbarTypeOverrideParameters; - parseSetTimezoneOverrideParams(params: unknown): Emulation.SetTimezoneOverrideParameters; - parseSetTouchOverrideParams(params: unknown): Emulation.SetTouchOverrideParameters; - parseSetUserAgentOverrideParams(params: unknown): Emulation.SetUserAgentOverrideParameters; - parsePerformActionsParams(params: unknown): Input.PerformActionsParameters; - parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters; - parseSetFilesParams(params: unknown): Input.SetFilesParameters; - parseAddDataCollectorParams(params: unknown): Network.AddDataCollectorParameters; - parseAddInterceptParams(params: unknown): Network.AddInterceptParameters; - parseContinueRequestParams(params: unknown): Network.ContinueRequestParameters; - parseContinueResponseParams(params: unknown): Network.ContinueResponseParameters; - parseContinueWithAuthParams(params: unknown): Network.ContinueWithAuthParameters; - parseDisownDataParams(params: unknown): Network.DisownDataParameters; - parseFailRequestParams(params: unknown): Network.FailRequestParameters; - parseGetDataParams(params: unknown): Network.GetDataParameters; - parseProvideResponseParams(params: unknown): Network.ProvideResponseParameters; - parseRemoveDataCollectorParams(params: unknown): Network.RemoveDataCollectorParameters; - parseRemoveInterceptParams(params: unknown): Network.RemoveInterceptParameters; - parseSetCacheBehaviorParams(params: unknown): Network.SetCacheBehaviorParameters; - parseSetExtraHeadersParams(params: unknown): Network.SetExtraHeadersParameters; - parseSetPermissionsParams(params: unknown): Permissions.SetPermissionParameters; - parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters; - parseCallFunctionParams(params: unknown): Script.CallFunctionParameters; - parseDisownParams(params: unknown): Script.DisownParameters; - parseEvaluateParams(params: unknown): Script.EvaluateParameters; - parseGetRealmsParams(params: unknown): Script.GetRealmsParameters; - parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters; - parseSubscribeParams(params: unknown): Session.SubscribeParameters; - parseUnsubscribeParams(params: unknown): Session.UnsubscribeParameters; - parseDeleteCookiesParams(params: unknown): Storage.DeleteCookiesParameters; - parseGetCookiesParams(params: unknown): Storage.GetCookiesParameters; - parseSetCookieParams(params: unknown): Storage.SetCookieParameters; - parseInstallParams(params: unknown): WebExtension.InstallParameters; - parseUninstallParams(params: unknown): WebExtension.UninstallParameters; -} diff --git a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js b/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js deleted file mode 100644 index d0c9b72..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js +++ /dev/null @@ -1,263 +0,0 @@ -import * as Parser from '../protocol-parser/protocol-parser.js'; -export class BidiParser { - // Bluetooth module - // keep-sorted start block=yes - parseDisableSimulationParameters(params) { - return Parser.Bluetooth.parseDisableSimulationParameters(params); - } - parseHandleRequestDevicePromptParams(params) { - return Parser.Bluetooth.parseHandleRequestDevicePromptParams(params); - } - parseSimulateAdapterParameters(params) { - return Parser.Bluetooth.parseSimulateAdapterParams(params); - } - parseSimulateAdvertisementParameters(params) { - return Parser.Bluetooth.parseSimulateAdvertisementParams(params); - } - parseSimulateCharacteristicParameters(params) { - return Parser.Bluetooth.parseSimulateCharacteristicParams(params); - } - parseSimulateCharacteristicResponseParameters(params) { - return Parser.Bluetooth.parseSimulateCharacteristicResponseParams(params); - } - parseSimulateDescriptorParameters(params) { - return Parser.Bluetooth.parseSimulateDescriptorParams(params); - } - parseSimulateDescriptorResponseParameters(params) { - return Parser.Bluetooth.parseSimulateDescriptorResponseParams(params); - } - parseSimulateGattConnectionResponseParameters(params) { - return Parser.Bluetooth.parseSimulateGattConnectionResponseParams(params); - } - parseSimulateGattDisconnectionParameters(params) { - return Parser.Bluetooth.parseSimulateGattDisconnectionParams(params); - } - parseSimulatePreconnectedPeripheralParameters(params) { - return Parser.Bluetooth.parseSimulatePreconnectedPeripheralParams(params); - } - parseSimulateServiceParameters(params) { - return Parser.Bluetooth.parseSimulateServiceParams(params); - } - // keep-sorted end - // Browser module - // keep-sorted start block=yes - parseCreateUserContextParameters(params) { - // Validate the params, but return the original one, as there can be `goog:` options. - Parser.Browser.parseCreateUserContextParameters(params); - return params; - } - parseRemoveUserContextParameters(params) { - return Parser.Browser.parseRemoveUserContextParameters(params); - } - parseSetClientWindowStateParameters(params) { - return Parser.Browser.parseSetClientWindowStateParameters(params); - } - parseSetDownloadBehaviorParameters(params) { - return Parser.Browser.parseSetDownloadBehaviorParameters(params); - } - // keep-sorted end - // Browsing Context module - // keep-sorted start block=yes - parseActivateParams(params) { - return Parser.BrowsingContext.parseActivateParams(params); - } - parseCaptureScreenshotParams(params) { - return Parser.BrowsingContext.parseCaptureScreenshotParams(params); - } - parseCloseParams(params) { - return Parser.BrowsingContext.parseCloseParams(params); - } - parseCreateParams(params) { - return Parser.BrowsingContext.parseCreateParams(params); - } - parseGetTreeParams(params) { - return Parser.BrowsingContext.parseGetTreeParams(params); - } - parseHandleUserPromptParams(params) { - return Parser.BrowsingContext.parseHandleUserPromptParameters(params); - } - parseLocateNodesParams(params) { - return Parser.BrowsingContext.parseLocateNodesParams(params); - } - parseNavigateParams(params) { - return Parser.BrowsingContext.parseNavigateParams(params); - } - parsePrintParams(params) { - return Parser.BrowsingContext.parsePrintParams(params); - } - parseReloadParams(params) { - return Parser.BrowsingContext.parseReloadParams(params); - } - parseSetBypassCspParams(params) { - return Parser.BrowsingContext.parseSetBypassCspParams(params); - } - parseSetViewportParams(params) { - return Parser.BrowsingContext.parseSetViewportParams(params); - } - parseTraverseHistoryParams(params) { - return Parser.BrowsingContext.parseTraverseHistoryParams(params); - } - // keep-sorted end - // CDP module - // keep-sorted start block=yes - parseGetSessionParams(params) { - return Parser.Cdp.parseGetSessionRequest(params); - } - parseResolveRealmParams(params) { - return Parser.Cdp.parseResolveRealmRequest(params); - } - parseSendCommandParams(params) { - return Parser.Cdp.parseSendCommandRequest(params); - } - // keep-sorted end - // Emulation module - // keep-sorted start block=yes - parseSetClientHintsOverrideParams(params) { - return Parser.Emulation.parseSetClientHintsOverrideParams(params); - } - parseSetForcedColorsModeThemeOverrideParams(params) { - return Parser.Emulation.parseSetForcedColorsModeThemeOverrideParams(params); - } - parseSetGeolocationOverrideParams(params) { - return Parser.Emulation.parseSetGeolocationOverrideParams(params); - } - parseSetLocaleOverrideParams(params) { - return Parser.Emulation.parseSetLocaleOverrideParams(params); - } - parseSetNetworkConditionsParams(params) { - return Parser.Emulation.parseSetNetworkConditionsParams(params); - } - parseSetScreenOrientationOverrideParams(params) { - return Parser.Emulation.parseSetScreenOrientationOverrideParams(params); - } - parseSetScreenSettingsOverrideParams(params) { - return Parser.Emulation.parseSetScreenSettingsOverrideParams(params); - } - parseSetScriptingEnabledParams(params) { - return Parser.Emulation.parseSetScriptingEnabledParams(params); - } - parseSetScrollbarTypeOverrideParams(params) { - return Parser.Emulation.parseSetScrollbarTypeOverrideParams(params); - } - parseSetTimezoneOverrideParams(params) { - return Parser.Emulation.parseSetTimezoneOverrideParams(params); - } - parseSetTouchOverrideParams(params) { - return Parser.Emulation.parseSetTouchOverrideParams(params); - } - parseSetUserAgentOverrideParams(params) { - return Parser.Emulation.parseSetUserAgentOverrideParams(params); - } - // keep-sorted end - // Input module - // keep-sorted start block=yes - parsePerformActionsParams(params) { - return Parser.Input.parsePerformActionsParams(params); - } - parseReleaseActionsParams(params) { - return Parser.Input.parseReleaseActionsParams(params); - } - parseSetFilesParams(params) { - return Parser.Input.parseSetFilesParams(params); - } - // keep-sorted end - // Network module - // keep-sorted start block=yes - parseAddDataCollectorParams(params) { - return Parser.Network.parseAddDataCollectorParameters(params); - } - parseAddInterceptParams(params) { - return Parser.Network.parseAddInterceptParameters(params); - } - parseContinueRequestParams(params) { - return Parser.Network.parseContinueRequestParameters(params); - } - parseContinueResponseParams(params) { - return Parser.Network.parseContinueResponseParameters(params); - } - parseContinueWithAuthParams(params) { - return Parser.Network.parseContinueWithAuthParameters(params); - } - parseDisownDataParams(params) { - return Parser.Network.parseDisownDataParameters(params); - } - parseFailRequestParams(params) { - return Parser.Network.parseFailRequestParameters(params); - } - parseGetDataParams(params) { - return Parser.Network.parseGetDataParameters(params); - } - parseProvideResponseParams(params) { - return Parser.Network.parseProvideResponseParameters(params); - } - parseRemoveDataCollectorParams(params) { - return Parser.Network.parseRemoveDataCollectorParameters(params); - } - parseRemoveInterceptParams(params) { - return Parser.Network.parseRemoveInterceptParameters(params); - } - parseSetCacheBehaviorParams(params) { - return Parser.Network.parseSetCacheBehaviorParameters(params); - } - parseSetExtraHeadersParams(params) { - return Parser.Network.parseSetExtraHeadersParameters(params); - } - // keep-sorted end - // Permissions module - // keep-sorted start block=yes - parseSetPermissionsParams(params) { - return Parser.Permissions.parseSetPermissionsParams(params); - } - // keep-sorted end - // Script module - // keep-sorted start block=yes - parseAddPreloadScriptParams(params) { - return Parser.Script.parseAddPreloadScriptParams(params); - } - parseCallFunctionParams(params) { - return Parser.Script.parseCallFunctionParams(params); - } - parseDisownParams(params) { - return Parser.Script.parseDisownParams(params); - } - parseEvaluateParams(params) { - return Parser.Script.parseEvaluateParams(params); - } - parseGetRealmsParams(params) { - return Parser.Script.parseGetRealmsParams(params); - } - parseRemovePreloadScriptParams(params) { - return Parser.Script.parseRemovePreloadScriptParams(params); - } - // keep-sorted end - // Session module - // keep-sorted start block=yes - parseSubscribeParams(params) { - return Parser.Session.parseSubscribeParams(params); - } - parseUnsubscribeParams(params) { - return Parser.Session.parseUnsubscribeParams(params); - } - // keep-sorted end - // Storage module - // keep-sorted start block=yes - parseDeleteCookiesParams(params) { - return Parser.Storage.parseDeleteCookiesParams(params); - } - parseGetCookiesParams(params) { - return Parser.Storage.parseGetCookiesParams(params); - } - parseSetCookieParams(params) { - return Parser.Storage.parseSetCookieParams(params); - } - // keep-sorted end - // WebExtenstion module - // keep-sorted start block=yes - parseInstallParams(params) { - return Parser.WebModule.parseInstallParams(params); - } - parseUninstallParams(params) { - return Parser.WebModule.parseUninstallParams(params); - } -} -//# sourceMappingURL=BidiParser.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js.map b/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js.map deleted file mode 100644 index db405d4..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/BidiParser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BidiParser.js","sourceRoot":"","sources":["../../src/bidiTab/BidiParser.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/Transport.d.ts b/node_modules/chromium-bidi/lib/bidiTab/Transport.d.ts deleted file mode 100644 index 23f74b9..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/Transport.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright 2023 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. * - */ -import type { BidiTransport } from '../bidiMapper/BidiMapper.js'; -import { type ChromiumBidi } from '../protocol/protocol.js'; -import { LogType } from '../utils/log.js'; -import type { Transport } from '../utils/transport.js'; -export declare class WindowBidiTransport implements BidiTransport { - #private; - static readonly LOGGER_PREFIX_RECV: "bidi:RECV ◂"; - static readonly LOGGER_PREFIX_SEND: "bidi:SEND ▸"; - static readonly LOGGER_PREFIX_WARN = LogType.debugWarn; - constructor(); - setOnMessage(onMessage: Parameters[0]): void; - sendMessage(message: ChromiumBidi.Message): void; - close(): void; -} -export declare class WindowCdpTransport implements Transport { - #private; - constructor(); - setOnMessage(onMessage: Parameters[0]): void; - sendMessage(message: string): void; - close(): void; -} diff --git a/node_modules/chromium-bidi/lib/bidiTab/Transport.js b/node_modules/chromium-bidi/lib/bidiTab/Transport.js deleted file mode 100644 index 6484cba..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/Transport.js +++ /dev/null @@ -1,145 +0,0 @@ -var _a; -import { LogType } from '../utils/log.js'; -import { log } from './mapperTabPage.js'; -export class WindowBidiTransport { - static LOGGER_PREFIX_RECV = `${LogType.bidi}:RECV ◂`; - static LOGGER_PREFIX_SEND = `${LogType.bidi}:SEND ▸`; - static LOGGER_PREFIX_WARN = LogType.debugWarn; - #onMessage = null; - constructor() { - window.onBidiMessage = (message) => { - log(_a.LOGGER_PREFIX_RECV, message); - try { - const command = _a.#parseBidiMessage(message); - this.#onMessage?.call(null, command); - } - catch (e) { - const error = e instanceof Error ? e : new Error(e); - // Transport-level error does not provide goog:channel. - this.#respondWithError(message, "invalid argument" /* ErrorCode.InvalidArgument */, error, null); - } - }; - } - setOnMessage(onMessage) { - this.#onMessage = onMessage; - } - sendMessage(message) { - log(_a.LOGGER_PREFIX_SEND, message); - const json = JSON.stringify(message); - window.sendBidiResponse(json); - } - close() { - this.#onMessage = null; - window.onBidiMessage = null; - } - #respondWithError(plainCommandData, errorCode, error, googChannel) { - const errorResponse = _a.#getErrorResponse(plainCommandData, errorCode, error); - if (googChannel) { - this.sendMessage({ - ...errorResponse, - 'goog:channel': googChannel, - }); - } - else { - this.sendMessage(errorResponse); - } - } - static #getJsonType(value) { - if (value === null) { - return 'null'; - } - if (Array.isArray(value)) { - return 'array'; - } - return typeof value; - } - static #getErrorResponse(message, errorCode, error) { - // XXX: this is bizarre per spec. We reparse the payload and - // extract the ID, regardless of what kind of value it was. - let messageId; - try { - const command = JSON.parse(message); - if (_a.#getJsonType(command) === 'object' && - 'id' in command) { - messageId = command.id; - } - } - catch { } - return { - type: 'error', - id: messageId, - error: errorCode, - message: error.message, - }; - } - static #parseBidiMessage(message) { - let command; - try { - command = JSON.parse(message); - } - catch { - throw new Error('Cannot parse data as JSON'); - } - const type = _a.#getJsonType(command); - if (type !== 'object') { - throw new Error(`Expected JSON object but got ${type}`); - } - // Extract and validate id, method and params. - const { id, method, params } = command; - const idType = _a.#getJsonType(id); - if (idType !== 'number' || !Number.isInteger(id) || id < 0) { - // TODO: should uint64_t be the upper limit? - // https://tools.ietf.org/html/rfc7049#section-2.1 - throw new Error(`Expected unsigned integer but got ${idType}`); - } - const methodType = _a.#getJsonType(method); - if (methodType !== 'string') { - throw new Error(`Expected string method but got ${methodType}`); - } - const paramsType = _a.#getJsonType(params); - if (paramsType !== 'object') { - throw new Error(`Expected object params but got ${paramsType}`); - } - let googChannel = command['goog:channel']; - if (googChannel !== undefined) { - const googChannelType = _a.#getJsonType(googChannel); - if (googChannelType !== 'string') { - throw new Error(`Expected string channel but got ${googChannelType}`); - } - // Empty string goog:channel is considered as no goog:channel provided. - if (googChannel === '') { - googChannel = undefined; - } - } - return { - id, - method, - params, - 'goog:channel': googChannel, - }; - } -} -_a = WindowBidiTransport; -export class WindowCdpTransport { - #onMessage = null; - #cdpSend; - constructor() { - this.#cdpSend = window.cdp.send; - // @ts-expect-error removing cdp - window.cdp.send = undefined; - window.cdp.onmessage = (message) => { - this.#onMessage?.call(null, message); - }; - } - setOnMessage(onMessage) { - this.#onMessage = onMessage; - } - sendMessage(message) { - this.#cdpSend(message); - } - close() { - this.#onMessage = null; - window.cdp.onmessage = null; - } -} -//# sourceMappingURL=Transport.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/Transport.js.map b/node_modules/chromium-bidi/lib/bidiTab/Transport.js.map deleted file mode 100644 index 257edce..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/Transport.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../src/bidiTab/Transport.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.d.ts b/node_modules/chromium-bidi/lib/bidiTab/bidiTab.d.ts deleted file mode 100644 index 1e49223..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @license - */ -declare global { - interface Window { - runMapperInstance: ((...args: any) => Promise) | null; - cdp: { - send: (message: string) => void; - onmessage: ((message: string) => void) | null; - }; - sendBidiResponse: (response: string) => void; - onBidiMessage: ((message: string) => void) | null; - sendDebugMessage?: ((message: string) => void) | null; - onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null; - } -} -export {}; diff --git a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js b/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js deleted file mode 100644 index 7302a96..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2021 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @license - */ -import { BidiServer } from '../bidiMapper/BidiMapper.js'; -import { MapperCdpConnection } from '../cdp/CdpConnection.js'; -import { LogType } from '../utils/log.js'; -import { BidiParser } from './BidiParser.js'; -import { generatePage, log } from './mapperTabPage.js'; -import { WindowBidiTransport, WindowCdpTransport } from './Transport.js'; -generatePage(); -const mapperTabToServerTransport = new WindowBidiTransport(); -const cdpTransport = new WindowCdpTransport(); -/** - * A CdpTransport implementation that uses the window.cdp bindings - * injected by Target.exposeDevToolsProtocol. - */ -const cdpConnection = new MapperCdpConnection(cdpTransport, log); -/** - * Launches the BiDi mapper instance. - * @param {string} selfTargetId - * @param options Mapper options. E.g. `acceptInsecureCerts`. - */ -async function runMapperInstance(selfTargetId) { - // eslint-disable-next-line no-console - console.log('Launching Mapper instance with selfTargetId:', selfTargetId); - const bidiServer = await BidiServer.createAndStart(mapperTabToServerTransport, cdpConnection, - /** - * Create a Browser CDP Session per Mapper instance. - */ - await cdpConnection.createBrowserSession(), selfTargetId, new BidiParser(), log); - log(LogType.debugInfo, 'Mapper instance has been launched'); - return bidiServer; -} -/** - * Set `window.runMapper` to a function which launches the BiDi mapper instance. - * @param selfTargetId Needed to filter out info related to BiDi target. - */ -window.runMapperInstance = async (selfTargetId) => { - await runMapperInstance(selfTargetId); -}; -//# sourceMappingURL=bidiTab.js.map \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js.map b/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js.map deleted file mode 100644 index cfcc5dc..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/bidiTab.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"bidiTab.js","sourceRoot":"","sources":["../../src/bidiTab/bidiTab.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAE,GAAG,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAgCvE,YAAY,EAAE,CAAC;AACf,MAAM,0BAA0B,GAAG,IAAI,mBAAmB,EAAE,CAAC;AAC7D,MAAM,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAC9C;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAEjE;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,YAAoB;IACnD,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,YAAY,CAAC,CAAC;IAE1E,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,cAAc,CAChD,0BAA0B,EAC1B,aAAa;IACb;;OAEG;IACH,MAAM,aAAa,CAAC,oBAAoB,EAAE,EAC1C,YAAY,EACZ,IAAI,UAAU,EAAE,EAChB,GAAG,CACJ,CAAC;IAEF,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;IAE5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,iBAAiB,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE;IAChD,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.d.ts b/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.d.ts deleted file mode 100644 index fd1c6f6..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { type LogPrefix } from '../utils/log.js'; -export declare function generatePage(): void; -export declare function log(logPrefix: LogPrefix, ...messages: unknown[]): void; diff --git a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js b/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js deleted file mode 100644 index f55eefe..0000000 --- a/node_modules/chromium-bidi/lib/bidiTab/mapperTabPage.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright 2022 Google LLC. - * Copyright (c) Microsoft Corporation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { LogType } from '../utils/log.js'; -/** HTML source code for the user-facing Mapper tab. */ -const mapperPageSource = 'BiDi-CDP Mapper

|NO>X1<}X3 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 HNx%OCd%5T{ diff --git a/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare b/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare deleted file mode 100644 index cfa6de8ad951cf48a8602af1c45367299370959d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58632 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 C*+Dk| diff --git a/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare b/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare deleted file mode 100644 index 2121ea4e71196d6ada6dc87026dd0e71c0cf575a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58192 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